2018年计算机等级考试二级C语言基础知识模拟题1

2018年计算机等级考试二级C语言基础知识模拟题1
(总分:27.00,做题时间:60分钟)
选择题
(总题数:27,分数:27.00)
1.下列叙述中正确的是()。

(分数:1.00)
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上3种说法都不对√
解析:
2.算法的有穷性是指()。

(分数:1.00)
A.算法程序的运行时间是有限的√
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
解析:
3.算法的空间复杂度是指()。

(分数:1.00)
A.算法在执行过程中所需要的计算机存储空间√
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的临时工作单元数
解析:
4.下列叙述中正确的是()。

(分数:1.00)
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构√
C.循环链表是非线性结构
D.双向链表是非线性结构
解析:
5.支持子程序调用的数据结构是()。

(分数:1.00)
A.栈√
B.树
C.队列
D.二叉树
解析:
6.下列关于栈的叙述正确的是()。

(分数:1.00)
A.栈按“先进先出”组织数据
B.栈按“先进后出”组织数据√
C.只能在栈底插入数据
D.不能删除数据
解析:
7.—个栈的初始状态为空,现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈, 则元素出栈的顺序是()。

(分数:1.00)
A.12345ABCDE
B.EDCBA54321 √
C.ABCDE12345
D.54321EDCBA
解析:
8.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

(分数:1.00)
A.循环队列
B.栈√
C.队列
D.二叉树
解析:
9.下列关于栈的叙述正确的是()。

(分数:1.00)
A.栈顶元素最先能被删除√
B.桟顶元素最后才能被删除
C.栈底元素永远不能被删除
D.桟底元素最先能被删除
解析:
10.下列叙述中正确的是()。

(分数:1.00)
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,桟中元素随栈顶指针的变化而动态变化√
D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化
解析:
11.下列叙述中正确的是()。

(分数:1.00)
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构的线性表
D.有序线性表既可以采用顺序存储结构,也可以来用链式存储结构√
解析:
12.下列叙述中正确的是()。

(分数:1.00)
A.栈是一种“先进先出”的线性表
B.队列是一种“后进先出”的线性表
C.栈与队列都是非线性结构
D.以上3种说法都不对√
解析:
13.下列叙述中正确的是()。

(分数:1.00)
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数由队头指针和队尾指针共同决定√
解析:
14.对于循环队列,下列叙述中正确的是()。

(分数:1.00)
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针既可以大于队尾指针,也可以小于队尾指针√
解析:
15.下列叙述中正确的是()。

(分数:1.00)
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构√
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
解析:
16.下列叙述中正确的是()。

(分数:1.00)
A.顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的√
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
解析:
17.下列叙述中正确的是()。

(分数:1.00)
A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B.线性表的链式存储结构所需要的存储空间一般多于顺序存储结构√
C.线性表的链式存储结构所需要的存储空间一般少于顺序存储结构
D.线性表的链式存储结构所需要的存储空间与顺序存储结构没有任何关系
解析:
18.下列关于线性链表的叙述中,正确的是()。

(分数:1.00)
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.在进行插入与删除时,不需要移动表中的元素√
D.各数据结点的存储顺序与逻辑顺序可以不一致,它们的存储空间也可以不一致
解析:
19.下列数据结构中,属于非线性结构的是()。

(分数:1.00)
A.循环队列
B.带链队列
C.二叉树√
D.带链栈
解析:
20.某系统总体结构图如下图所示。

该系统总体结构图的深度是()。

(分数:1.00)
A.7
B.6
C.3 √
D.2
解析:
21.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。

(分数:1.00)
A.10
B.8
C.6 √
D.4
解析:
22.某二叉树共有7个结点,其中叶子结点只有一个,则该二叉树的深度为(假设根结点在第一层)()。

(分数:1.00)
A.3
B.4
C.6
D.7 √
解析:
23.下列关于二叉树的叙述中,正确的是()。

(分数:1.00)
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个√
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
解析:
24.—棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。

(分数:1.00)
A.16 √
B.10
C.6
D.4
解析:
25.在长度为n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是()。

(分数:1.00)
A.O(n )
B.
O(n2 )
C.
O(log2n)
√
D.
O(nlog2n)
解析:
26.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。

(分数:1.00)
A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序√
解析:
27.下列排序方法中,最坏情况下比较次数最少的是()。

(分数:1.00)
A.冒泡排序
B.简单选择排序
C.直接插入排序
D.堆排序√
解析:。

合集下载

二级C语言模拟题2018年(60)_真题(含答案与解析)-交互

二级C语言模拟题2018年(60)_真题(含答案与解析)-交互

二级C语言模拟题2018年(60)(总分100, 做题时间90分钟)一、程序填空题1.程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。

函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。

例如,a所指变量s中的学号、姓名和3门课的成绩依次是:10001、“ZhangSan”、95、80、88,修改后输出t中的数据应为:10002、“LiSi”、96、81、89。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<string.h>struct student{long sno;char name[10];float score[3];};/**********found**********/______fun(struct student *a){int i;a->sno=10002;strcpy(a->name, "LiSi");/**********found**********/for(i=0; i<3; i++)______+=1;/**********found**********/return ______;}main(){struct student s=[10001, "ZhangSan", 95, 80, 88}, *t;int i;printf("\n\nThe original data:\n");printf("\nNo:%ld Name:%s\nScores:", s.sno, );for(i=0; i<3; i++)printf("%6.2f", s.score[i]);printf("\n");t=fun(&s);printf{"\nThe data after modified:\n");printf("\nNo:%ld Name:%s\n Scores:", t->sno, t->name);for(i=0; i<3; i++)printf("%6.2f", t->score[i]);printf("\n");}SSS_FILL分值: 30(1)struct student * (2)a->score[i] (3)a [解析] 填空1:函数定义时,类型标识符指明了本函数的类型,我们前面已经多次提到,函数的类型实际上是函数返回值的类型。

计算机二级《C语言》基础模拟题及答案

计算机二级《C语言》基础模拟题及答案

计算机二级《C语言》基础模拟题及答案计算机二级《C语言》基础模拟题及答案1[单选题] 以下叙述中正确的是( )。

A.用C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上参考答案:D参考解析:C语言编写的程序可以放置于多个程序文件中,所以A 错误。

C程序中的一行可以有多条语句,所以B错误。

C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。

2[单选题] 以下选项中,能用作数据常量的是( )。

A.115LB.0118C.1.5el.5D.0115参考答案:A参考解析:A选项中l15L表示ll5是长整型数据,合法。

B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。

c选项中e后面应该是整数不能是小数l.5,所以c错误。

D选项中八进制常量应该是数字…0开始,而不是字母…O开始。

3[单选题] 对于一个正常运行的C程序,以下叙述中正确的是( )。

A.程序的执行总是从main函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在main函数结束.C.程序的执行总是从main函数开始、D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束参考答案:C参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。

4[单选题] 有以下程序:程序运行后的输出结果是( )。

A.1 2B.1 4C.123 4D.123 456参考答案:D参考解析:fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。

执行两次fprintf后。

文件中的内容为。

l23 456”,所以D选项正确。

5[单选题] 有以下程序:程序运行后的输出结果是( )。

A.1,2,1,2,2,4B.1,2,6,6,7,8C.1,2,2,4,2,4D.1,2,6,6,2,4参考答案:A参考解析:全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。

2018年12月计算机二级C语言考试模拟题及答案

2018年12月计算机二级C语言考试模拟题及答案

2018年12月计算机二级C语言考试模拟题及答案无忧考网的更新。

1[单选题]以下叙述中正确的是( )A.用户自己定义的函数只能调用库函数B.实用的C语言源程序总是由一个或多个函数组成C.不同函数的形式参数不能使用相同名称的标识符D.在C语言的函数内部,可以定义局部嵌套函数参考答案:B参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不正确的,也可以调用自定义函数;C选项中,对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。

因此B选项正确。

2[单选题]以下关于C语言数据类型使用的叙述中错误的是( )。

A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型D.整数类型表示的自然数是准确无误差的参考答案:C参考解析:C语言中没有逻辑类型,所以c错误。

若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。

处理包含不同类型的相关数据可以定义为结构体类型。

整数类型可以无误差的表示自然数。

3[单选题]下面选项中关于编译预处理的叙述正确的是A.预处理命令行必须使用分号结尾B.凡是以#号开头的行,都被称为编译预处理命令行C.预处理命令行不能出现在程序的最后一行D.预处理命令行的作用域是到最近的函数结束处参考答案:B参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行可以出现在程序的最后一行,预处理命令行作用域是整个文件。

4[单选题]设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。

A.71B.70C.69D.不可能有这样的二叉树参考答案:D参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中的度称为树的度。

对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。

2018年全国计算机等级考试二级C 语言真题及答案1

2018年全国计算机等级考试二级C 语言真题及答案1
D)用C程序实现的算法可以既没有输入也没有输出
(14)下列不能定义的用户标识符是()。
A)MainB)_0
C)_intD)sizeof
(15)下列选项中,不能作为合法常量的是()。
A)1.234e04B)1.234e0.4
C)1.234e+4D)1.234e0
(16)数字字符0的ASCII值为48,运行下列程序的输出结果是()。
A)1B)2
C)3D)4
(23)下列程序的输出结果是()。
main( )
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j);
}
A)42B)45
C)56D)60
(24)下列程序的输出结果是()。
main( )
{chara[7]="a0\0a0\0"; inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
A)22B)76
C)72D)62
(25)下列能正确定义一维数组的选项是()。
A)inta[5]={0,1,2,3,4,5};B)chara[ ]={0,1,2,3,4,5};
main( )Байду номын сангаас
{inti=1,j=2,k=3;
if(i++==1&&(++j==3‖k+ +==3)) printf("%d%d %d\n",i,j,k);

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

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

计算机二级考试C语言模拟练习题计算机二级考试C语言模拟练习题C语言的运算符包含的范围很广泛,共有34种运算符。

下面给大家整理了计算机二级考试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.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型正确答案:A答案解析:在C语言中,应当在定义函数时指定函数值的'类型,凡不加类型说明的函数,一律按整型处理。

计算机等级考试二级C语言模拟试题(1)及答案

计算机等级考试二级C语言模拟试题(1)及答案

⼀、选择题(每题2分,共计70分)1.栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插⼊和删除元素D)没有共同点2.已知⼆叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba3.链表不具有的特点是A)不必事先估计存储空间B)可随机访问任⼀元素C)插⼊删除不需要移动元素D)所需空间与线性表长度成正⽐4.结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分⽀结构、等价结构、循环结构C)多分⽀结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构5.为了提⾼测试的效率,应该A)随机选取测试数据B)取⼀切可能的输⼊数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序6.算法的时间复杂度是指A)执⾏算法程序所需要的时间B)算法程序的长度C)算法执⾏过程中所需要的基本运算次数D)算法程序中的指令条数7.软件⽣命周期中所花费⽤最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护8.数据库管理系统DBMS中⽤来定义模式、内模式和外模式的语⾔为A)CB)BasicC)DDLD)DML9.下列有关数据库的描述,正确的是A)数据库是⼀个DBF⽂件B)数据库是⼀个关系C)数据库是⼀个结构化的数据集合D)数据库是⼀组⽂件10.下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独⽴性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每⼀列称为元组,⼀个元组就是⼀个字段D)如果⼀个关系中的属性或属性组并⾮该关系的关键字,但它是另⼀个关系的关键字,则称其为本关系的外关键字11.以下叙述中正确的是A)C语⾔⽐其他语⾔⾼级B)C语⾔可以不⽤编译就能被计算机识别执⾏C)C语⾔以接近英语国家的⾃然语⾔和数学语⾔作为语⾔的表达形式D)C语⾔出现的最晚,具有其他语⾔的⼀切优点12.C语⾔中⽤于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue13.C语⾔中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型14.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b15.下列可⽤于C语⾔⽤户标识符的⼀组是A)voiddefineWORDB)a3_b3_123CarC)For-abcIFCaseD)2aDOsizeof16.若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a==1B)++i;C)a=a++=5;D)a=int(i);17.已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对18.有如下程序main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=219.有以下程序main(){ int i=1,j=1,k=2;if((j++||k++)&& i++)printf("%d,%d,%d\n",i,j,k);}执⾏后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,320.有如下程序main(){ int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)987621.在下列选项中,没有构成死循环的是A)int i=100;while(1){ i=i0+1;if(i>100)break;}B)for(;;);C)int k=10000;do{ k++; }while(k>10000);D)int s=36;while(s)--s;22.若已定义的函数有返回值,则以下关于该函数调⽤的叙述中错误的是A)函数调⽤可以作为独⽴的语句存在B)函数调⽤可以作为⼀个函数的实参C)函数调⽤可以出现在表达式中D)函数调⽤可以作为⼀个函数的形参23.有以下程序float fun(int x,int y){ return(x+y);}main(){ int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运⾏后的输出结果是A)编译出错B)9C)21D)9.024.若有以下调⽤语句,则不正确的fun函数的⾸部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)25.设有以下说明语句struct stu{ int a;float b;} stutype;则下⾯的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是⽤户定义的结构体类型C)stutype是⽤户定义的结构体类型名D)a和b都是结构体成员名26.若运⾏时给变量x输⼊12,则以下程序的运⾏结果是main(){ int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)1027.以下说法正确的是A)C语⾔程序总是从第⼀个的函数开始执⾏B)在C语⾔程序中,要调⽤函数必须在main()函数中定义C)C语⾔程序总是从main()函数开始执⾏D)C语⾔程序中的main()函数必须放在程序的开始部分28.有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4;printf("%d\n", F(a++, b++));}程序运⾏后的输出结果是A)12B)15C)16D)2029.下列程序执⾏后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5]={0};a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)930.若有下⾯的程序段char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等31.以下程序中函数sort的功能是对a数组中的数据进⾏由⼤到⼩的排序void sort(int a[],int n){ int i,j,t;for(i=0;ifor(j=i+1;jif(a[i]}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运⾏后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,32.以下程序的运⾏结果是#include "stdio.h"main(){ struct date{ int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)1233.若执⾏下述程序时,若从键盘输⼊6和8时,结果为main(){ int a,b,s;scanf("%d%d",&a,&b);s=a;if(as=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对34.下列关于C语⾔数据⽂件的叙述中正确的是A)⽂件由ASCII码字符序列组成,C语⾔只能读写⽂本⽂件B)⽂件由⼆进制数据序列组成,C语⾔只能读写⼆进制⽂件C)⽂件由记录序列组成,可按数据的存放形式分为⼆进制⽂件和⽂本⽂件D)⽂件由数据流形式组成,可按数据的存放形式分为⼆进制⽂件和⽂本⽂件35.有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++;}}main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运⾏后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd⼆、填空题(每空2分,共计30分)1.算法的基本特征是可⾏性、确定性、【1】和拥有⾜够的情报。

2018年计算机等级考试二级C语言基础知识模拟题1_真题(含答案与解析)-交互

2018年计算机等级考试二级C语言基础知识模拟题1 (总分27, 做题时间60分钟)选择题1.下列叙述中正确的是()。

SSS_SINGLE_SELA算法就是程序B设计算法时只需要考虑数据结构的设计C设计算法时只需要考虑结果的可靠性D以上3种说法都不对分值: 1答案:D2.算法的有穷性是指()。

SSS_SINGLE_SELA算法程序的运行时间是有限的B算法程序所处理的数据量是有限的C算法程序的长度是有限的D算法只能被有限的用户使用分值: 1答案:A3.算法的空间复杂度是指()。

SSS_SINGLE_SELA算法在执行过程中所需要的计算机存储空间B算法所处理的数据量C算法程序中的语句或指令条数D算法在执行过程中所需要的临时工作单元数分值: 1答案:A4.下列叙述中正确的是()。

SSS_SINGLE_SELA有一个以上根结点的数据结构不一定是非线性结构B只有一个根结点的数据结构不一定是线性结构C循环链表是非线性结构D双向链表是非线性结构分值: 1答案:B5.支持子程序调用的数据结构是()。

SSS_SINGLE_SELA栈B树C队列D二叉树分值: 1答案:A6.下列关于栈的叙述正确的是()。

SSS_SINGLE_SELA栈按“先进先出”组织数据B栈按“先进后出”组织数据只能在栈底插入数据D不能删除数据分值: 1答案:B7.—个栈的初始状态为空,现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈, 则元素出栈的顺序是()。

SSS_SINGLE_SELA12345ABCDEBEDCBA54321CABCDE12345D54321EDCBA分值: 1答案:B8.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

SSS_SINGLE_SELA循环队列B栈C队列D二叉树分值: 1答案:B9.下列关于栈的叙述正确的是()。

SSS_SINGLE_SELA栈顶元素最先能被删除桟顶元素最后才能被删除C栈底元素永远不能被删除D桟底元素最先能被删除分值: 1答案:A10.下列叙述中正确的是()。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

2018计算机二级C语言考试真题汇总

模拟卷11 [填空题]下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:参考解析:【参考答案】【解题思路】填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。

填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题2 [简答题]下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为"Abcd",则c中的字符串应为“aBcdeFgH”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构!参考解析:【参考答案】 (1)int k=0;(2)while(*p||*q)【考点分析】本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】(1)变量k存放数组e的下标,因此应初始化为0。

(2)while循环语句的循环条件是判断两个字符串是否到达结尾。

三. 程序设计题3 [简答题]规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。

全国计算机等级考试二级C语言笔试模拟试卷一及答案解析

全国计算机等级考试二级C语言笔试模拟试卷(二)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)程序流程图中带有箭头的线段表示的是A)图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则的是A)抽象B)模块化C)自底向上D)信息隐蔽(3)下列选项中,不属于模块间耦合的是A)数据耦合B)标记耦合C)异构耦合D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(5)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是A)堆排序B)直接插入排序C)快速排序D)B)和C)(7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是B)DCBEAC)DBCEAD)CDABE(8)数据库设计包括两个方面的设计内容,它们是A)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计(9)关系表中的每一横行称为一个A)元组B)字段C)属性D)码(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言用户标识符的是A)void,define,WORDB)a3_b3,_123,IFC)FOR,--abc,CaseD)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(14)在C语言中,运算对象必须是整型数的运算符是A)%B)\D)**(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;(16)有以下程序段char ch; int k;ch=′a′; k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>=′A′&& kk<=′Z′B)!(kk>=′A′||kk<=′Z′)C)(kk+32)>=′a′&&(kk+32)<=′Z′D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A)(exp==0)B)(exp!=0)C)(exp==1)D)(exp!=1)(20)以下不正确的定义语句是A)double x[5]={2.0,4.0,6.0,8.0,10.0};B)int y[5]={0,1,3,5,7,9};C)char c1[]={′1′,′2′,′3′,′4′,′5′};D)char c2[]={′\x10′, ′xa′, ′\x8′};(21)下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1;printf("%d\n",a[1][2];)A)3B)6C)9D)随机数(22)设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(23)(23)下面程序段的运行结果是char *s="abcde";s+=2;printf("%d",s);A)cdeB)字符′c′C)字符′c′的地址D)无确定的输出结果(24)阅读下列程序,则执行后的结果为#include "stdio.h"main(){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf("%x,%x\n",c[2][2],*(*(c+1)+1));}A)3e,6B)62,5C)56,5D)3E,6(25)下面判断正确的是A)char *a="china";等价于char *a;*a="china";B)char str[5]={"china"};等价于char str[]={"china"};C)char *s="china";等价于char *s;s="china";D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是A)a[2][!1]B)a[2][3]C)a[0][3]D)a[1>2][!1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[1]);(28)有以下程序#include <stdio.h>#define N 5#define M N+1#define f(x) (x*M)main(){ int i1,i2;i1=f(2);i2=f(1+1);printf("%d %d\n",i1,i2);}程序的运行结果是A)12 12B)11 7C)11 11D)12 7(29)若有以下说明和定义union dt{ int a; char b; double c;}data;以下叙述中错误的是A)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D)data可以作为函数的实参(30)有以下程序#include<stdio.h>main(){FILE *fp;int k,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是A)1 2B)1 4C)123 4D)123 456(31)若已定义int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中则对a数组元素不正确的引用是A)a[p-a]B)*(&a[i])C)p[i]D)a[10](32)有以下程序#include <stdio.h>void fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");}程序的运行结果是A)0987654321B)4321098765C)5678901234D)0987651234(33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为#include <stdio.h>#include <ctype.h>#include <string.h>int fun (char *str){ int i,j=0;for(i=0;str[i]!=′ \0′;i++)if(str[i]!=′ ′)str[j++]=str[i];}main(){char str[81];int n;printf("Input a string : ");gets(str);puts(str);fun(str);printf("%s\n",str);}A)asdafaaz67B)asd af aa z67C)asdD)z67(34)有以下程序int fun(int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf("%d",&x); x=fun(x);printf("%d\n",x)}执行程序时,给变量x输入10,程序的输出结果是A)55B)54C)65D)45(35)下面程序段中,输出*的个数是char *s="\ta\018bc";for(;*s!='\0';s++)printf("*");A)9B)5C)6D)7(36)C语言结构体类型变量在程序运行期间A)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B)所有的成员一直驻留在内存中C)只有最开始的成员驻留在内存中D)部分成员驻留在内存中(37)已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项(38)设有以下语句char x=3,y=6,z;z=x^y<<2;则z的二进制值是A)00010100B)00011011C)00011100D)00011000(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是A)auto和registerB)extern和registerC)auto和staticD)static和register(40)设有定义语句int (*f)(int);,则以下叙述正确的是A)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档