2017年湖南师范大学教育科学学院877C程序设计与网络技术考研题库
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL B. 函数可以返回地址值
C. 改变函数形参的值,不会改变对应实参的值 D. 可以给指针变量赋一个整数作为地址值 【答案】D
【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
2. 有以下程序
程序运行后的输出结果是( )。 A.36 B.24 C.32 D.28
【答案】D
【解析】函数f 可以重写成: 1 234 56
78 91011
12
13 14 15 16 17
f (0)时,进入第9行else 语句,第11行a 等于6; 返回12。
f (l )时,进入第4行if 语句,第6行所以,
3. 有如下程序:
第14行第14行
第15行静态a 自增,此时a 是调用完f (0)后
自增的静态a ; 第15行静态a 自增,a 等于7; 返回12。
其中4是全局变量a 的值。
程序运行后的输出结果是( )。 A.4, 4, 4 B.1, 4, 8 C.0, 0, 0 D.1, 2, 4 【答案】A
【解析】sizeof 函数用来获取类型或数据对象的长度,也即是一个这种数据类型的变量在内存中所占字节数。 由于一个变量的地址也是一个值,因此就可以把这个地址值存放到另一个变量里保存。这种专门用来存放变量地 址的变量,称为“指针变量”。所有类型的指针变量都是地址,所占字节数均为4, 故A 项正确。
4. 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是( )。
A. B. C. D. 【答案】A
【解析】将字符指针变量初始化为一个字符串有两种方式,一种通过赋值运算使一个字符指针指向一个字符串常量:
A 选项正确。另一种是定义一个字符指针变量,
并且初始化为一个字符串的首地址:变量,所以不能给一个数组名赋值,
如
字符指针变量与字符数组都可以用来实错误,B 选项错误;(2. 字符型的指针变
现字符串的存储和运算,但二者是有区别的:(1. 数组名是一个地址常量,而字符指针变量是一个量的值是可以改变的;(3. 字符指针变量和字符数组在内存中的 存储情形不同,数组指的是按照数组长度分配的若干存储空间,而指针只是一个存储字符串首地址的存储空间,所以相同类型指针可以相互赋值,而数组不能直接用“=”赋值,C 选项错误。数组不可以直接赋值字符 串
.
合法,故D 选项错误。
5. 有以下程序:
程序的运行结果是( )。 A.4 B.5 C.6 D.7
【答案】C
【解析】fun 函数是递归函数,用来计算从0到n 的整数和。调用fun 函数,n=3,
返回
【程序有错,
6. 有以下程序
应为
】
不合法,只有在数组初始化时可以直接赋值,
如
合法,并且定义数组时必须指定数组长度,
不
程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>
则输出结果是( )。