首页 > 全部 > 二级C语言 > 国家二级(C语言)机试模拟试卷129

国家二级(C语言)机试模拟试卷129

本单篇文档共16543字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 模拟试卷 2681人下载
价格: 0.80 原价:¥9.00
收藏

国家二级(C语言)机试模拟试卷129

选择题

1.以下关于C语言数值常量的选项中,合法的是( )。(A)

A. 12.0Xa23 4.5e0

B. 028.5e一3一0xf

C. .177 4e1.5 0abc

D. 0x8A 10,000 3.e5

解析:C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是0x;但八进制不能有8或9,所以选项B错,C选项中2e1.2中e后面的指数不是整数,D选项中3.e5小数点后面缺少数字,另外。也不用用逗号作为千分位分隔符。

2.若有定义:double d=68;int i=0,k=21;,则以下选项中不符合C语言规定的赋值语句是( )。(B)

A. i一(d+k)<=(i+k);

B. i=d%3;

C. d=(d++,i++);

D. i=(int)!d;

解析:只有整数才能求余,d是双精度型,所以不能求余,选项B不符合C语言赋值规定。选项A和D将进行强制数据转换,选项C为变量自加,逗号运算符和赋值运算符连用,都符合C语言规范。

3.若有代数式(A)

A. sqrt(fabs(pow(n,x)+exp(x)))

B. sqrt(fabs(pow(n,x)+pow(x,e)))

C. sqrt(abs(nx+ex))

D. sqrt(fabs(pow(x,n)+exp(x)))

解析:B选项中函数pow(x,e)错误应该直接使用exp(x)函数。C选项中函数abs(nx+ex)错误,应该使用fabs()返回浮点数的绝对值。D选项中pow(x,n)参数顺序错误。

4.有关C语言标识符,以下选项中不合法的是( )。(A)

A. &a

B. FOR

C. print

D. _00

解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的“FOR”可以作为标识符来用。A)选项中含有非法字符&,所以选择A。

5.有以下序:

#include

void main()

{int num1,num2;

int i=10;

double d=12.34:

nunl=sizeof(i);num2=sizeof(d);

pfintf(’’%d,%d\n’’,s1,s2);

}

在VC 6.0平台上编译运行,程序运行后的输出结果是( )。(C)

A. 16,4

B. 2,8

C. 4,8

D. 1,4

解析:sizeof()函数用来获取数据类型的存储空间大小(字节数),整型和双精度型在C语言中分别占用4个字节和8个字节,所以选项C正确。

6.有以下程序:

#nclude

void main()

{char a,b,c,d;

scanf(’’%c%c’’,&a,&b);

c=getchar();d=getchar();

pfintf(’’%c%c%c%c\n’’,a,b,c,d);

}

运行程序后输入数据(代表回车符)

34

56

则输出结果是( )。(D)

A. 34

B. 3456

C. 34

D. 34

解析:用格式符%c输入字符时,回车符是分隔符,不能被输入,但getchar()可以接收包括回车符在内的字符,所以程序运行时输入的第一个回车符将被字符变量c接收,字符变量d接收输入的字符’5’,所以输出的结果是3,4,回车,5,选项D正确。

7.有以下程序:

#nelude

main()

{int a=0,b=0,C=0,d=0;

if(a=1)b=1;c=2;

else d=3;

pfintf(’’%d,%d,%d,%d\n’’,a,b,c,d);

}

程序运行后的输出结果是( )。(C)

A. 1,1,2,0

B. 0,0,0,3

C. 编译有错

D. 0,1,2,0

解析:if语句只执行后面的一个语句或一个用大括号包括的程序段。本题中if语句中的条件若为真,则只执行b=1;这一条语句,后面的c=2是一个和if分支结构无关的语句,因此,再后面的else语句便成为一个独立的语句,因为前面没有if分支与其对应,因此会在编译过程中出错。如果改成if(a=1){b=1;c=2}elsed=3:则编译正确。

8.有以下程序:

#include

main()

{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);

}

程序运行后的输出结果是( )。(B)

A. a=2,b=2

B. a=2,b=1

C. a=1,b=1

D. a=1,b=0

解析:case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不再进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case 2语句的a++;b++;a为2,b为1。所以结果为B。

9.以下程序段中的变量已正确定义:

for(i=0;i<4;i++,i++)

for(k=l;k<3;k++);printf(’’*’’);

程序段的输出结果是( )。(C)

A. **

B. ****

C. *

D. ********

解析:由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*’,选择C。

10.有以下程序段:

#nclude

int i,n;

for(i=0;i<8;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);

}

pfintf(’’%d\n’’,n);

}

以下关于程序段执行情况的叙述,正确

本文档预览:3600字符,共16543字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C语言)机试模拟试卷129

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号