2016年山东师范大学信息科学与工程学院程序设计考研复试题库
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.10,64 B.10,10 C.64,10 D.64,64 答:A
【解析】C 语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修 改。所以
,
2. 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是( )。
A. B. C. D. 答:A
【解析】将字符指针变量初始化为一个字符串有两种方式,一种通过赋值运算使一个字符指针指向一个字符串常量:
并且初始化为一个字符串的首地址:变量,所以不能给一个数组名赋值,
如
A 选项正确。另一种是定义一个字符指针变量,
字符指针变量与字符数组都可以用来实错误,B 选项错误;(2. 字符型的指针变
现字符串的存储和运算,但二者是有区别的:(1. 数组名是一个地址常量,而字符指针变量是一个量的值是可以改变的;(3. 字符指针变量和字符数组在内存中的 存储情形不同,数组指的是按照数组长度分配的若干存储空间,而指针只是一个存储字符串首地址的存储空间,所以相同类型指针可以相互赋值,而数组不能直接用“=”赋值,C 选项错误。数组不可以直接赋值字符 串
.
合法,故D 选项错误。
第 2 页,共 34 页
不合法,只有在数组初始化时可以直接赋值,
如
合法,并且定义数组时必须指定数组长度,
不
3. 有以下程序:
程序运行后的输出结果是( )。 A.3 B.2 C.1 D.0 答:D
【解析】C 语言的语法规定:else 子句总是与前面最近的不带else 的if 相结合,与书写格式无关。可以写成下面的形式:
)即判定为false ,y 值不发生变化,然后else 判定x==0,仍然为false ,不执行else 语句,y 值不发生变化。
4. 有以下程序:
第 3 页,共 34 页
程序运行后的输出结果是( )。 A.8, 17 B.8, 16 C.8, 8 D.8, 20 答:A
【解析】static 变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元, 即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值 程序执行过程为:是上一次函数调用结束时的值。调用函数,
再次调用函数
,返回
5. 若变量均己正确定义并赋值,以下合法的c 语言赋值语句是( )。
A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+l;
答:A
【解析】A 项正确,y==5返回0或者1,然后赋值给x 。B 项错误,浮点数不能参与模运算;C 项错误,x+n是右值,不能给它赋值;D 项错误,5是常量,不能被赋值。
6. 有以下程序:
程序运行后的输出结果是( )。 A.3 B.5 C.7 D.9 答:A
【解析】本题中for 语句的主体为一个switch 语句,switch
语句的判断条件
,然后终止本层
语句。所以当
时:C
否则执行当
时:
语句然后再执行
当
时执行
语句并终止本层switch
返回p=8,
时for 循环结束。结果为3。
第 4 页,共 34 页