考无忧小编为各位考生搜集整理了的二级C语言试题,希望可以为各位的备考锦上添花,热中送冰!记得刷计算机等级考试题库哟!
第1章 程序设计基本概念
1.3 结构化程序设计和模块化结构
1[单选题] 下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
参考答案:C
2[单选题] 在软件设计中,不属于过程设计工具的是( )。
A.PDL(过程设计语言)
B.PAD图
C.N-S图
D.DFD图
参考答案:D
3[单选题] 下列叙述中正确的是( )。
A.软件交付使用后还需要进行维护
B.软件一旦交付使用就不需要再进行维护
C.软件交付使用后其生命周期就结束
D.软件维护是指修复程序中被破坏的指令
参考答案:A
4[单选题] 以下叙述中错误的是( )。
A.C语言是一种结构化程序设计语言
B.结构化程序有顺序、分支、循环三种基本结构组成
C.使用三种基本结构构成的程序只能解决简单问题
D.结构化程序设计提倡模块化的设计方法
参考答案:C
5[单选题] C语言中用于结构化程序设计的三种基本结构是( )
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
参考答案:A
6[填空题]
在结构化分析使用的数据流图(DFD)中,利用_____ 对其中的图形元素进行确切解释。
执行以下程序后的输出结果是 a=14 。
main()
{int a=10;
a=(3*5,a+4); printf(“a=%d\n”,a);
}
参考解析:数据字典
7[单选题] 结构化程序设计的基本原则不包括 ( )
A.多态性
B.自顶向下
C.模块化
D.逐步求精
参考答案:A
参考解析:结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化。程序设计时,应先从最上层总目标开始设计,逐步使问题具体化。对复杂问题,应设计-些子目标作为过渡,逐步细化。模块化是把程序要解决的总目标分解为子目标,再进-步分解为具体的小目标,把每一个小目标称为一个模块。
8[单选题] 下列选项中不属于结构化程序设计原则的是 ( )
A.可封装
B.自顶向下
C.模块化
D.逐步求精
参考答案:A
参考解析:结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用go to语句等。
9[填空题]
在面向对象方法中,_________描述的是具有相似属性与操作的一组对象。
参考解析:类
【解析】在面向对象方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。
10[单选题] 为了使模块尽可能独立,要求( )。
A.内聚程度要尽量高,耦合程度要尽量强
B.内聚程度要尽量高,耦合程度要尽量弱
C.内聚程度要尽量低,耦合程度要尽量弱
D.内聚程度要尽量低,耦合程度要尽量强
参考答案:B
参考解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦台性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
11[填空题]
符合结构化原则的三种基本控制结构是顺序结构、__________和循环结构。
参考解析:选择结构
【解析】程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
12[单选题] 结构化程序所要求的基本结构不包括( )。
A.顺序结构
B.GOT0跳转
C.选择(分支)结构
D.重复(循环)结构
参考答案:B
参考解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
13[填空题]
对软件设计的最小单位(模块或程序单元)进行的测试通常称为__________测试。
参考解析:单元 解析:对软件的模板进行的测试通常称为单元测试。
14[填空题]
数据结构分为线性结构与非线性结构,带链的栈属于__________。
参考解析:线性结构 【解析】一般将数据结构分为线性结构与非线性结构两大类。如果一个非空的数据结构满足以下两个条件:
①有且只有一个根结点;
②每一个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构,所以带链栈为线性结构。
15[单选题] 针对简单程序设计,以下叙述的实施步骤正确的是( )。
A.确定算法和数据结构、编码、调试、整理文档
B.编码、确定算法和数据结构、调试、整理文档
C.整理文档、确定算法和数据结构、编码、调试
D.确定算法和数据结构、调试、编码、整理文档
参考答案:A
参考解析:简单程序设计的步骤是首先要确定算法和数据结构,然后编码、调试,最后整理相关文档。
16[单选题] 下列数据结构中,属于非线性结构的是( )。
A.带链队列
B.循环队列
C.带链栈
D.二叉树
参考答案:D
参考解析:根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义知二叉树是一种非线性结构。
17[单选题] 在结构化程序设计中,模块划分的原则是( )。
A.各模块应包括尽量多的功能
B.各模块的规模应尽量大
C.各模块之间的联系应尽量紧密
D.模块内具有高内聚度,模块间具有低耦合度
参考答案:D
参考解析:[考核] 软件设计的概念 [评析] 软件设计中通常采用结构化设计方法,模块的独立程度是评价设计好坏的重要度量标准。耦合性与内聚 性是模块独立性的两个定性标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量;耦合性是模块间互相连接的紧密程度的度量。一般较优秀的软件设 计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
18[单选题] 结构化分析可以使用的工具是( )。
A.N—s图
B.DFD图
C.PAD图
D.程序流程图
参考答案:B
参考解析:数据流图(DFD)、数据字典、判定表和判定树是结构化分析常用的工具。程序流程图、N—S图、PAD图是详细设计过程中常用的图形工具。
第2章 C程序设计的初步知识
2.1 简单C语言程序的构成和格式
1[单选题] 下面程序的输出结果是( )。
#include
main()
{
int a[] = {1,2,3,4,5,6,7,10},*p;
p =a;
printf("%d\n",*p+8);
}
A.0
B.1
C.10
D.9
参考答案:D
参考解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针P指向的是数组的首地址,因此*p=1;再加8得9。
2[单选题] 下面说法正确的是( )。
A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D.在对C程序进行编译时,可以发现注释行中的拼写错误
参考答案:C
参考解析:本题涉及C语言基本的3个知识点:①C 语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释中的错误。
3[单选题] 以下4个选项,不能看作一条语句的是( )。
A.{;}
B.int x=0,y=1,z=0;
C.if(!a);
D.if(b==0)m=1:n=2:
参考答案:D
参考解析:语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。 在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。选项D)中没有将两个操作语句括起来,不能看作一条语句。
4[单选题] 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )。
A.C语言程序仅可以编译执行
B.C语言程序仅可以解释执行
C.c)C语言程序既可以编译执行又可以解释执行
D.以上说法都不对
参考答案:A
参考解析:C语言作为计算机高级语言,用它编写的程序必须经过C语言的编译器编译后,转换为二进制的机器来运行。
5[单选题] 以下叙述中错误的是( )。
A.C语言编写的函数源程序,其文件名后缀可以是.C
B.C语言编写的函数都可以作为一个独立的源程序文件
C.C语言编写的每个函数都可以进行独立的编译并执行
D.一个C语言程序只能有一个主函数
参考答案:C
参考解析:C语言程序是从main函数开始执行的,每一个函数可以进行独立的编译。
6[单选题] 以下叙述正确的是( )。
A.在C程序中,main函数必须位于程序的最前面
B.每个后缀为.c的C语言源程序都可以单独进行编译
C.在C语言程序中,只有main函数才可单独进行编译
D.每个后缀为.c的C语言源程序都应该包含一个main函数
参考答案:B
参考解析:每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。
7[单选题] C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是
A.预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用作用户标识符,但失去原有含义
参考答案:A
参考解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
8[单选题] c语言规定,在一个源程序中,main函数的位置( )。
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
参考答案:C
参考解析:不论main函数在整个过程中的位置如何,一个c程序总是从main函数开始执行的
9[单选题] 以下叙述不正确的是( )。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
参考答案:D
参考解析:在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
10[单选题] 有以下程序:
main()
{
unsigned char a=2,b=4,c=5,d;
d =a|b;d&=c;printf("%d\n",d);
}
程序运行后的输出结果是( )。
A.3
B.4
C.5
D.6
参考答案:B
参考解析:本题考查的是逻辑运算。本题中主要是进行位的逻辑运算。将a的值转换成二进制为:0000 0010,b的值转换成二进制为:0000 0100,将a、b进行按位或运算(参加计算的两个位只要有一个为1,那么运算结果为l),因此此时d的二进制为:0000 0110,C的值转换成二进制为:00000101,接下来将d和C进行按位与运算(参加计算的两个位都为1,则结果为1,否则为0),结果为:0000 0100,转换成十进制数结果为4。
11[单选题] 下列程序的输出结果是( )。
main()
{
double d = 3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3
B.3.2
C.0
D.3.07
参考答案:C
参考解析:本题考查复合的赋值表达式。本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,即取整为1,然后将l赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值l转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于l.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边变量Y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d * y的值也为0。
12[单选题] 以下叙述中错误的是( )。
A.C语言的可执行程序是由一系列机器指令构成的
B.用C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
参考答案:D
参考解析:c语言的可执行程序是由一系列机器指令组成的。用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离c语言集成开发环境。故答案为D)。
13[单选题] 以下4个选项中,不能看作一条语句的是( )。
A.;
B.a=5,b=2.5,c=3.6;
C.if(b!=5)x=2;y=6;
D.return j;
参考答案:C
参考解析:c语言规定每个语句以;(分号)结束,因此选项c)为两条语句。
14[单选题] 下面程序段的输出为( )。
#include "stdio.h"
main()
{
printf("%d\n",12<<2);
}
A.0
B.47
C.48
D.24
参考答案:C
参考解析:本题考查位运算的运算原理。<<为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。
15[单选题] 以下叙述中正确的是( )。
A.C程序中注释部分只能放在程序最后
B.花括号“{“和”}”可以作为函数体的定界符,也可以作为复合语句的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号不是语句的一部分,是C语句之间的分隔符
参考答案:B 参考解析:花括号可以作为函数体的定界符,也可以作为复合语句的定界符。函数是c程序的基本单位,用户可以命名自定义函数,而库函数名是固定的。c语句以分号结尾,分号是语句的一部分。
16[单选题] 若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是( )。
A.*m = &n;scanf("%lf",m);
B.m = (double * ) malloc(10);scanf("%f",m);
C.m = &n;scanf("%lf",n);
D.m = &n;scanf("%le",m);
参考答案:D
参考解析:解析:选项A,*m = &n 错误。选项B,输入 double型,要用%lf 或 %le,否则数据不能正常输入。
选项C,n是变量,不是指针,scanf("%if",n)错误。
考无忧tips:
不管你有刷计算机等级考试题库有多慢,都不要紧,只要你有决心,坚持复习以上的二级C语言试题,你最终都会拿到你想要的分数和证书。
文章推荐:
2018年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯