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

2018年云南大学物理科学技术院832计算机程序设计基础之C程序设计考研核心题库

  摘要

一、选择题

1. 有以下程序:

程序的运行结果是( )。 A.a=l, b=0 B.a=2, b=2 C.a=l, b=l D.a=2, b=l 【答案】D

【解析】x=l,因此外层switch 语句是首先执行case1:后面的语句,进入内层的switch 语句;y=0,执行case0:后面的语句,得a=l,遇到break 语句后退出嵌入的switch 语句。由于外层switch 语句的easel :后面没有break 语句,因此继续执行case2:后面的语句,得a=2,b=l,遇到break 语句后退出第一个switch 语句。结果为a=2,b=l。

2. 有如下程序:

程序运行后的输出结果是( )。 A.15 B.0 C.1 D.10

【答案】D

【解析】static 变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:执行for 循环,i=l,调用函

调用函数sum (2),

退

返回指向init 的指针,输出

3. 有以下程序

for

调。

调用用

数数

程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>

则输出结果是( )。 A.1245 B.1256 C.1278 D.1267 【答案】A

【解析】scanf ( )是格式化输入函数;getehar ( )函数从键盘缓冲区读入下一个

字符;putehar ( )输出一个字符;printf ( )函数是格式化输出函数。在题目中,程序执行到scanf ( )函数时,会暂停等待用户输入4个字符,按题意输入123〈回车〉后,字符1〜3被分别赋值到cl 〜c3中,而c4

会得到一个换行符

然后执行第1个getchar ( )函

数,由于前面的scanf ( )函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用户输入,按题意输入45678〈回车〉后,缓冲区第一个字符4赋值c5, 第二个字符5赋值给c6。

4. 以下关于C 语言数据类型使用的叙述中错误的是( )。

A. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型 B. 若要保存带有多位小数的数据,可使用双精度类型

C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D. 整数类型表示的自然数是准确无误差的 【答案】A

【解析】A 项错误,C 语言中没有逻辑类型,

中才引入的;B 项正确,float 类型称为

单精度类型,double 类型称为双精度类型,一般系统中,为float 类型的变量分配4个字节的存储单元,为double 类型的变量分配8 个字节的存储单元。C 项正确,struct 结构体,可以用来描述包含多种基本类型的复杂对象。

5. 若有定义:inta ,b :

通过语句

能把整数3赋给变量a , 5赋给变量b 的输入数据是( )。 A.3, 5 B.3;5 C.35 D.35

【答案】B

scanf 函数中如果使用通配符, 【解析】则在输入数据时也必须使用相同的通配符与它相匹配。

6. 若有定义:inta=0,b=0, c=0, d=0; ,有C

语言表达式以下关于其执行顺序的叙述正确是( )。

A. 先执行a++, 表达式a++的值为0,短路,得a++,执行它

B. 先执行a++,表达式a++的值为0; 再执行b++,表达式b++的值为0,

由此可确定值为0,因此执行d++

C. 先执行a++,表达式a++的值为1; 再执行b++,表达式b++的值为1,

由此可确定值为1, 因此执行C++

D. 先执行b++,表达式b++的值为1; 再执行a++,表达式a++的值为1,

由此可确定值为1,因此执行C++