2016年吉林师范大学计算机学院9067计算机程序设计之C程序设计复试笔试最后押题五套卷
● 摘要
一、选择题
1. 有以下程序
程序运行后的输出结果是( )。 A.-12 B.9 C.0 D.3 答:A
【解析】C 语言中,表达式从右向左计算。
2. 有以下程序
执行后的输出结果是( )。 A.1 B.2 C.4
D. 死循环 答:A
while 【解析】(--k )是先执行k 减1,然后判定k 是否等于0; 输出1; 接下来继续执行-k ,k 变成0, 不满足条件,循环结束。
3. 以下选项中有语法错误的是 。
A. B. C.
第 2 页,共 34 页
可以写成而
等价于
等价于a=a+a=(-6)+(-6)=-12。
是先执行k-=3,
k 的初始值是5, --k 后k 变成4, 进入循环体内部,然后输出k 的值。首先执行k-=3, 得到k 等于1,
D. 答:D
【解析】考查指针数组的概念,选项D 中str 为二维字符数组,不能直接把一个字符串赋值到二维数组的某一行中。
4. 有以下程序:
程序运行后的输出结果是( )。 A.10, 64 B.10, 10 C.64, 10 D.64, 64 答:A
【解析】C 语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修
改。所以
所以有无括号的运
算结果是不同的。
5. C 语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是 ( )。
A. 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义 B. 用户标识符可以由字母和数字任意顺序组成 C. 在标识符中大写字母和小写字母被认为是相同的字符 D. 关键字可用作用户标识符,但失去原有含义 答:A
【解析】C 语言允许把预定义标识符重新定义另作他用,但这将失去预先定义的原意。B 项,标识符的第一个字符必须为字母或下划线;C 项,标识符中,大写字母和小写字母被认为是两个不同的字符;D 项,关键字不能另作他用。
6. 若有定义:inta=0,b=0,c=0,d=0; ,以下关于C 语言表达式:顺序的叙述正确的是( )。
A. 先执行++a,表达式++a的值为1; 再执行++b,表达式++b的值为1,由此可确定为1,因此执行++C
B. 先执行++a, 表达式++a的值为1, 由此可确定
第 3 页,共 34 页
执行值
|值为1, 因此执行++c
C. 先执行++b, 表达式++b的值为1; 再执行++a, 表达式++a的值为1,由此可确定’值为1, 因此执行++C
D. 先执行++a, ++b,++c,++d,使得a , b , c ,d 的值都为1, 由此可确定此执行++C
答:B
_'
值为1,因
【解析】++a表示先将变量a+1, 再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式
中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2, 即++C,B 项正确。
7. 有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数):
程序运行后的输出结果是( )。 A.al2xyz B.12yz C.a2yz D.bc2yz 答:C
【解析】先执行strepy ,将
中的2复制到a[l]中的b 及之后的存储空间中,即此时数组a
所指的y 及之后的z 与a 中的连接,即为
再执行strcat 连接函数,将中值为
8. 有以下定义:
则以下选项中正确的表达式是( )。
答:C
【解析】C 项正确,其赋值。
第 4 页,共 34 页
是把得到的浮点数强制转换成整型。A 项错误,
运算符;D 项错误,
结果是
浮点数,不能参与模运算;B 项错误,C 语言中没有是右值,不能给