当前位置:问答库>考研试题

2017年新疆师范大学计算机科学与技术教育研究(同等学力加试)之C程序设计考研复试核心题库

  摘要

一、选择题

1. 有以下程序:

程序运行后的输出结果是( )。

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 项正确。

2. 以下不能输出小写字母a 的选项是( )。 A. B. C. D.

【答案】A

【解析】printf 函数格式控制符仏以字符形式输出数据。putchar 函数将括号中参数以字符形式输出。A 项“a ”为字符串,不是单个字符,输出格式不正确,不能输出a 。B 项字符‘a ’的ASCII 码为97,字符‘A ’的ASCII 码为65。‘A ’+32即为‘a ’,能输出a 。C 、D 项putchar 函数参数均为字符‘a ’,均可正确输出a 。

3. 若有说明语句

:以下叙述正确的是( )。

A.ptr 是一个具有10个指针元素的一维数组,每个元素都只能指向整型变量

B.ptr 是指向整型变量的指针

C.ptr 是一个指向具有10个整型元素的一维数组的指针

D.ptr 是一个指向10个整型变量的函数指针

【答案】A

【解析】A 项正确,定义一个指针数组。ptr 是指针数组不是指针,B 项错误;定

C 项错误;函数指针是指向义指向具有10个整型元素的一维数组的指针格式为:

函数的指针,不会指向整型数组,D 项错误。

4. 以下叙述中正确的是( )。

A. 函数的返回值不能是结构体指针类型

B. 函数的返回值不能是结构体类型

C. 在调用函数时,可以将结构体变量作为实参传给函数

D. 结构体数组不能作为参数传给函数

【答案】C

【解析】C 项正确,结构体变量作为实参时,是传值形式调用;AB 两项错误,函数的返回值可以是结构体变量和结构体指针变量;D 项错误,向函数传递结构体数组名时,传递的是实参结构体数组的首地址,是传引用形式调用。

5. 有以下程序:

程序运行后的输出结果是( )。

A.02

B.13

C.57

D.12

【答案】D 【解析】具有短路效应,当前面的表达式结果为逻辑假时后面的表达式不在进行

的计算,k 的值为1, 所以结果为1和2。计算。k++首先去k 的值,为0, 为逻辑假不在进行

6. 设有定义:

则以下赋值语句中正确的是( )。

A.s[0]=m[l];

B.s=m;

C.s.l3=m.n;

D.s[2].x=m[2].x;

【答案】A

【解析】定义了结构体类型数组s ,长度为2,结构体类型数组m ,长度为2,并进行了初始化。同类型的结构体可以直接用变量名实现赋值,A 选项正确。数组名为数组首地址,地址常量之间不可以相互赋值,B 选项错误。C 选项引用结构体成员错误,数组名为地址常量不是结构体变量,不能引用成员。D 选项数组越界,不存在s[2]与m[2]。

7. 有以下程序:

程序的运行结果是( )。

A.1, 2

B.3, 6

C.4, 7

D. 变量的地址值

【答案】B

【解析】程序的执行过程为:定义整型数组

结构体数组X ,并为其初始化,则

x2的第一个元6。程序的运行结果是3,6, 故B 选项正确。

8. 有如下定义:

若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是( )。

【答案】A

【解析】A 项中,因为n=l, 即每次写入1个结构体数据,x 是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。

并进行初始化,两个数组长度均为2。定义输出x[0]的成员指针b 指向的内存单元值,即数组xl 的第一个元素3, 输出x[l]的成员指针b 指向的内存单元值,即数组