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

2016年长安理工大学计算机科学技术学院程序设计考研复试题库

  摘要

一、选择题

1. 关于C 语言中数的表示,以下叙述中正确的是( )。

A. 只有整型数在允许范围内能精确无误地表示,实型数会有误差 B. 只要在允许范围内整型和实型都能精确表示

C. 只有实型数在允许范围内能精确无误地表示,整型数会有误差 D. 只有八进制表示的数才不会有误差 答:A

【解析】实型数据在内存中存储的二进制位数是有限的,而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。在整形数允许范围之内,二进制可以 表示任意一个整数。

2. 若有定义:inta=0,b=0,c=0,d=0; ,以下关于C 语言表达式:顺序的叙述正确的是( )。

A. 先执行++a,表达式++a的值为1; 再执行++b,表达式++b的值为1,由此可确定为1,因此执行++C

B. 先执行++a, 表达式++a的值为1, 由此可确定值为1, 因此执行++C

D. 先执行++a, ++b,++c,++d,使得a , b , c ,d 的值都为1, 由此可确定此执行++C

答:B

【解析】++a表示先将变量a+1, 再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式

中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2, 即++C,B 项正确。 3 设有定义inta=0, b=l;, 以下表达式中,,

会产生“短路”现象致使变量b 的值不变的是( )。.:

A.

B.

C.

D. 答:D

【解析】++放在变量前面时,表示将变量+1, 再参与其他操作,D 项,值是0直接判定与运算结果为0, 忽视b++的值,因此b 值不发生改变。

第 2 页,共 34 页

执行值

|值为1, 因此执行++c

_'

值为1,因

C. 先执行++b, 表达式++b的值为1; 再执行++a, 表达式++a的值为1,由此可确定’

时,由于a

4. 有以下程序:

程序运行时若输入:

则输出结果是

答:B

【解析】scanf 语句接收字符串时遇到空格就认为字符串的结束,但是gets 函数遇到回车才认为结束。本题中将第一个空格的前半部分赋值给a , 将第一个空格以及后面的部分赋值给b 。

5. 若有以下程序

则程序的输出结果是( )。

答:A

【解析】当把结构体变量中的数据作为一个整体传送给相应的形参时,传递的是实参结构体

第 3 页,共 34 页

变量中的值,系统将为结构体类型形参开辟相应的存储单元,并将实参中各成员的值一一对应赋给形参中的成员,函数中形参结构体变量的改变不会影响到实参结构体变量。所以,在函数f 中对a , b 的操作不会影响main 函数中a , b 的值。

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

A. 只要是用户定义的标识符,都有一个有效的作用域

B. 只有全局变量才有自己的作用域,函数中的局部变量没有作用域 C. 只有在函数内部定义的变量才是局部变量 D. 局部变量不能被说明为static 答:A

【解析】A 项正确,标识符的“作用域”是指程序中的某一部分中,标识符是有定义的,可以被C 编译和 连接程序所识别。在C 语言中,由用户命名的标识符都有一个有效的作用域。B 项;C 项错误,在函数内部或复合语句内错误,局部变量的作用域是所 在的函数体(或复合语句)

部定义的变量,称为局部变量;D 项错误,在 函数体(或复合语句)内部用static 来说明一个变量时,变量为静态局部变量。

7. 有以下程序:

程序的运行结果是( )。 A.5, 0 B.6, 0 C.5, -1 D.6,-1 答:C

【解析】程序执行过程为:执行do …while 的循环体:y=5,判断y 为真,x=l; y=4, x=2; y=3, x=3; y=2,x=4; y=l, x=5; y=0,判断y 为假,退出循环体。判断y=0为假,y=—1,退出循环。输出x , y 为5,-1, 故C 项正确。

8. 有以下程序:

第 4 页,共 34 页

条件