当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
全国计算机等级考试二级C语言模拟试题一
发布时间:2010/11/24 16:30:16 来源:www.xue.net 编辑:城市总裁吧

 一、选择题(每题2分,共计70分)
  1.栈和队列的共同特点是
  A)都是先进先出
  B)都是先进后出
  C)只允许在端点处插入和删除元素
  D)没有共同点
  A       B       C       D
  2.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
  A)acbed
  B)decab
  C)deabc
  D)cedba
  A       B       C       D
  3.链表不具有的特点是
  A)不必事先估计存储空间
  B)可随机访问任一元素
  C)插入删除不需要移动元素
  D)所需空间与线性表长度成正比
  A       B       C       D
  4.结构化程序设计的3种结构是
  A)顺序结构、选择结构、转移结构
  B)分支结构、等价结构、循环结构
  C)多分支结构、赋值结构、等价结构
  D)顺序结构、选择结构、循环结构
  A       B       C       D
  5.为了提高测试的效率,应该
  A)随机选取测试数据
  B)取一切可能的输入数据作为测试数据
  C)在完成编码以后制定软件的测试计划
  D)集中对付那些错误群集的程序

 6.算法的时间复杂度是指
  A)执行算法程序所需要的时间
  B)算法程序的长度
  C)算法执行过程中所需要的基本运算次数
  D)算法程序中的指令条数
  A       B       C       D
  7.软件生命周期中所花费用最多的阶段是
  A)详细设计
  B)软件编码
  C)软件测试
  D)软件维护
  A       B       C       D
  8.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为
  A)C
  B)Basic
  C)DDL
  D)DML
  A       B       C       D
  9.下列有关数据库的描述,正确的是
  A)数据库是一个DBF文件
  B)数据库是一个关系
  C)数据库是一个结构化的数据集合
  D)数据库是一组文件
  A       B       C       D
  10.下列有关数据库的描述,正确的是
  A)数据处理是将信息转化为数据的过程
  B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
  C)关系中的每一列称为元组,一个元组就是一个字段
  D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
  A       B       C       D

 11.以下叙述中正确的是
  A)C语言比其他语言高级
  B)C语言可以不用编译就能被计算机识别执行
  C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
  D)C语言出现的最晚,具有其他语言的一切优点
  A       B       C       D
  12.C语言中用于结构化程序设计的3种基本结构是
  A)顺序结构、选择结构、循环结构
  B)if,switch,break
  C)for,while,do-while
  D)if,for,continue
  A       B       C       D
  13.C语言中最简单的数据类型包括
  A)整型、实型、逻辑型
  B)整型、实型、字符型
  C)整型、字符型、逻辑型
  D)字符型、实型、逻辑型
  A       B       C       D
  14.若变量已正确定义并赋值,以下符合C语言语法的表达式是
  A)a:=b+1
  B)a=b=c+2
  C)int 18.5%3
  D)a=a+7=c+b
  A       B       C       D
  15.下列可用于C语言用户标识符的一组是
  A)voiddefineWORD
  B)a3_b3_123Car
  C)For-abcIFCase
  D)2aDOsizeof
  A       B       C       D

  16.若变量a,i已正确定义,且i已正确赋值,合法的语句是
  A)a==1
  B)++i;
  C)a=a++=5;
  D)a=int(i);
  A       B       C       D
  17.已知
  int t=0;
  while (t=1)
  {...}
  则以下叙述正确的是
  A)循环控制表达式的值为0
  B)循环控制表达式的值为1
  C)循环控制表达式不合法
  D)以上说法都不对
  A       B       C       D
  18.有如下程序
  main()
  {
  int x=1,a=0,b=0;
  switch(x)
  {
  case 0: b++;
  case 1: a++;
  case 2: a++;b++;
  }
  printf("a=%d,b=%d\n",a,b);
  }
  该程序的输出结果是
  A)a=2,b=1
  B)a=1,b=1
  C)a=1,b=0
  D)a=2,b=2
  A       B       C       D
  19.有以下程序
  main()
  { int i=1,j=1,k=2;
  if((j++||k++)&& i++)
  printf("%d,%d,%d\n",i,j,k);
  }
  执行后输出结果是
  A)1,1,2
  B)2,2,1
  C)2,2,2
  D)2,2,3
  A       B       C       D
  20.有如下程序
  main()
  { int n=9;
  while(n>6){n--; printf("%d",n);}
  }
  该程序的输出结果是
  A)987
  B)876
  C)8765
  D)9876
  A       B       C       D

[NextPage]

 21.在下列选项中,没有构成死循环的是
  A)int i=100;
  while(1)
  { i=i0+1;
  if(i>100)break;
  }
  B)for(;;);
  C)int k=10000;
  do{ k++; }while(k>10000);
  D)int s=36;
  while(s)--s;
  A       B       C       D
  22.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
  A)函数调用可以作为独立的语句存在
  B)函数调用可以作为一个函数的实参
  C)函数调用可以出现在表达式中
  D)函数调用可以作为一个函数的形参
  A       B       C       D
  23.有以下程序
  float fun(int x,int y)
  { return(x+y);}
  main()
  { int a=2,b=5,c=8;
  printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
  }
  程序运行后的输出结果是
  A)编译出错
  B)9
  C)21
  D)9.0
  A       B       C       D
  24.若有以下调用语句,则不正确的fun函数的首部是
  main()
  { …
  int a[50],n;
  …
  fun(n, &a[9]);
  …
  }
  A)void fun(int m, int x[])
  B)void fun(int s, int h[41])
  C)void fun(int p, int *s)
  D)void fun(int n, int a)
  A       B       C       D
  25.设有以下说明语句
  struct stu
  { int a;
  float b;
  } stutype;
  则下面的叙述不正确的是
  A)struct是结构体类型的关键字
  B)struct stu是用户定义的结构体类型
  C)stutype是用户定义的结构体类型名
  D)a和b都是结构体成员名
  A       B       C       D

26.若运行时给变量x输入12,则以下程序的运行结果是
  main()
  { int x,y;
  scanf("%d",&x);
  y=x>12?x+10:x-12;
  printf("%d\n",y);
  }
  A)0
  B)22
  C)12
  D)10
  A       B       C       D
  27.以下说法正确的是
  A)C语言程序总是从第一个的函数开始执行
  B)在C语言程序中,要调用函数必须在main()函数中定义
  C)C语言程序总是从main()函数开始执行
  D)C语言程序中的main()函数必须放在程序的开始部分
  A       B       C       D
  28.有以下程序
  #define F(X,Y)(X)*(Y)
  main()
  { int a=3, b=4;
  printf("%d\n", F(a++, b++));
  }
  程序运行后的输出结果是
  A)12
  B)15
  C)16
  D)20
  A       B       C       D
  29.下列程序执行后的输出结果是
  void func(int *a,int b[])
  { b[0]=*a+6; }
  main()
  { int a,b[5]={0};
  a=0; b[0]=3;
  func(&a,b); printf("%d\n",b[0]);
  }
  A)6
  B)7
  C)8
  D)9
  A       B       C       D
  30.若有下面的程序段
  char s[]="china";char *p; p=s;
  则下列叙述正确的是
  A)s和p完全相同
  B)数组s中的内容和指针变量p中的内容相等
  C)s数组长度和p所指向的字符串长度相等
  D)*p与s[0]相等
  A       B       C       D

 31.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序
  void sort(int a[],int n)
  { int i,j,t;
  for(i=0;ifor(j=i+1;jif(a[i]}
  main()
  { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
  sort(&aa[3],5);
  for(i=0;i<10;i++)printf("%d,",aa[i]);
  printf("\n");
  }
  程序运行后的输出结果是
  A)1,2,3,4,5,6,7,8,9,10,
  B)10,9,8,7,6,5,4,3,2,1,
  C)1,2,3,8,7,6,5,4,9,10,
  D)1,2,10,9,8,7,6,5,4,3,
  A       B       C       D
  32.以下程序的运行结果是
  #include "stdio.h"
  main()
  { struct date
  { int year,month,day;}today;
  printf("%d\n",sizeof(struct date));
  }
  A)6
  B)8
  C)10
  D)12
  A       B       C       D
  33.若执行下述程序时,若从键盘输入6和8时,结果为
  main()
  { int a,b,s;
  scanf("%d%d",&a,&b);
  s=a;
  if(as=b;
  s*=s;
  printf("%d",s);
  }
  A)36
  B)64
  C)48
  D)以上都不对
  A       B       C       D
  34.下列关于C语言数据文件的叙述中正确的是
  A)文件由ASCII码字符序列组成,C语言只能读写文本文件
  B)文件由二进制数据序列组成,C语言只能读写二进制文件
  C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
  D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
  A       B       C       D
  35.有以下程序
  void ss(char *s,char t)
  { while(*s)
  { if(*s==t)*s=t-′a′+′A′;
  s++;
  }
  }
  main()
  { char str1[100]="abcddfefdbd",c=′d′;
  ss(str1,c); printf("%s\n",str1);
  }
  程序运行后的输出结果是
  A)ABCDDEFEDBD
  B)abcDDfefDbD
  C)abcAAfefAbA
  D)Abcddfefdbd
  A       B       C       D

6.下列程序的输出结果是 【6】 。
  maim ()
  { char b[]="Hello you";
  b[5]=0;
  printf ("%s\n",b);
  }
  输入答案,中间不含空格:
  7.以下程序的输出结果是 【7】 。
  main()
  { int a=0;
  a+=(a=8);
  printf("%d\n",a);
  }
  输入答案,中间不含空格:
  8.函数 void fun(float *sn, int n)的功能是根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
  void fun( float *sn, int n)
  { float s=0.0, w, f=-1.0;
  int i=0;
  for(i=0; i<=n; i++)
  { f= 【8】 * f;
  w=f/(2*i+1);
  s+=w;
  }
  【9】=s;
  }
  输入答案,中间不含空格:
  9.函数fun的功能是根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。
  例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。
  #include
  #include
  float fun (int m, int n)
  { int i;
  double p=1.0;
  for(i=1;i<=m;i++) 【10】 ;
  for(i=1;i<=n;i++) 【11】 ;
  for(i=1;i<=m-n;i++)p=p/i;
  return p;
  }
  main ()
  { clrscr();
  printf ("p=%f\n",fun (12,8));
  }
  输入答案,中间不含空格:
  10.该程序运行的结果是 【12】 。
  #include
  #include
  #define M 100
  void fun(int m, int *a, int *n)
  { int i,j=0;
  for(i=1;i<=m;i++)
  if(i%7==0||i==0)
  a[j++]=i;
  *n=j;
  }
  main()
  { int aa[M],n,k;
  clrscr();
  fun(10,aa,&n);
  for(k=0;k if((k+1) ==0)printf("\n");
  else printf("M",aa[k]);
  printf("\n");
  }
  输入答案,中间不含空格:
 11.下列程序的功能是求出ss所指字符串中指定字符的个数,并返回此值。
  例如,若输入字符串123412132,输入字符1,则输出3,请填空。
  #include
  #include
  #define M 81
  int fun(char *ss, char c)
  { int i=0;
  for(; 【13】 ;ss++)
  if(*ss==c)i++;
  return i;
  }
  main()
  { char a[M], ch;
  clrscr();
  printf("\nPlease enter a string: "); gets(a);
  printf("\nPlease enter a char: "); ch=getchar();
  printf("\nThe number of the char is: %d\n", fun(a,ch));
  }
  输入答案,中间不含空格:
  12.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
  #include "stdio.h"
  FILE *fp;
  { char ch;
  if((fp=fopen( 【14】 ))==NULL)exit(0);
  while((ch=getchar( ))
!=′@′)fputc (ch,fp);
  fclose(fp);
  }
  输入答案,中间不含空格:
  13.设有如下宏定义
  #define MYSWAP(z,x,y)
  {z=x;x=y;y=z;}
  以下程序段通过宏调用实现变量a,b内容交换,请填空。
  float a=5,b=16,c;
  MYSWAP( 【15】 ,a,b);
  输入答案,中间不含空格:

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved