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

2017年西华师范大学C语言程序设计(同等学力加试)之C语言程序设计考研复试核心题库

  摘要

一、选择题

1. 关于地址和指针,以下说法正确的是( )。

A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量

B. 可以取一个常数的地址赋值给同类型的指针变量

C. 可以取一个表达式的地址赋值给同类型的指针变量

D. 可以取一个指针变量的地址赋值给基类型相同的指针变量

【答案】A

【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的 地址赋给指针变量没有任何意义,C 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变 量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C 语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为A 选项。

2. 有以下定义inta ;longb ;doublex , y ;,则以下选项中正确的表达式是( )。

D.y=x+y=a

【答案】A

【解析】%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A 项正确,x-y 结果为double 型,但是通过强制类型转换将其转换为int 型;B 项错误,中==和!=是同一个优先级的,先运行a==x,而因为double 是占8位的,不能自动转换,必须要强制类型转换

才是正确的;C 项错误,(a*y)%b中的(a*y)为double 型;D 项错误,x+y不

能作为左值。

3. 以下选项中不能用作C 程序合法常量的是( )。

【答案】A

A 项错误。BD 两项为字符常量;C 项为数值常量。 【解析】常量分为数值常量和字符串常量,

4. 若在程序中变量均已定义成int 类型,且已赋大于1的值,贝!J 下列选项中能正确表示代数

式的表达式是( )。

A.1.0/a/b/c

B.1/(a*b*c)

C.1.0/a*b*c

D.1/a/b/(double )c

【答案】A

【解析】abc 均大于1, 所以表达式1/abc小于1,需要用浮点类型表示。若要计算表达式值,需要使其自动转化成浮点类型,A 项正确。B 项变量与常量均为整型,不会自动转换为浮点类型,B 项错误。C 项表示表达式be/a,错误。D 项,算数运算法结合性自左向右,先计算1/a,结果为0, 之后的计算无论是否转换数据类型结果均为0, D 项错误。

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

A.C 程序总是以main ( )作为程序执行的起始行

B.main ( )函数若不带参数,其后面的一对圆括号可省略

C. 函数体内的定义语句和可执行语句允许任意穿插出现

D.C 语言中的语句之间必须用分号作为分隔符

【答案】A

【解析】main ( )函数后面的括号告诉编译器这是一个函数,不可以省略,排除B 选项;在复合语句中, 不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C 选项;C 语言中的某 些语句可以不用分号,例如if 语句,宏定义,故D 选项错误;答案为A 选项。

6. 有以下程序

程序输出( )。

A.0, 0, 0, 3

B. 编译有错

C.1, 1, 2, 0

D.0, 1, 2, 0

【答案】B

【解析】c=2不属于if 子句,它是在if 和else 之间的语句,如果该if 子句含有多个语句(两个以上),则必须使用复合语句,即用花括号把一组语句括起来。在程序中else 必须与if 配对,

共同组成一条if-else 语句,中间不能出现其他语句。

7. 为了避免在嵌套的if-else 语句中产生二义性,C 语言规定与else 子句配对是( )。

A. 与其在同一行上的if 子句

B. 在其之后最近的不带else 的if 子句

C. 与其缩排位置相同的if 子句

D. 在其之前最近的不带else 的同层if 子句

【答案】D

【解析】if 总是与它上面最近的、未配对的else 配对。

8. 有如下程序:

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

A.MN

B.LK

C.OP

D.MM

【答案】B

ch —后值为‘L ’,【解析】程序执行过程为:定义字符变量ch=‘M ’,判断ch!=‘K ’成立,

输出L ; 判断ch!=‘K ’成立,ch —后值为‘K ’,输出K ; 判断ch!=‘K ’不成立,退出循环。程序运行后的输出结果为LK 。

二、设计题

9. 规定输入的字符串中只包含字母和*号。请编写函数fun ,其功能是:使字符串中尾部的*号不多于n 个若多于n 个,则删除多余的*号;若少于或等于n 个,则不做任何操作,字符串中间和前面的*号不删除。例如,字 符串中的内容为

后,字符串中的内容应;

函数。

注意:部分源程序给出如下。

请勿改动主画数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干

若n 的值为4,删除若n 的值为7,

则字符串中的内容仍为n 的值在:函数中输入。编写函数时,不得使用C 语言提供的字符串