- 相关推荐
2024计算机二级C语言备考提分题
无论是身处学校还是步入社会,我们都不可避免地会接触到试题,借助试题可以更好地考核参考者的知识才能。一份好的试题都是什么样子的呢?以下是小编帮大家整理的2024计算机二级C语言备考提分题,供大家参考借鉴,希望可以帮助到有需要的朋友。
C语言备考题1
选择题
1、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
if(x++>5) printf("%d",x);
else printf("%d\n",x - -);
A. 7和5
B. 6和3
C. 7和4
D. 6和4
2、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符’a’和’A’的地址
3、选出下列标识符中不是合法的标识符的是( )。
A. hot_do
B. cat1
C. _pri
D. 2ab
4、下列描述中不正确的是( )。
A、字符型数组中可能存放字符串。
B、可以对字符型数组进行整体输入、输出。
C、可以对整型数组进行整体输入、输出。
D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。
A. p+1
B. a+1
C. a++
D. ++p
6、设有如下定义: int x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
A. 1
B. 0
C. 4
D. 3
7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( )
A. 1 5 9
B. 1 4 7
C. 3 5 7
D. 3 6 9
8、读出以下语句的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x--,--y);
A. 10 10
B. 9 9
C. 9 10
D. 10 9
9、以下选项中属于C语言的数据类型是( )。
A. 复合型
B. 双精度型
C. 逻辑型
D. 集合型
10、以下说法中正确的是( )。
A. C语言程序总是从第一个的函数开始执行。
B. 在C语言程序中,要调用的函数必须在main()函数中定义。
C. C语言程序总是从main()函数开始执行。
D. C语言程序中的main()函数必须放在程序的开始部分。
参考答案:
1、C 2、D3、D 4、C 5、C 6、D 7、C 8、D 9、B 10、C
C语言备考题2
(1)下列叙述中正确的是( )。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
(2)下列叙述中正确的是( )。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
(3)下列关于二叉树的叙述中,正确的是( )。
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
(4)软件生命周期中的活动不包括( )。
A.市场调研
B.需求分析
C.软件测试
D.软件维护
(5)该系统总体结构图的深度是( )。
A.7
B.6
C.3
D.2
(6)程序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
(7)下列关于数据库设计的叙述中,正确的是( )。
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
(8)数据库系统的三级模式不包括( )。
A.概念模式
B.内模式
C.外模式
D.数据模式
(9)有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是( )。
A.自然连接
B.交
C.投影
D.并
(10)下列选项中属于面向对象设计方法主要特征的是( )。
A.继承
B.自顶向下
C.模块化
D.逐步求精
(11)以下叙述中错误的是( )。
A.算法正确的程序可以有零个输入
B.算法正确的程序最终一定会结束
C.算法正确的程序可以有零个输出
D.算法正确的程序对于相同的输入一定有相同的结果
(12)以下叙述中正确的是( )。
A.C语句必须在一行内写完
B.C程序中的每一行只能写一条语句
C.C语言程序中的注释必须与语句写在同一行
D.简单C语句必须以分号结束
(13)以下选项中关于C语言常量的叙述错误的是( )。
A.经常被使用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量.
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
(14)以下选项中,不合法的c语言用户标识符是( )。
A.a_b
B.AaBc
C.f1一一b
D.一1
(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。
A.X…Y5;
B.X=n%2.5;
C.X+n=i;
D.x=5=4+1:
(16)设有定义:
则a和b的值分别是( )。
A.87和6.0
B.876和543.0
C.87和543.0
D.76和543.0
(17)有以下定义语句,编译时会出现编译错误的是( )。
A.char a=’\x2d’;
B.char a=。\n。;
C.char a=…a;
D.char a=”aa”:
(18)当变量c的值不为2、4、6时,值也为”真”的表达式是( )。
A.(c>=2&&c<=6)&&(c%2 1=1)
B.(c==2)l l(e==4)II(C==6)
C.(C>=2&&c<=6)!(c%2)-
D.(c>=2&&c<=6)I l(c!=3)I|(C!=5)
(19)有以下计算公式
若程序前面已在命令行中包含math.h,不能够正确计算上述公式的程序段是( )。
(20)有以下程序:
程序执行后的输出结果是( )。
y=一1
B.Y=0
C.y=1
D.while构成无限循环
(21)有以下程序:
程序执行后的输出结果是( )。
A.5
B.24
C.32
D.40
(22)有以下程序:
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。
A.66656
B.6566456
C.66666
D.6666656
(23)以下叙述中错误的是( )。
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有reillnl语句,则应当定义函数为void类型
D.函数的retU/Tl语句中可以没有表达式
(24)有以下程序:
程序运行后的输出结果是( )。
A.b。Bb,A
B.b,B,B,A
C.a,B,B,a
D.a,B,a,B
(25)下列选项中,能正确定义数组的语句是( )。
A.int num[0..2008];
B.int lllllll[];
C.int N:2008:
D.#define N 2008int num[N1;int num[N];
(26)以下函数实现按每行8个输出W所指数组中的数据:
在横线处应填人的语句是( )。
A.if(i/8==0)printf(”\n”);
B.if(i/8==O)continue;
C.if(i%8==0)prinff(’’\n”);
D.if(i%8==0)continue;
(27)有以下程序:
当执行程序时从键盘上输入Hello Beijing<回车>,则程序运行后的输出结果是( )。
hello bajiIlg
B.Hello Beijing
C.HELLO BEIJING
D.hELLO Beijing
(28)有以下程序:
程序运行后的输出结果是( )。
A.1,6,2,1,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,5,7,
(29)有以下程序(strcat函数用于连接两个字符串):
程序运行后的输出结果是( )。
A.U-K
B.ABCDE\0FG\0UK
C.ABCDUK
D.EFGUK
(30)有以下程序段:
当执行上述程序段,并从键盘输入:nalne=Lili nLim=1001<回车>后,name的值为( )。
A.name:=Lili num=1001
B.nfllne=Lili
C.Uli.h.um。=
D.Lili
(31)有以下程序:
程序运行后的输出结果是( )。
A.Z
B.0
C.元素ch[5]的地址
D.字符y的地址
(32)有以下程序:
程序运行后的输出结果是( )。
O
B.2
C.3
D.5
(33)有以下程序:
执行程序时,给变量x输入l0,程序运行后的输出结果是( )。
A.55
B.54
C.65
D.45
(34)有以下程序:
程序运行后的输出结果是( )。.
A.3,3
B.1,1
C.2,3
D.1,2
(35)设有以下语句:typedef struct TY{char C;int a{4 1;}CIN;
则下面叙述中正确的是( )。
A.CIN是struct Tr类型的变量
B.TT是struct类型的变量
C.可以用,l,r定义结构体变量
D.可以用CIN定义结构体变量
(36)有以下程序:
程序运行后的输出结果是( )。
A.3,4
B.4,1
C.2,3
D.1,2
(37)有以下程序:
程序运行后的输出结果是( )。
A.0
B.一12
C.一20
D.10
(38)有以下程序:
程序运行后的输出结果是( )。
A.2
B.4
C.6
D.8
(39)下列关于C语言文件的叙述中正确的是( )。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
(40)有以下程序:
程序运行后的输出结果是( )。
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,
参考答案与解析
(1)D
【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
(2)B
【解析】线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以8正确。所以有一个以上根结点的数据结构一定是非线性结构,所以A错误。循环链表和双向链表都是线性结构的数据结构。
(3)B
【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择8。
(4)A
【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择A。
(5)C
【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统——功能2——功能2.1,就是最深的度数的一个表现。
(6)D
【解析】程序调试的任务是诊断和改正程序中的错误。
(7)A
【解析】数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
(8)D
【解析】数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。
(9)A
【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和s做的是自然连接操作。
(10)A
【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。
(11)C
【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以c选项错误。
(12)D
【解析】C语句可以跨行来写,但是必须以分号结束,所以A选项错误。c程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。
(13)A
【解析】C语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以A选项错误。
(14)C
【解析】C语言规定,变量命名必须符合标识符的命名规则,c选项中包含了非法字符“一”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。
(15)A
【解析】B选项中运算符“%”的前后必须为整数,C选项中不能将变量赋给表达式x+n,D选项中不能将表达式4+1赋给常量5。
(16)A
【解析】在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给int型变量a,把6.0赋给im型f1oat型变量b。
(17)D
【解析】D选项中将字符串常量…aa赋给字符变量a是错误的。
(18)D
【解析】逻辑或运算符中只要有一个运算量为真结果就是真,当c>=2&&C&1t;=6条件不成立时c的值肯定不是2、3、4…5 6所以C!=3,与C!=5均成立。所以D选项的结果一定为真。
(19)C
【解析】本题重点考查的知识点是:s叫()函数。s叫()函数的作用是计算平方根,要求输出的参数x必须大于等于0。题目公式的要求是无论x大于等于0还是小于0,Y的值都为x绝对值的开方。选项c中调用了sqrt(x)函数,而没有判断X的正负,则Y=m-(x)会出错。
(20)A
【解析】y一一表示Y使用后再自减1。所以最后一次Y的值为0,条件不成立但仍要执行自减操作,Y的值为一1,跳出循环。打印Y的值一1。
(21)C
【解析】本题的含义是在1—40的蔓敦的范围中,只有当i的值能被5整除,且i+2的值能被3整除时,打印i的值,满跫这个条件的只有32,选择c选项。
(22)B
【解析】switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行了defau1t后面前语句。然后退出。所以输入1时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。
(23)B
【解析】本题重点考察函数返回值的相关知识,函数的值只能通过retur11语句返回主调函数,在函敦中允许有多个return语句,但每次调用只能有一个return语句t执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。
(24)A
【解析】本题重点考察函数的调用,首先要了解字母对应的ASCI1码。例如A为65,a为97。即字母+1劂可得到下一个字母。-其次是函数形参和实参的问题,运行过程如下:在fun(&b,a)中,}c=.a-,d=65。}c+1=V,d+1=66,prinff(”%c,%c,”,}C,d);输出b,B,因为指针c指向地址的值为b,此时b=}C=.b.;豳数返回执行ptud(。%C,%c、n”,b,8);输出b,A,因此A选项正确。
(25)D
【解析】C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;c选项错误,N为变量,不能用来定义数组大小。因此D选项正确。
(26)C
【解析】要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此c选项正确。
(27)C
【解析】主程序读取整个字符串存于s中,调用fun函数。字符指针c指向数组S。函数fun的功能是把指针C所指向的字符数组中的所有小写字符转换为大写。嚣cts函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果·c为小写字符,则}C={C一32(转大写)。因此C选项正确。
(28)D
【解析】首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为1、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。因此D选项正确。
(29)C
【解析】字符数组a中包含两个‘、O’,遇到第一个‘O’时就表示字符串a结束。字符串处理函数由c吐(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘、0’取消,只在新串最后保留一个‘、0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。
(30)D
【解析】在输入格式控制“name=%s num=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=1ift hum=1001&1t;回车>”后,将字符串Ij1i赋给字符数组11a1ne,整数1001赋给变量num。因此D选项正确。
(31)A
【解析】语句pc=eh;使得指针变量指向字符数组ch的首地址,即指向字符‘u’,则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的$pc+5的值即为‘Z’。因此A选项正确。
(32)B
【解析】程序首先给字符数组8[]赋值为“012xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为j2个,即n=2。因此B选项正确。
(33)A
【解析】该程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。执行结果为1+2+3+…+8+9+10=55。因此A选项正确。
(34)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选项正确。
(35)D
【解析】本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。
(36)C
【解析】本题考查结构体数组的相关操作,dt为结构体数组,那么指针P指向了结构体数组的一个元素,所以P一>x为1,P一>Y为2,结果为2,3。选项C正确。
(37)C
【解析】本题考在宏定义,宏定义只是做简单的替换,所以本题中SUB(a+b)·c=(a+b)一(a+b)·e=一20,所以答案为C选项。
(38)D
【解析】本题考查位运算符,题目中将a向左移两位,左移两位表示乘以4,所以答案为8,选项D正确。
(39)C
【解析】本题考查文件的概念,文件是由数据序列组成,可以构成二进制文件或文本文件,所以答案为c选项。
(40)D
【解析】本题考查文件操作函数,两次fwrite后,币文件中已经写入1,2,3,O,0,1,2,3,0,0然后将文件币中的内容重新写人数组a中,最后输出a为1。2,3,0,0,1,2,3,0,0,所以选项D正确。
【计算机二级C语言备考提分题】相关文章:
计算机二级C语言历年真题及答案03-02
计算机二级《C语言》选择题题库及答案11-16
全国计算机二级考试《C语言》真题与答案03-02
计算机二级C语言上机编程题详细分析11-08
计算机二级C语言考试必看技巧09-24
2017计算机二级C语言基础试题01-19
计算机二级考试《C语言》的考生技巧09-28
计算机二级C语言模拟练习题10-14
2017计算机二级C语言上机题库及答案01-26