2017年中南林业科技大学食品科学与工程学院341农业知识综合三[专业硕士]之C程序设计考研题库
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.1, 2 B.4, 1 C.3, 4 D.2, 3 【答案】D
【解析】题目中定义了一个包含两个整型元素的结构体数组,其
中
指针p 指向结构体数组的第1个元素,那么
的值为2, 所以输出的结果为2, 3。
2. 有以下程序(strcat 函数用以连接两个字符串):
程序运行后的输出结果是( )。 A. B.ABCDIJK C.UK
D.EFGUK 【答案】B
【解析】在C 语言中,系统在每个字符串的最后自动加入一个字符标志。
中,当遇到就结束初始化,因此
第 2 页,共 38 页
的值为
作为字符串的结束
连接这两
个字符串
3. 有以下程序
得到 ABCDUK 。
程序运行后的输出结果是( ) A.3 5 7 B.7 5 3 C.3 6 9 D.7 5 1 【答案】A 【解析】依次输出
4. 若有定义语句:
A.7 B.8 C.9 D.10
【答案】A
C 语言规定以字符【解析】
与
则
的值是( )。
strlen 函数返回的是字符串的长度,
作为字符串结束的标识符。
等效,所以字符串长度是7。
5. 以下程序的主函数中调用了在其前面定义的函数fun :
则以下选项中错误的fun 函数首部是( )。 A. B. C. D. 【答案】D
【解析】由题目可知,fun 函数中定义的应该是一个double 型的指针变量。
第 3 页,共 38 页
6. 有以下程序:
程序运行后的输出结果是( )。 A.8,16 B.16,32 C.8,32 D.16,16 【答案】C
【解析】带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换不计算,只是进行简单的替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。FNA (FNB (a ))的替换过程为:FNA (2+2)替换为2+2X2+2,计算结果为8。FNB (FNA (b ))的替换过程为:FNB (4*4)替换为4X4+4X4=32。程序运行后的输出结果是8,32,故C 项正确。
7. 关于地址和指针,以下说法正确的是( )。
A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量 B. 可以取一个常数的地址赋值给同类型的指针变量 C. 可以取一个表达式的地址赋值给同类型的指针变量 D. 可以取一个指针变量的地址赋值给基类型相同的指针变量 【答案】A
【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的 地址赋给指针变量没有任何意义,C 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变 量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C 语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为A 选项。
8. 有以下程序:
第 4 页,共 38 页
相关内容
相关标签