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

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

1、国家二级( C语言)笔试模拟试卷 33及答案与解析 1 顺序查找一个具有 n个元素的线性表,二分查找一个具有 n个元素的有序表,其时间复杂性为 _。 ( A) O(n) ( B) O(log2n) ( C) O(n2) ( D) O(nlog2n) 2 已知 个有序表为 (12, 18, 24, 35, 47, 50, 62, 83, 90, 115, 134),当二分查找值为 47的元素时,经过 _次比较后查找成功。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 3 在软件质量因素中,软件在异常情况下仍能运行的能 力称为软件的 _。 ( A)可用性 ( B)可靠性 ( C)安全性

2、( D)健壮性 4 软件的可靠性主要表现在 _。 ( A)能够安装多次 ( B)能够在不同类型的计算机系统上安装和使用 ( C)软件的正确性和健壮性 ( D)前面都正确 5 程序的 3种基本控制结构的共同点是 _。 ( A)不能嵌套使用 ( B)只能用宋写简单的程序 ( C)已经用硬件实现 ( D)只有一个入口和一个出口 6 个数据库系统一般由三级模式组成,其中的模式 (也称逻辑模式或概念模式 )指的是 _。 ( A)用户使用的数据视图 ( B)所有用户的公共数据视图 ( C)对数据物理结构和存储结构的描述 ( D)一种局部的逻辑数据视图 7 下列数组说明中,正确的是 _。 ( A) int

3、array4; ( B) int array; ( C) int marray5; ( D) int array3; 8 若 x和 y都是血型变量, x=100, y=200,且有程序片段: printf(“%d“, (x,y);,则输出结果是 _。 ( A) 200 ( B) 100 ( C) 100 200 ( D)输出格式符不够,输出不确定的值 9 下面结构体的定义语句中,不正确的是 _。 ( A) structdate int month; int day; int year; Struct date datel; ( B) stmctdate intmonth; int day; i

4、nt year; datel; ( C) struct int month; int day; int year; date 1; ( D) #define DATE stmct date DATE int month; int day; int year; datel; 10 下列叙述中,正确的一条是 _。 ( A) C语言的整型变量可以分为 int、 short、 long、 unsigned int、 unsigned short、unsigned long等几种类型,因此整型常量也可以分为这几种类型 ( B) C语言的字符数据与整型数据可以互相赋值 ( C)若对字符型变量的定义为: c

5、har c;可使用语句 c=“a“,对变量 c赋值 ( D)已知 x为 float型,执行语句 (int)x后, x为 int型 11 能将高级语言程序转换成目标语言程序的是 _。 ( A)调试程序 ( B)解释程序 ( C)编译程序 ( D)编辑程 序 12 _是构成 C语言程序的基本单位。 ( A)函数 ( B)过程 ( C)子程序 ( D)子例程 13 可以在 C语言中用做用户标识符的是 _。 ( A) void define WORD ( B) as b3 _123 If ( C) for -abc cas ( D) 2c Do SIG 14 下面语句的输出结果是 _。 printf(

6、“/odn“,strlen(“t“065xffn“) ( A) 14 ( B) 8 ( C) 5 ( D)输出项不合法,无正常输出 15 下列程序的输出结果是 _。 #define A 100 main() int i=0,sum=0; do if(i=(i/2)*2) continue; sum+=i; while(+i A) ; printf(“%dn“,sum); ( A) 2500 ( B) 2050 ( C) 4 ( D) 0 16 下列程序的输出结果是 _。 main() int i=3; switch(i) case1: case2:printf(“%d“,i); case3:

7、case4:break; default: printf (“OK“); ( A) 0 ( B) 3 ( C) OK ( D)没有任何输出 17 下列程序执行后的输出结果是 _。 main() int m3=1,4.7,6,5,8,3,6,9; int i,k=2 for(i=0,i 3;i+) printf(“%d“,mki; ( A) 456 ( B) 258 ( C) 369 ( D) 789 18 已知字母 A的 ASCII参政值是 65,字母 a的 ASCII码值是 97,以下程序列_。 main() char a=A; int b=20; printf(“%d,%o“,(a=a+a

8、,a+b,b),a+a+A,b); ( A)表达式非法,输出零或不确定值 ( B)因输出项过多,无输出或输出不确定值 ( C)输出结果为 20, 141 ( D)输出结果为 20, 141, 20 19 下列程序执行后输出的结果是 _。 int d=1; fun(int p) int d=5; d+=p+; printf(“%d,“,d); main() int a3; fun(a); d+=a+; printf(“%dn“,d); ( A) 8, 12 ( B) 9, 13 ( C) 8, 4 ( D) 9, 5 20 已知下面的程序段,正确的判断是 _ #define A3 #define

9、 B(A) (A+1)*a) X=3*(A+B(7); X=3*(A+B(7); ( A)程序错误,不允许嵌套定义 ( B) X=93 ( C) X=81 ( D)程序错误,宏定义不允许有参数 21 下列程序的运行结果是 ( )。 #include stdio.h main() int a=2,b=3,c=4; if(a B) if(b 0) c=0; else c+=1; printf(“%dn“,C) ; ( A) 2 ( B) 3 ( C) 5 ( D) 4 22 在下列给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (!E= =0) ( B) (E

10、 0E 0) ( C) (E= =0) ( D) (E!=0) 23 有下列程序: #include“stdio.h“ main() int x=0; int y=0; while(x7 x+; printf(“%d,%d“,y,x); 程序的输出结果是( )。 ( A) 0, 7 ( B) 7, 7 ( C) 0, 6 ( D) 1, 6 24 有下列程序: main() char s=“abcde“; s+ =2; printf(“%dn“,s0); 执行后的结果是 ( )。 ( A)输出字符 a的 ASCII码 ( B)输出字符 c的 ASCII码 ( C)输出字符 c ( D)程序出错

11、 25 下列选项中非法的字符常量是 ( )。 ( A) t ( B) 039 ( C) , ( D) n 26 下列叙述中正确的是 ( )。 ( A) break语句只能用于 swish语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中 ,不一定使用 break语句 27 下列叙述中,错误的是 ( )。 ( A)在同一 C程序文件中,不同函数中可以使用名字相同的变量 ( B)在 main()函数体内定义的变量是全局变量 ( C)形参是局部变量,函数调用完成即失去意义 ( D)若同一

12、文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用 28 C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 ( )。 ( A)地址传递 ( B)值传递 ( C)由实参传给形参,并由形参传回给实参 ( D)由用户指定传递方式 29 设 q1和 q2是指向一个 float型一维数组的指针变量, k为 float型变量,则不能正确执行的语句是 ( )。 ( A) k=*q1+*q2; ( B) q1=k; ( C) q1=q2; ( D) k=*q1*(*q2); 30 若有说明: int*p1, *p2, n=8, m;下列均是正确赋值语句的选项是 ( )。 ( A)

13、p1=p2=*p2=p1; ( D) p1=p2=p1; 31 若希望下列的程序运行后输出 25,程序空白处的正确选 项是 ( )。 main() int i,j=50,a=7,4,10,5,8; for( ) j+=ai; printf(“%d“,j-40); ( A) i=1;i 4;+i ( B) i=1;i 3;+i ( C) i=4;i 2;i- ( D) i=2;i 4;+i 32 若有说明 int a3=1,2,3,4,5,6,7,8,9),则 a数组第一维的大小是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 无确定值 33 若二维数组 a有 m列,则在 aij

14、前的元素个数为 ( )。 ( A) i*m+j-1 ( B) i*m+j ( C) j*m+1 ( D) i*m+i+1 34 函数调用 strcat(strcpy(str1, str2), str3)的功能是 ( )。 ( A)将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后 ( B)将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后 ( C)将字符串 str2复制到字符串 sir1中后再将字符串 str3连接到字符串 str1之后 ( D)将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中 35 下列程序的

15、输出结果是 ( )。 #include stdio.h f(int A) int b=0; static int c=4; a=c+;b+; return(A) ; main() int a=2,i,c; for(i=0;i 2;i+) c=f(a+); printf(“%dn“,C) ; ( A) 4 ( B) 7 ( C) 6 ( D) 5 36 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #define f(x)5*x*x+5*x+5 ( B) #define f5*x*x+5*x+5 ( C) #de

16、fine f(A) (5*a*a+5*a+5) ( D) #define(5*x*x+5*x+5)f(x) 37 定义结构体数组: struct stu int num; char name20; x5;1,“L1“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“; for(i=1;i5;i+) printf(“%d%c“,xi.num,xi.name2); 以上程序段的输出结果为 ( )。 ( A) 2A3N4A5U ( B) 1I2A3H4I ( C) 1A2N3A4U ( D) 2H3A4H5I 38 若有下列说明和语句,已知 int型数据占 2个字节,则下列语句

17、的输出结果是( )。 struct st char a15; int b; double c; ; printf(“%d“,sizcof(struct st); ( A) 15 ( B) 8 ( C) 25 ( D) 2 39 设 int x=7,则 x的值是 ( )。 ( A) -8 ( B) -7 ( C) -1 ( D) 1 40 函数 ftell(fp)的作用是 ( )。 ( A)得到 fp所指向文件的当前读写位置 ( B)初始化流式文件的位置指针 ( C)移动流式文件的位置指针 ( D)以上答案均正确 41 数据结构分为逻辑结构和存储结构,循环队列属于 _结构。 42 队列是限定在表

18、的一端进行插入和在另一端进行删除操作的线性表 。允许插入的一端称作 _。 43 在一个容量为 32的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有 _个元素。 44 一棵二叉树第 6层 (根结点为第一层 )的结点最多为 _个。 45 度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 _。 46 以下函数 fun的功能是返回 str所指字符中中以形参 c中字符开头的后续字符串的首地址,例如: str所指字符串为 “Hello!”, c中的字符为 e,则函数返回字符串“ello!“的首地址 。若 str所指字符串为空中或不包含 c中的字符,则函数返回NUL

19、L。请填空。 char *fun (char *str, char c) int n=0; char*p=str; if(p!=NULL) while(Pn! =c for(i=0;i 3;i+) s+ =aii + ai3-i-1; pfintf(“% d n“ ,s); 48 下面程序的运行结果是【 】。 #include stdio.h fun(int t,int n) int i,m; if(n=1) return t0; else if(n =2) | m:fun(t,n-1); return m; main( ) int a = 11,4,6,3,8,2,3,5,9,2; prin

20、tf( “% d n“ ,fun( a, 10); 49 有两个 C程序文件 T18.c和 myfun.c同在 VC系统目录 (文件夹 )下,其中 T18.c文件如下 : #include stdio.h #include “myfun.c“ main( ) fun(); prinff(“n“); myfun.c文件如下 : void fun( ) char s80,c;int n=0; while(c=getchar()! :n) sn+ =c; n-; while ( n =0) prinff(“%c“ , s n- ); 当编译连接通过后,运行 程序 T18时,输入 “Thank!”,则

21、输出结果是【 】。 50 若变量 a, b已定义为 int类型并分别赋值 21和 55,要求用 printf函数以a=21, b=55的形式输出,请写出完整的输出语句行:【 】。 51 当运行以下程序时,输入 abcd,程序的输出结果是【 】。 insert(char str ) int i; i = stolen(str); while (i 0) str2*i =stri; str2 * i-1 = * ; i-; printf( “% s n“, sir); main( ) char str40; seanf( “% s“ ,str); insert(str); 52 以下程序用于判断

22、a, b, c能否构成三角形,若能,输出 YES,否则输出NO。当给 a, b, c输入三角形三条边长时,确定 a, b, c能构成三角形的条件是需同时满足三个条件: a+b c, a+c b, b+c a。请填空。 #include stdio.h main( ) float a,b,c; scanf( “% f% f% f“, if(【 】 )printf(“YESn“); /*a.b.c能构成三角形 */ else prinff( “NO n“ ); /* a.b.c不能构成三解形 */ 53 以下程序的功能是输入任意整数给 n后,输出 n行从大写字母 A开始构成的三角形字符阵列图形。例

23、如,输入整数 5时 (注意: n不得大于 10),程序运行结果如下: A B C D E F C H I J K L M N O 请填空完成该程序。 #include stdio.h main( ) int i.j,n;char ch =A; scanf(“ % d“ , if( n 11 ) for(i=1; i =n;i+) for(j =1; j =n-i+1;j+) printf( “%2c“ ,ch); 【 】 ; 【 】 ; else printf (“n is too large! n“ ); prinff(“n“); 54 以下 isprime函数的功能是判断形参 a是否为素数

24、,如果是素数,函数返回 1,否则返回 0。 int isprime( int a) int i; for(i =2;i = a/2;i + ) if(a%i=0) 【 】 ; 【 】 ; 55 以下程序的功能是:输出 100以内 (不含 100)能被 3整除且个位数为 6的所有整数,请填空。 #include stdio.h main() int i,j for(i=0;【 】 ;i+) j=i*10+6; if(【 】 )continue: Printf(“%d”“, j); 56 以下程序中函数 fun()的功能是构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字

25、符串。函数 disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数 disp。#include atdio.htypedef struct node /*链表结点结构 */ char sub3; struct node * next; NodeNode un(char s) /*建立链表 */void disp(Node * h) Node * Ps p=h- next; while(【 】 ) printf(“%sn“,p- suh);p= 【 】 ;main( ) Node * hd; hd = fun( ); disp(hd) ;prinff(“ n“ ); 国家二级(

26、C语言)笔试模拟试卷 33答案与解析 1 【正确答案】 B 2 【正确答案】 D 3 【正确答案】 D 4 【正确答案】 C 5 【正确答案】 D 6 【正确答案】 B 7 【正确答案】 A 8 【正确答案】 A 9 【正确答案】 A 10 【正确答案】 B 11 【正确答案】 C 【试题解析】 用高级语言编写的程序称为 “源程序 ”,而计算机只能识别和 执行由0和 1组成的二进制指令,所以高级语言必须先用 种称为 “编译程序 ”的软件,把源程序翻译成二进制形式的 “目标程序 ”。 12 【正确答案】 A 【试题解析】 C程序是由函数构成的。一个 C源程序至少包含一个 main函数,也可以包含

27、一个 main函数和若干个其他函数,因此,函数是 C程序的基本单位。 13 【正确答案】 B 【试题解析】 C语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 A中 void, C中 for都为关键字, D中 2c以字母开头。 14 【正确答案】 C 【试题解析】 在 C语言中,以 “”开头的字符均为转义字符,其中 “”后可跟 1 3位八进制数或在 “”后跟字母 x及 1 2位十六进制数,以此来代表一个特定的字符。 15 【正确答案】 A 【试题解析】 本题程序的功能是求 1到 99之间 (包括 1和 99)所有

28、奇数之和。程序中的 while循环的终止条件为 +i=100,在 while循环体内,如果 i是偶数,则执行 continue,跳过这依次循环,执行下一次循环,否则求和。最后输出的值是 1到 99之间 (包括 1和 99)所有奇数之和 (1+99)*50/2=2500。 16 【正确答案】 D 【试题解析】 在题中, i的值为 3,由于 “case 3:”后面没有 break语句,所以继续向下执行 “case 4:”后面的语句,由于 “case 4:”后面的语句为 break强行退出 switch语句,所以,本题没有任何输出。 17 【正确答案】 C 【试题解析】 根据二维数组的定义得出: m

29、00=1, m01=4, m02=7,m10=2, m11=5, m12=8, m20=3, m21=6, m22=9,所以本题的输出是第 3行的值 m20, m21, m22,即 369。 18 【正确答案】 C 【试题解析】 本题中首先输出逗号表达式 “a=a+a,a+b,b”的值,即 20。然后以八进制的形式输出 a+a-A的值为 97对应的八进制数 141,由于最后一个表达式 b没有对应输出格式的输出项表列就不会输出。 19 【正确答案】 C 【试题解析】 本题执行过程如下:首先调用 fun函败,使得实参 a的值 3传递给形参 p,得到局部变量 d=8,打印出局部变量 d的值 8;返回

30、主函数执行“d+=a+”,此处的 d为全局变量,所以 d=1+3=4(由于本题是值传递,所以在函数fun中对 p值的改变并不能引起 a的改变 ),故本题的输出是 8, 4。 20 【正确答案】 C 【试题解析】 本题的宏定义是合法的,宏定义展开为3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。 21 【正确答案】 C 【试题解析】 本题考查 if else语句。第一个 if语句,先判断条件,发现 a b条件成立,执行下列的语句;第二个 if语句,先判断条件,发现 b 0条件不成立,则执行与其配对的 else语句, c+=1,得 c=5。 22 【正确答案】 B 【试题解析】 在

31、while(E)中,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B)中表达式 E 0E 0是一个逻辑表达式。 23 【正确答案】 A 【试题解析】 本题考查 while循环 y的值在 while循环的控制表达式中加 1,在循环体内减 1,所以总的 y值不变,且控制条件 +y永远非零。当 x加到 7时不满足循环条件,结束循环。 24 【正确答案】 D 【试题解析】 因为字符数组 s中的数组名 s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位因而程序编译时出错。 25 【正确答案】 B 【试题解析】 选项 A

32、)中, t表示的是横向跳若干格;选项 B)中, 039错误,039是八进制形式表示的字符,但其中出现了 9,所以错误;选项 C)中, , 是字符逗号;选项 D)中, n表示的是回车换行。 26 【正确答案】 D 【试题解析】 break为 C语言关 键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。 default是关键字,起标号的作用,代表所有 case标号之外的那些标号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号 27 【正确答案】 B 【

33、试题解析】 本题考查函数调用时变量的作用域。形参是局部变量,函数调用完就失去意义了,所以在同一个 C程序文件中,不同的函数体中可以使用名字相同的局部变量。注意:在函数 之外定义的变量称为外部变量,外部变量是全局变量,全局变量可以为本文件中其他函数所共用。它的有效范围为:从定义变量的位置开始到本源文件结束 28 【正确答案】 B 【试题解析】 本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参 29 【正确答案】 B 【试题解析】 选项 A)是将指针 q1和 q2所指向的变量值相加,然后赋给 k;选项 B)中, float型数据

34、和指针型数据之间不能进行赋值运算:选项 C)中,是两个指针变量之间的赋 值:选项 D)中,是两个指针型变量所指向的两个 float型数据相乘。 30 【正确答案】 D 【试题解析】 本题考查指针变量的赋值。选项 A)中, p1、 p2本身都是地址变量,不能再将 p1取地址赋给 p2;选项 B)中,不能将整型数据直接赋值给指针型数据;选项 C)中, *p2代表了一个整型变量,而 *p2=p1这个语句试图把一个地址值放入一个整型变量中是错误的:选项 D)中指针间的赋值是正确的。 31 【正确答案】 D 【试题解析】 要想使程序输出是 25,则 j-40=25, j=65,而 j初值是 50,所以

35、填入 for循环中的语句,使引用的数组元素累加为 65-50=15 即可。 32 【正确答案】 B 【试题解析】 本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由下列规则确定: 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小: 当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加 1。 33 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是 i,说明它 前面还有 i行,有i*m个元素,数组第二维的下标是 j,说明它前面还有 j列,有 j个元素,所以共

36、有 i*m+j个元素。 34 【正确答案】 C 【试题解析】 strcat(s1,s2)是把 s2字符串连接到 s1字符串末尾, strcpy(s1,s2)是把 s2字符串复制给 s1字符串,要保证 s1能容纳下连接或复制后的字符串。 35 【正确答案】 D 【试题解析】 本题考查静态变量的使用方法和 for循环。在函数调用时, static变量在函数调用结束后所作的所有变化均不保持,所以当 i=1时,第 2次进入 f函数 时 c=5,所以最终 main函数中 c的值为 5。 36 【正确答案】 C 【试题解析】 带参数宏的格式为: #define标识符 (形参表 )形参表达式。其功能是:在预

37、处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。 37 【正确答案】 A 【试题解析】 本题主要考查结构体数组的使用。 xi.num为结构体 xi中的 num成员, xi.name2是结构体 xi中 name成员的第 3个元素。程序执行循环过程时:第 1次循环, i=1,输出 x1.num, x1.name2的值,即 2A;第 2次循环,i=2,输出 x2.num, x2.name2的值,即 3N:第 3次循环, i=3,输出x3.num, x3.name2的值,即 4A;第 4次循环, i=4,输出 x4.num,x4.name2的值,即 5U。 38 【正确答案】 C

38、【试题解析】 本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b占 2个字节, char a15占 15个字节, double c占 8个字节,所以共 25个字节。 39 【正确答案】 A 【试题解析】 本题主要考查按位求反运算和 C语言中正负数的表示, “0”代表正数, “1”代表负数; x=7的二进制为 00111,第一个 0代表正数, x为 11000,第一个 1代表负数,值为 8。 40 【正确答案】 A 【试题解析】 位置指针当前值函数 ftel

39、l()的基本调用格式为: ftell(fp)。 ftell()函数的参数说明: “fp”是指向文件的文件型指引。 ftell函数的功能;得到 fp所 指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为 -1L,表示出错。 41 【正确答案】 逻辑 【试题解析】 数据的逻辑结构主要是反映数据之间的逻辑关系,而存储结构是用来反映数据的逻辑结构在计算机存储空间中的存放形式。循环队列主要是强调数据之间的关系,因此属于逻辑结构。 42 【正确答案】 队尾 【试题解析】 在队列中,允许插入的一端叫做 “队尾 ”,允许删除的一端叫做 “队头 ”。 43 【正确答案】 31 【试题解析】 设队列容

40、量为 m,如果: rear front,则队列 中元素个数为 rear-front;如果 rear front,则队列中元素个数为 m+(rear-front)。本题 rearfront,则 m=32+(2-3)=31。 44 【正确答案】 32 【试题解析】 二叉树第 k层上,最多有 2k-1(k1)个结点。第 6层的结点数最多是 26-1=32。注意区别 “二叉树的结点最多数 ”和 “某一层的结点最多数 ”。前者的计算是深度为 m的二叉树最多有 2m-1个结点。 45 【正确答案】 45 【试题解析】 对于长度为 N的线性表,在最坏情况下 (即线性表中元素现在 的顺序与目标顺序正好相反 )

41、,冒泡排序需要经过 N/2遍的从前往后的扫描和 N/2遍的从后往前的扫描,需要的比较次数为 N(N-1)/2。 46 【正确答案】 str+n或 p+n 【试题解析】 此题主要是将形参 c中的字符与 str中的字符相比较,返回以形参c中字符开头的后续字符串,函数 fun中的变量 n用于记录形参 c中字符在 str字符串中的位置,故返回的结果用 str+n或 p+n表示。 47 【正确答案】 30 【试题解析】 当 i=0时, s=0+a00+a02=10; i=1时, s=10+a11+ a11=18; i=2时, s=18+a22+a20=30。 48 【正确答案】 11 【试题解析】 ma

42、in函数调用 fun函数时,将 10赋给 n,形参数组 t与实参数组 a共用一段内存空间。执行 if-else语句时, n=10,所以执行 else子句。由于 n =2成立,执行 m=fun(t0, 9),递归调用 fun函数, m=fun(t0, 8), m=fun(t0,7), , m=fun(t0, 2), m=fun(t0, 1),当 n= 1时满足 if(n 1)的 条件,执行return语句,返回数组首地址指向的值 t0,所以答案为 11。 49 【正确答案】 ! knahT 【试题解析】 程序中 myfun.c被包含在 T18.c中进行编译。 fun函数中用 getehar函数输

43、入字符并赋给数组 s,每输入一个字符,数组下标 n加 1,直到遇到回车键时输入结束。 while(n =0)循环反序输出字符中。所以 myfun.c文件用于实现字符串反序的功能。 50 【正确答案】 printf(“a=%d, b=%d“, a, b); 【试题解析】 根据 printf函数的格式 可知输出语句应该为: printf(“a=%d,b=%d“, a, b); 51 【正确答案】 a*b*c*d* 【试题解析】 程序中的变量 i用于存放字符串 str的长度,执行 while语句,通过分析可知,字符串第 2*i项的值可由第 i项的值得到;第 2*i-1项直接赋值为。号, i减 1,如

44、此反复直到不满足 i 0的条件时,输出运行后的字符串。 52 【正确答案】 (a+b c)&(a+c b)&(b+c a) 【试题解析】 根据构成三角形的条件:两边之和大于第三边,得出空格应该填(a+b c)& (a+c b)&(b+c a)或与其等价的形式。 53 【正确答案】 ch+或 ch=ch+1或 +ch , printf(“n“)或 prinff(“015“) 【试题解析】 程序中使用了两层 for循环,外循环的作用是控制行数,内循环的作用是控制每行的列数,在内循环中首先输出当前字符 (从 A开始 ), 6中应填ch+,使 ch中的字符变为要输出的下一个字符。每输出一行就需换一次行

45、,所以7处应填 pfintf(“n“)。 54 【正确答案】 return 0或 return(0) return 1或 return(1) 【试题解析】 素数是指只能被 1和其本身整除,不能被其他任何整数整除的数。根据 if条件语句,若形参 a对 i取余等于 0,则形参 a可以被其他数整除,所以第一处填 return 0;若形参 a对 i取余不等于 0,则形参 s不可以被其他数整除,所以第二处填 return 1。 55 【正确答案】 i 10或 i 9 j%3! =0或 j%3 【试题解析】 程序中的 j用于存放符合条件的整数, j=i, 10+6;求得个位数为 6的整数,由此可得出程序的

46、循环次数为 i 10,所以 15处填 i 10。然后通过 if语句判断整数是否能被 3整除,若不能则继续下一次循环,若能则输出该整数,所以 16处填 j%3!=0。 56 【正确答案】 p! =NULL或 P或 p! =0或 p! =0 p- next或 (*p).next 【试题解析】 程序中定义了一个结构体类型名 Node,其中定义了一个指向结点类型的指针 next。接下来用 Node定义了头结点指针变量 h和指向第一个结点的指针变量 p,在满足 p未指向最后一个结点的空指针时 (即为 NULL),输出 p所指向结点的字符串,所以第一处应填 p! = NULL,然后将 p指向下一个非空结点,所以第二处应填 P- next或与其等效的形式,反复执行直到所有的结点都输出。

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

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

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