北京师范大学c语言题库,2017年北京师范大学数学科学学院805数据结构(C语言版)之C程序设计考研强化模拟题...

一、选择题

1. 有以下程序:

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

A.10

B.11

C.20

D.21

【答案】D

【解析】题中定义了一个包含两个元素的结构体数组,其中data[0].a=10,data[0].b=100,data[l].a=20,data[l].b=200。指针p 指向结构体数组的第2个元素,那么p.a 的值为20, p.b 的值为200, 所以输出结果为21。

2. 程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s 、p 、q 均已正确定义,并用于指向链表结点,指针变量s 总是作为头指针指向链表的第一个结点。

若有以下程序段

该程序段实现的功能是( )。

A. 删除首结点

B. 尾结点成为首结点

C. 首结点成为尾结点

D. 删除尾结点

【答案】C

【解析】进过while 循环后,p 指向链表的尾结点

第 2 页,共 41 页 是把q 置为p 的next 结点

q 的next 结点为空,此时q 结点成为链表的尾结点。

3. 有以下程序

程序的运行结果是( )。

A.6

B.5

C.4

D.3

【答案】B

【解析】条件运算符语法形式为:执行规则为:计算表达式expl 的值,测试其是否为0; 如果expl 的值非0, 则对exp2求值,并把这个值作为条件表达式的

结果输出,不计算exp3; 如果expl 的值为0,则对exp3求值,并把这个值作为条件表达式的结果输出,不计算exP2。函数ml 实现返回传入两个参数中的最小值。函数m2实现返回传入两个参数中的最大值。函数fun 实现返回传入两个参数之和。程序执行过程为:调用ml (2, 3)返回2, 调用m2(3, 1)返回3, 调用fun (2,3)返回5,输出结果5,故B 项正确。

4. 设有定义intx=2;,以下表达式中,值不为6的是( )。

A.x*=x+l

B.x++, 2*x

C.x*=(1+x)

D.2*x, x+=2

【答案】D

,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)

即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。

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

A.C 程序的基本组成单位是语句

B.C 程序中的每一行只能写一条语句

C. 简单C 语句必须以分号结束

D.C 语言必须在一行内写完

【答案】C

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

第 3 页,共 41 页

6. 表达式

A.9

B.-9

C.18

D.0

【答案】D

【解析

J

的值是( )。 计算顺序为

首先

最后,

7. 有以下程序(注:字符a 的ASCII 码值为97):

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

A.abc

B.789

C.7890

D.979800

【答案】B

【解析】a 、b 、c 的ASCII 值分别为97、98、99。程序中执行输出S 中的内容与10进行模运算后的值,s 是一个指针,首先指向字符a ,先执行97%10, 结果为7; 然后++s,指针指向下一个字符b ,执行98%10, 结果为8, 直到s 所指为空,故最后输出的结果为789。

8. 有如下程序:

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

A.Ta=0,b=l

B.Fa=l,b=2

C.Ta=l,b=2

D.Fa=0,b=2

【答案】C

第 4 页,共 41 页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值