2017年北京农学院计算机与信息工程学院341农业知识综合三(农业信息化)之C程序设计考研冲刺密押题
● 摘要
一、选择题
1. 有如下程序:
程序运行后的输出结果是( )。
A.MN
B.LK
C.OP
D.MM
【答案】B
ch —后值为‘L ’,【解析】程序执行过程为:定义字符变量ch=‘M ’,判断ch!=‘K ’成立,
输出L ; 判断ch!=‘K ’成立,ch —后值为‘K ’,输出K ; 判断ch!=‘K ’不成立,退出循环。程序运行后的输出结果为LK 。
2. 有以下程序
程序运行后的输出结果是( )。
A.1
B.10
C.11
D.2
【答案】A
【解析】初始化后,s 指向数组a 的首元素,在调用函数fun 时,形参s 和实参s 是两个独立的int 型指针,在fun 函数内部,形参s 指向新的存储空间,但是不会影响实参s 的指向。所以,在main 函数中,s 仍然指向数组a 的首元素,输出结果是1。
3. 关于地址和指针,以下说法正确的是( )。
A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量
B. 可以取一个常数的地址赋值给同类型的指针变量
C. 可以取一个表达式的地址赋值给同类型的指针变量
D. 可以取一个指针变量的地址赋值给基类型相同的指针变量
【答案】A
【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的 地址赋给指针变量没有任何意义,C 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变 量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C 语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为A 选项。
4. 已知字母A 的ASCII 码值为65,若变量kk 为char 型,以下不能正确判断出kk 中的值为大写字母的表达式是( ) A. B. C.
D.
【答案】B
B 项,
【解析】表达式等价为无法判断kk 中的值是否为大写字母,逻辑错误。
大写字母的ASCII 码值是65〜90, 小写字母的ASCII 码值是97〜122,isalpha (kk )是判断kk 是否是字母的函数,是字母并且字母ASCII 值小于91的一定为大写字母。
5. 若变量均己正确定义并赋值,以下合法的c 语言赋值语句是( )。
A.x=y==5;
B.x=n%2.5;
C.x+n=i;
D.x=5=4+l;
【答案】A
【解析】A 项正确,y==5返回0或者1,然后赋值给x 。B 项错误,浮点数不能参与模运算;C 项错误,x+n是右值,不能给它赋值;D 项错误,5是常量,不能被赋值。
6. 程序运行后的输出结果是( )。
A.14.0
B.31.5
C.7.5
D. 程序有错无输出结果
【答案】D
【解析】宏定义有两种:无参数的宏定义,即#definePT3.5; 带参数的宏定义,不能用宏来计算,宏只能做简单的代替而不能做计算,故程序会报错。
7. 若有以下程序
则程序的输出结果是( )。
【答案】A
【解析】当把结构体变量中的数据作为一个整体传送给相应的形参时,传递的是实参结构体变量中的值,系统将为结构体类型形参开辟相应的存储单元,并将实参中各成员的值一一对应赋给形参中的成员,函数中形参结构体变量的改变不会影响到实参结构体变量。所以,在函数f 中对a , b 的操作不会影响main 函数中a , b 的值。
8. 有以下程序: