[计算机类试卷]国家二级(C语言)笔试模拟试卷33及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷33及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷33及答案与解析.doc(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是否为素数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 33 答案 解析 DOC
