计算机等级考试二级C语言试题及答案(精选4套)
无论是在学校还是在社会中,我们总免不了要接触或使用考试题,考试题有助于被考核者了解自己的真实水平。一份好的考试题都是什么样子的呢?以下是小编帮大家整理的计算机等级考试二级C语言试题及答案,供大家参考借鉴,希望可以帮助到有需要的朋友。

计算机等级考试二级C语言试题及答案 1
1.有以下程序:
main()
{intx=0xFFFF;printf("%d\n",x--);}
执行后的输出结果是()
A)32767 B)FFFE C)-1 D)-32768
2.以下程序的输出结果是()
#include
#include
main()
{ char str[12]={′s′,′t′,′r′,′i′,′n′,′g′};
printf("%d\n",strlen(str));
}
A)6 B)7 C)11 D)12
3.若有以下定义:
char s[20]="programming",*ps=s;
则不能代表字符o的表达式是()
A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps
4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()
A)for语句中的三个表达式可以同时省略
B)for语句可以用于循环次数不确定的情况
C)for语句中表达式2只能是关系表达式或逻辑表达式
D)for语句中表达式1和表达式3可以是逗号表达式
5.执行下面程序片段的结果是()
int x=23;
do
{ printf("-",x--);}
while(!x);
A)打印出321 B)打印出23 C)不打印任何内容 D)陷入死循环
6.与y=(x>0?1∶x<0?-1∶0);的功能相同的if语句是()
A)if(x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0) y=1;
else if(x<0) y=-1;
else y=0;
C)y=-1;
if(x)
if(x>0)y=1;
else if(x==0) y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0) y=1;
else y=-1;
7.标准库函数fgets(s,n,f)的功能是()
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的'内存
8.若有如下函数调用语句:
sub(a,1,fun(b,c),d+c,(a+d,c*f));
则在该函数调用语句中含有实参的个数是()
A)5 B)7 C)10 D)6
9.若要定义a为3×4的二维数组,正确的定义语句是()
A)float a(3,4); B)float a[3][4]; C)float a(3)(4); D)float a[3,4];
10.有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for (i=0;i<4;i++)s+=aa[i][1];
printf("%d\n",s);
}
程序运行后的输出结果是()
A)11 B)19 C)13 D)20
答案:1.C 2.A 3.A 4.C 5.B 6.A 7.B 8.A 9.B 10.B
计算机等级考试二级C语言试题及答案 2
1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].
a[10]对应下面数组中的元素为9.因此a[a[i]]即为a[9]
a[9]对应下面数组中的元素为6.因此a[9]即为6
2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为: ( B )
A、2
B、3
C、4
D、无确定值
5 7
D、3 6 9
二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行
3.对二维数组的正确定义是(C )
详见教材P149~152,二维数组的'定义、初始化
类型符数组名[常量表达式][常量表达式]
二维数组可以看做是矩阵
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。
一维数组初始化时可以省略数组长度
二维数组初始化时可以省略行数,但不能省略列数
选项A,B,都省略了列数
选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中
A、int a[ ][ ]={1,2,3,4,5,6};
B、int a[2] []={1,2,3,4,5,6};
C、int a[ ] [3]={1,2,3,4,5,6};
D、int a[2,3]={1,2,3,4,5,6};
4.已知int a[3][4];则对数组元素引用正确的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
计算机等级考试二级C语言试题及答案 3
1.下列叙述中正确的是()。
A.所有数据结构必须有根结点
B.所有数据结构必须有终端结点(即叶子结点)
C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构
D.没有根结点或没有叶子结点的数据结构一定是非线性结构
【答案】D
【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素"且惟一②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”,④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。
2.以下叙述中错误的是()。
A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
【答案】A
【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。
3. C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型
【答案】A
【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。
4.有以下程序段:
char ch;
int k;
ch='a';
k=12;
print("%c,%d,",h,ch,k);
printf("k=%d",k);
已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是()。
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D. a,97,k=12
【答案】D
【解析】字符变量的.值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。
5.下列叙述中正确的是()。
A.栈是“先进先出”的线性表
B.队列是“先进后出"的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
【答案】D
【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。
6.某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。
A. 5
B. 40
C.3
D. 2
【答案】B
【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。
7.设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是()。
A. s[0]=m[1];
B. s=m;
C.s.n=m.n;
D. s[2].x=m[2].x;
【答案】A
【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。
8.关于C语言标识符,以下叙述错误的是()。
A.标识符可全部由数字组成
B.标识符可全部由下划线组成
C.标识符可全部由小写字母组成
D.标识符可全部由大写字母组成
【答案】A
【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。
9.以下程序段中的变量已定义为int类型,则
sum=pAd=5;
pAd=sum++,++pAd,pAd++;
printf("%d",pAd);
程序段的输出结果是()。
A. 6
B. 4
C. 5
D. 7
【答案】D
【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。
10.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为()。
A. 5
B. 6
C.m-5
D. m-6
【答案】D
【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用队首指针指向队首元素的前一个位置,因此,从队首指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,最坏情况下需要比较次数为m-6次。答案选择D选项。
计算机等级考试二级C语言试题及答案 4
(1)算法的时间复杂度是指_______。
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
答案:C
评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
(2)下列叙述中正确的是________。
A)线性表是线性结构B)栈与队列是非线性结构
C)线性链表是非线性结构D)二叉树是线性结构
答案:A
评析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
(3)下面关于完全二叉树的叙述中,错误的是_________。
A)除了最后一层外,每一层上的结点数均达到最大值
B)可能缺少若干个左右叶子结点
C)完全二叉树一般不是满二叉树
D)具有结点的完全二叉树的深度为[log2n]+1
答案:B
评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。
C语言笔试题答案篇
(1)结构化程序设计主要强调的是_________。
A)程序的规模B)程序的易读性
C)程序的执行效率D)程序的可移植性
答案:B
评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
(2)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计B)详细设计C)可行性分析D)需求分析
答案:D
评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
(3)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_________。
A)控制流B)加工C)数据存储D)源和潭
答案:A
评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
(4)软件需求分析一般应确定的是用户对软件的__________。
A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求
答案:D
评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。
C语言笔试题答案篇
(1)下述关于数据库系统的叙述中正确的是________。
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型的一致
D)数据库系统比文件系统能管理更多的数据
答案:A
评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(2)关系表中的每一横行称为一个________。
A)元组B)字段C)属性D)码
答案:A
评析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。
(3)数据库设计包括两个方面的设计内容,它们是________。
A)概念设计和逻辑设计B)模式设计和内模式设计
C)内模式设计和物理设计D)结构特性设计和行为特性设计
答案:A
评析:数据库设计可分为概念设计与逻辑设计。概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。逻辑设计的主要工作是将ER图转换为指定的RDBMS中的'关系模型。
(4)请读程序:
#include
main
{
int a;float b,c;
scanf(“%2d%3P%4f’,&a,&b,&C);
printf(” a=%d,b=%ec。%f ”,a,b,C);
}
若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。
A)a=98,b=765,c=432 1
B)a=1 0,b=432,c=8765
C)a=98,b=765.000000,c=432 1.000000
D)a=98,b=765.0,c=432 1.0
答案:C
评析:scanf把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。
(5)一个良好的算法由下面的基本结构组成,但不包括__________。
A)顺序结构B)选择结构C)循环结构D)跳转结构
答案:D
评析:1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
(6)请选出以下程序的输出结果________。
#include
sub(x,y,z)
int x,y,星符号z:
{星符号z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&C)后,c的值发生变化,其值为-12-(-5)=-7。
(7)下面程序在屏幕上的输出是________。
main
{
printf(”ab c”);
}
A)ab c B)a c C)abc D)ab c
答案:B
评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个“”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有: ,换行;,水平制表;,退格;,回车。
(8)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。
A)pb=&x; B)pb=x; C)星符号pb=星符号、/)还包括自增自减运算符(++、–),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。
(10)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元
int星符号int) D)(int星符号)
答案:D
评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。
(11)下面程序输出的结果是__________。
main
{
int i=5,J=9,x;
x=(I==j?i:(j=7));
printf(” %d,%d”,I,J);
}
A)5,7 B)5,5 C)语法错误D)7,5
答案:A
评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。本题中先判断i==j,不等,执行j=7;然后执行x=7。故本题为A。
【计算机等级考试二级C语言试题及答案】相关文章:
2017计算机等级C语言考试试题及答案07-10
计算机二级考试C语言试题与答案10-27
计算机二级考试C语言试题及答案10-11
计算机等级二级C语言上机模拟试题及答案10-25
计算机等级考试二级C语言考试试题带答案(精选10份)04-02
2017计算机等级考试二级c语言考试试题08-22
计算机二级C语言考试试题及答案10-09
全国计算机等级考试二级c语言考试试题08-26