1、国家二级( C语言)笔试模拟试卷 157及答案与解析 1 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 2 软件开发模型包括 、瀑布模型 、扇形模型 、快速原型法模型 、螺旋模型 ( A) 、 、 ( B) 、 、 ( C) 、 、 ( D) 、 、 3 软件开发的结构化生命周期方法将软件生命周期划分成 ( A)定义、开发、运行维护 ( B)设计阶段、编程阶段、测试 阶段 ( C)总体设计、详细设计、编程调试 ( D)需求分析、功能定义、系统设计 4 单个用户使用的数据视图的描
2、述称为 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 5 数据结构作为计算机的一门学科 ,主要研究数据的逻辑结构、对各种数据结构进行的运算 ,以及 ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 6 设有关系 R和 S,关系代数表达式为 R-(R-S)表示的是 ( A) RS ( B) R-S ( C) R S ( D) RS 7 下列叙述中正确的是 ( A)一个算法的空间复杂度大 ,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大 ,则其时间复杂度必定小 ( C)一个算法的时间复杂度大 ,则其空间复杂度必定小 ( D)上述三种说法都不
3、对 8 对长度为 n的线性表进行顺序查找 ,在最坏情况下所需要的比较次数为 ( A) log2n ( B) n/2 ( C) n ( D) n+1 9 数据库技术的根本目标是要解决数据的 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 10 若某二叉树的前序遍历访问顺 序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 ( A) bdgcefha ( B) gdbecfha ( C) bdgaechf ( D) gdbehfca 11 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 (
4、 C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 12 软件开发模型包括 、瀑布模型 、扇形模型 、快速原型法模型 、螺旋模型 ( A) 、 、 ( B) 、 、 ( C) 、 、 ( D) 、 、 13 软件开发的结构化生命周期方法将软件生命周期划分成 ( A)定义、开发、运行维护 ( B)设计阶段、编程阶段、测试阶段 ( C)总体设计、详细设计、编程调试 ( D)需求分析、功能定义、系统设计 14 单个用户使用的数据视图的描述称为 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 15 数据结构作为计算机的一门学科 ,主要研究数据的逻辑结构、对各种数据结
5、构进行的运算 ,以及 ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 16 设有关系 R和 S,关系代数表达式为 R-(R-S)表示的是 ( A) RS ( B) R-S ( C) R S ( D) RS 17 下列叙述中正确的是 ( A)一个算法的空间复杂度大 ,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大 ,则其时间复杂度必定小 ( C)一个算法的时间复杂度大 ,则其空间复杂度必定小 ( D)上述三种说法都不对 18 对长度为 n的线性表进行顺序查找 ,在最坏情况下所需要的比较次数为 ( A) log2n ( B) n/2 ( C) n ( D) n
6、+1 19 数据库技术的根本目标是要解决数据的 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 20 若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 ( A) bdgcefha ( B) gdbecfha ( C) bdgaechf ( D) gdbehfca 21 以下不合法的用户标识符是 ( A) j2_KEY ( B) Double ( C) 4d ( D) _8_ 22 下列是用户自定义标识符的是 ( A) _w1 ( B) 3_xy ( C) int ( D) LINE-3 23 若有说明语
7、句 :char c=72;则变量 c ( A)包含 1个字符 ( B)包含 2个字符 ( C)包含 3个字符 ( D)说明不合法 ,c的值不确定 24 表达式 3.6-5/2+1.2+5%2的值是 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 25 有如下程序段 int a=14,b=15,x; char c=A; x=(a /*programming*/ printf(“programming!n“); ( B) #include main(); /*/ programming /*/ printf(“programming!n“); ( C) #include m
8、ain() /*/*programming*/*/ printf(“programming!n“); ( D) include main() /*programming*/ printf(“programming!n“); 29 若有定义 float x=1.5;int a=1,b=3,c=2;,则正确的 switch语句是 ( A) switch(x) case 1.0:printf(“*n“); case 2.0:printf(“*n“); ( B) switch(int)x); case1:printf(“*n“); case 2:printf(“*n“); ( C) switch(a+
9、b) case 1:printf(“*n“); case 2+1:printf(“*n“); ( D) switch(a+b) case 1:printf(“*n“); case c:printf(“*n“); 30 以下数组定义中错误的是 ( A) int x3=0; ( B) int x23=l,2,3,4,5,6; ( C) int x3=l,2,3,4,5,6; ( D) int x23=l,2,3,4,5,6; 31 以下不合法的用户标识符是 ( A) j2_KEY ( B) Double ( C) 4d ( D) _8_ 32 下列是用户自定义标识符的是 ( A) _w1 ( B)
10、 3_xy ( C) int ( D) LINE-3 33 若有说明语句 :char c=72;则变量 c ( A)包含 1个字符 ( B)包含 2个字符 ( C)包含 3个字符 ( D)说明不合法 ,c的值不确定 34 表达式 3.6-5/2+1.2+5%2的值是 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 35 有如下程序段 int a=14,b=15,x; char c=A; x=(a /*programming*/ printf(“programming!n“); ( B) #include main(); /*/ programming /*/ print
11、f(“programming!n“); ( C) #include main() /*/*programming*/*/ printf(“programming!n“); ( D) include main() /*programming*/ printf(“programming!n“); 39 若有定义 float x=1.5;int a=1,b=3,c=2;,则正确的 switch语句是 ( A) switch(x) case 1.0:printf(“*n“); case 2.0:printf(“*n“); ( B) switch(int)x); case1:printf(“*n“);
12、case 2:printf(“*n“); ( C) switch(a+b) case 1:printf(“*n“); case 2+1:printf(“*n“); ( D) switch(a+b) case 1:printf(“*n“); case c:printf(“*n“); 40 以下数组定义中错误的是 ( A) int x3=0; ( B) int x23=l,2,3,4,5,6; ( C) int x3=l,2,3,4,5,6; ( D) int x23=l,2,3,4,5,6; 41 以下选项中 ,当 x为大于 l的奇数时 ,值为 0的表达式是 ( A) x%2=1 ( B) x/
13、2 ( C) x%2!=0 ( D) x%2=0 42 有以下程序 main() int k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4:n+=2;k-;break; printf(“%d“,n); while(k0 printf(“%d“,n); 该程序的输出结果是 ( A) 987 ( B) 876 ( C) 8765 ( D) 9876 44 有以下程序 #include main() int c; while(c=getchar()!=n) switch(c-2) ca
14、se 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break; printf(“n“) 从第一列开始输入以下数据 代表一个回车符。 2743 程序的输出结果是 ( A) 66877 ( B) 668966 ( C) 6677877 ( D) 6688766 45 有以下程序 main() int x=0,y=0,i; for (i=1;+i) if (i%2=0) x+;continue; if (i%5=0) y+;break; printf (“ %d
15、,%d“,x,y); 程序的输出结果是 ( A) 2,1 ( B) 2,2 ( C) 2,5 ( D) 5,2 46 有以下程序 main() int a44=l,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,j,k,t; for(i=0;iaki)t=aji;aji=aki;aki=t;/*按列排序 */ for(i=0;i,则下面程序的运行结果是 #include main() char s80,c=a; int i=0; scanf(“%s“,s); while(si!= if(si=c)si-32; else if(si=c-32)si=si+32; i+; puts
16、(s); ( A) ahaMa ( B) AbAMa ( C) AhAMa空格 ahA ( D) ahAMa空格 ahA 49 下面程序输出的结果是 main() int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i int a33=1,2,3,4,5,6,7,8,9,*p; main() p=(int*)malloc(sizeof(int); f(p,a); printf(“%dn“,*p); free(p); f(int *s, int p3) *s=p11; ( A) 1 ( B) 4 ( C) 7 ( D) 5 54 有以下程序 void f(int
17、*q) int i=0; for(;i main() char p20=a, b, c, d, q=“abc“, r=“abcde“; strcat(p, r); strcpy(p+strlen(q), q); printf(“%dn“,strlen(p); 程序运行后的输出结果是 ( A) 9 ( B) 6 ( C) 11 ( D) 7 58 在 C语言中 ,变量的隐含存储类别是 ( A) auto ( B) static ( C) extern ( D)无存储类别 59 以下程序的输出结果是 main() int c=35; printf(“%dn“,c ( A) 0 ( B) 70 (
18、C) 35 ( D) 1 60 有以下程序 #include main() FILE *fp; int i=20,j=30,k,n; fp=fopen(“d1.dat“,“w“); fprintf(fp,“%dn“,i);fprintf(fp,“%dn“,j); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d%d“, printf(“%d %dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 20 30 ( B) 20 50 ( C) 30 50 ( D) 30 20 61 以下选项中 ,当 x为大于 l的奇数时 ,
19、值为 0的表达式是 ( A) x%2=1 ( B) x/2 ( C) x%2!=0 ( D) x%2=0 62 有以下程序 main() int k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4:n+=2;k-;break; printf(“%d“,n); while(k0 printf(“%d“,n); 该程序的输 出结果是 ( A) 987 ( B) 876 ( C) 8765 ( D) 9876 64 有以下程序 #include main() int c; while(c
20、=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break; printf(“n“) 从第一列开始输入以下数据 代表一个回车符。 2743 程序的输出结果是 ( A) 66877 ( B) 668966 ( C) 6677877 ( D) 6688766 65 有以下程序 main() int x=0,y=0,i; for (i=1;+i) if (i%2=0) x+;continue; if (
21、i%5=0) y+;break; printf (“ %d,%d“,x,y); 程序的输出结果是 ( A) 2,1 ( B) 2,2 ( C) 2,5 ( D) 5,2 66 有以下程序 main() int a44=l,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,j,k,t; for(i=0;iaki)t=aji;aji=aki;aki=t;/*按列排序 */ for(i=0;i,则下面程序的运行结果是 #include main() char s80,c=a; int i=0; scanf(“%s“,s); while(si!= if(si=c)si-32; else
22、if(si=c-32)si=si+32; i+; puts(s); ( A) ahaMa ( B) AbAMa ( C) AhAMa空格 ahA ( D) ahAMa空格 ahA 69 下面程序输出的结果是 main() int i; int a33=1,2,3,4,5,6,7,8,9; for(i=0;i int a33=1,2,3,4,5,6,7,8,9,*p; main() p=(int*)malloc(sizeof(int); f(p,a); printf(“%dn“,*p); free(p); f(int *s, int p3) *s=p11; ( A) 1 ( B) 4 ( C)
23、7 ( D) 5 74 有以下程序 void f(int *q) int i=0; for(;i main() char p20=a, b, c, d, q=“abc“, r=“abcde“; strcat(p, r); strcpy(p+strlen(q), q); printf(“%dn“,strlen(p); 程序运行后的输出结果是 ( A) 9 ( B) 6 ( C) 11 ( D) 7 78 在 C语言中 ,变量的隐含存储类别是 ( A) auto ( B) static ( C) extern ( D)无存储类别 79 以下程序的输出结果是 main() int c=35; pri
24、ntf(“%dn“,c ( A) 0 ( B) 70 ( C) 35 ( D) 1 80 有以下程序 #include main() FILE *fp; int i=20,j=30,k,n; fp=fopen(“d1.dat“,“w“); fprintf(fp,“%dn“,i);fprintf(fp,“%dn“,j); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d%d“, printf(“%d %dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 20 30 ( B) 20 50 ( C) 30 50 ( D) 30 20 81 需求分析的最终结果是产生【 】。 82 为了便于对照检查 ,测试用例应由输入数据和预期的【 】两部分组成。 83 数据结构分为逻辑结构与存储结构 ,线性链表属于【 】。 84 某二叉树中度为 2的结点有 18个 ,则该二叉树中有【 】个叶子结点。 85 【 】是数据库设计的核心。 86 需求分析的最终结果是产生【 】。 87 为了便于对照检查 ,测试用例应由输入数据和预期的【 】两部分组成。