第二章顺序结构
一选择题
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
а,b均为整型,a/b是取a + b所得商的整数部分,所以是0,再把0赋值给 c,所以是c的值是0。
答案是 D
A 注释语句可以放在代码的任何位置
B将r定义为整型不会在编译时出错,会自动进行类型转换
C变量s为浮点型,格式描述符% f时正确的
D n是非法的变量
б,答案是 D
(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个 数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是 y=2003所以整个表达式的值是2003,因此输出值为2003。
答案是 A
m 是十进制整数以十进制有符号的形式输出,即照原样输
32767,n=032767, 032767是八进制的整数以八进制无符号形式输出,去掉前面
的 0。见教材 P34
答案是 C
m,n的值都是十六进制数Oxabc, m-=n即是m=m-n,把m-n的值赋给 m,即把0赋给m,再把m值以十六进制无符号的形式输出,输出的十六进制数 不用在前面Ox或者0X。见教材P35
答案是 B
表达式i ——的值是在变量自减之前的值,i的初值为10,所以该表达式的 值也为10;表达式j++的值是变量自加之后的值,j初值为1,所以该表达
式在值是 2。
10 ,答案是 C
m=0256,即m是八进制的数0256,要以八进制无符号的形式输出,即输出 256; n=256,即n是十进制的数256,也要以八进制无符号的形式输出,首先要 把十进制数转化为八进制数, 256 转化为八进制为 0400,以无符号形式输出, 即输出 400。
答案是 B
在printf语句中,格式控制的个数只有一个,即% d,而输出项有两项,即 a和b。而得到的结果应该只有一个,所以应该输出第一个变量的值,即变量 a 的值。
12 ,答案是 C
第一个数据的输出控制宽度是 2位,但是x的值是102,占3位,要输出的 数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输出 102。
第二个数据要求以十进制形式输出,输出控制宽度是2, y的值为012,是
八进制数,所以要转换成十进制数 10后再输出。
13,答案是 B
表达式a= f/=c*=(x=,按从右到左结合,先把赋值给 x,再执行c= c* , c的值 变为65,再执行f = f/65,为浮点数的除法,f的值为??…,再把f的值赋给a, a 为整型数据,执行强制类型转换,a的值为1。a对应的输出格式为% d,即输出 1; c对应的输出格式为% d,输出65, f对应的输出格式%
3.1f,即输出控制宽度为3位,保留小数点后一位小数,即输出,x对应的 输出格式也为% 3.1f,输出。
,答案是 D
float x=;说明x为单精度浮点数据,单精度浮点数据对应的输出格式应该 为 %f。
,答案是 C
m=(k+=i*=k);按从右到左结合,先执行i=i*k;即i被赋值为4,再执行k= k+ 4; k被赋值为6,最后把6赋给m,输出m和i的值。
,答案是 C
略(参考 12 题)
,答案是 D
—m++遵循从右向左结合的原则;m+ +的值为m自增之前的值,所以 执行完x= — m+ +以后,x被赋值为—3;表达式x= x+8/++n中有加号除号, 先算8/++n,++n的值为自增之后的值为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 小数点后的两位小数变为整数,再加上,如果小数点 后一位大于等于 5 则会进一位,如果小数点后一位小于 5 则不会出现进位的情 况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x乘上100后
的数实现了小数位到整数位的四舍五入。最后再除以,把数字变回原来的大 小,整数与浮点数相除结果为浮点数,即实现了要求。
22,答案是 C
从键盘输入数据的格式必须与输入控制要求的格式一样。