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。