欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言笔试选择题-4及答案解析.doc

    • 资源ID:1326432       资源大小:80.50KB        全文页数:26页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言笔试选择题-4及答案解析.doc

    1、二级 C 语言笔试选择题-4 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是_。A+x,y=x- Bx+1=y Cx=x+10=x+y Ddouble(x)/10(分数:2.50)A.B.C.D.2.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。Ax=y=5; Bx=n%2.5; Cx+n=i; Dx=5=4+1;(分数:2.50)A.B.C.D.3.若变量已正确定义为 int 型,要通过语句scanf(“%d,%d,%d“,a,b,c);给 a 赋值 1、

    2、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(注:代表一个空格符)_。A123回车 B1,2,3回车C1,2,3回车 D1,2,3回车(分数:2.50)A.B.C.D.4.设变量均已正确定义,若要通过scanf(“%d%c%d%c“,a1,c1,a2,c2);语句为变量 a1 和 a2 赋数值 10 和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示的输入形式中正确的是(注:代表空格字符)_。A10X回车20Y回车B10X20Y回车C10X回车20Y回车D10X20Y回车(分数:2.50)A.B.C.D.5.有如下程序段:int x=12;double y=3.141

    3、593;printf(“%d%8.6f“,x,y);其输出结果是_。A123.141593 B123.141593 C12,3.141593 D123.1415930(分数:2.50)A.B.C.D.6.若有定义:int a,b;通过语句scanf(“%d;%d“,a,b);能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。A3;5 B3,5 C3 5 D35(分数:2.50)A.B.C.D.7.若有定义int a;float b;double c;程序运行时输入:3 4 5回车能把值 3 输入给变量 a、4 输入给变量 b、5 输入给变量 a 的语句是_。Ascanf(“%d%f

    4、%lf“,a,b,c); Bscanf(“%d%lf%lf“,a,b,c);Cscanf(“%d%f%f“,a,b,c); Dscanf(“%lf%lf%If“,a,b,c);(分数:2.50)A.B.C.D.8.以下叙述中正确的是_。A赋值语句是一种执行语句,必须放在函数的可执行部分Bscanf 和 printf 是 C 语言提供的输入和输出语句C由 printf 输出的数据都隐含左对齐D由 printf 输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的(分数:2.50)A.B.C.D.9.以下叙述中正确的是_。A在 scanf 函数的格式串中,必须有与输入项一一对应的格式转

    5、换说明符B只能在 printf 函数中指定输入数据的宽度,而不能在 scanf 函数中指定输入数据占的宽度Cscanf 函数中的字符串是提示程序员的,输入数据时不必管它D复合语句也被称为语句块,它至少要包含两条语句(分数:2.50)A.B.C.D.10.有以下程序#includestdio.hmain()int a=2,c=5;printf(“a=%d,b=%d/n“,a,c);程序的输出结果是_。Aa=%d,b=%d Ba=%2,b=%5 Ca=2,b=5 Da=%d,b=%d(分数:2.50)A.B.C.D.11.有以下程序#includestdio.hmain()int a1,a2;ch

    6、ar c1,c2;scanf(“%d%c%d%c“,a1,c1,a2,c2);printf(“%d,%c,%d,%c“,a1,c1,a2,c2);若想通过键盘输入,使得 a1 的值为 12,a2 的值为 34,c1 的值为字符 a,c2 的值为字符 b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,CR代表回车)_。A12a34bCR B12a34bCRC12,a,34,bCR D12a34bCR(分数:2.50)A.B.C.D.12.有以下程序段#includestdio.hint a,b,c;a=10;b=50;c=30;if(ab)a=b,b=c;c=a;prin

    7、tf(“a=%d b=%d c=%d/n“,a,b,c);程序的输出结果是_。Aa=10 b=50 c=10 Ba=10 b=50 c=30 Ca=10 b=30 c=10 Da=50 b=30 c=50(分数:2.50)A.B.C.D.13.有以下程序#includestdio.hmain()char a,b,c,d;scanf(“%c%c“,a,b);c=getchar();d=getchar();printf(“%c%c%c%c/n“,a,b,c,d)当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符)12CR34CR则输出结果是_。A123B12C

    8、1234D1234(分数:2.50)A.B.C.D.14.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。Aab+c Bch=getchar() Ca=b+c Da+(分数:2.50)A.B.C.D.15.以下叙述中正确的是_。A关系运算符两边的运算对象可以是 C 语言中任意合法的表达式B在 C 语言中,逻辑真值和假值分别对应 1 和 0C对于浮点变量 x 和 y,表达式:x=y 是非法的,会出编译错误D分支结构是根据算术表达式的结果来判断流程走向的(分数:2.50)A.B.C.D.16.设有定义:int a=1,b=2,c=3;以下语句中执行效

    9、果与其它三个不同的是_。Aif(ab)c=a;a=b;b=c; Bif(ab)c=a,a=b,b=c;Cif(ab)c=a,a=b,b=c; Dif(ab)c=a;a=b;b;c;(分数:2.50)A.B.C.D.17.if 语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。A可以是任意合法的数值 B必须是整数值C必须是正数 D必须是逻辑值(分数:2.50)A.B.C.D.18.若有以下程序#includestdio.hmain()int a=1,b=2,c=3,d=4;if(a=2)|(b=1)c=2;if(c=3)(d=-1)a=5;printf(“%d,%d,

    10、%d,%d/n“,a,b,c,d);则程序的输出结果是_。A2,2,2,4 B2,1,2,-1 C5,1,2,-1 D1,2,3,4(分数:2.50)A.B.C.D.19.若有以下程序#includestdio.hmain()int a=1,b=2,c=3,d=4;if(a=2)(b=1)c=2;if(c=3)|(d=-1)a=5;printf(“%d,%d,%d,%d/n“,a,b,c,d);则程序的输出结果是_。A5,1,2,-1 B2,1,2,-1 C2,2,2,4 D1,2,3,4(分数:2.50)A.B.C.D.20.有以下程序#includestdio.hmain()int a=0

    11、,b=0,c=0,d=0;if(a=1)b=1;c=2;else d=3;printf(“%d,%d,%d,%d/n“,a,b,c,d);程序输出_。A编译有错 B0,0,0,3 C1,1,2,0 D0,1,2,0(分数:2.50)A.B.C.D.21.有以下计算公式:(分数:2.50)A.B.C.D.22.下列条件语句中,输出结果与其他语句不同的是_。Aif(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);Bif(a=0)printf(“%d/n“,y); else printf(“%d/n“,x);Cif(a!=0)printf(“%d/n“,x);

    12、 else printf(“%d/n“,y);Dif(a)printf(“%d/n“,x); else printf(“%d/n“,y);(分数:2.50)A.B.C.D.23.有以下程序#includestdio.hmain()int x=1,y=0;if(!x)y+;else if(x=0)if(x)y+=2;else y+=3;printf(“%d/n“,y);程序运行后的输出结果是_。A0 B2 C1 D3(分数:2.50)A.B.C.D.24.有以下程序#includestdio.hmain()int x:scanf(“%d“,x);if(x=3);elseif(x!=10)prin

    13、tf(“%d/n“,x);程序运行时,输入的值在哪个范围才会有输出结果?_。A大于 3 且不等 10 的整数 B不等于 10 的整数C大于 3 或等于 10 的整数 D小于 3 的整数(分数:2.50)A.B.C.D.25.有如下嵌套的 if 语句if(ab)if(ac)k=a;else k=c;elseif(bc)k=b;else k=c;以下选项中与上述 if 语句等价的语句是_。Ak=(ab)?(ac)?a:c):(bc)?h:c); Bk=(ab)?(bc)?a:b):(hc)?b:c);Ck=(ab)?a:b;k=(bc)?b:c; Dk=(ab)?a:h:k=(ac)?a:c;(分

    14、数:2.50)A.B.C.D.26.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是_。A(x-y0|x-y0) B(x-y0) C(x-y0) D(x-y=0)(分数:2.50)A.B.C.D.27.以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是_。Aif(ab)(hc)k=1;else k=0;Bif(ab)|(bc)k=1;else k=0;Cif(a=b)k=0;else if(b=c)k=1;Dif(ab)k=1;else if(bc)k=1;else k=0;(分数:2.50)A.B

    15、.C.D.28.有以下程序#includestdio.hmain()int x;for(x=3;x6;x+)printf(x%2)?(“*%d“):(“#%d“),x);printf(“/n“);程序的输出结果是_。A*3#4*5 B#3*4#5 C*3*4#5 D*3#4#5(分数:2.50)A.B.C.D.29.有以下程序#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1;switch(y)case 0:a+:break;case 1:b+;break;case 2:a+:b+:break;case 3:a+:b+:printf

    16、(“a=%d,b=%d/n“,a,b);程序的运行结果是_。Aa=2,b=1 Ba=2,b=2 Ca=1,b=1 Da=1,b=0(分数:2.50)A.B.C.D.30.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。Aswitch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);Bswitch(int)x);case 1: printf(“*/n“);case 2: printf(“*/n“);Cswitch(x)case 1.0:printf(“*/n“);case 2.0:printf(“

    17、*/n);Dswitch(a+b)case 1: printf(“*/n“);case c: printf(“*/n“);(分数:2.50)A.B.C.D.31.有以下程序#includestdio.hmain()int s;scanf(“%d“,s);while(s0)switch(s)case 1:pfinttf(“%d“,s+5);case 2:prinft(“%d“,s+4);break;case 3:prinft(“%d“,s+3);default: printf(“%d“,s+1);break;scanf(“%d“,s);运行时,若输入 1 2 3 4 5 0回车,则输出结果是_。

    18、A6566456 B66656 C66666 D6666656(分数:2.50)A.B.C.D.32.有以下程序段int i,n;for(i=0;i8;i+)n=rand()%5;switch(n)case 1:case 3:printf(“%d/n“,n);break;case 2:case 4:printf(“%d/n“,n);continue;case 0:exit(0);printf(“%d/n“,n);以下关于程序段执行情况的叙述,正确的是_。A当产生的随机数 n 为 0 时结束程序运行B当产生的随机数 n 为 4 时结束循环操作C当产生的随机数 n 为 1 和 2 时不做任何操作D

    19、for 循环语句固定执行 8 次(分数:2.50)A.B.C.D.33.若有以下程序#includestdio.hmain()int s=0,n;for(n=0;n4;n+)switch(n)default:s+=4;case 1:s+=1;break;case 2:s+=2;break;case 3:s+=3;printf(“%d/n“,s);则程序的输出结果是_。A11 B10 C13 D15(分数:2.50)A.B.C.D.34.有以下程序#includestdio.hmain()int a=2,3,5,4,i;for(i=0;i4;i+)switch(i%2)case 0:switeh

    20、(ai%2)case 0:ai+;break;case 1:ai-;break;case 1:ai=0;for(i=0;i4;i+)printf(“%d“,ai);printf(“/n“);程序运行后的输出结果是_。A3040 B2050 C3344 D0304(分数:2.50)A.B.C.D.35.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。A(E=0) B(E0|E0) C(!E=0) D(E!=0)(分数:2.50)A.B.C.D.36.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。Awhile(c

    21、h=getchar()!=N)printf(“%c“,ch);Bwhile(ch=getchar()=N)printf(“%c“,ch);Cwhile(ch=getchar()=N)pfintf(“%c“,ch);Dwhile(ch=getchar()=N)printf(“%c“,ch);(分数:2.50)A.B.C.D.37.对于 while(!E)s;,若要执行循环体 s,则 E 的取值应为_。AE 等于 0 BE 不等于 0 CE 不等于 1 DE 等于 1(分数:2.50)A.B.C.D.38.关于“while(条件表达式)循环体”,以下叙述正确的是_。A条件表达式的执行次数总是比循环

    22、体的执行次数多一次B循环体的执行次数总是比条件表达式的执行次数多一次C条件表达式的执行次数与循环体的执行次数一样D条件表达式的执行次数与循环体的执行次数无关(分数:2.50)A.B.C.D.39.以下不构成无限循环的语句或语句组是_。An=0;do+n;while(n=0);Bn=0;while(1)n+;Cn=10;while(n);n-;Dfor(n=0,i=1;i+)n+=i;(分数:2.50)A.B.C.D.40.有以下程序#includestdio.hmain()int k=5;while(-k)printf(“%d“,k-=3);printf(“/n“);执行后的输出结果是_。A1

    23、 B2 C4 D死循环(分数:2.50)A.B.C.D.二级 C 语言笔试选择题-4 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是_。A+x,y=x- Bx+1=y Cx=x+10=x+y Ddouble(x)/10(分数:2.50)A. B.C.D.解析:解析 x+1 和 x+10 不能做左值,B 和 C 错误;类型转换需要用括号括起类型名,所以 D 错误。2.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。Ax=y=5; Bx=n%2.5; Cx+n=i;

    24、 Dx=5=4+1;(分数:2.50)A. B.C.D.解析:解析 %取余操作数只能是整数,x+n 和数值 5 不能作为赋值的左值,所以 B、C、D 错误。3.若变量已正确定义为 int 型,要通过语句scanf(“%d,%d,%d“,a,b,c);给 a 赋值 1、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(注:代表一个空格符)_。A123回车 B1,2,3回车C1,2,3回车 D1,2,3回车(分数:2.50)A. B.C.D.解析:解析 本题考查的是格式化输入函数 scanf( )基本用法。使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入

    25、。选项 A 中没有输入非格式符“,”,所以是不正确的。4.设变量均已正确定义,若要通过scanf(“%d%c%d%c“,a1,c1,a2,c2);语句为变量 a1 和 a2 赋数值 10 和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示的输入形式中正确的是(注:代表空格字符)_。A10X回车20Y回车B10X20Y回车C10X回车20Y回车D10X20Y回车(分数:2.50)A. B.C.D.解析:解析 考查的知识点是:数据输入。scanf 函数是 C 语言提供的标准输入函数,作用是在终端设备(或系统隐含指定的输入设备)上输入数据。scanf( )函数的一般形式为:scanf(格

    26、式控制,输入项表);本题中的格式控制字符串是“%d%c%d%c”,其中%d 表示要输入的是整数;%c 则表示输入的是字符,且各控制符之间无任何分隔字符,故要求输入的数据之间也不能分开(若要求连续输入的都是数据类型,则必须以空格等空白字符分隔每个数据,因为系统不知道应该如何去分隔这一系列数据)。而选项 B、C、D 在10 和 X 之间均插入空格,所以不正确。5.有如下程序段:int x=12;double y=3.141593;printf(“%d%8.6f“,x,y);其输出结果是_。A123.141593 B123.141593 C12,3.141593 D123.1415930(分数:2.

    27、50)A. B.C.D.解析:解析 x 和 y 之间没有间隔符,%8.6f 表示占据 8 个字符,小数点后有 6 位,所以答案为 A。6.若有定义:int a,b;通过语句scanf(“%d;%d“,a,b);能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。A3;5 B3,5 C3 5 D35(分数:2.50)A. B.C.D.解析:解析 scanf 中格式控制符里必须原样输入,所以分号也必须输入,A 正确。7.若有定义int a;float b;double c;程序运行时输入:3 4 5回车能把值 3 输入给变量 a、4 输入给变量 b、5 输入给变量 a 的语句是_。Asc

    28、anf(“%d%f%lf“,a,b,c); Bscanf(“%d%lf%lf“,a,b,c);Cscanf(“%d%f%f“,a,b,c); Dscanf(“%lf%lf%If“,a,b,c);(分数:2.50)A. B.C.D.解析:解析 int,float,double 对应的格式控制符分别为%d,%f,%lf,所以答案选择 A。8.以下叙述中正确的是_。A赋值语句是一种执行语句,必须放在函数的可执行部分Bscanf 和 printf 是 C 语言提供的输入和输出语句C由 printf 输出的数据都隐含左对齐D由 printf 输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定

    29、的(分数:2.50)A. B.C.D.解析:解析 scanf 和 printf 是输入输出函数,不是语句,B 错误。printf 输出如果有宽度控制,默认是右对齐,C 错误。数据的实际精度是由数据存储类型决定的,double 精度高于 float,D 错误。赋值语句需要放在可执行语句,所以 A 正确。9.以下叙述中正确的是_。A在 scanf 函数的格式串中,必须有与输入项一一对应的格式转换说明符B只能在 printf 函数中指定输入数据的宽度,而不能在 scanf 函数中指定输入数据占的宽度Cscanf 函数中的字符串是提示程序员的,输入数据时不必管它D复合语句也被称为语句块,它至少要包含两

    30、条语句(分数:2.50)A. B.C.D.解析:解析 scanf 函数中可以用%3d 等形式指定输入数据占的宽度,scanf 函数中的字符串必须原样输入才可以正确赋值,复合语句是用大括号包含在一起的语句,可以只有一条语句,综合以上,答案选择A。10.有以下程序#includestdio.hmain()int a=2,c=5;printf(“a=%d,b=%d/n“,a,c);程序的输出结果是_。Aa=%d,b=%d Ba=%2,b=%5 Ca=2,b=5 Da=%d,b=%d(分数:2.50)A. B.C.D.解析:解析 格式化输出函数两个%会输出一个%,同时即失去了占位符的作用,d 也会原样

    31、输出,所以答案选择 A。11.有以下程序#includestdio.hmain()int a1,a2;char c1,c2;scanf(“%d%c%d%c“,a1,c1,a2,c2);printf(“%d,%c,%d,%c“,a1,c1,a2,c2);若想通过键盘输入,使得 a1 的值为 12,a2 的值为 34,c1 的值为字符 a,c2 的值为字符 b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,CR代表回车)_。A12a34bCR B12a34bCRC12,a,34,bCR D12a34bCR(分数:2.50)A. B.C.D.解析:解析 在输入多个数据时,如果

    32、格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。因此应按选项 A 的顺序输入数据。12.有以下程序段#includestdio.hint a,b,c;a=10;b=50;c=30;if(ab)a=b,b=c;c=a;printf(“a=%d b=%d c=%d/n“,a,b,c);程序的输出结果是_。Aa=10 b=50 c=10 Ba=10 b=50 c=30 Ca=10 b=30 c=10 Da=50 b=30 c=50(分数:2.50)A. B.C.D.解析:解析 本题中 ab 的条件不满足,因此不执行逗号表达式“a=b,b=c;”的操作,而是执行“c=a”的操作,即 c

    33、的值为 10。故本题答案为 A。13.有以下程序#includestdio.hmain()char a,b,c,d;scanf(“%c%c“,a,b);c=getchar();d=getchar();printf(“%c%c%c%c/n“,a,b,c,d)当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符)12CR34CR则输出结果是_。A123B12C1234D1234(分数:2.50)A. B.C.D.解析:解析 本题的考查点是 C 语言字符数据的输入和输出。程序定义了四个字符型变量 a、b、c、d,字符型变量只能存放一个字符。getchar()函数的

    34、值就是从输入设备得到的字符,在输入时,空格、回车符将作为字符读入,请注意,getchar()只能接收一个字符。所以变量 a 被赋予 1,变量 b 被赋予 2,变量c 被赋予回车符,变量 d 被赋予 3,所以选项 A 正确。14.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。Aab+c Bch=getchar() Ca=b+c Da+(分数:2.50)A. B.C.D.解析:解析 选项 A 是非法的表达式,C 语言中没有“”运算符。15.以下叙述中正确的是_。A关系运算符两边的运算对象可以是 C 语言中任意合法的表达式B在 C 语言中,逻辑真值和

    35、假值分别对应 1 和 0C对于浮点变量 x 和 y,表达式:x=y 是非法的,会出编译错误D分支结构是根据算术表达式的结果来判断流程走向的(分数:2.50)A. B.C.D.解析:解析 逻辑真值和假值分别对应非零和零;对于浮点变量 x 和 y,表达式“x=y”是合法的;分支结构是根据表达式的真假来判断流程走向的。所以选择 A。16.设有定义:int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是_。Aif(ab)c=a;a=b;b=c; Bif(ab)c=a,a=b,b=c;Cif(ab)c=a,a=b,b=c; Dif(ab)c=a;a=b;b;c;(分数:2.50)A. B.

    36、C.D.解析:解析 选项 B、Dif 语句后都是一条复合语句;选项 Cif 语句后是一条语句,选项 A 之后有 3 条语句,所以答案选择 A。17.if 语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是_。A可以是任意合法的数值 B必须是整数值C必须是正数 D必须是逻辑值(分数:2.50)A. B.C.D.解析:解析 “表达式”的值类型可以是合法的数值,但是都分为两类,0 是假,非 0 是真。18.若有以下程序#includestdio.hmain()int a=1,b=2,c=3,d=4;if(a=2)|(b=1)c=2;if(c=3)(d=-1)a=5;print

    37、f(“%d,%d,%d,%d/n“,a,b,c,d);则程序的输出结果是_。A2,2,2,4 B2,1,2,-1 C5,1,2,-1 D1,2,3,4(分数:2.50)A. B.C.D.解析:解析 执行第一个计语句,a 被赋值为 2,b 被赋值为 1,计表达式为真,故而 c 为 2,执行第二个计语句,判定 c=3 为假,则后面语句 d=-1 便不再执行,最后 a=2,b=1,c=2,d=4,故选 A。19.若有以下程序#includestdio.hmain()int a=1,b=2,c=3,d=4;if(a=2)(b=1)c=2;if(c=3)|(d=-1)a=5;printf(“%d,%d,

    38、%d,%d/n“,a,b,c,d);则程序的输出结果是_。A5,1,2,-1 B2,1,2,-1 C2,2,2,4 D1,2,3,4(分数:2.50)A. B.C.D.解析:解析 执行第一个 if 语句,a 赋值为 2,b 赋值为 1,if 表达式的值为真,故而 c 为 2;执行第 2个 if 语句,c 值不变,d 赋值为 2,再看 if 表达式的条件,“c=3”的值为假(0),“d=-1”的值为真(1),两个结果再进行“|”运算后,结果为真,所以 a 又被赋值为 5。最后 a=5,b=1,c=2,d=-1,故选 A。20.有以下程序#includestdio.hmain()int a=0,b

    39、=0,c=0,d=0;if(a=1)b=1;c=2;else d=3;printf(“%d,%d,%d,%d/n“,a,b,c,d);程序输出_。A编译有错 B0,0,0,3 C1,1,2,0 D0,1,2,0(分数:2.50)A. B.C.D.解析:解析 本题中 if(a=1)b=1;与 else d=3; 之间多了语句 c=2;因此会出现 else 语句的位置错误的编译失败提示。21.有以下计算公式:(分数:2.50)A. B.C.D.解析:解析 应该先判断 x 是正数还是负数,然后再调用 sqrt 函数,A 选项开始没有判断,所以 A 错误。22.下列条件语句中,输出结果与其他语句不同的

    40、是_。Aif(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);Bif(a=0)printf(“%d/n“,y); else printf(“%d/n“,x);Cif(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);Dif(a)printf(“%d/n“,x); else printf(“%d/n“,y);(分数:2.50)A. B.C.D.解析:解析 若 a 为 0,A 选项输出 x,其他输出 y,所以选择 A。23.有以下程序#includestdio.hmain()int x=1,y=0;if(!x)y+;e

    41、lse if(x=0)if(x)y+=2;else y+=3;printf(“%d/n“,y);程序运行后的输出结果是_。A0 B2 C1 D3(分数:2.50)A. B.C.D.解析:解析 (!x)为假,然后判断(x=0),为假,最后就执行输出语句,y 的值仍为初始值,答案选择A。24.有以下程序#includestdio.hmain()int x:scanf(“%d“,x);if(x=3);elseif(x!=10)printf(“%d/n“,x);程序运行时,输入的值在哪个范围才会有输出结果?_。A大于 3 且不等 10 的整数 B不等于 10 的整数C大于 3 或等于 10 的整数 D

    42、小于 3 的整数(分数:2.50)A. B.C.D.解析:解析 大于 3 执行 else 语句,不等于 10,就会输出 x 的值,所以选择 A。25.有如下嵌套的 if 语句if(ab)if(ac)k=a;else k=c;elseif(bc)k=b;else k=c;以下选项中与上述 if 语句等价的语句是_。Ak=(ab)?(ac)?a:c):(bc)?h:c); Bk=(ab)?(bc)?a:b):(hc)?b:c);Ck=(ab)?a:b;k=(bc)?b:c; Dk=(ab)?a:h:k=(ac)?a:c;(分数:2.50)A. B.C.D.解析:解析 if else 语句和?:可以

    43、互换,?前语句相当于 if 后括号内容,?号后语句相当于 if 后的执行语句,冒号后语句相当于 else 后语句,综合以上可以看出 A 符合题意。26.若有定义 int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是_。A(x-y0|x-y0) B(x-y0) C(x-y0) D(x-y=0)(分数:2.50)A. B.C.D.解析:解析 此题中 x,y 相等则为假,否则为真,选项 A 符合此意。27.以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是_。Aif(ab)(hc)k=1;else k=0;Bif(ab

    44、)|(bc)k=1;else k=0;Cif(a=b)k=0;else if(b=c)k=1;Dif(ab)k=1;else if(bc)k=1;else k=0;(分数:2.50)A. B.C.D.解析:解析 k=ab?(bc ? 1 : 0) : 0; ab 并且 bc,k 为 1,其他情况 k 为 0,答案 A。28.有以下程序#includestdio.hmain()int x;for(x=3;x6;x+)printf(x%2)?(“*%d“):(“#%d“),x);printf(“/n“);程序的输出结果是_。A*3#4*5 B#3*4#5 C*3*4#5 D*3#4#5(分数:2.

    45、50)A. B.C.D.解析:解析 本题中,printf 语句中,条件表达式的功能是对循环变量 x 进行判断,若 x 为奇数,输出数据前加*,否则数据前加#,所以选择 A。29.有以下程序#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1;switch(y)case 0:a+:break;case 1:b+;break;case 2:a+:b+:break;case 3:a+:b+:printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。Aa=2,b=1 Ba=2,b=2 Ca=1,b=1 Da=1,b=0(分数:2

    46、.50)A. B.C.D.解析:解析 本题考查 switch 语句的使用。switch 语句的执行过程为:进入 switch 结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的 case,以此作为入口,执行 switch 结构中后面的各语句,直到遇到 break 语句,则跳出 switch 语句,如果各 case 都不匹配时,则执行 default 后面的语句。30.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。Aswitch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);Bswitch(int)x);case 1: p


    注意事项

    本文(【计算机类职业资格】二级C语言笔试选择题-4及答案解析.doc)为本站会员(fatcommittee260)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开