1、国家二级( C语言)笔试模拟试卷 88及答案与解析 1 下列叙述中止确的是 ( )。 ( A)数据的逻辑结构与存储结构必定一一对应 ( B)由于汁算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 2 下列数据结构中具有记忆功能的是 ( )。 ( A)队列 ( B)循环队列 ( C)栈 ( D)顺序表 3 设栈 S初始状态为空。元素 a、 b、 c、 d、 e、 f依次通过栈 S,若出栈的顺序 为c、 f、 e、 d、 b、 a,则栈 S的容量至少应该为 ( )。 ( A
2、) 6 ( B) 5 ( C) 4 ( D) 3 4 下列叙述中正确的是 ( )。 ( A)测试工作必须由程序编制者自己完成 ( B)测试用例和调试用例必须一致 ( C)一个程序经调试改正错误后,一般不必再进行测试 ( D)上述三种说法都不对 5 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 ( )。 ( A)调用语句 ( B)命令 ( C)口令 ( D)消息 6 在软件生存周期中,能准确确定软件系统必须做什么和必须具备 哪些功能的阶段是 ( )。 ( A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 7 在结构化方法中,软件功能分解属于下列软件开发中的阶
3、段是 ( )。 ( A)概要设计 ( B)需求分析 ( C)详细设计 ( D)编程调试 8 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统管理阶段和数据库系统管理阶段。其中数据独立性最高的阶段是 ( )。 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管理 9 按条件 f对关系 R进行选择,其关系代数表达式是 ( )。 ( A) R| |R ( B) ( C) f(R) ( D) f(R) 10 下列叙述中错误的是 ( )。 ( A)在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统 ( B)在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关
4、 ( C)在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关 ( D)在数据库设计的过程中,物理结构设计依赖于具体的计算机系统 11 以下叙述中正确的是 ( )。 ( A) C语言的源程序不必通过编译就可以直接运行 ( B) C语言中的每条可执行语句 最终都将被转换成二进制的机器指令 ( C) C源程序经编译形成的二进制代码可以直接运行 ( D) C语言中的函数不可以单独进行编译 12 以下符合 C语言语法的实型常量是 ( )。 ( A) 1.2E0.5 ( B) 3.14159E ( C) 5.00E-03 ( D) E15 13 以下 4组用户定义标识符中,全部合法的一组是 (
5、)。 ( A) _main enclude sin ( B) If -max turbo ( C) txt REAL 3COM ( D) int k_2 _001 14 以下选项中非法的表达式是 ( )。 ( A) 0 =x 100 ( B) i=j=0 ( C) (char)(65+3) ( D) x+1=x+1 15 若变量 a、 i已正确定义,且 i已正确赋值,合法的语句是 ( )。 ( A) a=1 ( B) +i; ( C) a=int(i); ( D) a=a+=5; 16 有以下程序: main() int m=0256,n=256; printf(“%o %on,m,n); 程
6、序运行后 的输出结果是 ( )。 ( A) 0256 0400 ( B) 0256 256 ( C) 256 400 ( D) 400 400 17 有定义语句: “int x, y; ”,若要通过 “scanf(“%d,%d“, m-=n; printf(“%Xn“,m); 执行后输出结果是 ( )。 ( A) 0X0 ( B) 0x0 ( C) 0 ( D) 0XABC 19 设变量 x为 noat型且已赋值,则以下语句中能将 x中的数值保留到小数点后两位,并将第 3位四舍五入的是 ( )。 ( A) X=X*100+0.5/100.0; ( B) x=(x*100+0.5)/100.0;
7、 ( C) x=(int)(x*100+0.5)/100.0; ( D) x=(x/100+0.5)*100.0; 20 执行下 面的程序时,输入 abc CR (其中 CR代表回车 ),输出结果是 ( )。 #include stdio.h #include string.h main() char ch; while(cn=getchar()!=n) switch(ch-a) case 0: putchar(ch+1); case 1:putchar(ch+1);break; case 2: putchar(ch+2); caSe 3: putchar(ch+2);break; ( A)
8、abc ( B) bbc ( C) abcd ( D) bbcee 21 若有定义: int a=8, b=4, C; 执行语句 “c=a/b+0.4; ”后, c的值为 ( )。 ( A) 1.4 ( B) 1 ( C) 2 ( D) 2 22 以下程序的输出结果是 ( )。 main() int a=-1, b=4, k; k=(+a0) ( A) 104 ( B) 103 ( C) 3 ( D) 4 23 设有如下定义: int a=4; 则计算表达式 “a+=a-a*a”后的值是 ( )。 ( A) 0 ( B) -12 ( C) -24 ( D) -8 24 以下选项中合法的实型常数
9、是 ( )。 ( A) 5E2.0 ( B) E-3 ( C) 2.00E-01 ( D) 1.3E 25 若有以下定义: char a; int b; float c; double d;则表达式 “a*b+d-c”值的类型为( )。 ( A) float ( B) int ( C) char ( D) double 26 若执行下述程序时,从键盘输入的数据是 3和 6,则程序的输出结果是 ( )。 #include stdio.h void main() int x,y,z; scanf(“%d%d“, z = y + x; if (x y) z = y + x; printf(“%d“,
10、z); ( A) 9 ( B) 3 ( C) 0 ( D)有语法错误 27 有以 下程序: main() int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0;m+;break; printf(“%dn“,m); 程序运行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 28 定义如下变量: int n=10; 则下列循环的输出结果是 ( )。 while(n 7) -n; printf(“%dn“,n); ( A) 1098 ( B)
11、987 ( C) 10987 ( D) 9876 29 有以下程序: main() int a=5,b=4,c=3,d=2; if(a b c) printf(“%dn“,d); else if(c-1 =d)=1) printf(“%dn“,d+1); else printf(“%dn“,d+2) 执行后输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D)编译时有错,无结果 30 以下程序的输出结果是 ( )。 main() char a10=1, 2, 3, 4, 5, 6,7, 8, 9, 0),*p; int i; i=8; p=a+i; printf(“%sn“,
12、p-3); ( A) 6 ( B) 6789 ( C) 6 ( D) 789 31 若有如 下程序: main() int x=14,32,65,69,78,59,*t; t= x +5; printf(“%dn“,*-t); 则程序执行后的输出结果是 ( )。 ( A) 78 ( B) 65 ( C) 32 ( D) 14 32 若有如下程序: main() static char*a3=“123“,“456“,“789“); char *b; b=a; +b; printf(“%s,%sn“,*a,*a+1); printf(“%s,%sn“,*b,b1); 则程序运行后的输出结果是 (
13、)。 ( A) 123, 456, 456, 789 ( B) 123, 23 456, 56 ( C) 123, 23 456, 789 ( D) 123, 456 456, 56 33 以下不正确的定义语句是 ( )。 ( A) double x5=2.0,4.0,6.0,8.0,10.0; ( B) int y5=O,1,3,5,7,9; ( C) char c1=1,2,3,4,5; ( D) char c2=x10,xa,x8; 34 若有说明: int*p,m=5,n;,以下正确的程序段是 ( )。 ( A) p= scanf(“%d“, scanf(“%d“, ( D) p= p
14、= 35 执行下面程序时,若输入 1、 -5、 6,则输出结果为 ( )。 # include stdio.h # include math.h # define disc(a,b,c) b*b-4*a*c main() float x1,x2; int a,b,c; scanf(“%d,%d,%d“, x1=(-b+sqrt(disc(a,b,c)/(2*a); x2=(-b-sqrt(disc(a,b,c)/(2*a); printf(“%5.1f.%5.1f“,x1,x2); ( A) 3, 2 ( B) 3.0, 2.0 ( C) -3, -2 ( D)程序出错 36 下面程序的输出结
15、果是 ( )。 char s()=“ABCD“,*p; main() for(p=s;ps+4;p+)printf(“%sn“,p); ) ( A) ABCD BCD CD D ( B) A B C D ( C) D C B A ( D) ABCD ABC AB A 37 程序中头文件 type1.h的内容是 ( )。 #define N 5 #define M1 N*3 程序如下: #define “type1.h“ #define M2 N*2 main() int i; i=M1+M2; printf(“%dn“,i); 程序编译后运行的输出结果是 ( )。 ( A) 10 ( B) 2
16、0 ( C) 25 ( D) 30 38 下面程序的输出结果是 ( )。 main() struct m1int a;int b;en2=1,3,2,7); printf(“%dn“,en0.b/en0.a*en1.a); ( A) 6 ( B) 0 ( C) 1 ( D) 3 39 语句 “a=2;p=b=*p+;”执行后的结果是 ( )。 ( A) a=3 b=3 ( B) a=2 b=2 ( C) a=2 b=1 ( D) a=2 b=3 40 设有如下定义: struct ss char name10; int age; char sex; std3,*p=std; 下面各 输入语句中
17、错误的是 ( )。 ( A) scanf(“%d“, ( C) scanf(“%c“, 41 若有如下程序: int sub(int m) if(m=1|m=0) return 2; else return(sub(m-1)*sub(m-2); main() int n; scanf(“%d“, printf(“%d“,sub(n); 如果从键盘输入 4回车,则程序运行后的输出结果是( )。 ( A) 8 ( B) 16 ( C) 24 ( D) 32 42 有以下程序: main(int arge, char*argv) int n,i=0; while(arv1i!=0 n=fun( );
18、i+; printf(“%dn“,n*argc) int fun() static int s=0; s+=1; return s; 假设程序经编译、连接后生成可执行文件 exam.exe,若输入以下命令行 exam 123回车 则运行结果为 ( )。 ( A) 6 ( B) 8 ( C) 3 ( D) 4 43 下列属于不合法的 main函数命令行参数表示形式的是 ( )。 ( A) main(int argv, char*argc) ( B) main(int argv, char*argc) ( C) main(int argv, char*arc) ( D) main(int argc
19、, char*argv) 44 设有如下定义: struck sk int a; float b; data; int *p; 若要使 p指向data中的 a域,正确的赋值语句是 ( )。 ( A) p= 根据上面的定义,若执行 “printf(“%s:%d%f“,class3.name,class3.age,class3.score);“则输出的正确结果是 ( )。 ( A) Song:19,80.000000 ( B) Zhao:16,69.000000 ( C) Li:17,67Song;19,80 ( D) guo:18,79Zhao;16,69 46 下列描述正确的是 ( )。 (
20、A) C语句能嵌套定义函数,但不可以嵌套调用函数 ( B) C语句不能嵌套定义函数,也不可以嵌套调用函数 ( C) C语句能嵌套定义函数,也可以嵌套调用函数 ( D) C语句不能嵌套定义函数,但可以嵌套调用函数 47 有如下程序段: int a=14,b=15,x; char c=A; x=(a main() int t=0,s=0; int m=4;s+=m;) t+=m; printf(“%d,%dn“,s,t); 则程序运行后的输出结果是 ( )。 ( A) 1, 1 ( B) 1, 4 ( C) 4, 1 ( D) 4, 4 49 执行下列程序时输入: 123空格 456空格 789回
21、车,输出结果是( )。 main() char s100; int c, i; scanf(“%c“, scanf(“%d“, scanf(“%s“,s); printf(“%c,%d,%sn“,c,i,s); ( A) 1,456,789 ( B) 1,23,456 ( C) 1,23,456,789 ( D) 123,456,789 50 下面程序段的运行结果是 ( )。 char a=“abcdefgh“; char *p=a; p+=3; printf(“%dn“,strlen(strcpy(p,“ABCD“); ( A) 8 ( B) 12 ( C) 4 ( D) 7 51 设一棵完
22、全二叉树共有 700个结点,则在该二叉树中有【 】个叶子结点。 52 在面向对象方法中,类之间共享属性和操作的机制称为【 】。 53 源程序文档化要求程序应加注释。注释一般分为序言性注释和【 】。 54 一般来说,数据库的设计过程要经历 3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【 】阶段 。 55 数据流图有两种典型的结构形式,它们分别是变换型和【 】。 56 若有语句: int i=-19, j=i%4; printf(“%dn“,j); 则输出结果是【 】。 57 若有如下程序: #include “s
23、tdio.h“ main() char s30; Strcpy( Strcpy( strcpy(; printf(“%Sn“,s); 则程序运行后的输出结果是【 】。 58 以下程序运行后的输出结果是【 】。 main() int p711,13,14,15,16,17,18; int i=0,j=0; while(i 7 printf(“%dn“,j); 59 有以下程序 main() int n=0,m+1, X=2; if(!n) X-=l; if(m) X-=2; if(X) X-=3; printf(“%dn“,x); 执行后输出的结果是【 】。 60 执行以下程序后,输出 #号的个
24、数是【 】。 #include studio.h main() int i,j; for(i=1;i 5;i+) for(j=2;j =i;j+)putchar(#); 61 函数 sub的功能是根据下面近似分式求 的值。 (*)/6=1+1/(2*2)+1/(3*3)+1/(n*n) 现在请在下面的函数中填空,完成求 值的功能。 #include“math.h“ double sub(long m) double sum=0.0,t;long n; for(n=1;n =m;n+) sum+=【 】; t=sqrt(6*sum); return(t); 62 执行以下程序后 sum的值是【
25、】。 main() int i,sum; for(i=1;i 6;i+) sum+=i; printf(“%dn“, sum); 63 下列程序的输出结果是【 】。 void fun(int*n) while (*n)-); printf(“%d“, +(*n); main() int a=1000; fun( 64 下面程序用来输出结构体变量 a所占存储单元的字节数,请填空。 main() struct stu char x20; float y; a; printf(“a size:%dn“, sizeof(【 】 ); 65 若有如下程序: main() int a2=1,2,6,9,1
26、1,(*t)2; t=a; printf(“%d,%dn“,*(t1+1), (*t) 1); 则程序运行后输出的结果是【 】。 66 下面程序的功能是将字符串 a下标值为偶数的元素由小到大排序,其他元素不变,请填空。 #include stdio.h main() char a=“labchmfye“,t; int i,j; for(i=0;i 7;i+=2) for(j=i+2;j 9;【 】 ) if(【 】 ) t=ai; ai=aj; aj=t;j+; puts(a); printf(“n“); 67 以下程序中,函数 SumColumMin的功能是:求出 M行 N列二维数组每列元素
27、中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 #define M 2 #define N 4 void SumColumMin(int aMN, int*Sum) int i,j,k,s=0 for(i=0;i N;i+) k=0; for(j=1;j M;j+) if(ak i aj i)k=j; s+=【 】; 【 】 =s; main() int xMN=3,2,5,1,4,l,8,3),s; SumColumMin( 【 】 ); printf(“%dn“,s); 国家二级( C语言)笔试模拟试卷 88答案与解析 1 【正确答案】 D 【试题解析】 一种数据的逻辑
28、结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的,选项 A错误。计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此选项 B错误。数组一般是顺序存储结构,但利用数组也能处理非线性结构,选项 C错误。由此可知,只有选项 D的说法正确。 2 【正确答案】 C 【试题解析】 由栈的定义可知,栈是先进后出 (或后进先出 )的线性表,因此,栈具有记 忆功能。 3 【正确答案】 B 【试题解析】 根据题中给定的条件,可做如下模拟操作: 元素 a、 b、 c进栈,栈中
29、有 3个元素,分别为 a、 b、 c; 元素 c出栈后,元素 d、 e、 f进栈,栈中有5个元素,分别为 a、 b、 d、 e、 f; 元素 f、 e、 d、 a、 b出栈,栈为空。可以看出,进栈的顺序为 a、 b、 c、 d、 e、 f,出栈的顺序为 c、 f、 e、 d、 b、 a,满足题中所提出的要求。在每一次进栈操作后,栈中最多有 3个元素,因此,为了顺利完成这些操作,栈的容量应至少为 5。 4 【正确答案】 D 【试题解析】 测试不 是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,一般应当避免由开发者测试自己的程序,因此,选项 A错误;
30、测试是为了发现程序错误,不能证明程序的正确性,调试主要是推断错误的原因,从而进一步改正错误,调试用例与测试用例可以一致,也可以不一致,选项 B错误;测试发现错误后,可进行调试并改正错误:经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误,选项 C错误。 5 【正确答案】 D 【试题解析】 在面向对象方法中,一个对象请 求另一对象为其服务的方式是通过发送消息。 6 【正确答案】 D 【试题解析】 在需求分析阶段,根据可行性研究阶段所提交的文档,对目标系统提出清晰、准确和具体的要求。 7 【正确答案】 A 【试题解析】 概要设计的任务是划分出构成系统的各物理元
31、素以及设计出软件的结构 (如确定模块及模块间的关系 )。设计过程通常分为以下几步:提出可选择方案;选择合理方案;推荐最佳方案;功能分解;设计软件结构;制定测试计划:最后提交概要设计文档。软件功能分解属于概要设计阶段。本题的正确答案为选项 A。 8 【正 确答案】 A 【试题解析】 从题干中可知,数据项管理不属于数据管理技术的发展阶段,故可排除选项 D;在人工管理阶段,数据与应用程序是一一对应的,数据结构改变时,程序也必须随之修改,数据与程序不具有独立性;在文件系统管理阶段,借助于操作系统中的文件系统,数据可以用统一格式、以文件形式长期保存在计算机系统中,数据的各种转换以及存储位置的安排也由文件
32、系统来统一管理,使程序与数据之间具有一定的独立性:在数据库系统管理阶段,通过系统提供的映像功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数 据的完整性、安全性和并发性。由上所述,数据独立性最高的阶段是数据库系统管理阶段。 9 【正确答案】 C 【试题解析】 选项 A表示关系 R与关系 R进行自然连接;选项 B表示关系 R与关系 R按条件 f做连接运算;选项 C表示按条件 f对关系 R做选择运算;选项 D表示在域 f上对关系 R做投影运算。 10 【正确答案】 B 【试题解析】 数据库设计主要分 4个步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计。选项 B错误,
33、应为本题的正确答案,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的 逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关。 11 【正确答案】 B 【试题解析】 C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个 C程序到完成运行一般经过以下几个步骤。编辑、编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后得到的二进制代码还不能直接执行,因为每一个模块往往是 单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是 计算机
34、能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项 A、 C、 D均不正确。所以, 4个选项中选项 B符合题意。 12 【正确答案】 C 【试题解析】 在 C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项 A中 1 2和 0 5都不是整数,故选项 A不正确;选项 B中 3 14159也不是整数,故选项 B不正确;选项 D中数值部分不能为空,故选项 D也不正确。所以, 4介选项中选项 C符合题意。 13 【正确答案】 A 【试 题解析】 标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列 (例
35、如, -max含非法字符 -),并且用户标识符不能与 C语言中的 32个关键字同名 (例如, int是关键字,不是合法的用户标识符 )。选项 B中 -max不是字母、数字或下划线组成的字符序列,故选项 B不正确;选项 C中 3COM不是由字母或下划线开头,故选项 C不正确;选项 D中 int为 C语言中的关键字,故选项 D不正确;选项 A中全部为合法的标识符,所以, 4个选项中选项 A符合题意。 14 【正确答案】 D 【试题解析】 选项 D中将表达式的值赋给表达 式,在 C语言中是不允许给表达式赋值的,故选项 D是非法的表达式,所以, 4个选项中选项 D符合题意。 15 【正确答案】 B 【
36、试题解析】 C语言中的语句都以 “;”结尾,因此选项 A不是合法语句。强制类型转换运算符应为 “(类型名 )”,选项 C中的 int(i)不符合规定;如将 int(i)看成函数调用也是不正确的, int是 C语言的关键字,不能作为用户定义的标识符当函数名使用。赋值表达式的左侧应为变量名,而选项 D中的 a+=5不符合规定。 16 【正确答案】 C 【试题解析】 程序中定义了两个整型变量, 一个用八进制表示,一个用十进制表示,输出语句中要求 m、 n都为八进制输出,显然 m原样输出为 256, n的值转换为八进制输出 (256的八进制为 400),故输出 400。所以, 4个选项中选项 C符合题
37、意。 17 【正确答案】 A 【试题解析】 scanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在 scanf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为 “%d,%d”其中 “,”为非格式字符,所以输入时必须原样输入。所以, 4个选项中选项 A符合题意。 18 【正确答案】 C 【试题解析】 m-=n相当于 m=m-n,两个相等的数相减,其值为 0。所以, C选项为所选。 19 【正确答案】 C 【试题解析】 选项 A中 0.5/100.0将保留小数点后六位,不满足题目要求,故选项 A不正确;选项 B和选项 D也将
38、保留小数点后六位,不满足题目要求,故选项B不正确;所以, 4个选项中选项 C符合题意。 20 【正确答案】 D 【试题解析】 当 ch=a时, ch-a=0,进入 case0分支输出 b,再进入 case1分支输出 b,然后结束 本次循环。当 ch=b时, b-a=1,进入 case1分支输出 c,然后结束本次循环。当 ch=c时, c-a=2,进入 case2分支输出 e,再进入 case3分支输出 e,然后结束次循环。遇到 -n结束循环。显示输出为 bbcee。 21 【正确答案】 D 【试题解析】 a、 b、 c为整型,赋值运算符两侧的数据类型不一致,系统先自动将右侧表达式求得的数值,按
39、赋值号左边变量的类型进行转换,再赋值给左边的变量。去掉右侧表达式值的小数部分变为整数赋值给变量 c, c的值为 2。 22 【正确答案 】 D 【试题解析】 s+=m;是复合语句, m=4, s+=m等价于 s=s+m=0+4=4。t+=m等价于 t=t+m,这里 m为全局变量,值为 1, t=t+m=O+1=1。 49 【正确答案】 B 【试题解析】 第一个输入语句只接收一个字符 1;第二个输入语句接收一个整数23,遇到空格停止;第三个输入语句接收一个字符串 “456“,遇到空格停止。 50 【正确答案】 C 【试题解析】 p被定义为指针型变量,指向字符数组 a的首地址。执行 p+=3;指针
40、后移 3位,指向 d。 strcpy(p,“ABCD“)将字符串 “ABCD“(连同 0)复制到 p所指向的地址单元中, strlen()函数计算 p所指向的字符串的长度,返回字符串中字符的个数 (不计 0),返回值为字符串 “ABCD“中字符的个数 4。 51 【正确答案】 350 【试题解析】 在任意二叉树中,叶子结点总比度为 2的结点多一个。在完全二叉树中,最多有一个度为 1的结点。设一棵完全二叉树具有 n个结点,若 n为偶数,则在该二叉树中有 n/2个叶子结点以及 n/2-1个度为 2的结点,还有一个是度为 1的结点:若 n为奇数,则在该二叉树中有 n/2+1个叶子结点以及 n/2个度
41、为 2的结点,没有度为 1的结点。 根据题意,完全二叉树共 有 700个结点, 700是偶数,所以,在该二叉树中有 350个叶子结点以及 349个度为 2的结点,还有一个是度为 1的结点。所以,本题的正确答案为 350。 52 【正确答案】 分类性 【试题解析】 类是关于对象性质的描述,它包括一组数据属性和在数据上的一组合法操作。类之间这种共享属性和操作的机制称为分类性。 53 【正确答案】 功能性注释 【试题解析】 注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明;功能性注释的位置一般嵌在源程序体之中户主要描述其 后的语句或程序做什么。 54 【
42、正确答案】 系统设计 【试题解析】 系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计 3个步骤。这 3个不同层次上的设计过程,是把实体以及相互之间的联系转换为 “数据 ”并落实于计算机中。 55 【正确答案】 事务型 【试题解析】 数据流图中有众多的加工,但必有一个加工是起核心作用的,即中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图的两种典型结构形式:变换型和事务型。 56 【正确 答案】 -3 【试题解析】 %运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中 “-19%4”的值为 “-3”。 57 【
43、正确答案】 adgh 【试题解析】 函数 strcpy是字符串复制函数。第一次将 “adc“复制到以 &s0为起始地址的存储空间中,第二次将 “def“复制到以 &s1为起始地址的存储空间中,“dc”将被覆盖,变为 “adef”,第三次将 “gh”复制到以 &s2为起始地址的存储空间中, “ef”将被覆盖,变为 “adgh”。 58 【正确答案】 24 【试题解 析】 本题主函数中首先定义了一个长度为 7的数组,然后用一个 while循环引用数组的元素,当 i大于 7或者 pi为偶数时,循环结束。显然当 i=2时,p2=14为偶数时,循环结束,此时 j的值为 j=p0+p1=24。 59 【正
44、确答案】 -4 【试题解析】 if-else构造了一种二路分支选择,是一种最基本的选择结构, if(条件 ) S1(if分结构 ) else S2(else分结构 ),它的工作过程是:先对条件表达式进行判断,若为真 (成立,值为非零 ),就执行 if分结构 (S1);否则 (不成 立,值为 0),就执行 else分结构 (S2)。本题中, n=O,可以判断 (!n)为真,执行 “x=x-1=2-1=1;m=1”,可以判断 (m)为真,执行 “x=x-2=1-2=-1; ”进而可以判断 (x)为真,执行x=x-3=-1-3=-4。所以,最后输出为 -4。 60 【正确答案】 6 【试题解析】 本题中, i、 j分别为外循环和内循环的循环控制变量,外层循环共执行了 4次。当 i=1时,由于内层循环判断条件 (2 =1)为假不执行内层循环。当i=2时,执行内层循环,输出一个 #;当 i=3时,内层循环循环两次,输 出两个 #: