1、2011 年 3月国家二级( C语言)笔试真题试卷及答案与解析 1 下列关于栈叙述正确的是 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)上述三种说法都不对 2 下列叙述中正确的是 ( A)有一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 3 某二叉树共有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在 第 1层 ) ( A) 3 ( B) 4 ( C) 6 ( D) 7 4 在软件开发中,需求分析阶段产生的主要
2、文档是 ( A)软件集成测试计划 ( B)软件详细设计说明书 ( C)用户手册 ( D)软件需求规格说明书 5 结构化程序所要求的基本结构不包括 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 6 下面描述中错误的是 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) PAD图 是软件详细设计的表示工具 7 负责数据库中查询操作的数据库语言是 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 8 一个
3、教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联系 ( D) m: n联系 9 有三个关系 R、 s和 T如下: 则由关系 R和 S得到关系 T的操作是 ( A)自然连接 ( B)交 ( C)除 ( D)并 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( A)一 369 ( B) 369 ( C) O 369 ( D)整数集合 1, 2, 3, 4, 5 11 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是 ( A) C语言程序仅可以编译执行 (
4、 B) C语言程序仅可以解释执行 ( C) C语言程序既可以编译执行又可以解释执行 ( D)以上说法都不对 12 以下叙述中错误的是 ( A) C语言的可执行程序是由一系列机器指令构成的 ( B)用 C语言编写的源程序不能直接在计算机上运行 ( C)通过编译得到的二进制目标程序需要连接 才可以运行 ( D)在没有安装 C语言集成开发环境的机器上不能运行 C源程序生成的 exe文件 13 以下选项中不能用作 C程序合法常量的是 ( A) l, 234 ( B) 123 ( C) 123 ( D) “ x7G” 14 以下选项中可用作 C程序合法实数的是 ( A) 1e0 ( B) 3 0e0 2
5、 ( C) E9 ( D) 9 12E 15 若有定义语句: int a=3b=2, c=1;,以下选项中错误的赋值表达式是 ( A) a=(b=4)=3 ( B) a=b=c+1: ( C) a=(b=4)+c; ( D) a=1+(b=c=4): 16 有以下程序段 char name20; int num; scanf(“name= s num= d”, name, num); 当执行上述程序段,并从键盘输入: name=Lili num=1001后, name的值为 ( A) Lill ( B) name=Lili ( C) Lili num= ( D) name=Lili num10
6、01 17 if语句的基本形式是: if(表达式 ) 语句,以下关于 “表达式 ”值的叙述中正确的是 ( A)必须是逻辑值 ( B)必须是整数值 ( C)必须是正数 ( D)可以是任意合法的数值 18 有以下程序 #include main() int x=011; printf(“ d n”, +x); 程序运行后的输出结果是 ( A) 12 ( B) 11 ( C) 10 ( D) 9 19 有以下程序 #include main() int s; scanf(“ d”, s); while(s0) switch(s) case 1; printf(“%d”, s+5); case 2:
7、printf(“ d”, s+4); break; case 3: printf(“ d”。 s+3); default: printf(“ d”, s+1); break; seanf(“ d”, s); 运行时,若输入 1 2 3 4 5 O,则输出结果是 ( A) 6566456 ( B) 66656 ( C) 66666 ( D) 6666656 20 有以下程序段 int i, n; for(i=0; i main() char s=“012xy 08s34f4w2”; int i, n=0: for(i=0; si!=0; i+) if(si=0 si main() char b,
8、 c; int i; b=a; c=A; for(i=0; i void fun(char*S) while(*s) if(*s 2)printf(“ c”, *s); S+; main() char a=“BYTE”: fun(a); printf(“ n”); 程序运行后的输出结果是 ( A) BY ( B) BT ( C) YT ( D) YE 26 有以下程序段 #include main() while(getchar()!= n); 以下叙述中正确的是 ( A)此 while语句将无限循环 ( B) getchar()不可以出现在 while语句的条件表达式中 ( C) 当执行此
9、while语句时,只有按回车键程序才能继续执行 ( D)当执行此 while语句时,按任意键程序就能继续执行 27 有以下程序 #inclUde main() int x=1。 y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“ d n”, y); 程序运行后的输出结果是 ( A) 3 ( B) 2 ( C) 1 ( D) 0 28 若有定义语句: char s310, (*k)3。 *P;,则以下赋值语句正确的是 ( A) p=S; ( B) p=k; ( C) p=s0; ( D) k=S; 29 有以下程序 #includ
10、e void fun(char*c) while(*C) if(*c=a *c,则程序的输出结果是 ( A) hello beijing ( B) Hello Beijing ( C) HELLO BEIJING ( D) hELLO Beijing 30 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #include #define N 10 void fun(int xN) int i=0; while(i main() char a30, b30; scanf(“ s”, a); gets(b); printf(“ s n s n”, a, b); 程序运行时若输入: h
11、ow are you? I am fine 则输出结果是 ( A) how are you? I am fine ( B) how are you? 1 am fine ( C) how are you? I am fine ( D) how are you? 32 设有如下函数定义 int fun(int k) if(k int fun(int X, int y) if(x!=y) return(x+y) 2): else return(x): main() int a=4b=5, c=6: printf(“ d n”, fun(2*a, fun(b, c): 程序运行后的输出结果是 ( A
12、) 3 ( B) 6 ( C) 8 ( D) 12 34 有以下程序 #include int fun() static int x=l: X*=2: return X: main() int i, s=l: for(i=l; i #define S(x)4*(x)*x+1 main() int k=5, j=2; printf(“ d n”, S(k+j); 程序运行后的输出结果是 ( A) 197 ( B) 143 ( C) 33 ( D) 28 36 设有定义: structchar mark12; int numl; double num2; tl, t2;,若变量均已正确赋初值,则以
13、下语句中错误的是 ( A) tl: t2; ( B) t2 numl=t1 numl: ( C) t2 mark=t1 mark; ( D) t2 nurn2=t1 num2: 37 有以下程序 #include struct ord int x, y; dt2=1, 2, 3, 4; main() struct ord*p=dt; printf(“ d,”, +(p一 x); printf(“ d n”, +(p一 y); 程序运行后的输出结果是 ( A) 1, 2 ( B) 4, 1 ( C) 3, 4 ( D) 2.3 38 有以下程序 #include struct S int a,
14、b; data2=10, 100, 20, 200; main() struet S p=datal; printf(“ d n”, +(P a): 程序运行后的输出结果是 ( A) 10 ( B) 11 ( C) 20 ( D) 21 39 有以下程序 #include main() unsigned char a=8, c: c=a3; printf(“ d n”, c): 程序运行后的输出结果是 ( A) 32 ( B) 16 ( C) 1 ( D) O 40 设 fp已定义,执行语句 fp=fopen(“file”, “w”);后,以下针对文本文件 file操作叙述的选项中正确的是 (
15、 A)写操作结束后可以从头开始读 ( B)只能写不能读 ( C)可以在原有内容后追加写 ( D)可以随意读和写 41 有序线性表能进行二分查找的前提是该线性表必须是 存储的。 42 一棵二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 。 43 对软件设计的最小单位 (模块或程序单元 )进行的测试通常称为 测试。 44 实体完整性约束要求关系数据库中元组的 属性值不能为空。 45 在关系 A(S, SN, D和关系 B(D, CN, NM)中, A的主关键字是 S, B的主关键字是 D,则称 是关系 A的外码 46 以下程序运行后的输出结果是 。 #incl
16、ude main() int a; a=(int)(double)(3 2)+0 5+(int)1 99*2); print(“ d n”, a); 47 有以下程序 #include main() int X; scanf(” d”, for(i=0; i 3: 00000001(b=1)。 40 【正确答案】 B 【试题解析】 本题主要考查的知识点为打开文件的 fopen 函数。 fopen 函数的第二个参数指定了文件的使用方式。 “w”表示为写而打开文本文件; “w十 ”表示操作结束后可以从头开始读; “a”表示在原有内容后追加写。故本题选 B。 41 【正确答案】 顺序 【试题解析】
17、二分查找只适用于顺序存储的有序线性表。 42 【正确答案】 DEBFCA 43 【正确答案】 单元 【试题解析】 单元测试是对软件设计的最小单位 -模块 (程序单元 )进行正 确性检验的测试。单元测试的目的是发现行模块内部可能存在的各种错误。 44 【正确答案】 主键 【试题解析】 实体完整性约束要求关系的主键中属性值不能为空值,因为主键是惟一决定元组的。如为空值则其惟一性就成为不可能的了。 45 【正确答案】 D 【试题解析】 如果表中的某属性集是某表 B的键,则称该属性集为 A的外键或 外码。 46 【正确答案】 3 47 【正确答案】 12l7 48 【正确答案】 09 49 【正确答案】 4 50 【正确答案】 20 0 51 【 正确答案】 i-1 52 【正确答案】 double avg(double a doubleb) 53 【正确答案】 137l5 54 【正确答案】 emoclew 55 【正确答案】 123456
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1