[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc

上传人:feelhesitate105 文档编号:503288 上传时间:2018-11-29 格式:DOC 页数:26 大小:74KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc_第1页
第1页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc_第2页
第2页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc_第3页
第3页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc_第4页
第4页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷125及答案与解析.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 125及答案与解析 1 下列叙述中正确的是 _。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理效率 2 对于长度为 n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是 _。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速 排序为 n ( D)快速排序为 n(n-1)/2 3 下列叙述中正确的是 _。 ( A)软件交付使用后

2、还需要维护 ( B)软件一旦交付使用就不需要维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 4 数据库设计的根本目标是要解决 _。 ( A)数据共享问题 ( B)数据安全问题 ( C)大量数据存储问题 ( D)简化数据维护 5 C语言中用于结构化程序设计的 3种基本结构是 _。 ( A)顺序结构、选择结构、循环结构 ( B) if、 switch、 break ( C) for、 while、 do-while ( D) if、 for、 continue 6 以下叙述正确的是 _。 ( A)构成 C程序的基本单位是函数 ( B)可以在函数中定义另一个

3、函数 ( C) main()函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用之前进行定义 7 以下叙述中错误的是 _。 ( A) C语句必须以分号结束 ( B)复合语句在语法上被看作一条语句 ( C)空语句出现在任何位置都不会影响程序运行 ( D)赋值表达式末尾加分号就构成赋值 语句 8 以下叙述正确的是 _。 ( A)可以把 define和 if定义为用户标识符 ( B)可以把 define定义为用户标识符,但不能把 if定义为用户标识符 ( C)可以把 if定义为用户标识符,但不能把 define定义为用户标识符 ( D) define和 if都不能定义为用户标识符 9 以下

4、叙述中错误的是 _。 ( A)用户所定义的标识符允许使用关键字 ( B)用户所定义的标识符应尽量做到 “见名知意 ” ( C)用户所定义的标识符必须以字母或下划线开头 ( D)用户所定义的标识符中,大、 小写字母代表不同标识 10 以下定义语句中正确的是 _。 ( A) char a=A b=B; ( B) float a=b=19.0; ( C) int a=10, *b= ( D) float *a, b= 11 有以下程序: main() char a=a, b; printf(“% c, “,+a); printf(“% cn“, b=a+); 程序运行后的输出结果是 _。 ( A)

5、b, b ( B) a, b ( C) b, c ( D) a, c 12 以下选项中非法的表达式是 _。 ( A) 0 =x 100 ( B) i=j=0 ( C) (char)(65+3) ( D) x+1=x+1 13 有以下程序: main() int x=3, y=2, z=1; printf(“% dn“, x/y 程序运行后的输出结果是 _。 ( A) 3 ( B) 2 ( C) -1 ( D) 0 14 以下不能正确计算代数式 sin2( )值的 C语言表达式是 _。 ( A) 1/3*sin(1/2)*sin(1/2) ( B) sin(0.5)*sin(0.5)/3 ( C

6、) pow(sin(0.5),2)/3 ( D) 1/3.0*pow(sin(1.0/2), 2) 15 有如下程序: # define N 2 # define M N+1 # define NUM 2*M+1 # main() int i; for(i=1; i =NUM; i+) printf(“% dn“, i); 该程序中的 for循环执行的次数是 _。 ( A) 5 ( B) 6 ( C) 7 ( D) 8 16 若有以下程序段: int m=0xabc, n=0xabc; m-=n; printf(“% Xn“, m); 执行后的输出结果是 _。 ( A) 0X0 ( B) 0x

7、0 ( C) 0 ( D) 0XABC 17 有以下程序: main() int k=5, n=0; while(k 0); switch(k) default; break; case 1:n+=k; case 2; case 3:n+=k; k-; printf(“% dn“, n); 程序运行后的输出结果是 _。 ( A) 0 ( B) 4 ( C) 6 ( D) 7 18 若变量已正确说明为 float类型,要通过语句 scanf(“%f %f %f“, while(i 7 i+; printf(“% dn“, k) 执行后的输出结果是 _。 ( A) 58 ( B) 56 ( C)

8、45 ( D) 24 20 设变量已正确定义,则以下能正确计算 n!的程序段是 _。 ( A) f=0; for(i=1; i =n; i+)f*=i; ( B) f=1; for(i=1; i n; i+)f*=i; ( C) f=1; for(i=n; i 1; i+)f*=i; ( D) f=1; for(i=n; i =2; i-)f*=i; 21 有以下程序段: int k=0, a=1, b=2, c=3; k=a b? b:a; k=k c? c:k; 执行该程序后, k的值是 _。 ( A) 3 ( B) 2 ( C) 1 ( D) 0 22 设有定义语句: char c1=9

9、2, c2=92; ,则以下表达式中值为零的是 _。 ( A) c1c2 ( B) c1char c10;, 则正确的输入语句是 _。 ( A) scanf(“% d % s“, ( B) scanf(“% d % s“, ( C) scanf(“% d % s“, b, c); ( D) scanf(“% d % s“, b, 24 有以下程序: main() int a=666, b=888; printf(“% dn“, a, b); 程序运行后的输出结果是 _。 ( A)错误信息 ( B) 666 ( C) 888 ( D) 666,888 25 当调用函数时,实参是一个数组名,则向函

10、数传送的是 _。 ( A)数组的长度 ( B)数组的首地址 ( C)数组每一个元素的地址 ( D)数组每个元素中的值 26 以下程序中函数 sort的功能是对 a所指数组中的数据进行由大到小的排序: float sort(int a, int n) int i, j, t; for(i=0; i n-1; i+) for(j=i+1; j n; j+) if(ai aj)t=ai; ai=aj; aj=t; main() int aa10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10), i; sort( for(i=0; i 10; i+)printf(“% d“, aai);

11、 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 27 以下程序段中与语句 k=a b?(b c? 1:0):0;功能等价的是 _。 ( A) if(a b else k=0; ( C) if(a =b)k=0; else if(b =c)k=1; ( D) if(a b)k=1; else if(b c)k

12、=1; else k=0; 28 以下程序的输出结果是 _。 fun(int x, int Y, int z) z=x*x+y*y; main() int a=31; fun(5, 2, a); printf(“% d“, a); ( A) 0 ( B) 29 ( C) 31 ( D)无定值 29 有以下函数: fun(char *a, char *b) while(*a!=0)b+; return(*a-*b); 该函数的功能是 _。 ( A)计算 a和 b所指字符串的长度之差 ( B)将 b所指字符串连接到 a所指字符串中 ( C)将 b所指字符串连接到 a所指字符串后面 ( D)比较 a

13、和 b所指字符串的大小 30 有如下程序: main() int s=0, a=1,n; scanf(“% d“, do s+=1; a=a-2; while(a!=n) printf(“% dn“, s); 若要使程序输出 2,则应该从键盘输入的值是 _。 ( A) -1 ( B) -3 ( C) -5 ( D) 0 31 有以下程序: struct STU char name10; int num; float TotalScore; ; void f(struct STU *p) struct STU s2=“SunDan“, 20044, 550, “Penghua“, 20045,

14、537, *q=s; +p; +q; *p=*q; main() struct STU s3=“YangSan“, 20041, 703, “LiSiGuo“, 20042, 580; f(s); printf(“ % s % d % 3.0fn“, s1. name, s1. num, s1. TotalScore); 程序运行后的输出结果是_。 ( A) SunDan 20044 580 ( B) Penghua 20045 537 ( C) LiSiGUO 20042 580 ( D) SunDan 20041 703 32 有如下程序: main() int k=4, n=0; for

15、(; n k; ) n+; if(n% 3!=0)continue; k-; printf(“ % d, % dn“, k, n); 程序运行后的输出结果是_。 ( A) 1, 1 ( B) 2, 2 ( C) 3, 3 ( D) 4, 4 33 以下能正确定义数组并正确赋初值的语句是 _。 ( A) int N=5, bN=N; ( B) int a12=1, 3; ( C) int c2=1, 2, 3, 4; ( D) int d32=1, 2, 34; 34 有以下程序: main() int m3=1, 4, 7, 2, 5, 8, 3, 6, 9); int i, j, k=2;

16、for(i=0; i 3; i+) printf(“% d“, mki); 执行后输出结果是_。 ( A) 456 ( B) 258 ( C) 369 ( D) 789 35 以下程序段中, 不能正确赋字符串 (编译时系统会提示错误 )的是 _。 ( A) char s10=“abcdefg“; ( B) char t=“abcdefg“, * s=t; ( C) char s10; s=“abcdefg“; ( D) char s10; strcpy(s, “abcdefg“); 36 以下叙述中正确的是 _。 ( A)全局变量的作用域一定比局部变量的作用域范围大 ( B)静态 (stati

17、C) 类别变量的生存期贯穿于整个程序的运行期间 ( C)函数的形参都属于全局变量 ( D)未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值 37 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。 ( A)地址传递 ( B)单向值传递 ( C)由实参传给形参。再由形参传同实参 ( D)传递方式由用户指定 38 有如下函数调用语句: func(rec1, rec2+rec3, (rec4, rec5); 该函数调用语句中,含有的实参个数是 _。 ( A) 3 ( B) 4 ( C) 5 ( D)有语法错 39 有 以下程序: # define f(x)

18、 (x*x) main() int i1, i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf(“% d, % dn“, i1, i2); 程序运行后的输出结果是_。 ( A) 64, 28 ( B) 4, 4 ( C) 4, 3 ( D) 64, 64 40 以下函数值的类型是 _。 fun(float x) float y; y=3*x-4; return y; ( A) int ( B)不确定 ( C) void ( D) float 41 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【 】遍历和后序遍历。 42 结构化

19、程序设计方法的主要原则可以概括为自顶向下、逐步求精、【 】和限制使用 goto语句。 43 软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【 】的设计来实现。 44 数据库系统的三级模式分别为【 】模式、内部级模式与外部 级模式。 45 数据字典是各类数据描述的集合,它通常包括 5个部分,即数据项、数据结构、数据流;【 】 和处理过程。 46 若 a是 int型变量,则表达式 (a=2*3, a*2), a+6的值为 _。 47 表达式 1/2*(int)3.7/(int)(2.4*(1.5+2.5)值的数据类型为 _。 48 下列程序段的输出结果是 _。

20、int n=c; switch(n+) default:printf(“error“);break; case a: printf(“good“);break; case c: printf(“morning“); case d: printf(“class“); 49 写出下列程序的输出结果 _。 main() int n=0; while(n+ = 1); printf(“%d,“,n); printf(“%d“,n+); 50 下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。 #include stdio.h #include ctype.h main()

21、 char c; int a,s=0; while(_) if(isdigit(c) a= c-0;s+=a; printf(“s=%d“,s); 51 下列程序输出的结果是 _. int m=17; int fun(int x,int y) int m=3; return(x*y-m); main() int a=5,b=7; printf(“%dn“,fun(a,b)/m); 52 设有下列的程序段: char str=“Hello“; char *ptr; ptr=str; 执行上面的程序段后, *(ptr+5)的值为 _. 53 若有定义 int a44=1,2 3,4,0 4,6,8

22、,10,1,3,5,7, 则初始化后, a11得到的初值是 _。 54 设有下列程序: #include stdio.h #include string.h main() int i; char si 10,ti 10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0)strcpy(t,s); printf(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): CDEF CR BADEF CRQTHRG CR,则程序的输出结果是 _。 55 下列程序的输出结果是 _。 #define P(a) printf(“%d,“,(

23、int)(a) #define PRINT(a) P(a);printf(“the end“) main() int i,a=0; for(i=1 ;i 5;i+) PRINT(a+i); printf(“n“); 56 下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。 int word(char*s) int num=0,flag=0; while(*s) if(【 】 =“) flag=0; else if 【 】 flag=1;num+ return 【 】 ; 国家二级( C语言)笔试模拟试卷 125答案与解析 1 【正确答案】 D 【试题解析】 逻辑结构是反映

24、了元素之间的逻辑关系的数据结构,存储结构是逻辑结构在计算机中的存放形式,它们都具有线性结构和非线性结构。逻辑结构有顺序、链接、索引等存储结构,采用不同的存储结构,数据处理的效率不同。 2 【正确答案】 D 【试题解析】 存最坏情况下,快速排序退化为冒泡排序,冒泡排序法的基本过程参见本题的理论 链接。冒泡排序的每个元素都要与它前面的元素相比较,因此比较次数为 (n-1)+(n-2)+1=n(n -1)/2。 3 【正确答案】 A 【试题解析】 软件交付后还要进行维护,软件维护不仅要修复程序中被破坏的指令还要根据新提出的内容进行必要而且可能的扩充和删改。软件的生命周期是从提出、实现、使用维护到停止

25、使用退役的过程。 4 【正确答案】 A 【试题解析】 数据库集中了各种应用的数据,进行统一的构造与存储,从而使它们能够被不同的应用程序所使用。 5 【正确答案】 A 【试题解 析】 本题主要考查结构化程序设计的基本结构。结构化程序设计有 3种基本结构:顺序结构、选择结构、循环结构。 6 【正确答案】 A 【试题解析】 C语言是由函数构成的。一个 C程序可以包含一个主函数,即main()函数,也可以包含一个 main()函数和若干其他函数。函数是 C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是自定义的函数。从函数的形式上分为有参函数和无参函数。 main()函数可以位于程序最前头

26、,也可以位于程序结尾或中间, C程序总是从 main()函数开始执行,不论 main()函数在 程序中的位置如何。 C语言中函数必须独立定义,不能在一个函数中定义另一个函数,但可以在一个函数中调用另一个函数,而且被调函数的定义可以在程序中的任何位置,不一定要在调用函数之前进行定义。若被调函数在调用函数之后定义,在调用函数中需要对被调函数进行类型说明。 7 【正确答案】 C 【试题解析】 C语言中,只有一个分号的语句称为空语句,程序执行时并不产生任何的动作,但是随意加分号会产生错误,例如 D选项所说到情况,这样就产生了错误。 8 【正确答案】 B 【试题解析】 if是 C语言中的保留字,所 以不

27、能作为用户标识符; define是 C语言中的预编译命令,由于 C语言中的预编译命令都是以 #开头,所以 define可以作为用户标识符。 9 【正确答案】 A 【试题解析】 在 C语言中,用户所定义的标识符不能使用关键字。 10 【正确答案】 C 【试题解析】 选项 A中 a=A b=B中缺少一个逗号; B中只能定义一个,如a=19.0; D中 b是 float类型的,不能取指针地址。 11 【正确答案】 A 【试题解析】 本题同样考查 +运算的执行次序。第一个 prantf输出的是 b,并且变量 a=b;第二个 printf输出的是赋值语句 b=a+最终的结果,该语句首先将a的值赋给 b,

28、然后 a+,因此第二个 printf输出也是 b。 12 【正确答案】 D 【试题解析】 选项 D中赋值运算符的左侧是一个表达式,不是一个变量,因此该项错误。 13 【正确答案】 D 【试题解析】 本题中表达式 x/y&z中运算符优先级的顺序为: (按位取反 )、/(除 )、 &(按位与 ),即首先执行 z得 11111110,然后执行 x/y=3/2=1,最后执行1&11111110=00000001 &11111110=00000000=0。 14 【正确答案】 A 【试题解析】 A中 sin(1/2)是 0,因为 1和 2都是整数, “/”在这里是整除。 15 【正确答案】 B 【试题解

29、析】 本题考查宏定义的使用。本题定义了 3个宏名分别是 N、 M和NUM。对 NUM展开得 2*M+1=2*N+1+1=22+1+1=6。因此正确答案是 B。 16 【正确答案】 C 【试题解析】 “%X”以十六进制无符号形式输出整数,变量 m和 n的初始值都是十六进制数, m=m-n=0xabc-oxabc=0x0,所以输出结果为 0。 17 【正确答案】 D 【试题解析】 当 k为 4、 5时, n值没有变化。当 k=3时,满足 case 3,得到n=3;当 k=2时,满足 case 2,因为没有 break语句,继续执行 case 3得n=n+2=5;当 k=1时,满足 case 1,得

30、 n=6,又因为没有 break,继续执行 case 2, case 3,最后得 n=7。 18 【正确答案】 B 【试题解析】 用 scanf函数输入多个数据时,数据间的分隔符可以是空格、回车符或制表符,本题中选项 A、 C和 D的输入方法都是 正确的。因 scanf函数中的控制字符中没有非格式字符 “,”,因此选项 B中以 “,”作为分隔符是错误的。 19 【正确答案】 D 【试题解析】 程序中 while语句的循环条件为 i 7&pi%2。当 i=0时,条件成立, k=k+p0=11;当 i=1时,条件仍成立, k=k+p1=11+13=24;当 i=2时,p2%2=0条件不成立,结束

31、while循环,所以 k=24。 20 【正确答案】 D 【试题解析】 A选项,将 f赋值为 0,结果得到 0,因为 0乘任何数都为 0; B选项, i n,计算 的是 (n-1)!, C选项将陷入死循环。 21 【正确答案】 B 【试题解析】 第一个表达式得到 k=2,对于第二个表达式,因为 k=2 3, k仍然赋值为 k。因此最后 k值为 2。 22 【正确答案】 A 【试题解析】 是异或运算符,两个相同的数进行异或运算,结果为 0。 23 【正确答案】 B 【试题解析】 b是整型数,在输人语句中要加取地址符,而 c是数组名,本身就是数组的首地址,因此不用加取地址符。 24 【正确答案】

32、B 【试题解析】 printf如果实参个数多余,不算错, 只输出前面的正确参数。 25 【正确答案】 B 【试题解析】 数组名作函数实参时,所传递的是数组第一个元素的地址。 26 【正确答案】 C 【试题解析】 本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。 sort函数的两个形参中一个是数组名, sort函数的功能是对数组元素进行由大到小的排序。主函数调用 sort函数时,实参为 aa3元素的地址和整数 5,即 sort函数将对数组 aa中的元素 aa3、aa4、 aa5、 aa6、 aa75个元素的值进行由大到小的排序,排序后 aa3=8、

33、aa4=7、 aa5=6、 aa6=5、 aa 5=4,而数组 aa中其余元素的值不变,因此结果是 C。 27 【正确答案】 A 【试题解析】 语句 k=a b? (b c? 1:0):0;的功能是如果 a b同时 b c,k=1,否则 k=0。正确答案为 A。 28 【正确答案】 C 【试题解析】 函数 fun的形参是简单变量, main函数中调用 fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数 fun后 a的值不发生变化 ,即 a=31。 29 【正确答案】 D 【试题解析】 它的功能是比较 a, b所指字符串的大小。 a b返回正数, a b返回负数, a=b返同

34、 0。 30 【正确答案】 B 【试题解析】 本题中如果 printf函数输出为 2,需要执行两次 s+=1语句,第一次执行完循环语句后得 s=1、 a=1-2=-1,第二次执行完循环语句后得 s=1+1=2、 a=-1-2=-3,所以正确答案为 -3。 31 【正确答案】 B 【试题解析】 f函数用了显式传地址的方式,因此主函数中的 s值发生了变化。 32 【 正确答案】 C 【试题解析】 continue语句是结束本次循环。 for循环语句的执行过程为: 第 1次循环:循环前 n=0,执行 n+得 n=1, n%3!=0成立,执行 continue语句结束本次循环, k=4; 第 2次循环

35、:循环前 n=1,执行 n+得 n=2, n%3!=0成立,执行 continue语句结束本次循环, k=4; 第 3次循环;循环前 n=2,执行 n+得 n=3, n%3!=0不成立,执行语句 k-得k=3; n k不成立,结束整个 for循环。 所以执行完 for循环后 k=3、 n=3,正确答案为选项 C。 33 【正确答案】 D 【试题解析】 本题考查二维数组的定义。不能对数组进行动态定义,选项 A错误;选项 C省略第二维的长度;选项 B中初值的行数超过数组第一维的长度。 34 【正确答案】 C 【试题解析】 数组 m初始化后结果为: m00=1、 m01=4、 m02=7、m10=2

36、、 m11=5、 m12=8、 m20=3、 m21=6、 m22=9。 for循环语句的作用是输出数组元素 m20、 m21和 m22,所以输出结果为: 369。 35 【正确答案】 C 【试题解析】 C语言中不能使用赋值运算符 “=”直接对字符数组元素名赋一字符串。选项 C错误。 36 【正确答案】 B 【试题解析】 函数的形参是局部变量,只在函数内部起作用,调用函数时为形参分配存储空间,调用结束后释放形参的存储空间,因此选项 C错误。未在定义语句中赋初值的 static变量的初值是 0,选项 D错误。局部静态变量也是全局变量,选项 A错误。 37 【正确答案】 B 【试题解析】 本题考查

37、函数调用时的 数据流向问题。简单变量只能实现单向的值传递。在调用函数时,通常在主调函数和被调函数之间有数据传递关系。在定义函数时,函数名后面括号中的变量名称为 “形参 ”;在调用函数时,函数名后面括号中的变量名称为 “实参 ”。有关实参和形参的说明如下: (1)形参在函数未被调用时,不占用存储单元,只有在发生函数调用时形参才被分配内存空间,函数调用结束后,释放形参所占的内存空间。 (2)在被定义的函数中,必须指定形参的类型。 (3)实参可以是常量、变量或表达式。 (4)宴参与形参的类型应一致。 (5)如果形参是简单变量,实参对形 参的数据传递是按值传递,即单向传递,只能由实参传给形参,不能由形

38、参传回来给实参。如果形参是地址变量,实参对形参的数据传递是按地址传递,可以实现双向传递,既能由实参传给形参,又能由形参传回来给实参。 38 【正确答案】 A 【试题解析】 本题考查函数实参的概念。函数的调用形式为:函数名 (实参 1,实参 2, ) 其中实参可以是常量、变量或表达式,题目中 ree2+rec3是算术表达式, (rec4, rec5)是逗号表达式。 39 【正确答案】 C 【试题解析】 用宏代换有: i1=f(8)/f(4)=(88)/(44)=4,i2=f(4+4)/f(2+2)=(4+44+4)/(2+22+2)=3。 40 【正确答案】 A 【试题解析】 C语言规定函数定义

39、时若不声明函数值的类型,则默认为是整型。 41 【正确答案】 中序 【试题解析】 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、中序遍历和后疗遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左,右子树时,仍然先访问根结点, 然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左于树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历

40、右于树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。 42 【正确答案】 模块化 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用 goto语句。自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要 开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。逐步求精:对复杂问题,应设计些子目标作过度,逐步细化。模块化: 个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进 步分解为具体的小目标,把每个小目标称为一个模

41、块。限制使用 goto语句。 43 【正确答案】 测试实例 【试题解析】 进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。 44 【正确答案】 概念 或 概念级 【试题解析】 数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户 (应用 )公共数据视图。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上 (如磁盘及磁盘操作 )。外模式也

42、称子模式或用户模式,它是用户的数据视图,也 就是用户所见到的数据模式,它由概念模式推导而出。 45 【正确答案】 数据存储 【试题解析】 数据字典是各类数据描述的集合,它通常包括 5个部分,即数据项,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件;处理过程。 46 【正确答案】 12 【试题解析】 本题考查逗号表达式的运算规则。逗号表达式的基本格式为, “表达式 1,表达式 2, ” ,其整个表 达式的结果取最后一个子表达式的值。本题中首先计算逗号表

43、达式中的第 1个表达式 a=2*3=6,然后计算第 2个表达式 a*2,这时整个表达式的值为 12,但要注意,因为第 2个表达式并没有给 a赋值,因此 a的值不变:接下来执行最后一个表达式 a+6=12,所以整个表达式量后的值为 12。 47 【正确答案】 整型 【试题解析】 上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了 int型,所以最后得到的结果也是 int类型。 48 【正确答案】 morningclass 【试题解析】 本题考查了 两个知识点: “+, -”运算后缀形式是先使用变量原来的值,使用完后再使其增 1或减 1; 在 switch语句中,当 n=c时,执行 “

44、case c”,输出 morning;因为此句中没有 break语句,因此接着执行 “case d:”,输出class,最终输出结果为 morningclass。 49 【正确答案】 3,3 【试题解析】 本题在 while(n+ =1)语句后,直接加了分号,说明如果 while()的条件为真时,该循环什么都不做: n+是先取 n的当前值和 1做比较,然后再将n加 1。第一 次循环, n=0时,循环条件 n+= 1成立,执行循环,然后得到n=1。第二次循环, n=1时,循环条件 n+=1 =1成立,执行循环,然后得到n=2。第三次循环, n=2时,循环条件 n+=2 =1不成立,不执行循环,但

45、在判断循环条件时仍将 n加 1,得到 n=3退出循环后执行 printf语句,第二个 printf语句输出 n+,是先输出 n的当前值 3,然后再将 n加 l,即程序结束后得到 n=4,但输出的是 3。 50 【正确答案】 (c=getchar()!=n 【试题解析】 分析题目可知,程序中运用 函数 c=getchar()从标准输入设备读取下一个字符,而且是一行的字符 (即没有换行 ),所以条件为 (c=getchat()!=n。 51 【正确答案】 1 【试题解析】 本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。 本程序首

46、先定义了一个全局变量 m=17, m=17的作用域在整个程序内。在 fun函数内部定义了一个局部变量 m=3, m=3的作用域仅在 fun函数内部,通过 fun函数返回两个形参的积再减 m。在主函数中,输 出 fun(a, b)/m=(5*7-3)/17=1。 52 【正确答案】 0 【试题解析】 本题涉及字符数组和指针的两个知识点: 在 C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符 0,所以题中数组 str有 6个元素。 ptr指向数组 str的首地址, ptr+5是指向 str5, *(ptr+5)是引用str5的值,即 0。 53 【正确答案】 0 【试题解析】 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的, a44可以分 解为 4个一维数组,其数组名分别为 a0、a1、 a2、 a3,这 4个一维数组都有 4个元素, a0的元素为 a00、 a01、a02、 a03

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1