才华君

位置:首页 > 社会工作 > IT认证

2017年计算机二级考试C语言练习试题

IT认证2.63W

  计算机二级考试C语言练习试题一

1). 以下叙述中错误的是( )

2017年计算机二级考试C语言练习试题

A.预处理命令行的最后不能以分号表示结束

B.C程序对预处理命令行的处理是在程序执行的过程中进行的

C.#define MAX 是合法的宏定义命令行

D.在程序中凡是以″#″开始的语句行都是预处理命令行

正确答案:B

答案解析:预处理命令行是以″#″开始的语句,预处理命令行的最后不能以分号表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:# define 标识符 字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。

2). 按照″后进先出″原则组织数据的数据结构是( )

A.队列

B.栈

C.双向链表

D.二叉树

正确答案:B

答案解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后插入的元素,也是最先被删除的元素;栈底元素总是最先插入的元素,也是最后才能被删除的元素。即栈是按照″后进先出″(Last In First Out,简称LIFO)或″先进后出″(First In Last Out,简称FILO)的原则组织数据的。因此,栈也称为″后进先出表″或″先进后出″表。

3). 以下程序段完全正确的是( )

k, *p=&k; scanf(″%d″, p);

*p; scanf(″%d″, p);

*p; scanf(″%d″, &p);

k, *p; *p=&k; scanf(″%d″, p);

正确答案:A

答案解析:选项B没有对指针进行初始化,无效指针。选项C错在没有对指针进行初始化,无效指针,并且在scanf(″%d″,&p)中无需再进行取地址操作。选项D,语句*p=&k;的左端*p是指针所指内存空间的值,&k是地址,应为p=&k。

4). 下列有关数据库的描述,正确的是( )。

A.数据库设计是指设计数据库管理系统

B.数据库技术的根本目标是要解决数据共享的问题

C.数据库是一个独立的系统,不需要操作系统的支持

D.数据库系统中,数据的物理结构必须与逻辑结构一致

正确答案:B

答案解析:数据库设计的目的实质上是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。

5). 若程序中有宏定义行: #define N 100 则以下叙述中正确的是 ( )

A.宏定义行中定义了标识符N的值为整数100

B.上述宏定义行实现将100赋给标示符N

C.在运行时用100替换标识符N

D.在编译程序对C源程序进行预处理时用100替换标识符N

正确答案:D

答案解析:在C语言中,凡是以″#″号开头的行,都称为″编译预处理″。其含义是在C编译程序对C源程序进行编译前,由编译预处理程序对这些编译预处理命令进行处理的过程。由#define定义的宏就是编译预处理命令。C程序在进行编译之前,都要先对程序中所有出现的″宏名″,都用宏定义中的替换文本进行替换。

  计算机二级考试C语言练习试题二

1). 关于C语言的变量,以下叙述中错误的是( )

A.所谓变量是指在程序运行过程中其值可以被改变的量

B.变量所占的存储单元地址可以随时改变

C.程序中用到的所有变量都必须先定义后才能使用

D.由三条下划线构成的符号名是合法的变量名

正确答案:B

答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。

2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )

A.(c==2)||(c==4)||(c==6)

B.(c>=2 && c<=6)&& !(c%2)

C.(c>=2 && c<=6)&&(c%2!=1)

D.(c>=2 && c<=6) || (c!=3) || (c!=5)

正确答案:D

答案解析:逻辑或运算中,只要有一项为真,表达式的'值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

3). 在C语言中,函数返回值的类型最终取决于

A.函数定义时在函数首部所说明的函数类型

rn语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

正确答案:A

答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。

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

A.在C语言中,预处理命令行都以″#″开头

B.预处理命令行必须位于C源程序的起始位置

C.#include 必须放在C程序的开头

D.C语言的预处理不能实现宏定义和条件编译的功能

正确答案:A

答案解析:在C语言中,凡是以″#″号开头的行,都称为″编译预处理″命令行。预处理命令可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译三类。#include 命令行表示程序中要引用C标准函数库中的标准输入输出函数。

5). 下列叙述中,不属于测试的特征的是

A.测试的挑剔性

B.完全测试的不可能性

C.测试的可靠性

D.测试的经济性

正确答案:C

答案解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。

6). 以下选项中不属于C语言标识符的是( )

A.用户标识符

B.关键字

C.常量

D.预定义标识符

正确答案:C

答案解析:C语言的标识符可分为以下3类:①关键字。C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,int、double、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。

7). 以下关于字符串的叙述中正确的是( )

A.两个字符串中的字符个数相同时才能进行字符串大小的比较

B.可以用关系运算符对字符串的大小进行比较

C.空串比空格打头的字符串小

D.C语言中有字符串类型的常量和变量

正确答案:C

答案解析:C语言本身并没有设置一种类型来定义字符串变量,却允许使用″字符串常量″。字符串常量是由双引号括起来的一串字符。任意两个字符串的大小比较要调用字符串比较函数strcmp(s1,s2 )来进行,其比较的方法是依次对s1和s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小(比较字符大小的依据是其ASCⅡ码值)。