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

2017年新疆农业大学C++程序设计(加试)考研复试核心题库

  摘要

一、选择题

1. 以下选项中,不能对主函数中变量i 和j 的值进行交换的程序是( )。

}

}

}

【答案】A

【解析】选项A ,定义了一个临时指针,实现两个指针地址的交换,而传入了参数是二个指针的副本,即a 、b 地址的副本,故交换了副本地址,对a 、b 无影响,故选择A 选项。B 选项调用函数传人的是i 与j 地址,函数体内交换是地址内元素,临时变量为整型变量,能实现i 与j 值交换。C 选项调用函数传入的是i 与j 地址,函数体内交换是地址内元素,临时变量为整型指针,且已正确开辟内存,能实现i 与j 值交换。D 选项与B 选项相同,能实现i 与j 值交换。

2. 有以下程序:

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

【答案】D

【解析】声明结构类型S 中有一个字符数组name , 在input , 为input 中成员name

初始化给name ,

由于

后,调用

函数

函数的形参为结构体指针,因此

函数中,定义了一个结构变量

执行功能是把

赋值

函数改变形参指针data 指向的

name 值的同时,也改变了实参input 的成员name 值;而形参value 为整型变量,是num 的一个副本,修改了nnm 的副本,对num 本身不产生影响,所以输出为#,3。

3. 有以下程序:

程序运行后的输出结果是( )。 A.3 B.5 C.7 D.9

【答案】A

【解析】本题中for 语句的主体为一个switch 语句,switch

语句的判断条件

,然后终止本层

语句。所以当时:C

4. 有以下程序

程序运行后的输出结果是( )。 A.2,3,1 B.2,3,2 C.2,3,3 D.2,2,1 【答案】A

【解析】对于表达式“z=x++,y++,++y; ”,赋值运算符的优先级高于逗号运算符的优先级,可改成“(z=x++),(y++),(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自増,所以z 的值为1,x 的值为2。再计算逗号表达式第二个表达式y++,此时y 的值为1,y++的值为2。最后计算第三个表达式++y,y 的值为3。

5. 以下叙述错误的是( )。

A. 在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的

时执行

否则执行当

时:

语句然后再执行

语句并终止本层switch

时for 循环结束。结果为3。