2017年西南石油大学C语言程序设计(同等学力加试)复试仿真模拟三套题
● 摘要
一、选择题
1. 设有以下定义:
则以下叙述正确的是( )。
A. 数组s1的长度小于s2的长度
B. 数组s1和s2的长度相同
C. 数组s1的长度大于s2的长度
D. 数组s1和s2完全等价
【答案】C
【解析】为字符数组赋值字符串“0123”时,字符串中字符依次放人数组中后,在最后一个
数组s1长度为5。数组s2只需要4个单元即可放下所有初始字符后要添 加一个结束字符
化值,故数组长度为4。所以数组s1的长度大于S2的长度,C 项正确。两个数组等价是指两个数组长度和类型以及对应每个元素值均相 同,所以s1和82不是完全等价,D 项错误。
2. 有以下定义inta ;longb ;doublex , y ;,则以下选项中正确的表达式是( )。
D.y=x+y=a
【答案】A
【解析】%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A 项正确,x-y 结果为double 型,但是通过强制类型转换将其转换为int 型;B 项错误,中==和!=是同一个优先级的,先运行a==x,而因为double 是占8位的,不能自动转换,必须要强制类型转换
,
才是正确的;C 项错误,(a*y)%b中的(a*y)为double 型;D 项错误,x+y不
能作为左值。
3. 以下选项中能表示合法常量的是( )。
【答案】D
【解析】A 项错误,表达错误;B 项错误,E 后面应为整数,不能是小数;C 项错误;字符斜杠的表示方法 为因为第一个\表示是转义字符;D 项正确,表示空字符串,第一个字符
为正确。
4. 关于C 语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
【答案】A
【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、 C 、D 选项正确,答案为A 选项。
5. 为了避免在嵌套的if-else 语句中产生二义性,C 语言规定与else 子句配对是( )。
A. 与其在同一行上的if 子句
B. 在其之后最近的不带else 的if 子句
C. 与其缩排位置相同的if 子句
D. 在其之前最近的不带else 的同层if 子句
【答案】D
【解析】if 总是与它上面最近的、未配对的else 配对。
6. 有以下程序:
程序运行后的输出结果是( )。
【答案】A
【解析】main 函数中,首先定义两个结构体stn 类型的变量a , b , 把a 成员信息复制给b 成员后,再调用函数f ( ),在f ( )函数中,利用指针重新对b 成员信息进行赋值,分别输出a , b 成员信息。
7. 有以下程序
程序运行后的输出结果是( )。
A.2,3,1
B.2,3,2
C.2,3,3
D.2,2,1
【答案】A
【解析】对于表达式“z=x++,y++,++y; ”,赋值运算符的优先级高于逗号运算符的优先级,可改成“(z=x++),(y++),(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。
8. 有以下程序
程序运行后的输出结果是( )。
A.9284
B.9824
C.6982
D.6385
【答案】D