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

2018年广东工业大学计算机院831数据结构与C语言[专硕]之C程序设计考研仿真模拟五套题

  摘要

一、选择题

1. 以下不能对文件进行输出的库函数是( )。

A.fwrite

B.fputs

C.fpout

D.fprintf

【答案】C

【解析】fwrite 函数的功能是用来向文件写数据块。fputs 函数的功能是用来向指定文件输出一个字符串。fprintf 函数按照格式向文本文件中输出数据。这三者都是库函数,而fpout 不是库函数。

2. 若程序中有宏定义行:

#defineN100

则以下叙述中正确的是( )。

A. 宏定义行中定义了标识符N 的值为整数100

B. 在编译程序对C 源程序进行预处理时用100替换标识符N

C. 上述宏定义行实现将100赋给标识符N

D. 在运行时用100替换标识符N

【答案】D

【解析】D 项正确,预处理程序对源程序中所有使用宏名的地方进行直接替换。A 项错误,宏定义没有类型限制;B 项错误,预处理程序进行宏替换,而非编译程序;C 项错误,宏定义不是赋值操作,而是进行在预编译时进行替换。

3. 有以下程序:

程序运行后的输出结果是( )。

A.32

B.12

C.21

D.22

【答案】C

【解析】C 语言中函数参数传递满足“单向传递”,实现传递值的功能,实参能传给形参,形参却不能传回 给实参。fun 函数体内输出p 的值为2,并不影响到fun 函数外a 的值,a 的值在main 函数内依然为1。

4. 设有定义:

【答案】A 以下选项中,表达式值与其他三个不同的是( )。

【解析】赋值运算结合性为由右向左结合,成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。A 项,逻辑表达式

值给b , 再将b 赋给a ,

D 项,逻辑表达式

5. 有如下程序:

程序运行后的输出结果是( )。

A.8, 0

B.4, 0

C.4, 1

D.8, 1

【答案】A 【解析】右移运算符,按位右移运算规则是将一个操作数先转换成二进制数,然后将二进制数各位右移若干位,移出的低位舍弃,并在高位补位。若为无符号数,右移时左边高位移入0。a=8=01000, 执行后,a=000l0=2, b=2%2=0, 输出a ,b 为8,0,故A 项正确。

6. 以下使指针指向一个字符串的选项错误的是( )。 A. B.

不成立,则表达式值为0; B项,将C 赋成立,则表达式值为1; 表达式值为1; C项,逻辑表达式成立,则表达式值为1。A 项与其他项不同。

C.

D.

【答案】A

表示指针ps 指向地址的内容,而不是地址,无【解析】A 项中定义了指针ps 后,

法将str 的首地

址赋给一个常量,语法错误。

7. 有以下程序:

程序的运行结果是( )。

A.21

B.6

C.123456

D.11

【答案】A

【解析】程序执行过程为:以读/写方式打开一个新的二进制文件从地址为a 的数据块开始,一次输出一个整型字节的数据,只输出一次,将1写入文件中;执行for 循环,将文件指针移到文件开头,将文件第一个数值读出赋给k ,再将指针移动到开头,

向文件内输入

循环实现将a 数组中元素累加,结果21存放在文件中。调用rewind 将文件指针移

动到开头,调用fread 函数从文件中读出一个整型数据赋给k=21,调用fclose 函数关闭文件,打印k 值,故A 项正确。

8. 有如下程序: