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

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.