2011年计算机等级二级C语言课后练习题及答案解析(3)(2)

2018-11-27 16:04

printf(\; A) 65535 B) 1 C) 有错误 D) -1

分析:题中将x定义成无符号整数,并且已初始化为:1111111111111111,若按%d格式输出,则最高位的1被当成了符号,1111111111111111成了负数

的补码,输出结果为-1。 本题正确答案为D。

二、填空题

1.下面程序段的功能是输出大写字母对应的小写

字母的ASCII码,请填空。

char ch; scanf(\

ch=(ch>=′A′&&ch<=′Z′)?(【1】):ch

printf(\【2】\\\\n\

分析:题目中条件运算为判断输入字母是否为大写,当ch>=′A′&&ch<=′Z′为真时,将其转换成对应的小写字母,需ASCII码值加上32,已知题意是将大写字母对应的小写字母ASCII值输出,所以printf语句

中的输出格式应为十进制格式。

本题正确答案为【1】 ch+32, 【2】 %d。 2.下面程序段的执行结果是x=【3】,y=【4】。

inta=3,b=5,x,y;

x=a+1,b+6; y=(a+1,b+6); printf(\

分析:此题考查逗号表达式的概念,因逗号运算符的优先级比赋值号还低,所以执行x=a+1,b+6时,x

得到的是a+1的值。

本题正确答案为【3】 4,【4】 11。 3.下面程序执行后k的值为【5】。

int a=1,b=2,c=3,d=4,k; k=a>b?a:c>d?c:d

分析:因题中a>b的值为假,故求解表达式k=a>b?a:c>d?c:d相当于求k=a>b?a:(c>d?c:d)。

本题正确答案为【5】 4。

4.已知:int a=5;则执行a+=a-=a*a;语句后,a的值

为【6】。

分析:a+=a-=a*a的运算顺序是从右向左,相当于求a+=(a-=a*a),其中小括号内的运算得a=5-5*5即a=-20,下一步再求a+=a,即a=a+a,将-20代入得a=-40。

本题正确答案为【6】 -40。

5.下面程序的运行结果是x=【7】,y=【8】。

main( ) { float x=4.9;int y;

y=(int)x;

printf(\

分析:强制类型变换并不改变x的原值,x仍为4.9,而变换得到的是中间结果,此题将中间结果赋给了y,另外注意是舍弃小数部分,而不是四舍五入。 本题正确答案为【7】 4.900000 【8】 4。


2011年计算机等级二级C语言课后练习题及答案解析(3)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高一物理匀变速直线运动的位移与时间的关系测试题1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: