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表示