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

2017年北京理工大学软件工程C语言程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 有以下程序(注:字符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。

2. 有以下程序:

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

A.-1

B.0

C.1

D.7

【答案】A

【解析】“++”和“一”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,贝晚取值,再进行加一或减一操作。程序中执行直到while 判断为0时才跳出循环,执行下条语句,即a 为0时再执行后输出,最终输出的结果为-1。

3. 以下选项中可用作c 语言中合法用户标识符的是( )。

A._123

B.void

C.-abc

D.2a

【答案】A

【解析】合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字

B 项中void 符必须为字母或下划线,其中,关键字在程序中都代表着固定的含义,不能另作他用。

是关键字,不合法。C 项和D 项没有以字母或下划线开头,不合法。

4. 以下选项中与语句功能不同的switch 语句是( )。

【答案】B

【解析】在switch 语句的执行过程中,执行完case 后面的语句后,如果遇到break 语句就停止,否则将继续执行下一个case 中的语句,直到遇到break 语句。B 项,当a==1是

a=b, 刚好和题干要求相反。

5. 以下选项中不合法的标识符是( )。

【答案】C

【解析】标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。语法规则为:①标识符由字母、数字或下画线组成;②第一个字符必须是字母或下画线;③标识符最多由274个字符组成;④在标识符中严格区 分大小写字母;⑤关键字不能作为自定义的标识符在程序中使用。

6. 有以下程序

执行后的输出结果是( )。

A.32

B.24

C.5

D.40

【答案】A

【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1之前的值)是否能被5整除(判断后i 被加1),然后再判断++i的值(i 加1之后的值)是否能

,被8整除(判断后i 被加1)若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,

此时i=31,++i%8==0成立,此时i=32。

7. 若函数中有定义语句intk ;,则( )。

A. 系统将自动给k 赋初值0

B. 这时k 中的值无定义

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

D. 这时k 中无任何值

【答案】B

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

8. 若有定义语句intx=10; 则表达式x-=x+x的值为( )。

A.-20

B.-10

C.0

D.10

【答案】B

【解析】赋值表达式,首先计算右边表达式,然后在进行赋值。先做x+x,结果为20,再做x-20,结果为-10,赋值给X 。

二、设计题

9. 请根据以下各小题的要求设计C 应用程序(包括界面和代码)。

请编写函数fun ( ),该函数的功能是:计算并输出给定整数n 的所有因子(不包括1和自身)之和。规定n 的值不大于1000。例如,在主函数中从键盘给n 输入的值为856, 则输出为: