2017年山西大学数学科学学院834程序设计考研冲刺密押题
● 摘要
一、选择题
1. 若有定义语句:inta=12; ,则执行语句:a+=a- =a*a; 后,a 的值是( )。
A.-264 B.552 C.144 D.264
【答案】A
【解析】赋值运算结合性为自右向左,a+=a-a*a相当于a=a-a*a,a=a+a; 自右向左计算过程为a=a-a*a=_132,a=a+a=-264。
2. 有以下程序:
程序的运行结果是( )。 A.1, 2, 3, 4, B.3, 6, 9, 12, C.4, 7, 10, 13, D.1, 5, 9, 13, 【答案】C
【解析】函数fun 的功能是将参数a 的二维数组中反斜对角对应的数依次赋值给参数b 的一维数组。调用fun 函数
,
时
,
时,
第 2 页,共 52 页
是4行4列的二维数组
。
时
,
时
,
3. 以下叙述中正确的是( )。
A.
语句B.
语句C.
语句D. 语句符
【答案】A
【解析】A 项正确,表示定义了长度为8的int 型数组,它里面的每个元素都是0。当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0。B 项错误,C 语言规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小;C 项错误,a 是char 类型的数组,里面的元素应该是字符而非字符串,应该用单引号括起来;D 项错误,数组变量一旦定义,其地址值不可改变,不能给数组名重新赋值。
4. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错,导致不能实现预定功能。
造成错误的原因是( )。
A. 定义语句inti ,max ; 中,max 未赋初值 B. 赋值语句max=MIN; 中,不应给max 赋MIN 值 C. 语句【答案】D
【解析】该题中for 循环先将MIN 值赋值给max ,再判断x[i]与max 的值比较,即每次都是将MIN 值与X[i]值进行比较,因为MIN 被定义为整型的最小值,所以无论x[i]的值是什么都不会影响if 的判断语句,始终执行max=x[i]。所以最后返回的是最后一个x[i]的值,本题的错误在于max=MIN的位置错误,max=MIN应该放在for 循环之前,仅在循环之前赋一次值,然后在循环中不断跟新max 的值。 5 在源程序的开始处加上.
scanf 等函数
第 3 页,共 52 页
是合法的
是不合法的,遗漏了数组的大小
是合法的,定义了一个包含两个字符的数组
是合法的,因为数组有三个字符空间的容量,可以保存两个字
中,判断条件设置错误
D. 赋值语句max=MIN; 放错了位置
,以下叙述正确的是 进行文件引用的原因( )。
A.stdio. h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用prinff 、
B. 将stdio. h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行 C. 将stdio. h中标准输入输出函数的源程序插入到引用处,以便进行编译链接 D. 将stdio. h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接 【答案】A 【解析】
文件中包含标准输入输出函数的函数说明,预处理指令
是
指程序可以在该文件中找到printf ,scanf 等函数,因此答案为A 选项。
6. 以下关于指针的叙述,错误的是( )。
A. 两个基类型相同的指针变量不能指向同一个对象 B. 可以通过对指针变量自增、自减来移动指针 C. 只有两个类型相同的指针才能进行减运算
D. —个指针变量可以通过不同的方式获得一个确定的地址值 【答案】A
【解析】只要两个指针变量基类型相同,可以指向同一个对象,A 项正确。
7. 有如下程序:
程序运行后的输出结果是( )。 A.TF B.T C.F D.TFT 【答案】A
【解析】x=0xl8为赋值表达式,十六进制数
非0, 即x 非0, if 条件成立输出T , 之后再输
出F 与回车符。程序运行后的输出结果是TF ,故A 选项正确。
8. 有以下程序(其中k 的初值为八进制数):
程序运行后的输出结果是( )。 A.12 B.11
第 4 页,共 52 页
相关内容
相关标签