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

2018年北京市培养单位遗传与发育生物学研究所864程序设计之C程序设计考研核心题库

  摘要

一、选择题

1. 设a , b ,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。

A.a=(b=3)=1; B.a=(b=2)+c; C.a=b=c+10; D.a=l+(b=c=2): 【答案】A

【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。A 项中,赋值运算(b=3)=1, 左值为表达式,不是变量不能被赋值,A 项错误。B 项运算过程为,先赋值b=2, 再计算b+c,将结果赋给a ,是正确的赋值语句。C 项运算过程为,先计算c+10将结果赋给b , 再将b 赋给a ,是正确的赋值语句。D 项运算过程为,先将2赋给c , 再将c 赋给b , 然后计算1+b, 将结果赋给a , 是正确的赋值语句。

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

A.C 程序的基本组成单位是语句 B.C 程序中的每一行只能写一条语句 C. 简单C 语句必须以分号结束 D.C 语言必须在一行内写完 【答案】C

【解析】在C 语言中,每条语句必须以分号结束。A 项错误,C 程序的基本组成单位是函数;BD 两项错误,C 程序一行能写多条语句,也可以将一条语句分几行书写。

3. 有以下程序:

程序运行后的输出结果是( )。 A.1, 2 B.3, 4 C.5, 6

D.123, 456 【答案】C

【解析】程序中首先定义一个一维数组,

然后将数组中的值写入到5和6。

4. 设有定义:

以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。

【答案】C 【解析】C 项,

格式符输入字符串时,空格和回车符都作为输入数据的分隔符而不能被

格式读入单个字符,空格、

读入。A 项,gets 函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止;B 项,getchar ( )函数从终端 读入一个字符作为函数值;D 项,回车符和Tab 键都将作为字符读入。

5. 若有定义: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 项正确。

中,然后再从中

读出数组中的元素,每次读出2个元素,分别赋值给k 和n , 循环执行3次,故最终k 和n 的值为

执行值

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

_'

值为1,因

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

6. 有以下程序:

程序运行后的输出结果是( )。 A.1, 2, 1, 2 B.1, 2. 2, 1 C.2, 1, 2, 1 D.2, 1. 1, 2 【答案】B

【解析】本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。

7. 若已有定义语句:inta ,b ,c ; ,且变量已正确赋初值,则以下选项中正确的赋值表达式是( )。

A.a=(b=c)+8; B. (a=b)=c=9; C.a=(b==c)=‘A ’; D.a+b=c+l; 【答案】A

【解析】A 项正确,将c 赋值给b 后又加上8,然后再赋值给a ; B 、D 项错误,赋值运算符左边必须是一个变量;C 项错误,(b==c)是个表达式,语法错误。

8. 为了建立如图所示的存储结构(即每个结点含两个域,data 是数据域,next 是指向结点的指针域),则在

处应填入的选项是( )。

【答案】C

【解析】结构体中的成员可以是各种类型的指针变量。当一个结构体中有一个或多个成员的