| ACCA | CET | EMBA | GMAT | GRE | JAVA认证 | Linux认证 | LSAT | MBA | MPA | Oracle认证 | PETS | TOEIC | 保险资格 | 报关员 | 报检员 | 成人高考 | 城市规划师 | 大学英语 | 导游 | 电子商务师 | 法律硕士 | 房产估价师 | 高级会计师 | 工程硕士 | 公务员 | 国际内审师 | 国际商务师 | 会计硕士 | 会计职称 | 会计资格 | 计算机等级考试 | 监理工程师 | 建造师 | 建筑师 | 结构工程师 | 经济师 | 精算师 | 考试试题 | 考研 | 口译笔译 | 秘书认证 | 人力资源师 | 软件水平考试 | 商务英语 | 实用英语 | 司法考试 | 思科认证 | 同等学历 | 土地估价师 | 托福考试 | 外销员 | 微软认证 | 物流师 | 项目管理师 | 小语种 | 雅思考试 | 在职硕士 | 造价师 | 证券认证 | 执业护士 | 执业药师 | 执业医师 | 职称英语 | 注册会计师 | 注册税务师 | 咨询工程师 | 资产评估师 | 自学考试 |
华夏学习网_计算机等级考试_计算机二级考试_ 06年4月全国计算机等级考试二级C语言考前密卷2(二)

06年4月全国计算机等级考试二级C语言考前密卷2(二)

(26)下面程序的输出结果是__________。
  #define P1(x)printf(x)
  main()
  {
  char d[]。\"p\";
  Pl(d);
  P1(\"d\");
  }
  A)pd          B)d\"d\" 
   C)\"p\"d          D)\"p\"\"d\"
  答案:A
  评析:带参数的宏定义的一般形式为:#define宏名(参数表)字符串
  程序中的Pl(d);经宏置换后为printf(d);,所以输出字符串p;程序中的Pl(\"d\");经宏置换后printf(\"d\")。
  
(27)以下选项中,能定义s为合法的结构体变量的是__________。
  A) typedef struct abc
  {  double a;
  charb[10];
  }s;
  B) struct
  {  double a;
  char b[10];
  }s;
  C) struct ABC
  {  double a;
  char b[10];
  }
  ABC s:
  D) typedef ABC
  {  double a;
  char b[10];
  }
  ABC s:
  答案:B
  评析:定义一个结构体类型的变量,可采用三种方法:
  ①先定义结构体类型,再定义变量名;②在定义类型的同时定义变量:③直接定义结构类型变量,即不出现结构体名:选项B符合第三种定义方法。
  
(28)请读程序:
  #include<stdiO.h>
  #include<string-h>
  main()
  {
  char*s1=\"AbCdEf\", *s2=\"aB\";
  s1++; s2++;
  printf(\"%d、n\",strcmp(sl,s2));
  }
  上面程序的输出结果是________。
  A)正数         B)负数 
   C)零          D)不确定的值
  答案:A
  评析:strcmp(X1,X2)是串比较函数,本题中\"s1\"、\"s2\"分别表示这两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,则*sl为\"bCdEf’’,*s2为\"B\"。在字符串比较中,大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的, sl>s2,返回值为正数。
  
(29)请读程序:
  #include<stdiO.h>
  main()
  {
  int a=5,b=7,c=9;
  printf(\"%d,%d,\",a,b,c);
  printf(\"%d,%d,%d,\"a,b);
  }
  上面程序的输出结果是________。
  A)5,7,9,5,7     B)5,7,5,7 
   C)5,7,不定,7,9    D)5,7,5,7,不定
  答案:D
  评析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。
  
(30)请读程序:
  #incIude<stdio.h>
  func(int a,int b){
  Int C;
  c=a+b:
  return C:
  }
  main(){
  int x=6,y=7,z=8,r;
  r=func((x--,y++,x+y),z--);
  printf(\"%d\n\",r);
  }
  上面程序的输出结果是________。
  A)ll          B)20 
   C)2l          D)31
  答案:C
  评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x--,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x--,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。
  
(31)请读程序:
  #include<stdiO.h>
  main()
  {
  int a,b;
  for(a=l,b=1;a<=100;a十+){
  if(b>=20)break;
  if(b%3==1){b+=3;continue;}
  b-=5:
  }
  printf(\"%d\n\",a);
  }
  上面程序的输出结果是_________。
  A)7           B)8 
   C)9           D)10
  答案:B
  评析:break语句的作用是用于跳出循环体; continue语句的作用是用于跳出本次循环。执行第一次循环时,(b%3==1)为真,b=4,继续下一次循环,如此反复,当b=22时结束循环,共循环8次,即a=8。
  
(32)设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是__________。
  A)X=X*100+0.5/100.0    
    B)x=(X*100+0.5)/100
  C)x=(int)(x*100+0.5)/100.0 
    D)x=(x/100+0.5)*100.0
  答案:C
  评析:本题通过算术表达式的运算实现小数位数保留两位并四舍五入的操作,其中(int)(x*100+0.5)是指将(x*100+0.5)的值强制转换成整型。
  
(33)请读程序片段(字符串内没有空格字符):
  printf(\"%d\n\",strlen(\"ATS\n012\1\\\"));
  上面程序片段的输出结果是____________。
  A)ll          B)10 
   C)9           D)8
  答案:C
  评析:这个语句的目的是输出\"ATS\n012\1\\\"这个串的长度,在串中\"\\\"代表一个\"\\",而\"\1\"代表数字1,也占一个字符,\"\n\"是回车换行符,也占一个字符,加上A、T、s、0、l、2,共9个字符。
文章发布:华夏学习网 发布时间:2006-07-07
相关文章
热点文章
推荐文章
版权所有©2004-2008 华夏学习网 edu114.cn. 保留所有权利  ICP许可证编号:京06063949号