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

2016年南昌大学信息工程学院高级语言程序设计之C程序设计复试笔试最后押题五套卷

  摘要

一、选择题

1. 有以下程序:

程序的运行结果是( )。 A.12300 B.123 C.1 D.321 答:B

【解析】

程序开始定义了一个指针文件

然后for 循环语句向文件中依次写入数据。此时以只读方式打开

文件

语句

应该为

打开文件

读取一个整数,但这时它把123作为一个整

数读进来,最后输出n 的值为123。

2. 设有定义:intx=ll,y=12,z=0; ,以下表达式值不等于12的是( )。

A. (z ,x ,y ) B. (z=x,y ) C.z=(x ,y ) D.z=(x==y) 答:D

【解析】逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。D 选项逻辑表达式x==y不成立,则z=0,表达式值为0。B 选项

逗号表达式X ,y 取y 值为表达式值,然后赋值给z=12,表达式值为12。C 选项逗号表达式(x ,y )取y 值为表达式值,然后赋值给z=12,表达式值为12。A 选项逗号表达式(z ,x ,y )取y 值为表达式值12。故选择D 选项。

3. 设变量x 为longint 型并已正确赋值,以下表达式中能将x 的百位上的数字提取出来的是。

A.x/10%100 B.x%10/100 C.x%100/10 D.x/100%10 答:D

x/100结果的个位数上的数字是原来x 的百位数上的数字,【解析】则要得到这个数字只需要再%10即可。

4. 有以下程序:

程序运行后的输出结果是( )。 A.-1 B.0 C.1 D.7 答:A 【解析】

运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当

直到while 判断为0

以后缀形式出现时,贝U 先取值,再进行加一或减一操作。程序中执行

时才跳出循环,执行下条语句,即a 为0时再执行后输出,最终输出的结果为-1。

5. 关于C 语言标识符,以下叙述错误的是( )。

A. 标识符可全部由数字组成 B. 标识符可全部由下划线组成 C. 标识符可全部由小写字母组成 D. 标识符可全部由大写字母组成 答:A

【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、 C 、D 选项正确,答案为A 选项。

6. 有以下函数:

函数的功能是( )。 A. 求字符串的长度 B. 比较两个字符串的大小 C. 将字符串s 复制到字符串t 中 D. 连接字符串s 和字符串t 答:B

【解析】函数体执行过程为:将两个字符串首地址传入函数,分别赋给指针S 与t ,在函数体内8与1所指向 的字符串的字符不为返回值大于0表示字符串串大小的功能。

7. 设有定义:

若变量均已正确赋初值,则以下语句中错误的是( )。

答:A

【解析】A 项错误,struct 中的mark 成员是数组,数组一旦定义,不能直接赋值。B 项正确,numl 是int 变量,可以直接赋值。C 项正确,C 语言中struct 变量可以直接赋值,实际操作是内存拷贝;D 项正确,num2是int 变量,可以直接赋值;C 语言中,数组不能直接赋值,但是把数组包装在struct 中,就可以实现直接赋值。

8. 有以下程序:

程序运行后的输出结果是( )。 A.-1 B.0 C.1 D.7

时,判断两个指针指向的字符是否相同,若相同则两

码值之差。

返回值为0, 表示

函数实现了比较两个字符

个指针分别加一指向下一个字符,若不同则退出while 循环,返回不相同的字符的

返回值小于0表示