计算机等级 百分网手机站

计算机等级考试二级C语言考试试题带答案(3)

时间:2017-08-27 18:20:02 计算机等级 我要投稿

计算机等级考试二级C语言考试试题(带答案)

  { *p=cchar(*p);

  p++;

  }

  printf("%s\n",s);

  }

  A) abc+ABC=DEFdef B) abc+abc=defdef

  C) abcaABCDEFdef D) abcabcdefdef

  (30) 以下程序的输出结果是

  int f()

  { static int i=0;

  int s=1;

  s+=i; i++;

  return s;

  }

  main()

  { int i,a=0;

  for(i=0;i<5;i++) a+=f();

  printf("%d\n",a);

  }

  A) 20 B) 24 C) 25 D) 15

  (31) 以下程序段的输出结果是

  char s[]="\\141\141abc\t";

  printf ("%d\n",strlen(s));

  A) 9 B) 12 C) 13 D) 14

  (32) 若有以下程序

  #include

  void f(int n);

  main()

  { void f(int n);

  f(5);

  }

  void f(int n)

  { printf("%d\n",n); }

  则以下叙述中不正确的是

  A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

  B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

  C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明

  D) 函数f无返回值,所以可用void将其类型定义为无值型

  (33) 以下程序调用findmax函数返回数组中的最大值

  findmax(int *a,int n)

  { int *p,*s;

  for(p=a,s=a; p-a

  if ( ) s=p;

  return(*s);

  }

  main()

  { int x[5]={12,21,13,6,18};

  printf("%d\n",findmax(x,5));

  }

  在下划线处应填入的是

  A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s

  (34) 以下程序的输出结果是

  main()

  { char cf[3][5]={"AAAA","BBB","CC"};

  printf("\"%s\"\n",ch[1]);

  }

  A) "AAAA" B) "BBB" C) "BBBCC" D) "CC"

  (35) 在C语言中,形参的缺省存储类是

  A) auto B) register C) static D) extern

  (36) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是

  A) p=2*(int*)malloc(sizeof(int));

  B) p=(int*)malloc(2*sizeof(int));

  C) p=(int*)malloc(2*2);

  D) p=(int*)calloc(2,sizeof(int));

  (37) 以下程序的输出结果是

  main()

  { char x=040;

  printf("%0\n",x<<1);

  }

  A) 100 B) 80 C) 64 D) 32

  (38) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是

  A) fopen("A:\user\abc.txt","r") B) fopen("A:\\user\\abc.txt","r+")

  C) fopen("A:\user\abc.txt","rb") C) fopen("A:\\user\\abc.txt","w")

  (39) 以下不能正确进行字符串赋初值的语句是

  A) char str[5]="good!"; B) char str[]="good!";

  C) char *str="good!"; D) char str[5]={‘g',‘o',‘o',‘d'};

  (40) 若有下面的说明和定义:

  struct test

  { int ml; char m2; float m3;

  union uu {char ul[5]; int u2[2];} ua;

  } myaa;

  则sizeof(struct test )的值是

  A) 12 B) 16 C) 14 D) 9

  (41) 若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是

  A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1

  (42) 以下程序的输出结果是

  f(int b[],int m,int n)

  { int i,s=0;

  for(i=m;i

  return s;

  }

  main()

  {int x,a[]={1,2,3,4,5,6,7,8,9};

  x=f(a,3,7);

  printf("%d\n",x);

  }

  A) 10 B) 18 C) 8 D) 15

  (43) 若有以下定义和语句:

  int s[4][5],(*ps)[5];

  ps=s;

  则对s数组元素的正确引用形式是

  A) ps+1 B) *(ps+3) C) ps[0][2] D) *(ps+1)+3

  (44) 以下程序的输出结果是

  main()

  { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

  for(i=0;i<3;i++)

  for(j=i;j<=i;j++) t=t+b[i][b[j][j]];

  printf("%d\n",t);

  }

  A) 3 B) 4 C) 1 D) 9

  (45) 以下程序的输出结果是

  #include

  #include

  main()

  { char b1[8]="abcdefg",b2[8],*pb=b1+3;

  while (--pb>=b1) strcpy(b2,pb);

  printf("%d\n",strlen(b2));

  }

  A) 8 B) 3 C) 1 D) 7

  (46) 在说明语句:int *f();中,标识符f代表的是

  A) 一个用于指向整型数据的指针变量