2017年东北师范大学C++程序设计考研复试核心题库
● 摘要
一、选择题
1. 若有说明和语句:
A. B. C. 的地址
D. 不确定的值 【答案】A
【解析】定义字符数组并为其初始化,str 数组前5个元素为Hello ,
第六个元素自动赋值为
定义指针使等于字符串首地址,
指向字符串第六个元素。
2. 以下不属于C 语言位运算符的是( )。
A.! B. C.
D. 〜 【答案】A
【解析】c 语言常用的位运算符有:”按位求反,“<<”左移,“>>”右移,
按位与
,
按位异或,“”按位或。A 项“!”为逻辑运算符“非”。 3 设有如下定义
.则以下错误引用结构体成员n 的是( )。
【答案】A
【解析】可用以下3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:①结构体变量名. 成员名;②指针变量名->成员名;③(*指针变量名). 成员名。题目中a 为数组名是地址常量,不是指针变量,A 项引用错误。a[0]为变量名,B 项引用正确。p 为指针,且正确的指向结构体变量,C 项引用正确。D 项符合第三种引用方式,引用正确。
4. 有以下程序
第 2 页,共 24 页
则此时中的值为( )。
程序运行后的输出结果是( )。 A.15 B.21 C.20 D.31
【答案】C
【解析】函数的嵌套调用,fim 函数的作用是计算两个整数的和,
则
5. 以下定义语句中正确的是( )。
【答案】C
【解析】C 项正确,int 转换成char 类型时,按照ASCII 码表进行转换,65表示’A ’,66表示‘B ’,等价于A=‘B ’。A 项错误,b ,c 都是float*类型
,的结束,应改成逗号。
6. 有以下程序:
程序的运行结果是( )。 A.246 B.135 C.123 D.456 【答案】A
【解析】程序执行过程为:定义二维数组s 与指针数组ps , for循环实现将二维数组每一行的首地址赋值给 对应的指针数组元素,然后输出二维数组每行的第二个元素。程序的运行结果是246。
第 3 页,共 24 页
等价于
:
然后执行等于7,
无
法把float**转换成float*。B 项错误,b 未定义,可改成inta ,b ; a=b=0; D 项错误,分号表示语句
7. 下面结构体的定义语句中,错误的是。
【答案】B
【解析】C 语言中结构体变量的定义有三种方法:定义结构体类型的同时定义结构体变量;使用无名结构体类型定义结构体变量;先定义结构体类型,后定义结构体变量。
8. 有以下程序:
程序运行的结果是( )。 A.10, 1 B.20, 1 C.10,2 D.20, 2 【答案】C
【解析】题目首先定义结构体st 的同时定义结构体数组data ,可
知
结构体指针p 指向数组的首地址,指向
的第二个元素data[l],
然后输出
即输出
则指向数组
所以分别为10和2。
二、设计题
9. 请编写一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67, 则输出为asdafaaz67。注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。
试题程序:
第 4 页,共 24 页