考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C语言>模拟试题>正文
2016年9月计算机二级C语言考前40天必做试题(3)
考试吧 2016-08-20 11:22:46 评论(0)条

  点击查看:2016年9月计算机二级C语言考前40天必做试题汇总

  一、选择题(每小题1分。共40分)

  (1)下列叙述中正确的是(  )。

  A.有一个以上根结点的数据结构不一定是非线性结构

  B.只有一个根结点的数据结构不一定是线性结构

  C.循环链表是非线性结构

  D.双向链表是非线性结构

  (2)程序调试的任务是(  )。

  A.设计测试用例

  B.验证程序的正确性

  C.发现程序中的错误

  D.诊断和改正程序中的错误

  (3)下列选项中属于面向对象设计方法主要特征的是(  )。

  A.继承

  B.自顶向下

  C.模块化

  D.逐步求精

  (4)以下选项中,不合法的c语言用户标识符是(  )。

  A.a_b

  B.AaBc

  C.a - - b

  D._1

  (5)设有定义:int a;float b;执行scanf("%2d%f",&a,&B.;语句时,若从键盘输入876 543.0<回车>则a和b的值分别是(  )。

  A.87和6.0

  B.876和543.0

  C.87和543.0

  D.76和543.0

  (6)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  运行时,若输入1 2 3 4 5 0<回车>,则输出结果是(  )。

  A.66656

  B.6566456

  C.66666

  D.6666656

  (7)以下函数实现按每行8个输出w所指教组中的数据:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  (8)有以下程序(strcat函数用于连接两个字符串):

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.IJK

  B.ABCDE\OFG\OIJK

  C.ABCDIJK

  D.EFGIJK

  (9)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  执行程序时,给变量x输人10,程序运行后的输出结果是(  )。

  A.55

  B.54

  C.65

  D.45

  (10)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.3,4

  B.4,1

  C.2,3

  D.1,2

  (11)下列叙述中正确的是(  )。

  A.算法就是程序

  B.设计算法时只需要考虑数据结构的设计

  C.设计算法时只需要考虑结果的可靠性

  D.以上三种说法都不对

  (12)下列关于二叉树的叙述中,正确的是(  )。

  A.叶子结点总是比度为2的结点少一个

  B.叶子结点总是比度为2的结点多一个

  C.叶子结点数是度为2的结点数的两倍

  D.度为2的结点数是度为1的结点数的两倍

  (13)下列关于数据库设计的叙述中,正确的是(  )。

  A.在需求分析阶段建立数据字典

  B.在概念设计阶段建立数据字典

  C.在逻辑设计阶段建立数据字典

  D.在物理设计阶段建立数据字典

  (14)以下叙述中错误的是(  )。

  A.算法正确的程序可以有零个输入

  B.算法正确的程序最终一定会结束

  C.算法正确的程序可以有零个输出

  D.算法正确的程序对于相同的输人一定有相同的结果

  (15)有以下定义语句,编译时会出现编译错误的是(  )。

  

2016年计算机二级C语言考前40天摸底测试题(6)

  (16)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序执行后的输出结果是(  )。

  A.y=一1

  B.y=0

  C.y=1

  D.while构成无限循环

  (17)以下叙述中错误的是(  )。

  A.用户定义的函数中可以没有return语句

  B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

  C.用户定义的函数中若没有return语句,则应当定义函数为void类型

  D.函数的return语句中可以没有表达式

  (18)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  当执行程序时从键盘上输入Hello Beijing<回车>,则程序运行后的输出结果是(  )。

  A.hello beijing

  B.Hello Beijing

  C.HELLO BEIJING

  D.hELLO Beijing

  (19)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.z

  B.0

  C.元素ch[5]的地址

  D.字符Y的地址

  (20)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.3,3

  B.1,1

  C.2,3

  D.1,2

  (21)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.0

  B.-12

  C.-20

  D.10

  (22)有以下程序段:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  当执行上述程序段,并从键盘输入:name=Lili num=100l<回车>后,name的值为(  )。

  A、name=Lili num=1001

  B.name=Lili

  C.Lili num=

  D.Lili

  (23)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.0

  B.2

  C.3

  D.5

  (24)设有以下语句:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  则下面叙述中正确的是(  )。

  A.CIN是struct TT类型的变量

  B.TT是struct类型的变量

  C.可以用TT定义结构体变量

  D.可以用CIN定义结构体变量

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

  

2016年计算机二级C语言考前40天摸底测试题(6)

  (26)数据库系统的三级模式不包括(  )。

  A.概念模式

  B.内模式

  C.外模式

  D.数据模式

  (27)以下选项中关于C语言常量的叙述错误的是(  )。

  A.经常被使用的变量可以定义成常量

  B.常量分为整型常量、实型常量、字符常量和字符串常量

  C.常量可分为数值型常量和非数值型常量

  D.所谓常量,是指在程序运行过程中,其值不能被改变的量

  (28)软件生命周期中的活动不包括(  )。

  A.市场调研

  B.需求分析

  C.软件测试

  D.软件维护

  (29)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.b,B,b,A

  B.b,B,B,A

  C.a,B,B,a

  D.a,B,a,B

  (30)某系统总体结构图如下图所示:

  

2016年计算机二级C语言考前40天摸底测试题(6)

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

  A.7

  B.6

  C.3

  D.2

  (31)有三个关系R、S和T如下:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  则由关系R和S得到关系T的操作是(  )。

  A.自然连接

  B.交

  C.投影

  D.并

  (32)以下叙述中正确的是(  )。

  A.C语句必须在一行内写完

  B.C程序中的每一行只能写一条语句

  C.C语言程序中的注释必须与语句写在同一行

  D.简单C语句必须以分号结束.

  (33)若变量均已正确定义并赋值,以下合法的C语言赋值语句是(  )。

  A.x=y==5;

  B.x=n%2.5;

  C.x+n=i;

  D.x=5=4+1:

  (34)有以下计算公式

  

2016年计算机二级C语言考前40天摸底测试题(6)

  (35)下列关于C语言文件的叙述中正确的是(  )。

  A.文件由一系列数据依次排列组成,只能构成二进制文件

  B.文件由结构序列组成,可以构成二进制文件或文本文件

  C.文件由数据序列组成,可以构成二进制文件或文本文件

  D.文件由字符序列组成,其类型只能是文本文件

  (36)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序执行后的输出结果是(  )。

  A.5

  B.24

  C.32

  D.40

  (37)下列选项中,能正确定义数组的语句是(  )。

  A.int num[0..2008];

  B.int num[];

  C.int N=2008;int num[N];

  D.#define N 20118 int num[N];

  (38)有以下程序:

  

2016年计算机二级C语言考前40天摸底测试题(6)

  程序运行后的输出结果是(  )。

  A.1,6,2,1,

  B.8,7,3,1,

  C.4,7,5,2,

  D.1,6,5,7,

  (39)有以下程序:

  

2016年9月计算机二级C语言考前40天必做试题(3)

  程序运行后的输出结果是(  )。

  A.2

  B.4

  C.6

  D.8

  (40)有以下程序:

   2016年9月计算机二级C语言考前40天必做试题(3)

  程序运行后的输出结果是(  )。

  A.1,2,3,0,0,0,0,0,0,0,

  B.1,2,3,1,2,3,0,0,0,0,

  C.123,0,0,0,0,123,0,0,0,0,

  D.1,2,3,0,0,1,2,3,0,0,

  二、程序填空题(共18分)

  下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。例如,s所指的字符串为“def35adh3kjsdi7”,执行后结果为“defadhajsdf3537”。请在程序的下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!

  

2016年计算机二级C语言考前40天摸底测试题(6)

  三、程序修改题(共18分)

  下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

  

2016年计算机二级C语言考前40天摸底测试题(6)

  

2016年计算机二级C语言考前40天摸底测试题(6)

  四、程序设计题(共24分)

  编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  

2016年计算机二级C语言考前40天摸底测试题(6)

  

2016年计算机二级C语言考前40天摸底测试题(6)

  (1)B 【解析】线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以B正确。所以有一个以上根结点的数据结构一定是非线性结构,所以A错误。循环链表和双向链表都是线性结构的数据结构。

  (2)D 【解析】程序调试的任务是诊断和改正程序中的错误。

  (3)A 【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。

  (4)C 【解析】C语言规定,变量命名必须符合标识符的命名规则,C选项中包含了非法字符“-”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。

  (5)A 【解析】在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给int型变量a,把6.0赋给int型float型变量b。

  (6)B 【解析】switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句。然后退出。所以输入1时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。

  (7)C 【解析】要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。

  (8)C 【解析】字符数组a中包含两个‘\0’,遇到第一个‘\O’时就表示字符串a结束。字符串处理函数strcat(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘\0’取消,只在新串最后保留一个‘\0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。

  (9)A 【解析】该程序考察的是函数的递归调用,在调用—个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+…+8+9+10=55。因此A选项正确。

  (10)C 【解析】本题考查结构体数组的相关操作,dt为结构体数组,那么指针p指向了结构体数组的一个元素,所以p->x为1,p->y为2,结果为2,3。选项C正确。

  (11)D 【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

  (12)B 【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择B。

  (13)A 【解析】数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。

  (14)C 【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以C选项错误。

  (15)D 【解析】D选项中将字符串常量“aa”赋给字符变量a是错误的。

  (16)A 【解析】y--表示y使用后再自减1。所以最后一次y的值为0,条件不成立但仍要执行自减操作,y的值为-1,跳出循环。打印v的值-1。

  (17)B 【解析】本题重点考察函数返回值的相关知识,函数的值只能通过return语句返回主调函数,在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。

  (18)C 【解析】主程序读取整个字符串存于S中,调用fun函数,字符指针c指向数组s。函数fun的功能是把指针c所指向的字符数组中的所有小写字符转换为大写。gets函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果*C为小写字符,则*C=* c-32(转大写)。因此C选项正确。

  (19)A 【解析】语句pc=eh;使得指针变量指向字符数组ch的首地址,即指向字符‘u’。则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的spc+5的值即为‘z’。因此A选项正确。

  (20)D 【解析】该题目中首先区别++n和n++,第一次调用f函数时,将++n(n自增1后再参与运算)作为参数进行传递,此时变量m的值为1,执行n+=m;后,n=1,将1返回主函数,并输出。第二次调用f函数时,将n++(n参与运算后再自增1)作为参数进行传递,此时变量m的值为1,执行语句n+=m;,由于n是静态存储变量,因此n=2,将2返回主函数并输出。因此D选项正确。

  (21)C 【解析】本题考查宏定义,宏定义只是做简单的替换,所以本题中SUB(a+b)*e=(a+b)-(a+b)*e=-20,所以答案为C选项。

  (22)D

  (23)B 【解析】程序首先给字符数组s[]赋值为“Ol2xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为2个,即n=2。因此B选项正确。

  (24)D 【解析】本题考查typedef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  (25)D 【解析】逻辑或运算符中只要有一个运算量为真结果就是真,当c>=2&& c<=6条件不成立时c的值肯定不是2、3、4、5、6,所以c!=3,与c!=5均成立。所以D选项的结果一定为真。

  (26)D 【解析】数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。

  (27)A 【解析】C语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以A选项错误。

  (28)A 【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择A。

  (29)A

  (30)C 【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统--功能2--功能2.1,就是最深的度数的一个表现。

  (31)A 【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。

  (32)D 【解析】c语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。

  (33)A 【解析】B选项中运算符“%”的前后必须为整数,C选项中不能将变量赋给表达式x+n,D选项中不能将表达式4+1赋给常量5。

  (34)C 【解析】本题重点考查的知识点是:sqrt()函数。sqrt()函数的作用是计算平方根,要求输出的参数X必须大于等于0。题目公式的要求是无论X大于等于0还是小于0,y的值都为X绝对值的开方。选项C中调用了sqrt(x)函数,而没有判断x的正负,则y=sqrt(x)会出错。

  (35)C 【解析】本题考查文件的概念,文件是由数据序列组成,可以构成二进制文件或文本文件,所以答案为C选项。

  (36)C 【解析】本题的含义是在1-40的整数的范围中,只有当i的值能被5整除,且i+2的值能被8整除时,打印i的值,满足这个条件的只有32,选择C选项。

  (37)D 【解析】C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C选项错误,N为变量,不能用来定义数组大小。因此D选项正确。

  (38)D【解析】首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为1、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。因此D选项正确。

  (39)D 【解析】本题考查位运算符,题目中将a向左移两位,左移两位表示乘以4,所以答案为8。选项D正确。

  (40)D 【解析】本题考查文件操作函数,两次fwrite后,币文件中已经写入1,2,3,0,0,1,2,3,0,0然后将文件fp中的内容重新写入数组a中,最后输出a为1,2,3,0,0,1,2,3,0,0,所以选项D正确。

  二、程序填空题

  

2016年计算机二级C语言考前40天摸底测试题(6)

  【考点分析】

  本题考查:指针型变量;数组变量赋值.for循环语句。

  【解题思路】

  填空1:根据函数fun中的内容可知,数组t1存储了s中的非数字字符,数组t2存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。

  填空2:将s串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填人s[i]=t1[i]。

  填空3:最后将数字字符加到s串之后,并且i要小于数字的个数j。

  三、程序修改题

  

2016年计算机二级C语言考前40天摸底测试题(6)

  【考点分析】

  本题考查:if语句条件表达式;小写字母转大写字母的方法。

  【解题思路】

  (1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a~z之间,所以这里需要进行连续的比较,用&&。

  (2)从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCII码值判断该字母是不是小写字母,若是,则ASCII码值减32即可。

  四、程序设计题

  【参考答案】

  

2016年计算机二级C语言考前40天摸底测试题(6)

  【考点分析】

  本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串是否结束。

  【解题思路】

  从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是‘\O’,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心