1、国家二级( C语言)笔试模拟试卷 124 及答案与解析 1 数据的存储结构是指 _。 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 2 下列数据结构中,能用二分法进行查找的是 _。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 3 下列描述中正确的是 _。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件新产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 4
2、下列对于软件测试的描述中正确的是 _。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能地多发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 5 数据库系统的核心是 _。 ( A)数据模型 ( B)数据库管理系统 ( C)数据库 ( D)数据库管理员 6 用树形结构来表示实体之间联系 的模型称为 _。 ( A)关系模型 ( B)网状模型 ( C)层次模型 ( D)以上 3个都是 7 以下叙述中正确的是 _。 ( A) C语言比其他语言高级 ( B) C语言可以不用编译就能被计算机识别执行 ( C) C语言以接近英
3、国国家的自然语言和数学语言作为语言的表达形式 ( D) C语言出现得最晚,具有其他语言的一切优点 8 一个 C程序中 _。 ( A) main函数必须出现在所有函数之前 ( B) main函数可以在任何地方出现 ( C) main函数必须出现在所有函数之后 ( D) main函数必须出现在固定位置 9 下列叙述中正确的是 _。 ( A) C语言编译时不检查语法 ( B) C语言的子程序有过程和函数两种 ( C) C语言的函数可以嵌套定义 ( D) C语言所有函数都是外部函数 10 以下叙述中正确的是 _。 ( A) C程序中注释部分可以出现在程序中任何合适的地方 ( B)花括号 “”和 “”只
4、能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 11 以下程序的输出结果 是 _。 int f() static int i=0; int s=1; s+=i; i+; return s; main() int i, a=0; for(i=0; i 5; i+) a+=f(); printf(“% dn“ , a); ( A) 20 ( B) 24 ( C) 25 ( D) 15 12 设有以下函数: f(int a) int b=0; static int c=3; b+; c+; return(a
5、+b+c); 如果在下面的程序中调用该函数,则输出结果是 _。 main() int a=2, i; for(i=0; i 3; i+)printf(“% dn“, f(a); ( A) 7 8 9 ( B) 7 9 11 ( C) 7 10 13 ( D) 7 7 7 13 以下程序的输出结果是 _。 int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(“% d % d n“, a, b); ( A) 100200 ( B) 57 ( C) 200100 ( D) 75 14 设有定义: int a=2,
6、 b=3, c=4; 则以下选项中值为 0的表 达式是 _。 ( A) (! a=1) x=-m+; x=x+8/+n; printf(“% dn“, x); 程序运行后的输出结果是 _。 ( A) 3 ( B) 5 ( C) -1 ( D) -216 16 以下程序的输出结果是 _。 int x=3; main() int i; for(i=1; i x; i+) incre(); incre() static int x=1; x*=x+1; printf(“ % d“, x); ( A) 3 3 ( B) 2 2 ( C) 2 6 ( D) 2 5 17 设有如下程序段: int x=2
7、002, y=2003; printf(“ % dn“, (x, y); 则以下叙述中正确的是 _。 ( A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 ( B)运行时产生出错信息 ( C)输出值为 2002 ( D)输出值为 2003 18 有以下程序: int a=3; main() int s=0; int a=5; s+=a+ ; s+=a+; printf(“% dn“, s); 程序运行后的输出结果是 _。 ( A) 8 ( B) 10 ( C) 7 ( D) 11 19 设变量 x为 float型且已经赋值,则以下语句中能够将 x中的数值保留到小数点后面两位,并将第
8、三位四舍五入的是 _。 ( A) x=x*100+0.5/100.0 ( B) x=(x*100+0.5)/100.0 ( C) x=(int)(x*100+0.5)/100.0 ( D) x=(x/100+0.5)*100.0 20 有以下程序: main() int m, n, p; scanf(“m=% dn=% dp=% d“, printf(“% d % d % dn“, m, n, p); 若想从键盘上输入数据,使变量 m中的值为 123, n中的值为 456, p中的值为 789,则正确的输入是 _。 ( A) m=123n=456p=789 ( B) m=123 n=456 p
9、=789 ( C) m=123, n=456, p=789 ( D) 123 456 789 21 定义 int*swap()指的是 _。 ( A) 个返回整型值的函数 swap() ( B)一个返回指向整型值指针的函 swap() ( C) 一个指向函数 swap()的指针 ,函数返回一个整型值 ( D)以上说法均错 22 以下程序段的输出结果是 _。 main() char s110,s210,s310; scanf(“%s“,s1);gets(s2);gets (s3); puts(s1);puts(s2)puts(s3) 输入数据如下: (此处 CR代表回车符 ) aaa CR bbb
10、 CR ( A) aaa bbb ( B) aaa bbb ( C) aaa0bbb0 ( D) aaabbb 23 下述函数功能是 _。 int fun(char*x) char*y=x; while(*y+) retumy-x-1; ( A)求字符串的长度 ( B)求字符串存放的位置 ( C)比较两个字符串的大小 ( D)将字符串 x连接到字符串 y后面 24 若 有定义: int a410;,则以下选项中对数组元素 aij引用错误的是 _。 (o =i 4,0 =j =10 ( A) *( 则 _不是对库函数的正确调用。 ( A) strcpy(strl,“HELLO1“); ( B)
11、strcpy(str2,“HELLO2“); ( C) strcpy(str3,“HELLO3“); ( D) strcpy(str4,“HELLO4“); 26 请读程序: #include stdio.h #include string.h main() char*s1=“AbCdEf“,*s2=“aB“; s1+;s2+; printf(“%dn“,strcmp(s1,s2); 上面程序的输出结果是 _。 ( A)正数 ( B)负数 ( C)零 ( D)不确定的值 27 以下程序输出的结果为 _。 main() char*alpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP
12、“,“QRST“,“UVWX“; char*p; int i; p=alpha; for(i=0,i 4;i+) prntf(“%s“,pi); ( A) ABCDEFGHIJKL ( B) ABCD ( C) ABCDEFGHIJKLMNOP ( D) AEIM 28 以下程序的输出结果是 _。 #include stdio.h void prt(int*x,int*y,int*z) printf(“%d,%d,%dn“,+*x,+*y,*(z+); int a=10,b=40,c=20; main() prt( ( A) 11,42,31 12,22,41 ( B) 11,41,20 12
13、,42,20 ( C) 11,21,40 11,21,41 ( D) 11,41,21 12,42,22 29 若一个名部变量的定义形式为 static int x;,那么,其中 static的作用应该是_。 ( A)将变量存储在静态存储区 ( B)使变量 X可 以由系统自动初始化 ( C)使 x只能在本文件内引用 ( D)使 x的值可以永久保留 30 以下程序的输出结果是 _。 #include sulio.h #defme SQR(x)x*x main() int a,k=3; a=+SQR(k+1); printf(“%dn“,a) ; ( A) 8 ( B) 9 ( C) 17 ( D
14、) 20 31 以下程序 (程序左边的数字为附加 的行号 )_。 1#include str.h 2#include stdio.h 3main() 4 chars=“string“; 5puts(s); 6strcpy(s,“hello“); 7printf(“%3Sn“,s); ( A)没有错 ( B)第 1行有错 ( C)第 6行有错 ( D)第 7行有错 32 若有以下结构体定义,则 _是正确的引用或定义。 struct example int x; int y; v1; ( A) example.x=10 ( B) example v2.x=10 ( C) example.x=10
15、( D) struct example v2=10; 33 下列程序的执行结果是 _。 #lnClude stdio.h union un int i; char c2; ; void main() union un x; x.c0=10 x.cl=1; printf(“n%d,x.i); ( A) 266 ( B) 11 ( C) 265 ( D) 138 34 已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。 struct 1ink char data; node; ( A) struct link next ( B) link*next ( C) sluct next
16、link ( D) struct link*next 35 下述程序文件输出的结果是 _。 #inelude stdio.h void main() FILE*fp=fopen(“TEST“,“wb“); fprintf(fp,“%d5.of%c%d“,58,76273.0,-,2278); fclose(fp); ( A) 58 76273-2278 ( B) 5876273.000000-2278 ( C) 5876273-2278 ( D)因文件为二进制文件而不可读 36 已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是 _。 main()
17、 unsigned int a=31,b=66; pfintf(“%cn,a|b); ( A) 66 ( B) 98 ( C) b ( D) B 37 C语言库函数 fgets(str,n,fp)功能是 _。 ( A)从中指向的文件中读取长度 n的字符串存入 int指向的内存 ( B)从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存 ( C)从 fp指向的文件中读到 n个字符串存入 str指向的内存 ( D)从 str读取至多 n个字符到文件 fp 38 下面是对宏定义的描述,不正确的是 _。 ( A)宏不存在类型问题,宏名无类型,它的参数也无类型 ( B)宏替换不占用
18、运行时间 ( C)宏替换时先求出实参表达式的值,然后代入形参运算求值 ( D)宏替换只不过是字符替代而已 39 下面程 序的输出结果是 _。 #inc1ude stdio.h main() char*p=“BOOL“,“OPK“,“H“,“SP“; int i; for(i=3;i =0;i-,i-) prinf(“%c“,*pi); print(“n“) ( A) SO ( B) SP ( C) SPOPK ( D) SHOB 40 请读程序段: char str=“ABCD“,*p=str print(“%dn“,*(p+4); 程序段的输出结果是 _。 ( A) 68 ( B) O (
19、C)字符 D的地址 ( D)不确定的值 41 在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间_的信息。 42 按照 “先进先出 ”的原则组织数据的结构是 _。 43 深度为 5的满二叉树中,叶子结点的个数为 _。 44 在面向对象的方法中, _描述的是具有相似属性与操作的 一组对象。 45 Jackson方法是一种面向 _的结构化方法。 46 若 x和 a均是 int型变量,则计算完 x=(a=4,6*2)后的 x值为 _。 47 若 a是 int型变量,则下列表达式的值为 _。 (a=2*3,a*2), a+4 48 下列程序段是从键盘输入的字符中统计小写字母的个数,用
20、换行符结束循环。请填空。 int n=0,c; c=getchar(); while(c!=n) if(_) n+; 49 下列程序的运行结果是 _。 #include stdio.h main() int a,b,c,n; a=2;b=0;c=1;n=1; while(n =3) c=c*a;b=b+c;+n; printf(“b=%d“,b); 50 下列程序的输 出结果是 _。 main() int i=0,a=0; while(i 20) for(; ) if(i%10)=0)break; else i-; i+=11; a+=i; printf(“%dn“,a); 51 下列程序的运
21、行结果是 _。 #include stdio.h long func(int x) long p; if(x=0x=1) return(1); p=x*func(x-1); return(p); main() printf(“%dn“, func(4); 52 下列程序将二维数组 a的行和列元素互换后存放到另一个二维数组 b中。请填空。 main() int a23= 1,2,3,4,5 , b32,i,j; for(i=0;i 2;i+) for(j=0; j 3;j+) 53 下列程序 的运行结果是 _。 #include stdio.h main() int fun(); fun();
22、fun() static int a4= 1,2,3,4; int i; for(i=0;i 4;i+) ai+=ai; for(i=0;i 4;i+) print f(“%d,“,ai ); printf“n“); 54 设有下列程序: #include stdio.h #include string.h main() int i; char s10,t10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0)strcpy(t,s); print f(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): DEF CR BA
23、DEF CRQTHRG CR ,则程序的输出结果是 _。 55 下列程序的运行结果是 _。 #define P(a) printf(“%d “,a) main() int j,a= 1,2,3,4,5,6,7,i=5; for(j=3;j l ;j-) switch(j) case 1: case 2: P(ai+); break; case 3: P(a-i); 56 有以下定义和语句,则 sizeof(a) 的值是【 】,而 sizeof(a,share)的值是【 】 struct date int day; int mouth; int year; unionint share1; fl
24、oat share2; share; a; 57 下面的 程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。 (注:程序采用了冒泡排序法 ) #include stdio.h #include string.h main() char*str=“ABCDabcd“,temp; int n,i; n=strlen(str); while(n- 1) for(i=0;i n;i+) if(stri stri+l) temp=【 】 ; stri=stri+l; 【 】 =temp; printf(【 】 ); 国家二级( C语言)笔试模拟试卷 124 答案与解析 1 【正确答案】 D
25、【试题解析】 数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。 2 【正确答案】 A 【试题解析】 二分查找只适用于顺序存储的有序表。 3 【 正确答案】 C 【试题解析】 软件工程是解决软件项目的管理、软件开发过程中的技术、软件产品的生产率等问题,它的主要思想是强调在软件开发过程中需要应用工程化原则。 4 【正确答案】 C 【试题解析】 软件测试的目的是尽可能多地发现软件产品 (主要是指程序 )中的错误和缺陷。 5 【正确答案】 B 【试题解析】 数据库管理系统是负责数据库中的数据组织和数据操纵数据维护、控制及保护的数据服务。它是一种系统软件,是数据库系统的核心。 6 【正确答
26、案】 C 【试题解析】 层次模型的基本 结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构等,它们自顶向下、层次分明。由第一章树的知识,知道任一树结构均有下列特性: (1)每棵树有且仅有一个无双亲结点,称为根(root)。 (2)树中除根外所有结点有且仅有一个双亲。因此,树结构是受到一定限制的,从 E-R模型观点看,它对于联系也加上了许多限制。 7 【正确答案】 C 【试题解析】 C语言是于 19721973年,由 D. M. Ritehie在贝尔实验室为描述和实现 UNIX操作系统而在 B语言的基础上设计出来的。 C语言同 时具备高级语言和低级语言的特点,既适用于编写系
27、统软件,义可用于编写应用软件。计算机不能直接执行 C语言的源程序,必须编译生成目标程序后才能执行。 8 【正确答案】 B 【试题解析】 本题主要考查 main 函数的基本知识。 main 函数可以出现在 C程序的任何地方。 9 【正确答案】 D 【试题解析】 C语言在编译时检查语法错误,系统会提示出错原因和错误位置,选项 A错误; C语言中只有函数,没有过程,选项 B错误; C语言中的函数调用可以嵌套,但定义不能嵌套,选项 C错误;如果在定义函数时不加 static, C语言默认都是外部函数, C语言中函数定义时一般不加 static,故正确答案为选项 D。 10 【正确答案】 A 【试题解析
28、】 花括号 “”和 “”不仅可以作为函数体的定界符,而且可以作为复合语句的定界符,选项 B错误; main()函数不可以由用户命名,选项 C错误;分号是 C语句的结束符,是构成 C语句的必要组成部分,选项 D错误。 11 【正确答案】 D 【试题解析】 函数 f中变量 i为静态变量,函数 f调用结束后变量 i所占据的存储单元不会释放,而在主函数中 f被调用 5次,具体过程如下。 第 1次 调用 f: s=s+i=1+0=1, i=i+1=1,主函数中 a=a+f()=O+1=1 第 2次调用 f: s=s+1=1+1=2, i=i+1=2,丰函数中 a=a+f()=1+2=3 第 3次调用 f
29、: s=s+1=1+2=3, i=i+1=3,主函数中 a=a+f()=3+3=6 第 4次调用 f: s=s+i=1+3=4, i=i+1=4,主函数中 a=a+r()=6+4=10 第 5次调用 f: s=s+i=1+4=5, i=i+4=5,主函数中 a=a+f()=10+5=15 所以 printf 语句的输出结果为 15。 12 【正确答案】 A 【试题解析】 本题考查静态变量的问题。函数 f 中 c是静态变量存放在静态存储区,在程序的整个运行期间都不释放占据的存储单元。函数 f 被调用 3次,调用过程如下。 第 1次调用; a=2、 b=0、 c=3,执行 b+和 c+后 b=1、
30、 c=4,f(a)=a+b+c=2+1+4=7 第 2次调用: a=2、 b=0、 c=4执行 b+和 c+后 b=1、 c=5,f(a)=a+b+c=2+1+5=8 第 3次调用: a=2、 b=0、 c=5,执行 b+和 c+后 b=1、 c=6,f(a)=a+b+c=2+1+6=9 所以输出结果为选项 A。 13 【正确答案】 B 【试题解析】 函数 fun 中的 a和 b是全局变量,在 main 函数中全局变量 a和 b不起作用。因此调用函数 fun 后 main 中 a和 b 的值不变, a=5、 b=7。 14 【正确答案】 A 【试题解析】 根据运算符的优先级:逻辑非算术运算关系
31、运算逻辑与逻辑或赋值运算,可以计算得到为 A。其中 C选项因为 a、 b均不为 0,所以结果为 1。 15 【正确答案】 D 【试题解析】 本题主要考查 +执行的次序。执行 过 x=-m+;后, x=-3, m=4;执行 x=x+8/+n;时 8/+n=1;因此最后 x=-216。 16 【正确答案】 C 【试题解析】 C语言规定如果全局变量与局部变量同名,则在局部变量的作用域内全局变量不起作用。程序开头定义的变量 x为全局变量,函数 incre中定义的变量 x是局部静态变量,存放在静态存储区, incre调用结束后不释放 x占据的存储单元。 main 函数中使用的 x是全局变量 x=3,所以
32、 main 函数中调用函数 incre两次。调用过程如下。第 1次调用: x=x*(x+1)=1(1+1)=2, printf 函数输出 2;第 2次调用: x=x*(x+1)=2(2+1)=6, printf 函数输出 6。 17 【正确答案】 D 【试题解析】 printf函数的输出项 (x, y)是逗号表达式,因此 y的值是整个表达式的值,故输出值为 2003。 18 【正确答案】 A 【试题解析】 本题有两个同名变量 a,其中一个在 main 函数之前定义,为全局变量,另一个在 main 函数中的复合语句中定义,为局部变量。在复合语句中局部变量 a起作用,即 a=5,因此语句 s+=a
33、+计算出的 s值为:s=s+a+=0+5+=0+5=5;执行完复合语句后全局变量 a起作用,即 a=3,因此语句s+=a+计算出的 s值为: s=s+a+=5+3+=5+3=8。故 printf 语句的输出为 8。 19 【正确答案】 B 【试题解析】 选项 A的功能是将 x的值放大 100倍,然后与 0.0005相加;选项C的功能是将 x中的数值保留到小数点后面两位后强制转换为整型;选项 D的功能是将 x与 50相加;正确答案为选项 B。 20 【正确答案】 A 【试题解析】 输入变量的值的时候,输入的格式要和输入语句中那些控制格式字符串的格式 一致。 21 【正确答案】 B 【试题解析】
34、个函数可以带回 个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和 *号,由于 ()优先级高于 *。故它是 个返回整型指针的函数。 22 【正确答案】 B 【试题解析】 scanf是标准输入函数,在输入字符串 aaa时,实际的内容为“aaa0”, “0”是由系统自动加入的; gets的功能是从终端读入 行字符,即 直读到换行符为止,并由系统自动以 “0”代替换行符。 23 【正确答案】 A 【试题解析】 在函数体内定义 字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。 24 【正确答案】 B 【试题解析】
35、本题中选项 B是错误的引用, *(a+i)+j只代表了 aij的地址。 25 【正确答案】 C 【试题解析】 C语言中 strcpy(stl,st2);,其两个参数均为字符指针或字符数组,选项 C中的目的串指针 str3没有指向具体有效的存储单元,故是错误的调用。 26 【正确答案】 A 【试题解析】 函数 strcmp 的功能是比 较字符串 s1和 s2,如果 sl s2, N0则返回个正数;如果 sl s2,则返回负数,否则返回零。由于本题中小写字母 b的ASCII码值大于大写字母 B,故 sl s2;所以函数的值为正数。 27 【正确答案】 C 【试题解析】 alpha0指向 “ABCD
36、的首地址; alpha1指向 “EFGH的首地址;alpha2指向 “IJKL”的首地址,依此类推。当初行 p=alpha后, p指向指针数组alpha的首地址。 for循环中输出了 4个字符串。 28 【正确答案】 B 【试题解析】 由于 实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。 29 【正确答案】 C 【试题解析】 事实上,无论有无 Static修饰,外部变量都具有 A、 B 和 C三种特性。作为 种修饰, static仅是限制此类型外部变量的引用范围 C只能在定义它的文件范围内使用。 30 【正确答案】 B 【试题解析】 本题宏替换中遇到形参 x
37、以实参 k+l 代替,其他字符不变。SQR(k+1)展开后应为字符串 k+l*k+l。 31 【正确答案】 B 【试题解析】 字符串复制函数 strcpy包含在头文件 string.h 中,因此,程序中的第 1行文件包含命令是错误的。 32 【正确答案】 D 【试题解析】 在定义结构体变量时,不能只用结构体名 example或关键字 struct进行定义,必需要用结构体类型名 struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选 D。 33 【正确答案】 A 【试题解析】 由于本题定义的是共用体,所以成员表列中的整型变量 x与字符数组 c共占用同 个存储
38、单元,且此存储单元为 2个字节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。 34 【正确答案】 D 【试题解析】 在单向链表中,由于每个结点需要存储下 个结点的地址,且下 个结点的数据类型与前 个结点的数据类型完全相同,故应为 strect link*next。 35 【正确答案】 C 【试题解析】 fprintf函数工作时,多个数据间不会自动加分隔符,选项 A错误;浮点数的搞出格式是 “%5.0f”表明其小数部分输出 0位,即没有输出,所以选项 B 也是错误的。 36 【正确答案】 C 【试题解析】 位运算符 “|”的作 用是按位或,即两个二进制数的相应位中只要有个为
39、 1,该位的结果值为 1。最后以字符型输出, 98对应的字符 “b”。 37 【正确答案】 B 【试题解析】 fgets函数的作用是从指定的文件读入 个字符串。 fgets(str,n,fp);中的 n为要求得到的字符的个数,但只从 fp指向的文件输入 n-1个字符,然后在最后加 个 “0”字符,因此得到的字符串共有 n 个字符。 38 【正确答案】 C 【试题解析】 宏替换实质上就是字符替代,它不可能进行计算,故 C错误。带参数的宏与函数相比,宏在程序编之前已 经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。 39 【正确答案】 A 【试题解析】 p0存放的是
40、 “BOOL0”的首地址; p1存放的是 “OPk0”的首址等。在 printf语句中输出的 *pi表示 pi字符串中的第一个字符。在 for循环中, i的初值为 3,那么输出的第 个字符为 “S”,接着两次 i-,则输出的值为 *p1,即字符 “O”,所以本题的输出为 SO。 40 【正确答案】 B 【试题解析】 在对字符数组赋字符串值时,系统会自动在字符串 的末尾加上 个字符串结束标志 0,故指向字符数组的指针 p 的 *(p+4)的值为 0。由于 0的编码值就是 0,所以本题输出为 0。 41 【正确答案】 前后件关系 【试题解析】 在数据存储结构中,除了要存储数据,还要存储数据的前后件
41、关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。 42 【正确答案】 队列 【试题解析】 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素 ,插入元素的一端叫做 “队尾 ”,删除元素的一端叫做 “队头 ”,先插入的元素先被删除,是按先进先出的原则组织数据的。 43 【正确答案】 16 【试题解析】 满二叉树的叶子结点都在最后一层,即第 4层,且第 4层的结点达到最大数,即 25-1=16。 44 【正确答案】 类 【试题解析】 在面向对象的方法中,把具有相同属性和方法的对象称为类
42、,类是对象的抽象,对象是类的实例。 45 【正确答案】 数据结构 【试题解析】 Jackson 方法是一种结构化分析方法,它是一种面向数据结构的结构 化方法。 46 【正确答案】 12 【试题解析】 x=(表达式 1,表达式 2, ) 的形式,结果为最后一个表达式的值: x=(a=4,6*2)=2*6=12。 47 【正确答案】 10 【试题解析】 此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是 a+4。前面已经给 a赋值 6,所以返回值 a+4=6+4=10。 48 【正确答案】 c =a n=3。第 3次:c=c*a=8; b=b+c=14。当 n=4时,判断条
43、件不满足,退出循环。 50 【正确答案】 32 【试题解析】 while(表达式 )的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完 毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束 while语句的执行,继续执行 while语句后面的语句; i=0时满足循环条件,也满足 if 的条件,执行语句得 i=11, a=11,第 2次循环不满足 if的条件,执行 i-, i=10,执行 i+=11; a+=i后,得 i=21, a=32,不满足 i 20,循环结束。 51 【正确答案】 24 【试题解析】 本题考查函数的循环调用。 p=x*func(x-
44、1),当 x=4时,不满足 if 语句的条件, p=4* func(3), x=3也不满足 条件,则 func(3)=3*func (2),func(2)=2*func(1), x=1满足条件 return(1),则输出结果为 4*3*2*1-24。 52 【正确答案】 bji=aij 【试题解析】 本题考查二维数组的基本知识。它是要将一个二维数组,的行和列元素互换后存放到另一个二维数组 b中,只要将数组 a的行标和列标互换,然后赋给数组 b即可。 53 【正确答案】 2,4,6,8 【试题解析】 子函数 fun()的功能是将数组 a中的元素都自加一遍,然后仍然将结果存在原数组 中,其实就是将
45、数组 a的每个元素都变为原来的 2倍,然后输出。在主程序中首先通过 int fun()定义了子函数 fun(),然后再调用 fun()。 54 【正确答案】 QTHRG 【试题解析】 函数 strcmp(t,s)用来比较 t和 s所指字符串的大小,若 t s,则函数值大于 0;若 t=s,则函数值等于 0;若 t s,则函数值小于 0。函数 strcpy(t,s)的功能是,把字符数组 s所指字符串的内容复制到字符数组 t所指存储空间中。 本题中, t10=CDEF“。第一次循环, s10=BADEF“, if 语句的控制条件strcmp(t,s) 0不成立,接着执行第二次循环, s=“QTHRO“, if 语句的控制条件strcmp(t,s) 0成立,执行下列的语句,将字符数组 s所指字符串的内容复制到字符数组 t所指存储空间中,然后输出字符数组 t。 55 【正确答案】 5 5 【试题解析】 分析程序执行过程,第一次循环时, j=3, i-5,因为 switch(3),所以执行 case 3,调用 P(a-i)=p(a4)=P(5),输出 5;第二次循环时, j=2, i=4,因为 switch(2),所以执行 case 2,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1