2017年湖南师范大学数学与计算机科学学院967C语言程序设计和数据结构[专业硕士]之C程序设计考研强化模拟题
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.12
B.11
C.10
D.9
【答案】C 【解析】
2. 有以下程序
表示按照八进制赋值,则十进制数为9, 所以输出++x的结果为10。
程序的运行结果是( )。
【答案】B
【解析】struct 变量作为形参和返回值时,传递的是结构体类型的值。f 函数中,把b 变量赋值给a ,然后将a 返回并赋值给d ,所以,d 中的数据与b 的数据相同。
3. 若有函数声明
:以下叙述正确的是( )。
A. 函数参数array ,ptr 都是指针变量
B. 函数参数array 不是指针变量,ptr 是指针变量
C. 调用函数时,实参数组的值将一一复制给array 数组
D. 调用函数时,array 是按值传送,ptr 是按地址传送
【答案】A
【解析】数组名为数组的首地址,也是指向数组的指针,所以array 和ptr 都是指针,A 项正确,B 项错误。调用函数时,将实参数组首地址赋给指针array , 而不是传递整个数组元素,C 项错误。调用函数时,ar-ray 与ptr 都是按地址传送的,D 项错误。
4. 若有定义语句intx=12,y=8,z ;,
其后执行语句则z 的值为。
A.1.9
B.1
C.2
D.2.4
【答案】B
【解析】根据优先级先计算x/y, 即12/8,由于是整型,故x/y的值为1,接着计算0.9+1=1.9,由于z 定义为整型,故最终结果为1。
5. 设变量已正确定义并赋值,以下正确的表达式是( )。
【答案】C
【解析】赋值运算左边必须是单一变量名。A 项错误,
错误,求余运算中的操作对象只能是整型。C 项,为逗号表达式。
6. 设有以下函数:
【答案】A
【解析】函数指针的一般定义形式为数据类型(*指针变量名)( )。D 项中,
部分是非法赋值。BD 两项
带有两个数据类型,不符合函数指针定义。
7. 下列叙述中正确的是( )。
A. 每个C 程序文件中都必须要有一个main 函数
B. 在C 程序中main 函数的位置是固定的
C.C 程序中所有函数之间都可以相互调用
D. 在C 程序的函数中不能定义另一个函数
【答案】D
【解析】D 项正确,C 语言语法规定,在函数中不能定义其他函数。A 项错误,C 程序必须要有一个main 函数,但并不是每个文件中都要有;B 项错误,main 函数的位置没有特殊要求;C 项错误,从其他函数中不能调用main 函数。
8. 设变量均已正确定义,若要通过
语句为变量al 和a2赋数值10和20, 为变量cl 和c2赋字符X 和Y 。以下所示的输入形式中正确的是(注:口代表空格字符)( )。
A.
B. C.
D.
【答案】A
【解析】因为空格和回车也是字符变量,所以在输入X 和Y 时,它们的前面不能有空格和回车,否则将取到空格或者回车,而非X 和Y ; int 类型不会取到空格和回车,所以10和20前面可以有空格和回车。
9. 设有一个的矩阵已经存放在一个M 行N 列的数组x 中,且有以下程序段:sum=0;
以上程序段计算的是( )。
A. 矩阵两条对角线元素之和
B. 矩阵所有不靠边元素之和
C. 矩阵所有元素之和
D. 矩阵所有靠边元素之和
【答案】D
【解析】程序执行过程为:第一个for 循环实现对第一列和第N 列求和。第二个for 循环在上一个for 循环结果上实现对第一行和第M 行从第二个元素到第N-1个元素的求和,总体来说,就