1、国家二级( C语言)笔试模拟试卷 161及答案与解析 1 为了避免流程图在描述程序逻辑时的灵活性 ,提出了用方框图来代替传统的程序流程图 ,通常也把这种图称为 ( A) PAD图 ( B) N-S图 ( C)结构图 ( D)数据流图 2 结构化程序设计主要强调的是 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序易读性 3 为了使模块尽可能独立 ,要求 ( A)模块的内聚程度要尽量高 ,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高 ,且各模块间的耦合程度要尽量 弱 ( C)模块的内聚程度要尽量低 ,且各模块间的耦合程度要尽量弱 ( D)模块的内
2、聚程度要尽量低 ,且各模块间的耦合程度要尽量强 4 需求分析阶段的任务是确定 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 5 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 6 对长度为 n的线性表排序 ,在最坏情况下 ,比较次数不是 n(n-1)/2的排序方法是 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 7 如果进栈序列为 e1,e2,e3,e4,则可能的出栈序列是 ( A) e3,e1,e4,e2 ( B
3、) e2,e4,e3,e1 ( C) e3,e4,e1,e2 ( D)任意顺序 8 将 E-R图转换到关系模式时 ,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 9 有三个关系 R、 S和 T如下 : 由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D) 交 10 下列有关数据库的描述 ,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时 ,数据的存储结构不变 ( C)关系中的每一列称为元组 ,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并
4、非该关系的关键字 ,但它是另一个关系的关键字 ,则称其为本关系的外关键字 11 为了避免流程图在描述程序逻辑时的灵活性 ,提出了用方框图来代替传统的程序流程图 ,通常也把这种图称为 ( A) PAD图 ( B) N-S图 ( C)结构图 ( D)数据流图 12 结构化程序设计主要强调的是 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序易读性 13 为了使模块尽可能独立 ,要求 ( A)模块的内聚程度要尽量高 ,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高 ,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低 ,且各模块间的耦合程度要
5、尽量弱 ( D)模块的内聚程度要尽量低 ,且各模块间的耦合程度要尽量强 14 需求分析阶段的任务是确定 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 15 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 16 对长度为 n的线性表排序 ,在最坏情况下 ,比较次数不是 n(n-1)/2的排序方法是 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 17 如果进栈序列为 e1,e2,e3,e4,则可能的出栈序列是 ( A)
6、 e3,e1,e4,e2 ( B) e2,e4,e3,e1 ( C) e3,e4,e1,e2 ( D)任意顺序 18 将 E-R图转换到关系模式时 ,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 19 有三个关系 R、 S和 T如下 : 由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 20 下列有关数据库的描述 ,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时 ,数据的存储结构不变 ( C)关系中的每一列称为元组 ,一个元组就是一个字段 (
7、D) 如果一个关系中的属性或属性组并非该关系的关键字 ,但它是另一个关系的关键字 ,则称其为本关系的外关键字 21 以下不正确的叙述是 ( A)在 C程序中,逗号运算符的优先级最低 ( B)在 C程序中, APH和 aph是两个不同的变量 ( C)若 a和 b类型相同,在计算了赋值表达式 a=b后 b中的值将放入 a中,而 b中的值不变 ( D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 22 请选出可用作 C语言用户标识符的是 ( A) void,define,WORD ( B) a3_b3,_123,IF ( C) FOR,-abc,Case ( D)
8、2a,Do,Sizeof 23 以下选项中,不能作为合法常量的是 ( A) 1.234e04 ( B) 1.234e0.4 ( C) 1.234e+4 ( D) 1.234e0 24 在 C语言中 ,运算对象必须是整型数的运算符是 ( A) % ( B) ( C) %和 ( D) * 25 若变量均已正确定义并赋值 ,以下合法的 C语言赋值语句是 ( A) x=y=5; ( B) x=n%2.5; ( C) x+n=i; ( D) x=5=4+1; 26 有以下程序段 char ch; int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k
9、=%d n“,k); 已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是 ( A)因变量类型与格式描述符的类型不匹配输出无定值 ( B)输出项与格式描述符个数不符 ,输出为零值或不定值 ( C) a,97,12k=12 ( D) a,97,k=12 27 已知字母 A的 ASCII代码值为 65,若变量 kk为 char型 ,以下不能正确判 断出 kk中的值为大写字母的表达式是 ( A) kk=A if(n=0|n=1) *s=1; else fun(n-1, fun(n-2, *s=f1+f2; void main() int x; fun(6, printf(“n%d“,
10、x); ( A) 7 ( B) 13 ( C) 9 ( D) 10 44 主程序调用 findmax函数求出数组中最大元素在数组中的下标 ,括号中需填写的内容是 #include findmax(int*s,int t,int *k) int p; for(p=0, *k=p; ps*k)( ); main() int a10,i,k; for(i=0; i main() static char a=“ Languagef“ ,b=“programe“; char *p1,*p2; int k; p1=a; p2=b; for(k=0; k void delch(char *s) int i,
11、j; char *a; a=s; for(i=0,j=0;ai!=n;i+) if(ai=0 printf(“ %dn“,strlen(s); ( A) 7 ( B) 8 ( C) 9 ( D) 10 51 下述程序的输出结果是 #include void main() int a5=2,4,6,8,10; int *p=a,*q= printf(“%d,“,*(p+); printf(“%d“,*q); ( A) 4,4 ( B) 2,2 ( C) 4,5 ( D) 2,4 52 设有定义 int n=0,*p=,则下列选项中正确的赋值语句是 ( A) p=1; ( B) *q=2; ( C
12、) q=p; ( D) *p=5; 53 以下程序运行时若要正确输出函数的入口地址和输入数的绝对值 ,应在程序空缺处填入的正确选项是 abs(int x) if(x=0)return x; else return -x; main() int y,z,(*p)(int x)=abs; scanf(“ %d“ , z=(*p)(y); ; ( A) printf(“ %d %dn“, printf(“%4.1fn“,S(a+b); ( A) 49.5 ( B) 9.5 ( C) 22 ( D) 45 55 下面程序段的输出为 #include “stdio.h“ main() printf(“%
13、dn“,12num ( B) p+ ( C) (*p).num ( D) P= ( B) fp=fopen(“Demo“,“ab+“); ( C) fp=fopen(“Demo“,“w+“); ( D) fp=fopen(“Demo“,“r+“); 61 执行下面的程序后 ,a的值为 main() int a,b; for(a=1,b=1; a int fun(int n,int *s) int f1,f2; if(n=0|n=1) *s=1; else fun(n-1, fun(n-2, *s=f1+f2; void main() int x; fun(6, printf(“n%d“,x);
14、 ( A) 7 ( B) 13 ( C) 9 ( D) 10 64 主程序调用 findmax函数求出数组中最大元素在数组中的下标 ,括号中需填写的内容是 #include findmax(int*s,int t,int *k) int p; for(p=0, *k=p; ps*k)( ); main() int a10,i,k; for(i=0; i main() static char a=“ Languagef“ ,b=“programe“; char *p1,*p2; int k; p1=a; p2=b; for(k=0; k void delch(char *s) int i,j;
15、char *a; a=s; for(i=0,j=0;ai!=n;i+) if(ai=0 printf(“ %dn“,strlen(s); ( A) 7 ( B) 8 ( C) 9 ( D) 10 71 下述程序的输出结果是 #include void main() int a5=2,4,6,8,10; int *p=a,*q= printf(“%d,“,*(p+); printf(“%d“,*q); ( A) 4,4 ( B) 2,2 ( C) 4,5 ( D) 2,4 72 设有定义 int n=0,*p=,则下列选项中正确的赋值语句是 ( A) p=1; ( B) *q=2; ( C) q
16、=p; ( D) *p=5; 73 以下程序运行时若要正确输出函数的入口地址和输入数的绝对值 ,应在程序空缺处填入的正确选项是 abs(int x) if(x=0)return x; else return -x; main() int y,z,(*p)(int x)=abs; scanf(“ %d“ , z=(*p)(y); ; ( A) printf(“ %d %dn“, printf(“%4.1fn“,S(a+b); ( A) 49.5 ( B) 9.5 ( C) 22 ( D) 45 75 下面程序段的输出为 #include “stdio.h“ main() printf(“%dn“
17、,12num ( B) p+ ( C) (*p).num ( D) P= ( B) fp=fopen(“Demo“,“ab+“); ( C) fp=fopen(“Demo“,“w+“); ( D) fp=fopen(“Demo“,“r+“); 81 排序是计算机程序设计中的一种重要操作 ,常见的排序方法有插入排序、【 】和选择排序等。 82 在面向对象方法中 ,属性与操作相似的一 组对象称为【 】。 83 一个项目具有一个项目主管 ,一个项目主管可管理多个项目 ,则实体 “项目主管 “与实体 “项目 “的联系属于【 】的联系。 84 程序测试分为静态分析和动态测试。其中【 】是指不执行程序 ,
18、而只是对程序文本进行检查 ,通过阅读和讨论 ,分析和发现程序中的错误。 85 当数据的物理结构 (存储结构 )改变时 ,不影响数据库的逻辑结构 ,从而不致引起应用程序的变化 ,这是指数据的【 】。 86 排序是计算机程序设计中的一种重要操作 ,常见的排序方法有插入排序、【 】和选择排序等。 87 在面向对象方法中 ,属性与操作相似的一组对象称为【 】。 88 一个项目具有一个项目主管 ,一个项目主管可管理多个项目 ,则实体 “项目主管 “与实体 “项目 “的联系属于【 】的联系。 89 程序测试分为静态分析和动态测试。其中【 】是指不执行程序 ,而只是对程序文本进行检查 ,通过阅读和讨论 ,分
19、析和发现程序中的错误。 90 当数据的物理结构 (存储结构 )改变时 ,不影响数据库的逻辑结构 ,从而不致引起应用程序的变化 ,这是指数据的【 】。 91 以下程序的功能是 :将输入的正整数按逆序输出。例如 :若输入 135则输出 531。请填空。 #include main() int n,s; printf(“Enter a number : “); scanf(“%d“, printf(“Output: “); do s=n%10; printf(“%d“,s);【 】 ; while(n!=0); printf(“n“); 92 以下程序的运行结果是【 】。 #include main
20、() int fun(); fun(); fun () static int a3=0,1,2; int i; for(i=0;ix)?x:d; printf(“%dn“,x); 94 以下定义的结构体类型拟包含两个成员 ,其中成员变量 info用来存入整形数据 ;成员变量 link是指向自身结构体的指针 ,请将定义补充完整。 struct node int info; 【 】 link; ; 95 以下程序的功能是 :将输入的正整数按逆序输出。例如 :若输入 135则输出 531。请填空。 #include main() int n,s; printf(“Enter a number : “); scanf(“%d“, printf(“Output: “); do s=n%10; printf(“%d“,s);【 】 ; while(n!=0); printf(“n“);