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