计算机等级 百分网手机站

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

时间:2018-01-18 15:51:15 计算机等级 我要投稿

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

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

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

  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). 以下程序段完全正确的是( )

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

  B.int *p; scanf(″%d″, p);

  C.int *p; scanf(″%d″, &p);

  D.int 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

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