新视野C语言答案,校园网新视野C语言笔试习题集答案及解析——第二章.doc

校园网.新视野教育全国计算机等级考试二级C语言笔试习题集答案及解析

第二章 顺序结构

一 选择题

1, 答案是 C

随意使用空语句会导致逻辑上出现错误,不要随便使用。

2, 答案是 B

语句必须以分号结尾,A,C,D表达式后面均没有分号。

3, 答案是 C

int x=13,y=4;说明x,y均为整型,所以x/y只取整数部分(舍去法),值为3,把3赋值给x,整个x=x/y表达式的值为左边变量x的值,所以输出为3。

4, 答案是 A

a,b均为整型,a/b是取ab所得商的整数部分,所以是0,再把0赋值给 c,所以是c的值是0。

5, 答案是 D

A 注释语句可以放在代码的任何位置

B 将r定义为整型不会在编译时出错,会自动进行类型转换

C 变量s为浮点型,格式描述符%f时正确的

D π是非法的变量

6, 答案是 D

(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是y=2003,所以整个表达式的值是2003,因此输出值为2003。

7, 答案是 A

m是十进制整数以十进制有符号的形式输出,即照原样输32767,n=032767,032767是八进制的整数以八进制无符号形式输出,去掉前面的0。见教材P34

8, 答案是 C

m,n的值都是十六进制数0xabc,m-=n即是m=m-n, 把m-n的值赋给m,

即把0赋给m,再把m值以十六进制无符号的形式输出,输出的十六进制

数不用在前面0x或者0X。见教材P35

9, 答案是 B

表达式i--的值是在变量自减之前的值,i的初值为10,所以该表达式的值也为10;表达式j++的值是变量自加之后的值,j初值为1,所以该表达

式在值是2。

10, 答案是 C

m=0256,即m是八进制的数0256,要以八进制无符号的形式输出,即输出

256;n=256,即n是十进制的数256,也要以八进制无符号的形式输出,首

先要把十进制数转化为八进制数,256转化为八进制为0400,以无符号形

式输出,即输出400。

11, 答案是 B

在printf语句中,格式控制的个数只有一个,即%d,而输出项有两项,即a和b。而得到的结果应该只有一个,所以应该输出第一个变量的值,即变量a的值。

12, 答案是 C

第一个数据的输出控制宽度是2位,但是x的值是102,占3位,要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输出102。第二个数据要求以十进制形式输出,输出控制宽度是2,y的值为012,是八进制数,所以要转换成十进制数10后再输出。

13, 答案是 B

表达式a=f/=c*=(x=6.5),按从右到左结合,先把6.5赋值给x,再执行c=c*6.5,c的值变为65,再执行f=f/65,为浮点数的除法,f的值为1.53……,再把f的值赋给a,a为整型数据,执行强制类型转换,a的值为1。a对应的输出格式为%d,即输出1;c对应的输出格式为%d,输出65,f对应的输出格式%3.1f,即输出控制宽度为3位,保留小数点后一位小数,即输出1.5,x对应的输出格式也为%3.1f,输出6.5。

14, 答案是 D

float x=-123.456;说明x为单精度浮点数据,单精度浮点数据对应的输出格式应该为%f。

15, 答案是 C

m=(k+=i*=k);按从右到左结合,先执行i=i*k;即i被赋值为4,再执行k=k+4;k被赋值为6,最后把6赋给m,输出m和i的值。

16, 答案是 C

略(参考12题)

17, 答案是 D

-m++遵循从右向左结合的原则;m++的值为m自增之前的值,所以执行完x=-m++以后,x被赋值为-3;表达式x=x+8/++n中有加号除号,先算8/++n,++n的值为自增之后的值为5,8/5取整为1,即x=x+8/++n转化为x=x+1,即把x+1的值赋给x,x的值变为-2。

18, 答案是 D

A 输入函数应为scanf();

B,C 输入数据列表必须是地址表达式;

19, 答案是 A

从键盘输入数据的格式必须与输入控制要求的格式一样

B答案三个之间不要有空格;C答案用逗号分开是多余的;D答案格式不匹配。

20, 答案是 A

格式控制要求输入的两个数据之间要用逗号隔开,A没有逗号所以错误,D两个输入数之间的回车换行可以忽略。

21, 答案是 C

x乘以100是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x乘上100后的数实现了小数位到整数位的四舍五入。最后再除以100.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。

22, 答案是 C

从键盘输入数据的格式必须与输入控制要求的格式一样。

23, 答案是 B

输入控制中第一个数要求以“%2d”形式输入,即要求输入一个两位的数,而从键盘输入的数为876,所以从左到右取两位数字87,即把87赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值为6.000000,后面输入的543则没有赋值给变量。

24, 答案是 D

“%%”会输出一个“%”,“d”会照原样输出,因为没有格式说明,m,n无法输出到屏幕。

25, 答案是 D

第1个输出语句要求ch以%c(字符)形式输出所以为输出“a”,以%d(整数)形式输出为,字符转换为整型要使用ASCII码所以为“97”,k没有对应的输出符所以没有输出,第2个输出语句要求以整型方式输出k得到“12”。结果为“a,97,k=12”

26, 答案是 B

a+b的结果为30,按照“a+b=%d\n”的输出格式得到输出结果“a+b=30”B

27, 答案是 B

printf可以没有输出项,没有输出项的printf只是没有输出内容;整数不能以十二进制输出,getchar()只能读入字符。

28, 答案是 A

getchar()可以读入空格符合回车符。

二 填空题

1, 一条语句 分号

2, 88

首先将八进制数0210转化为十六进制的数0X88,输出格式说明要以十六进制无符号的形式输出,所以省略0X,直接输出88。

3, 11

把十进制数转化为八进制数,以无符号的形式输出

4, 25 21 37

b为八进制数025,c为十六进制数0X25,首先把b、c都转化为十进制的整数,分别为21、37,按照输出格式要求a、b、c以十进制整数形式输出,中间以空格分开,所以输出为25 21 37。

5, n1=%d\nn2=%d

除了n1,n2的值之外,还必须加入“n1=”“n2=”照原样输出的字符,很明显在两个数据之间还加了换行符。

6, i=10,j=20

格式控制中加入了格式说明以外的其他字符,则在输入数据时这些字符也要同样输入。输入格式控制为i=%d,j=%d,所以则应该从键盘输入i=10,j=20

7, 261

a为十进制数177转化为八进制的数为0261,以无符号的形式输出为261

8, 16

a的初值为0,在表达式a+=(a=8)中,a首先被赋值为8,再执行操作a=a+a,所以a最后被赋值为16,即输出a的值为16

9, printf(“a=%d,b=%d”, a, b);

10, B 66

B在ASCII码中派在A的后面A为65,那么B为66。

11, 10

012为八进制数,转换为十进制为10。

12, 12 34

在scanf函数中指定了宽度为2,输入123456,a=12,b=34,后面的567无效。

13, 12

程序运行时输入12,getchar()函数只能接受单个字符,所以ch1=’1’,ch2=’2’。

n1=ch1-‘0,转化为ASCII码计算n1=50-49,n1的值为1。n2=n1*10+(ch2-‘0’)转化为ASCII码计算n2 = 1*10+(51-49),n2的值为12。

5

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值