一、选择题
1. 若有定义语句
A. B. C. D.
【答案】C
列表间用逗号隔开。由题知_
执行了
之后,输入语句正确的是( )。
,格式控制和地址【解析】输入函数scanf 使用的标准形式是:scanf (格式控制,地址列表)
即px 指向x 的地址,py 指向y 的地址。AD 两项错
误,表达式中的x 和y 都需要取地址;B 项,格式控制和地址列表间用逗号隔开。
2. 有以下程序:
程序的运行结果是。(口代表一个空格) A.10,12,a B. □□0,012,a C.010,12,a D. □□10,12,a 【答案】D
【解析】%4d 表示先输出十进制,共占4个字符,而10已占2个字符,故先输出2个空格,然后输出10; %0表示输出八进制,10的八进制为12; 表示输出十六进制,即a 。
3. 有以下程序
程序运行后的输出结果是( )。
A.5 B.50 C.6 D.60 【答案】A
【解析】最后一句应该是
指针p 指向c ,指针s 指向c[5],s-p 就是c 的地址与c[5]的地址之差(以int 的存储空间为单,s 和p 都是int 型变量s=p+5,所以s-p=5。 位)
4. 设有定义intx=2;,以下表达式中,值不为6的是( )。
A.x*=x+l B.x++, 2*x
C.x*=(1+x) D.2*x, x+=2 【答案】D
,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)
即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。
5. 有以下程序段:
入字母A 、B 、C , 则以下对输入形式的描述正确的是( )。
A. 字母A 、B 、C 之问可以用空格分隔 B. 字母A 、B 、C 之间不能有分隔符 C. 字母A 、B 、C 之间可以用回车符分隔 D. 字母A 、B 、C 之间可以用Tab 键分隔 【答案】B
【解析】在使用scanf 函数时要注意,在用
格式输入字符时,分隔符(空格符、制表符
(Tab 键)、回车符)和转义字符都将作为有效字符进行输入。题目中要求以字符形式输入三个数据,空格、回车符、Tab 键均会被视为有效字符赋给对应变量,所以字母A 、B 、C 之间不能有分隔符,故B 选项正确。
6. 若变量已正确定义为int 型,要通过语句
若要给分别输
给a 赋
值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是(u 代表一个空格)( )。
【答案】B
【解析】scanf 函数要求除格式控制符以外的字符都要原样输入。逗号是非格式符,所以需要
原样输入,否则就不能正确读入数据。B 项前两个数据后面没有紧跟一个逗号,格式不匹配所以输入形式错误。
7. 有以下程序
程序运行后的输出结果是( )。 A.-12 B.9 C.0 D.3
【答案】A
【解析】C 语言中,表达式从右向左计算。
可以写成
而
等价于
等价于a=a+a=(-6)+(-6)=-12。
8. 表达式:(int )((double )9/2)—9%2的值是( )。
A.4 B.0 C.3 D.5
【答案】C 【解析】(int )((double )9/2)值为4,9%2值为1,相减值为3。
9. 有以下程序