首页 > 全部 > 二级C语言 > 国家二级C语言机试(C语言基础知识)模拟试卷23

国家二级C语言机试(C语言基础知识)模拟试卷23

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

国家二级C语言机试(C语言基础知识)模拟试卷23

选择题

1.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(D)

A. x=n%2.5;

B. x+n-i;

C. x=5=4+1;

D. x=y==5;

解析:选项D的含义是把关系表达式y=5的值赋给变量x。所以这是一条正确的赋值语句。因为赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量。因为求余运算符“%”两侧的运算对象都应当是整型数据。

2.若有定义语句:int a=3,b=2,c=1;以下选项中错误的赋值表达式是(B)

A. a=b=c+1;

B. a=(b=4)=3;

C. a=(b=4)+c;

D. a=1+(b=c=4);

解析:本题主要考查赋值表达式,对于赋值表达式来说,赋值号“=”的左边一定为变量名,右边为一个C语言合法的表达式。

3.表达式a+=a-=a=9的值是(B)

A. .9

B. 0

C. 18

D. 9

解析:第一步a=9,然后计算a-a的值,并将此值赋给a,因此此时a=0,最后计算a+a,并将此值赋给a,因此最终结果为0。

4.若有以下程序

#include

main(){int a=一11,b=10;

a/=b/=-4;

printf(\\(B)

A. -1.2

B. 5-2

C. 4-3

D. 5-3

解析:对于语句“a/=b/=4;”相当于“a=a/(b=b/-4);”a初值为-11,b的初值为10,则运算以后10/-4值为-2,-11/-2值为5。

5.以下叙述中正确的是(A)

A. 在赋值表达式中,赋值号的右边可以是变量,也可以是任意表达式

B. a是实型变量,a=10在C语言中是允许的,因此可以说:实型变量中可以存放整型数

C. 若有int a=4,b=9;执行了a=b后,a的值已由原值改变为b的值,b的值变为0

D. 若有int a=4,b=9;执行了a=b;b=a;之后,a的值为9,b的值为4

解析:选项B中a=10,在赋值时会把10自动转换为double类型然后赋值,实型变量中不可能存放整型。而选项C中执行a=b后,b的值不变还是9,选项D中执行“a=b;b=a;”后,a的值为9,b的值也为9。

6.有以下程序,程序运行后的输出结果是

#include

main(){int a=3;printf(\\(D)

A. 9

B. 0

C. 3

D. -12

解析:对于表达式“a+=a-=a*a”相当于“a=a-(a*a)”,然后计算“a=a+a”,a的初值为3,则表达式的值为-12。

7.若有定义和语句:

int a,b;

scanf(\\(C)

A. 3,5

B. 3,5,

C. 3,5

D. 3,5,4

解析:在格式控制字符串中插入其他字符,则在输入的时候应该据实加入到输入流中,不能随意加入空格等,否则无法得到正确的输入结果。

8.有以下程序,程序运行后的输出结果是

main()

{ int m=12,n=34;

printf(“%d%d”,m++,++n);

printf(“%d%d\n”,n++,++m);}(A)

A. 12353514

B. 123535i3

C. 12343514

D. 12343513

解析:本题主要考查自加运算符,自加运算符++在变量前表示先增加然后再使用,++在变量后表示先使用然再增加。本题中,第一个printf语句m++表示先输出m的值,然后m增加1,因此首先输出的是12,然后m的值变成13,++n表示n首先增加1变成35然后输出,因此输出的是35;在第二个printf。语句中,n++是先输出n的值然后增加,即输出35,n的值变为36,++m表示先增加m的值再输出,m的值由13变成14,故最后输出的是14。

9.在16位编译系统上,若有定义“int a[]={10,20,30},*p=a;”,当执行“p++;”后,下列说法错误的是(B)

A. p向高地址移了一个字节

B. p向高地址移了一个存储单元

C. p向高地址移了两个字节

D. p与a+1等价

解析:本题考查数组和数组指针。a是一个整型数组,p指针指向a数组,即p指向a数组的首元素的地址,因此p++之后,p往高地址移动,指向首元素后面一个元素的地址。

10.设有定义: int x=2:以下表达式中,值不为6的是(A)

A. 2*x,x+=2

B. x++,2*x

C. x*=(1+x)

D. x*=x+1

解析:本题考查逗号表达式。逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。选项C中x*=x+1等价于x=x+(x+1),所以等于6:选项D与选项C等价,结果也为6。

11.有以下程序,程序运行后的输出结果是

#include

main(){int x,y,z;x=y=1;

z=x++,y++,++y;

printf(\\(A)

A. 2,3,1

B. 2,3,2

C. 2,3,3

D. 2,2,1

解析:在程序中,整型变量x、y的初值都为1,赋值语句“z=x++,y++,++y”右边的“x++,y++,++y”是一个逗号表达式,所以逗号表达式的值++y的值。执行逗号表达式“x++,y++,++y”后,x的值为2,y的值为3,z取逗号表达式的值,为1。

12.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)

A. ++x,y=x–

B. x+1=y

C. x=x+10=x+y

D. double(x)/10

解析:用逗号将表达式连接起来的式子称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值。所以选项A为C语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常量或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。

13.设有定义: int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是(A)

A. k++

B. k+=1

C. ++k

D. k+1

解析:因为题中有语句“int k=0;”,所以选项B、C)、D)都是对k的值加1,选项A的语句k++表示先利用k的值进行运算,然后k值才加1。

14.若有以下程序,则程序的输出结果是

#inelude

main(){int a=0,b=0,c=0;

c=(a-=++a),(a+=b,b+=4);

printf(\\(C)

A. 0,4,4

B. 1,4,1

C. 0,4,0

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号