2016年济南大学信息科学与工程学院C语言程序设计考研复试题库
● 摘要
一、选择题
1. 有以下程序:
程序的运行结果是( )。 A.6,5,4,3,2,1, B.1, 1
C.1, 1, 1, 1, 1, 1, D.1,2,3,4,5,6, 答:A 【
解
析
】
本
题
中
递
归
函
数
调
用
执
行
过
程
为
:输
出
也即
返回执行
之后的输出x[0]语句,即5, 同理再返回上一个f 函数,依
次输出4, 3,2,1。
2. 有以下程序
程序运行后的输出结果是( )。 A.2,3,1 B.2,3,2 C.2,3,3 D.2,2,1 答:A
第 2 页,共 34 页
,赋值运算符的优先级高于逗号运算符的优先级,【解析】对于表达式“z=x++,y++,++y; ”
,,可改成“(z=x++)(y++)(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。
3. 有如下定义:
以下语句错误的是( )。
答:A
【解析】A 项中
_是结构指针访问结构成员的方式,如果为结构体内变量进行赋值,
前面应该加入取地址符
应该对指针地址指向的单元进行赋值,因此在
4. 设有两行定义语句:
intscanf ; floatcase ;
则以下叙述正确的是( )。 A. 两行定义语句都不合法 B. 两行定义语句都合法 C. 第1行语句不合法 D. 第2行语句不合法 答:D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
5. 有以下程序:
第 3 页,共 34 页
程序运行后的输出结果是( )。
答:D
【解析】程序执行过程为:定义STU 类型数组,长度为2, 并为其初始
化
调
用函数
strcpy
使次输出
6. 设有定义:
将变量
值传入函数,
则
结果为:
调用函数
故D 项正确。
函数调用结束。其中结构体数组中元素并没有发生改变,依
若变量均已正确赋初值,则以下语句中错误的是( )。
答:A
【解析】A 项错误,struct 中的mark 成员是数组,数组一旦定义,不能直接赋值。B 项正确,numl 是int 变量,可以直接赋值。C 项正确,C 语言中struct 变量可以直接赋值,实际操作是内存拷贝;D 项正确,num2是int 变量,可以直接赋值;C 语言中,数组不能直接赋值,但是把数组包装在struct 中,就可以实现直接赋值。
7. 有以下程序:
第 4 页,共 34 页
相关内容
相关标签