2017年北京印刷学院信息工程学院电子与通信工程综合测试复试之C语言程序设计复试仿真模拟三套题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.1
B.3
C.4
D.9
【答案】C
【解析】根据程序
1+0+1+2=4。
2. 设变量已正确定义并赋值,以下正确的表达式是( )。
A.x=y*5=x+z
B.int (15.8%5)
C.x=y+z+5,++y
D.x=25%5.0
【答案】C
【解析】赋值运算左边必须是单一变量名。A 项错误,“y*5=x+z”部分是非法赋值。BD 两项错误,求余运算中的操作对象只能是整型。C 项,为逗号表达式。
3. 有以下程序
程序运行后的输出结果是( )。
第 2 页,共 15 页 的
意
A.20
B.16
C.12
D.25
【答案】B 【解析】展开后是
4. 以下叙述中错误的是( )。
B. 函数可以返回指向结构体变量的指针
C. 可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D. 只要类型相同,结构体变量之间可以整体赋值
【答案】A
【解析】函数的返回值类型可以是结构体类型,也可以是指向结构体变量的指针类型,相同类型结构体变量 之间可以整体赋值,可以通过指针变量引用结构体成员。
5. 下面是有关C 语言字符数组的描述,其中错误的是( )。
A. 不可以用赋值语句给字符数组名赋字符串
B. 可以用输入语句把字符串整体输入给字符数组
C. 字符数组中的内容不一定是字符串
D. 字符数组只能存放字符串
【答案】D
【解析】字符数组是可以用来存放字符或者字符串的。
6. 设有定义:
若变量均已正确赋初值,则以下语句中错误的是( )。
【答案】A
【解析】A 项错误,struct 中的mark 成员是数组,数组一旦定义,不能直接赋值。B 项正确,numl 是int 变量,可以直接赋值。C 项正确,C 语言中struct 变量可以直接赋值,实际操作是内存拷贝;D 项正确,num2是int 变量,可以直接赋值;C 语言中,数组不能直接赋值,但是把数组包装在struct 中,就可以实现直接赋值。
7. 以下选项中不能作为C 语言合法常量的是( )。
第 3 页,共 15 页 A. 函数的返回值类型不能是结构体类型,只能是简单类型
【答案】A
【解析】常量包括整型常量、实型常量、字符常量和字符串常量等。B 项,
式的常量,是合法的;C 项,是字符串常量;D 项,
单引号表示字符常量,不能包含字符串,若要包含字符串,需用双引号。
8. 有以下程序:
程序的运行结果是( )。
A.D
B.C
C.B
D.A
【答案】A
【解析】A 项正确,main ( )函数中,首先判断条件x>l,因为x=l不大于1,不满足条件,程序跳入else 语句判定z 是指数形是表示八进制数整型常量。A 项错误, 二、设计题 9. 学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函数fun , 它 的功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序存在文件 语句。 给定源程序: 第 4 页,共 15 页 中。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干