2016年赣南师范学院脐橙学院C语言程序设计复试笔试最后押题五套卷
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.6 B.21 C.123456 D.654321 答:A
【解析】本题首先定义文件指针变量fp 和数组入数据
再打开文件
随后先给文件写
rewind 函数将文件指针从当前位置重新指向文件开始位置,所以for 循环依次将数组a
中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时fp 指向的数据(即文件中第一个数据6)写入变量k 中,关闭文件,输出k 值,A 项正确。
2. 设有定义:
以下不能将一行(不超过80个字符)带有空格的字符串正确
读入的语句或语句组是( )。
A. B. C. D.
答:C
【解析】字符串的输入有两种方式:使用scanf ( )函数和使用get ( )函数。scanf 输入时,遇到控制字符 (空格,换行等)就认为字符输入结束,当字符串中含有空格时,用scanf 输入导致字符串输入不完整。
3. 表达式:(int )((double )9/2-(9)%2)的值是( )。
A.0 B.3 C.4 D.5 答:B
,【解析】运算符“/”“%”的优先级高于“-”故先进行除法和求余运算,再进行减法运算。强制类型转换表达式的形式为:(类型名)(表达式)。“9/2”转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。
4. 若有定义语句:
以下叙述中错误的是( )。
A. 定义语句中的p 只能存放double 类型变量的地址 B. 定义语句中的*号是一个说明符 C. 定义语句中的*号是一个间址运算符
D. 定义语句中*p=&a把变量a 的地址作为初值赋给指针变量p 答:C
【解析】C 项错误,只有取指针变量的值时,星号*才是间址运算符,引用指针指向的存储单元。A 项正确, p 是double 类型的指针,只能存放double 类型的地址;B 项正确,定义指针变量时,星号是一个说明符,用来说明该变量是指针变量;D 项正确,用来求出double 变量a 的地址赋给指针变量p ,而使p 指向a 。
5. 有以下程序:
程序运行时若输入:
则输出结果是
是求地址运算符,
。
答:B
【解析】scanf 语句接收字符串时遇到空格就认为字符串的结束,但是gets 函数遇到回车才认为结束。本题中将第一个空格的前半部分赋值给a , 将第一个空格以及后面的部分赋值给b 。
6. 以下选项中有语法错误的是 。
A. B. C. D. 答:D
【解析】考查指针数组的概念,选项D 中str 为二维字符数组,不能直接把一个字符串赋值到二维数组的某一行中。
7. 有以下程序
若运行时输入:2 4 6<回车>,则输出结果为( )。 A.2 0 4 B.2 0 0 C.2 4 0 D.2 4 6 答:A
【解析】在二维数组x 中,
其值依次为二维数组每行第一个元素的地址,其基
类型就是数组元素的类型,即
8. 以下程序的主函数中调用了在其前面定义的函数fun :
则以下选项中错误的fun 函数首部是( )。
A. B. C. D.