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

2017年西藏大学文学院824计算机专业基础综合之C程序设计考研导师圈点必考题汇编

  摘要

一、选择题

1. 若函数中有定义语句

B. 这时k 中的值无定义

C. 系统将自动给k 赋初值-1

D. 这时k 中无任何值

【答案】B 【解析】这条语句是定义一个整型变量k ,这是动态定义,编译程序仅为k 开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值时无意义的。若是静态定义,则会自动初始化,其默认值为0。

2. 表达式:

A.0

B.3

C.4

D.5

【答案】B

【解析】运算符强制类

型转换表达式的形式为:(类型名)(表达式)。转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。

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

A. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型

B. 若要保存带有多位小数的数据,可使用双精度类型

C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D. 整数类型表示的自然数是准确无误差的

【答案】A

【解析】A 项错误,C 语言中没有逻辑类型,在C++中才引入的;B 项正确,float 类型称为单精度类型,double 类型称为双精度类型,一般系统中,为float 类型的变量分配4个字节的存储单元,为double 类型的变量分配8个字节的存储单元。C 项正确,struct 结构体,可以用来描述包含多种基本类型的复杂对象。

第 2 页,共 34 页 则( )。 A. 系统将自动给k 赋初值0 的值是( )。 的优先级高于故先进行除法和求余运算,再进行减法运算。

4. 以下选项中叙述正确的是( )。

A. 使用三种基本结构就可以实现任何复杂算法

B. 只要程序包含了三种基本结构中的任意一种,就是结构化程序

C. 程序语法错误要在运行时才能发现

D.C 语言程序不需要包含main ( )函数

【答案】A

【解析】结构化程序主要由循环结构、选择结构、顺序结构三种基本控制结构组成,它们组成的算法结构可 以解决任何复杂的问题,A 项正确。结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个 相互独立的模块,而不是说包含了三种基本结构就是结构化程序,B 项错误。程序语法错误是在编译过程中发现的,一般来说编译器只能检查语法和最简单的语义错误,而不检查程序的逻辑错误,C 项错误。C 程序总是从 main 函数开始执行,其他函数由main 函数直接或间接调用执行,所以C 语言程序必须包含main 函数,D 项错误。

5. 有以下程序

程序的运行结果是( )。

A.a=2.b=l

B.a_2,b-2

C.a=l, b=l

D.a=l, b=0

【答案】A

【解析】当执行swicth 语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch 语句体内寻找与该值吻合的case 标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case 和default 中的语句,直到switch 语句体结束;每当执行到break 语句时,立即跳出switch 语句体。switch 语句通常总是和break 语句联合使用,使得switch 语句真正起到分支的作用。x=l,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=l,接下来遇到break ,跳出内层switch ; 由于外层分支中没有break 语句,会继续执行外层分支2,执

第 3 页,共 34 页

行a++, b++,此时a=2, b=l; 然后遇到break 语句,跳出外层switch 。

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

A. 如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while 语句

B. 对于“for (表达式1; 表达式2; 表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

C. 对于“for (表达式1; 表达式2; 表达式3)循环体”,只在个别情况下才能转换成while 语句

D. 只要适当地修改代码,就可以将do-while 与while 相互转换

【答案】D

【解析】D 项正确,C 语言中do-while 语句和while 语句作用是等价的,二者可以经过适当的修改互换。A 项错误,do-while 和for 循环也能写成死循环;B 项错误,for 循环首先执行表达式1; C 项错误,for 循环体经过适当的修改都可以转换成while 语句。

7. 有以下程序段

程序的输出结果是( )。

A.a=10b=50c=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c=50

【答案】B

【解析】C 语言中使用;来作为语句的结束,所以a=b, b=c; 是一条语句。if 条件不满足,直接执行c=a。

8. 设有定义:

则以下赋值语句中正确的是( )。

A.s[0]=m[l];

B.s=m;

C.s.l3=m.n;

D.s[2].x=m[2].x;

【答案】A

【解析】定义了结构体类型数组s ,长度为2,结构体类型数组m ,长度为2,并进行了初始化。同类型的结构体可以直接用变量名实现赋值,A 选项正确。数组名为数组首地址,地址常量之间不可以相互赋值,B 选项错误。C 选项引用结构体成员错误,数组名为地址常量不是结构体

第 4 页,共 34 页