[计算机类试卷]2008年4月国家二级(C语言)笔试真题试卷及答案与解析.doc
《[计算机类试卷]2008年4月国家二级(C语言)笔试真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2008年4月国家二级(C语言)笔试真题试卷及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、2008 年 4月国家二级( C语言)笔试真题试卷及答案与解析 1 程序流程图中带有箭头的线段表示的是 ( )。 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 2 结构化程序设计的基本原则不包括 ( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 3 软件设计中模块划分应遵循的准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 4 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)可行 性分析报告 ( B)软件需求规格说明书 ( C)概要设计说明书 ( D)集成设计计划 5 算法的
2、有穷性是指 ( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 6 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 7 下列关于栈的叙述正确的是 ( )。 ( A)栈按 “先进先出 ”组织数据 ( B)栈按 “先进后出 ”组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( )。 ( A)需求分析阶段 ( B
3、)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 9 有三个关系 R、 S和如下;由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ), Q选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 下列叙述中正确的是 ( )。 ( A) C程序中的注释只能出现在程序的开始位置和语句的后面 ( B)
4、C程序书写格式严格,要求一行内只能写一个语句 ( C) C程序书写格式自由,一个语句可以写在多行上 ( D)用 C语言编写的程序只能放在一个程序文件中 12 下列选项中不合法的标识符是 ( )。 ( A) print ( B) FOR ( C) b=1.1; 16 有下列程序段: char ch;int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dn“,k); 已知字符 a的ASCII十进制代码为 97,则执行上述程序段后输出结果是 ( )。 ( A)因变量类型与格式描述符的类型不匹配输出无定值 ( B)输出项与格式描述符个数不符,
5、输出为零值或不定值 ( C) a,97,12k=12 ( D) a,97,k=12 17 已知字母 A的 ASCII代码值 为 65,若变量 kk为 char型,下列不能正确判断出比中的值为大写字母的表达式是 ( )。 ( A) kk =A if(a B) a=b;c=a; if(c!=A) c=b; printf(“%d,%d,%dn“,a,b,C) ; 其输出结果是 ( )。 ( A)程序段有语法错 ( B) 3,5,3 ( C) 3,5,5 ( D) 3,5,7 20 有下列程序: #include stdio.h main() int x=1,y=0,a=0,b=0; switch(x
6、) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+;b+;break; case 3: a+;b+; printf(“a=%d,b=%dn“,a,B) ; 程序的运行结果是 ( )。 ( A) a=1, b=0 ( B) a=2, b=2 ( C) a=1, b=1 ( D) a=2, b=1 21 有下列程序: #inelude stdio.h main() int x=8; for(;x 0;x-) if(x%3) printf(“%d,“,x-);continue; printf(“%d,“,-x); 程序的运
7、行结果是 ( )。 ( A) 7,4,2 ( B) 8,7,5,2 ( C) 9,7,6,4 ( D) 8,5,4,2 22 下列不构成无限循环的语句或语句组是 ( )。 ( A) n=0; do +n; while (n =0); ( B) n=0; while (1) n+; ( C) n=10; While (n); n-; ( D) for(n=0, i=1; ;i+)n+=i 23 有下列程序: #include stdio.h main() int a=1,2,3,4,y,*p= -p; y=*p; printf(“y=%dn“,y); 程序的运行结果是 ( )。 ( A) y=0
8、 ( B) y=1 ( C) y=2 ( D) y=3 24 下列错误的定义语句是 ( )。 ( A) int x 3=0,1,1,2,3; ( B) int x43=1,2,3,1,2,3,1,2,3,1,2,3; ( C) int x4 =1,2,3,1,2,3,1,2,3,1,2,3; ( D) int x 3=1,2,3,4; 25 设有下列程序段: char s20=“Beijing“,*p; p=s; 则执行 p=s;语句后,下列叙述正确的是 ( )。 ( A)可以用 *p表示 s0 ( B) s数组中元素的个数和 p所指字符串长度 相等 ( C) s和 p都是指针变量 ( D)数
9、组 s中的内容和指针变量 p中的内容相同 26 若有定义: int a233;,下列选项中对 a数组元素正确引用的是 ( )。 ( A) a2!1 ( B) a23 ( C) a03 ( D) a1 2!1 27 有定义语句: char s10;, 若要从终端给 s输入 5个字符,错误的输入语句是( )。 ( A) gets( char c;REC; REC t1,t2; ( B) struct REC; int n; char c; REC t1,t2; ( C) typedef struct REC; int n=0; char c=A; t1,t2; ( D) stmct int n;
10、char c; REC; REC t1,t2; 30 下列叙述中错误的是 ( )。 ( A) gets函数用于从终端读入字符串 ( B) getchar函数用于从磁盘文件读入字符 ( C) fputs函数用于把字符串输出到文件 ( D) fwrite函数用于以二进制形式输出数据到文件 31 有下列程序: #include stdio.h main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i 12;i+)csi+; for(i=1;i 5;i+)printf(“%d“,ci); printf(“n“); 程序的 运行结果是 ( )。 (
11、 A) 1 2 3 4 ( B) 2 3 4 4 ( C) 4 3 3 2 ( D) 1 1 2 3 32 有下列程序: #include stdio.h void fun(int * s,int n1,int n2) int i,j,t; i=n1;j=n2; while(i j)t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k10;k+)printf(“%d“,ak);printf(“n“); 程序的运行结果是 ( )。 ( A)
12、 987654321 ( B) 4321098765 ( C) 5678901234 ( D) 987651234 33 有下列程序: #include stdio.h #include “string.h“ void tim(char *s,int n) char *t;int i,j; for(i=0;i n-1;i+) for(j=i+1;j n;j+) if(strlen(si) strlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s
13、n“,ss0,ss4); 程序的运行结果是 ( )。 ( A) xy,aaaacc ( B) aaaacc,xy ( C) bcc,aabcc ( D) aabcc,bcc 34 有下列程序: #include stdio.h int f(int x) int y; if(x=0x=1)return(3); y=x*x-f(x-2); return y; main() int z; z=f(3);printf(“%dn“,z); 程序的运行结果是 ( )。 ( A) 0 ( B) 9 ( C) 6 ( D) 8 35 有下列程序: #include stdio.h void fun(char
14、*a, char *B) while(*a=*)a+; while(*b=*A) b+;a+; main() char *s=“*a*b*“,t80; fun(s,t);puts(t); 程序的运行结果是 ( )。 ( A) *a*b ( B) a*b ( C) a*b* ( D) ab 36 有下列程序: #include stdio.h #include “string.h“ typedef structchar name9; char sex;float score2;STU; void f(STU A) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(a
15、.name,b.name); a.sex=b.sex; for(i=0;i 2;i+) a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0; f(C) ; printf(“%s,%c,%2.0f,%2.0fn“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是 ( )。 ( A) Qian,f,95,92 ( B) Qian,m,85,90 ( C) Zhao,f,95,92 ( D) Zhao,m, 85,90 37 有下列程序: #include stdio.h main() FILE *fp; int a
16、10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0;i 3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“n“); fclose(fp); fp=open(“d1.dat“,“r“); fscanf(fp,“%d“, fclose(fp); prinff(“%dn“,n); 程序的运行结果是 ( )。 ( A) 12300 ( B) 123 ( C) 1 ( D) 321 38 变量 a中的数据用二进制进表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000,若要求将 a的高 4位取反,低 4位
17、不变,所要执行的运算是 ( )。 ( A) a*b ( B) a b ( C) a,则下列叙述正确的是 ( )。 ( A) f是基类型为 int的指针变量 ( B) f是指向函数的指针变量,该函数具有一个 int类型的形态 ( C) f是指向 int类型一维数组的指针变量 ( D) f是函数名,该函数的返回值是其类型为 int类型的地址 41 测试用例包括输入值集和【 】值集。 42 深度为 5的满二叉树有【 】个叶子结点。 43 设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置 ),尾指针rear=29(指向队尾元素 ),则该循环队列中共有【 】个元素。 44 在关
18、系数据库中,用来表示实体之间联系的是【 】。 45 在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【 】负责数据的模式定义与数据的物理存取构建。 46 已有定义; char c= ;int a=1, b; (此处 c的初值为空格字符 ),执行b=!c ,下列程序段的输出结果是【 】。 for(k=2;k 6;k+,k+)printf(“+%d“k); 49 下列程序的输出结果是【 】。 #include stdio.h void swap(int *a, int *B) int *t; t=a;a=b;b=t; main() int i=3,j=5,*p= swap(p,q
19、);printf(“%d %dn“,*p,*q); 50 下列程序舶输出结果是【 】。 #include stdio.h main() int a5=2,4,6,8,10,*p; p=a;p+; printf(“%d“,*p); 51 下列程序的输出结果是【 】。 #include stdio.h void fun(int x) if(x/2 0) fun(x/2); printf(“%d“,x); main() fun(3);printf(“n“); 52 下列程序中函数 fun的功能是:统计 person所指结构体数组中所有性别 (sex)为M的记录的个数,存入变量 n中,并作为函数值返回
20、。请填空。 #include stdio.h #define N 3 typedef struct int num; char nam10; char sex; SS; int fun(SS person) int i,n=0; for(i=0; i N; i+) if(【 】 =M) n+; return n; main() SS WN=1,“AA“,F,2,“BB“,M,3,“CC“,M; int n; n=fun(W); printf(“n=%dn“, n); 53 下列程序从名为 filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 #include stdio.h ma
21、in() FILE *fp; char ch; fp = fopen(【 】 ); ch = fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(“n“); fclose(fp); 54 下列程序的定义语句中, x1的初值是【 】,程序运行后输出的内容是【 】。 #include stdio.h main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i 4;i+) pi= printf(“%d“,pi0); printf(“n“); 2008
22、年 4月国家二级( C语言)笔试真题试卷答案与解析 1 【正确答案】 C 【试题解析】 程序流程图是一种传统的、应用广 泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件, 2 【正确答案】 A 【试题解析】 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用 GOTO 语句,其中不包括多态性。 3 【正确答案】 B 【试题解析】 耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。软件设计应该遵循高内聚低耦合。 4 【正确答案】 B 【试题解析】 需求分析的最终结果是生成软件需要规
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2008 国家 二级 语言 笔试 答案 解析 DOC
