第二章  顺序结构
选择题
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的值,所以x3输出时以%d,带符号的十进制输出数据。
注意:整数除以整数,结果仍然为整数。
4  答案是 A
a,b均为整型,a/b是取a÷b所得商的整数部分,所以是0,再把0赋值给   
c,所以是c的值是0
注意:整数除以整数,结果仍然为整数。
5, 答案是 D
考点:注释、变量、数据输入和输出
注释部分必须用“/*”开头和用“*/”结束,其中“/”、“*”之间不能有其他符号,也不能是空格键。
计算机不对注释部分进行编译,即注释不对C语言程序产生任何影响,可以在任何能插入空格符的地方插入注释。但是注释不能嵌套使用,例如:/*12212/*1221*/22*/
变量要先定义后使用。并且要满足用户标识符的命名规则。
本题中没有/*”和“*/”,所以没有注释。故A答案错误。
r定义为整型不会在编译时出错,会自动进行类型转换,自动将表达式的值计算后转换成赋值号左边的类型的值后再赋值。所以变量r是整型是正确的。
变量s为浮点型,即小数,输出时以%f输出是正确的。π是非法的变量
本选项中出现了p,p是一个变量,那么变量要先定义后使用,这里是先使用,后定义。
6, 答案是 D
考点:逗号运算符
格式为:表达式1,表达式2,表达式3………,表达式n
逗号运算符也称为顺序求值表达式,整个都好运算表达式的值为表达式n的值,(最后一个表达式的值),计算方法是先算左边表达式的值,再算后的,从左至右依次计算。逗号运算符是优先级别最低的运算符。
(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是y=2003,所以整个表达式的值是2003,因此输出值为2003
注意:逗号表达式在 计算时必须是从左至右一次计算。
7, 答案是 A
考点:数据输出
格式字符
         
d或i
控制以带符号(即有正数和负数)的十进制形式输入输出一个整数,其中不输出正号。i格式在输入时也可以是带前导符的八进制整数或十六进制整数。
u
控制以无符号(即只有正数)的十进制形式输入输出一个整数。
o
控制以无符号的八进制形式输入输出一个整数,输出时无前导符0,输入时前导符0可有可无。
xX
控制以无符号的十六进制形式输入输出整数,输入时无前导符0x(或0X),并且小写x对应小写a,b,c,d,e,f,大写X对应大写A,B,C,D,E,F。输入时前导符0x(或0X)可有可无,并且不区分大小写。
c
控制以字符形式输入输出一个字符,输出时无字符定界符(即无单引号),输入时字符不能加定界符。
s
控制以字符串形式输入输出一个字符串,输出时不输出字符串定界符(即无双引号),输入时从第一个非空白字符开始接收,并以接收过程中碰到的第一个空白字符(包括空格、回车符)结束,输入时字符串不能加定界符。输出时可以输出空白字符。
m是十进制整数以十进制有符号的形式输出,即照原样输32767,n=0327670327670开始,是一个八进制数字,输出时不输出前导符0;故输出的结果为32767.
8  答案是 C
考点:数据输出
m,n的值都是十六进制数0xabcm-=n即:m=m-n, m-n的值赋给m,即把0x0赋给m,再把m值以十六进制无符号的形式输出,输出的十六进制数不用在前面0x或者0X。故输出的结果为0
9,   答案是 B
考点:变量的自加自检运算和输出语句
变量的自加自减:变量在原来的基础上加一或者是减一。表达式:如果运算符在变量的后面,则表达式的值为变量原来的值;如果运算符在变量的前面,则表达式的值为变量后来的值。
表达式i--,变量的值为9,表达式的值为变量原来的值,即为10++j结果计算之后,变量的值为2,运算符在变量的前面,所以表达式的值是变量后来的值,即为2,最后将这两个变大时的值输出,即为102,注意两个%d之间有一个逗号,这个逗号为普通字符,在输出时要原样输出。
10, 答案是 C
考点:数值的转换和数据输出
%d:输出的是带符号的十进制整数。
printf函数在输出的时候,如果数据的类型不相同的时候,将自动将数据转换成相同类型之后再输出。m=0256,m是八进制的数0256,要以八进制无符号的形式输出,即输出256n=256,n是十进制的数256,也要以八进制无符号的形式输出,首先要把十进制数转化为八进制数,256转化为八进制为0400,不输出数据的前导符0,即输出400
11, 答案是 B
考点:printf函数的输出格式
当输出项的个数多余格式控制符的个数时,多余的输出项不输出数据。
printf语句中,格式控制的个数只有一个,即%d,而输出项有两项,即ab。即顺序输出数据,首先输出a的值,在输出b的值,但是此时没有输出b的格式控制符,故没有输出b的值,所以最终的输出结果为:666.
12, 答案是 C
考点:数据的输出。
    第一个数据的输出控制宽度是2位,但是x的值是102,占3位,要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输出102。第二个数012,代表的是一个八进制数字,输出时以%d输出,即以十进制整数的形式输出数据,将012转换成十进制整数位:10,输出时% d之间的数字,代表输出的数据占有两个宽度。10占有2个宽度,所以输出的结果为:10。所以最后的结果为:C
13,  答案是 B
考点:数据输出    符合赋值表达式    数据的定义
复合赋值表达式:优先级2,结合方向:自右向左。
表达式af/=c*=(x=6.5),按从右到左结合,先把6.5赋值给x,再执行cc*6.5c的值变为65,再执行ff/65,为浮点数的除法,f的值为1.53……,再把f的值赋给aa为整型数据,执行强制类型转换,a的值为1a对应的输出格式为%d,即输出1c对应的输出格式为%d,输出65f对应的输出格式%3.1f,即输出控制宽度为3位,保留小数点后一位小数,并对第二位小数进行四舍五入,即输出1.5x对应的输出格式也为%3.1f,输出6.5
14 答案是 B
考点:数据输出
数据在输出时:格式控制符和其所输出的数据的类型必须相同,否则不能正确输出数据。
    float x=-123.456;说明x为实型数据,实型数据对应的输出格式应该为%f。故选答案D
15 答案是逗号表达式的运算顺序 C
考点:复合赋值表达式
    m=(k+=i*=k);按从右到左结合,先执行i=i*k;即i被赋值为4,再执行kk4k被赋值为6,最后把6赋给m,输出mi的值。
16 答案是 C
考点:数据输出
%d之间的数字,代表的是输出数据时占有的宽带,当数据的宽度大于指定的宽度时,原样输出,当小于数据的实际宽度时,如果是大于0的整数,输出时以右对齐的方式输出,如果小于0,则以左对齐的方式输出。
本题中,1234占有4个宽度,而指定的宽度为2,所以按照原样输出数据,所以得到的结果为:C
17 答案是 D
考点:数据输出、自加和自减
自加和自减运算符为14号优先级,结合方向:自右向左。
m++遵循从右向左结合的原则;m++的值为m自增之前的值,所以执行完x=-m++以后,x被赋值为-3;表达式xx8/++n中有加号除号,先算8/++n,++n的值为自增之后的值为58/5取整为1,即xx8/++n转化为xx1,即把x1的值赋给xx的值变为-2
18 答案是 D
考点:数据输入
数据输入的格式:scanf(“格式控制”,地址列表);
A 输入函数应为scanf();没有read函数。
BC 输入数据列表必须是地址表达式;x,y,z变量之前都要加上&
19 答案是 A
考点:数据输入
数据输入的格式:scanf(“格式控制”,地址列表);
按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输入,其中需将格式说明换成对应的数据而其它内容原样输入。
scanf(“m=%dn=%dp=%d”,&m,&n,&p);
其中的m= n=p=为普通字符,所以在输入的时候要原样输入。
B答案三个之间不要有空格;
C答案用逗号分开是多余的;
D答案格式不匹配。
20 答案是 A
考点:数据输入
数据输入的格式:scanf(“格式控制”,地址列表);
按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输
入,其中需将格式说明换成对应的数据而其它内容原样输入。
本题中两个%d之间有一个逗号,那么在输入的时候必须有逗号,否则不能正确接收数据,本题选项中A答案中没有逗号,所以A答案不能正确接收数据。
   
21 答案是 C
考点:强制类型转换
格式为:(类型名)(表达式)
    x乘以100是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x乘上100后的数实现了小数位到整数位的四舍五入。最后再除以100.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。
22, 答案是 C
数据输入的格式:scanf(“格式控制”,地址列表);
按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输入,其中需将格式说明换成对应的数据而其它内容原样输入。
输入的数据之间有逗号,所以说明输入的数据之间必须有逗号,A答案中没有逗号,所以AB答案不正确,在输入时候没有输入i=,所以D答案不正确。
         
23, 答案是 B
考点:数据输入
%d%f读入数据时,从第一个数字开始,直到不是数字为止。当%d或者f之间有数字是,那么在读书数据的时候只读指定的位数。
输入控制中第一个数要求以“%2d”形式输入,即要求输入一个两位的数,而从键盘输入的数为876,所以从左到右取两位数字87,即把87赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值为6.000000,后面输入的543则没有赋值给变量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。