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

2017年中国人民公安大学刑事科学技术822公安技术综合之C程序设计考研强化模拟题

  摘要

一、选择题

1. 在C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A.auto 和 register B.extern 和 register C.auto 和 static D.static 和 register 【答案】A

【解析】C 语言中,动态存储区域中存放的变量在使用时才分配内存空间,函数调用时返回auto 变量的储存处单元是分配在内存的动态的地址和自动类 局部变量等存放在动态存储区域中。

存储区中,每当进入函数体时自 动分配存储单元。register 变量也是自动类变量, 。static 说明的变extern 量为静态变量,静态变量在内存的静态存储中 占据着永久的存储单元,直至程序运行结束。说明的变量为外部变量,属于全局变量,全局变量在整个程 序运行期间都占用内存空间。

2. 有如下程序:

程序运行时,输入则输出结果是( )。 A.1234 B.4321 C.4444 D.1111 【答案】B

【解析】在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。本题程序的 执行过程为:在输入1234〈回车〉的情况下,调用人1,

在这次调用中的局部变量

条件成立→调用

第 2 页,共 37 页

函数,读

函数,读入2, 局部变量

调用调用

函数,读入3, 局部变量•调用函数,读入4,

局部变量

函数,读入回车,if 条件不成立,返回执行每次调用函数中if 语句后的输

出语句,即依次输出4321。故B 选项正确。

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

A.C 程序总是以main ( )作为程序执行的起始行 B.main ( )函数若不带参数,其后面的一对圆括号可省略 C. 函数体内的定义语句和可执行语句允许任意穿插出现 D.C 语言中的语句之间必须用分号作为分隔符 【答案】A

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

4. 有如下定义:

以下对内嵌结构体成员的引用形式错误的是( )。

【答案】A

【解析】使用结构体指针对结构体成员进行访问时,形式为结构指针名->结构成员名,或者(*结构指针名). 结构成员名,题目中ps 为结构体指针,A 项错误。

5. 有以下程序

第 3 页,共 37 页

程序运行后的输出结果是( )。 A.235 B.0235 C.02356 D.2356 【答案】A

【解析】第一次循环k 为5, 执行为3, 第二次循环k 为3,执行执行

输出n 为2, k 的值

输出n 为3, k 的值为2, 第三次循环k 为2,

,输出n 为5, k 的值为1,循环条件不成立,所以输出235。

6. 下面结构体的定义语句中,错误的是( )。

【答案】B

【解析】C 语言中结构体变量的定义有3种方法:①定义结构体类型的同时定义结构体变量,如C 项;②使 用无名结构体类型定义结构体变量,如D 项;③先定义结构体类型,后定义结构体变量,如A 项。

7. 设有定义:

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

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

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

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

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

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

A. 只使用三种基本结构即可解决任何复杂问题 B.C 语言程序并不是必须要定义main ( )函数 C. 只要程序包含了任意一种基本结构,就肯定是结构化程序 D. 程序中的语法错误只能在运行时才能显现 【答案】A

【解析】A 项正确,程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达

第 4 页,共 37 页