20009月全国计算机等级考试二级C笔试试题详解.docVIP

20009月全国计算机等级考试二级C笔试试题详解.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2000年9月全国计算机等级考试二级C笔试试题详解 一、选择题 (16)若变量已正确定义并赋值,以下符合C语言语法的表达式是   A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b   希希讲解(16):用排除法。A)中包含一个不合法的运算符“:=”,错;C)明显错;D)可分解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C规定:赋值号的左面只能是单个变量,不能是表达式或常量等。因此,正确答案是B),它实际上相当于:a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。 (17)C语言中运算对象必须是整型的运算符是   A) %= B) / C) = D) =   希希讲解(17):前几年曾经考过类似的题目,很简单,正确答案是A)。C规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。 (18)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是   A) 1  B)2  C)2.0  D)2.5   希希讲解(18):该题的解答请参阅本站的“整数除法的注意事项”和“逗号表达式”两个主题讲座,那里有详细的分析。正确答案是C)。 (19)若变量a,i已正确定义,且i已正确赋值,合法的语句是   A) a==1  B)++i; C)a=a++=5;  D)a=int(i);   希希讲解(19):(A)中是一个表达式,因为缺少分号,所以不是语句;(C)的错误同(16)题(D)的错误一样;(D)若改为a=(int)i;则是合法的语句,小括号写错了位置,从另一个角度理解,(D)的写法应该是一个函数调用语句,函数名是int,小括号中的i是实参,这样的话,函数名int又是不合法的,因为C规定:用户标识符(包括函数名)不能是关键字,而int是一个关键字。所以,正确答案是(B),它相当于语句i=i+1; (20)若有以下程序段   int c1=1,c2=2,c3;   c3=1.0/c2*c1;   则执行后c3中的值是   A)0  B)0.5  C)1  D)2   希希讲解(20):因为运算表达式中有一个浮点型数据1.0,所以,运算结果应该也是一个浮点类型,只有(B)符合这一条件,仅根据这一点就可以确定(B)是正确答案。该语句的执行过程(1)先将c2的值2转换为2.0;(2)计算1.0/2.0,得到中间结果0.5;(3)将c1的值1转换为1.0;(4)计算0.5*1.0,得到结果0.5;(5)将0.5赋值给变量c3。 (21)有如下程序   main()   {    int y=3,x=3,z=1;    printf(%d %d\n,(++x,y++),z+2);   }   运行该程序的输出结果是   A)3 4 B)4 2 C)4 3 D)3 3   希希讲解(21):printf函数输出两个表达式的值,第一个是(++x,y++),它是逗号表达式,它的值应该就是y++的值3(关于逗号表达式,请参阅本站“二级C常考题型”中的一个专题的内容);第二个表达式是z+2,它的值为3。所以,正确答案是(D)。 (22)能正确表达逻辑关系a≥10或a≤0的C语言表达式是   A)a=10ora=0  B)a=0|a=10   C)a=10a=0  D)a=10||a=0   希希讲解(22):题目要求很明确,两个关系式a≥10和a≤0之间是“或”的关系,C语言中,逻辑“或”用运算符“||”,四个选项中只有(D)满足这一条件,它就是正确答案。 (23)有如下程序   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   希希讲解(23):该题目的关键是要搞清楚该程序执行了哪几条语句。由于x的值等于1,所以switch结构中,程序从case 1后面的语句开始执行,又因为case 1后面的语句没有以break结束,所以程序要继续往下执行case 2后面的语句。所以,该程序共执行了这三条语句:a++;a++;b++;因此,变量a和b最后的值应该为2和1,正确答案为(A)。 (24)有如下程序   main()   {    float x=2.0,y;    if(x0.0) y=0.0;    else if(x10.0) y=1.0/x;    else y=1.0;    prin

文档评论(0)

kjm3232 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档