2017年江苏省培养单位南京天文光学技术研究所864程序设计之C程序设计考研仿真模拟题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.13.700000 B.14.000000 C.15.400000 D.14.900000 【答案】A
sqrt 为平方根计算函数,【解析】
2. 有以下函数:
程序运行后的输出结果是( )。 A.zhang B.zhao C.wang D.19
【答案】B
x+2代表了指向第三个元素的指针,【解析】结构体数组存储了三个人的信息,所以输出name 为Zhao 。
第 2 页,共 39 页
格式输出后为13.700000。
3. 以下关于宏的叙述中正确的是( )。
A. 宏名必须用大写字母表示
B. 宏定义必须位于源程序中所有语句之间 C. 宏替换没有数据类型限制 D. 宏调用比函数调用耗费时间 【答案】C
【解析】A 项错误,用作宏名的标识符通常习惯用大写字母表示,宏名可以是任何合法的C 语言标识符;B 项错误,在语言中,宏定义可以根据需要写在任何位置:D 项错误,宏调用是在编译前由编译预处理程序完成的,不占运行的时间。
4. 有以下程序:
程序运行后的输出结果是( )。 A.ABCDEFGHIJKLMNOP B.ABCDEFGHHKL C.ABCD D.AEIM 【答案】D
【解析】auto 变量又称为自动变量,函数定义变量时,如果没有指定存储类别,系统就认为所定义的变量具 有自动类别,D 选项正确。static 变量又称为静态变量,编译时为其分配的内存在静态存储区中。register 变量又称为寄存器变量,变量的值保留在CPU 的寄存器中,而不是像一般变量那样占内存单元。当定义一个函数时, 若在函数返回值的类型前加上说明符extern 时,称此函数为外部函数,外部函数在整个源程序中都有效。
5. 有以下程序:
第 3 页,共 39 页
程序运行后的输出结果是( )。
【答案】D
【解析】函数f ( )的功能是给局部结构体变量t 赋值,然后将t 作为返回值返回给调用函数,main 函数中再将函数f ( )的返回值赋值给a , 因此a 的值被改变。
6. 若有定义语句intb=2;, 则表达式的值是( )。
A.4 B.8 C.0 D.2
【答案】B
【解析】b=2, 转为二进制即为0010,首先将b 左移两位,变成1000,即十进制的8, 3llb 的值为真即为1, 最后计算8/1的值,为8。
7. 若有定义
:
则以下与上述定义中a 类型完全相同的是( )。
【答案】A
【解析】“typedef 类型名新类型名”表示为一个已定义的类型标识符重新定义一个新类型名,题中选项A 代表的意思是数组指针,即指向数组的指针,B 选项是指针数组,即数组存放的元素是整型指针,首先为整型指针类型命名为T ,再通过T 定义了一个整型指针数组*a[20],等价于int*a[20],答案为A 选项。
8. 以下针对全局变量的叙述错误的是( )。
A. 全局变量的作用域是从定义位置开始至源文件结束 B. 全局变量是在函数外部任意位置上定义的变量 C. 用extern 说明符可以限制全局变量的作用域 D. 全局变量的生存期贯穿于整个程序的运行期间 【答案】C
【解析】在不同编译单位内用extern 说明符来扩展全局变量的作用域,extern 可以将全局变量作用域扩展到 其他文件,而不是限制全局变量的作用域,答案为C 选项。
第 4 页,共 39 页