首页>计算机等级考试>模拟试题>正文
09年计算机等级考试二级笔试样题:二级C笔试考前练习习题(26)

www.zige365.com 2009-6-15 14:13:10 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
(1)下列程序执行后输出的结果是___________。
  int d=l:
  fun(int p)
  { int d。5;
  d+=p++;
  printf("%d,",d);
  }
  main()
  { int a=3;
  fun(a);
  d+=a++:
  printf("%d\n",d);
  }
   A)8,12
  B)9,13
  C)8,4
  D)9,5
  答案:C
  评析:本题执行过程如下:首先调用fun函数,使得实参a的值3传递给形参p,得到局部变量d=8,打印出局部变量d的值8;返回主函数执行"d+=a++",此处的d为全局变量,所以d=1+3=4(由于本题是值传递,所以在函数fun中对p值的改变并不能引起a的改变),故本题的输出是8,4。

  (2)已知下面的程序段,正确的判断是_________。
  #define A 3
  #define B(A)((_A+1)'a)
  int a=3:
  ……
  X=3*(A+B(7));
  A)程序错误,不允许嵌套定义
  B)X=93
  C)X=8l
  D)程序错误,宏定义不允许有参数
  答案:C
  评析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

  (3)定义int*swap()指的是_______。
  A)一个返回整型值的函数swap()
  B)一个返回指向整型值指针的函数swap()
  C)一个指向函数swap()的指针,函数返回一个整型值
  D)以上说法均错
  答案:B
  评析:一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和?号,由于f)优先级高于t。故它是一个返回整型指针的函数。

  (4)以下程序段的输出结果是__________。
  main()
  {  char s1[10],s2[10],s3[10];
  scanf("%s",s1);gets(s2);gets(s3);
  puts(s 1);puts(s2);puts(s3);
  }
  输入数据如下: (此处代表回车符)
  aaa
  bbb
  A)aaa
  B)aaa
  C)aaa\0bbb\0
  D)aaabbb
  bbb
  bbb
  答案:B
  评析:scanf是标准输入函数,在输入字符串aaa时,实际的内容为"aaa","\0"是由系统自动加入的;gets的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以"\0"代替换行符。

  (5)下述函数功能是________。
  Int fun(char*x)
  { char*y=x;
  while(*y++);
  return y-x-l;
  }
  A)求字符串的长度 
  B)求字符串存放的位置
  C)比较两个字符串的大小
  D)将字符串x连接到字符串y后面
  答案:A
  评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

  (6)以下程序的输出结果是_________。
  main()
  { char str[12]={'s','t','r','i','n',' g'};
  printf("%d\n",strlen(str));
  }
  A)6
  B)7
  C)ll
  D)12
    答案:A
  评析:在c语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动添加上"\0",故字符串的长度为6。

  (7)请读程序段:
  char str[]="ABCD",*p=str;
  printf("%d\n",*(p+4));
  程序段的输出结果是_________。
  A)68
  B)0
  C)字符'D'的地址
  D)不确定的值
  答案:B
  评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志"\0",故指向字符数组的指针p的+(p+4)的值为"\0"。由于"\0"的编码值就是0,所以本题输出为0。

  (8)若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是________。
  (0<=i<4,0<=j<10)
  A)*(&a[O][O]+10*i+j)
  B)*(a+i)+j
  C)*(*(a+i)+j)
  D)*(a[i]+j)
  答案:B
  评析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][i]的地址。

  (9)设有以下语句:
  char strl[]="string",str2[8],。str3,。str4="strin∥;
  则__________不是对库函数的正确调用。

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
09年计算机等级考试二级笔试样题:二级C笔试考前练习习
09年计算机等级考试二级笔试样题:二级C笔试考前练习习
09年计算机等级考试二级笔试样题:二级C笔试考前练习习
09年计算机等级考试二级笔试样题:二级C笔试考前练习习
2009年计算机等级考试二级笔试样题:二级C语言程序设计