(21)下列叙述中正确的是( )。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
(22)下列叙述中正确的是( )。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
(23)下列关于二叉树的叙述中,正确的是( )。
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
(24)软件生命周期中的活动不包括( )。
A.市场调研
B.需求分析
C.软件测试
D.软件维护
(25)某系统总体结构图如下图所示:
该系统总体结构图的深度是( )。
A.7
B.6
C.3
D.2
(26)程序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
(27)下列关于数据库设计的叙述中,正确的是( )。
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
(28)数据库系统的三级模式不包括( )。
A.概念模式
B.内模式
C.外模式
D.数据模式
(29)有三个关系R、S和T如下:
则由关系R和s得到关系T的操作是( )。
A.自然连接
B.交
C.投影
D.并
(30)下列选项中属于面向对象设计方法主要特征的是( )。
A.继承
B.自顶向下
C.模块化
D.逐步求精
(31)有以下程序:
程序执行后的输出结果是( )。
A.5
B.24
C.32
D.40
(32)有以下程序:
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。
A.66656
B.6566456
C.66666
D.6666656
(33)以下叙述中错误的是( )。
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有reillnl语句,则应当定义函数为void类型
D.函数的retU/Tl语句中可以没有表达式
(34)有以下程序:
程序运行后的输出结果是( )。
A.b。B'b,A
B.b,B,B,A
C.a,B,B,a
D.a,B,a,B
(35)下列选项中,能正确定义数组的语句是( )。
A.int num[0..2008];
B.int lllllll[];
C.int N:2008:
D.#define N 2008int num[N1;int num[N];
(36)以下函数实现按每行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;
(37)有以下程序:
当执行程序时从键盘上输入Hello Beijing<回车>,则程序运行后的输出结果是( )。
hello bajiIlg
B.Hello Beijing
C.HELLO BEIJING
D.hELLO Beijing
(38)有以下程序:
程序运行后的输出结果是( )。
A.1,6,2,1,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,5,7,
(39)有以下程序(strcat函数用于连接两个字符串):
程序运行后的输出结果是( )。
A.U-K
B.ABCDE\0FG\0UK
C.ABCDUK
D.EFGUK
(40)有以下程序段:
当执行上述程序段,并从键盘输入:nalne=Lili nLim=1001<回车>后,name的值为( )。
A.name:=Lili num=1001
B.nfll'ne=Lili
C.Uli.h.um。=
D.Lili
(21)D【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
(22)B【解析】线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以8正确。所以有一个以上根结点的数据结构一定是非线性结构,所以A错误。循环链表和双向链表都是线性结构的数据结构。
(23)B【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择B。
(24)A【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择A。
(25)C【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统——功能2——功能2.1,就是最深的度数的一个表现。
(26)D【解析】程序调试的任务是诊断和改正程序中的错误。
(27)A【解析】数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
(28)D【解析】数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。
(29)A【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和s做的是自然连接操作。
(30)A【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。
(31)C【解析】本题的含义是在1—40的蔓敦的范围中,只有当i的值能被5整除,且i+2的值能被3薹纛时,打印i的值,满跫这个条件的只有32,选择c选项。
(32)B【解析】switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行defau1t后面前语句。然后退出。所以输入1时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。
(33)B【解析】本题重点考察函数返回值的相关知识,函数的值只能通过retur11语句返回主调函数,在函敦中允许有多个return语句,但每次调用只能有一个return语句t执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。
(34)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选项正确。
(35)D【解析】C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;c选项错误,N为变量,不能用来定义数组大小。因此D选项正确。
(36)C【解析】要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。
(37)C【解析】主程序读取整个字符串存于s中,调用fun函数。字符指针c指向数组S。函数fun的功能是把指针C所指向的字符数组中的所有小写字符转换为大写。嚣cts函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果·c为小写字符,则}C={C一32(转大写)。因此C选项正确。
(38)D【解析】首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为1、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。因此D选项正确。
(39)C【解析】字符数组a中包含两个‘、O’,遇到第一个‘O’时就表示字符串a结束。字符串处理函数由c吐(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘、0’取消,只在新串最后保留一个‘、0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。
(40)D【解析】在输入格式控制“name=%s num=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=1ift hum=1001&1t;回车>”后,将字符串Ij1i赋给字符数组11a1ne,整数1001赋给变量num。因此D选项正确。
2017年计算机二级《C语言》考前试题及答案8.doc