1、国家二级( C 语言)笔试模拟试卷 227 及答案与解析 1 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 2 对关系 S 和只进行集合运算,结果中既包含 S 中的所有元组也包含只中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)积运算 3 在数据管理技术的发展过程中 ,可实现数据共享的是 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)系统管理阶段 4
2、 数据库、数据库系统和数据库管理系统之间的关系是 ( A)数据库包括数据库系统和数据库管理系统 ( B)数据库系统包括数据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D)三者没有明显的包含关系 5 下列实体的联系中,属于多对多联系的是 ( )。 ( A)学生与课程 ( B)学校与校长 ( C)住院的病人与病床 ( D)职工与工资 6 结构化程序设计主要强调的是 ( A)程序 的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序易读性 7 软件工程的出现是由于 ( A)程序设计方法学的影响 ( B)软件产业化的需要 ( C)软件危机的出现 ( D)计算
3、机的发展 8 计算机辅助教育的英文缩写是 ( ) ( A) CAD ( B) CAM ( C) CAI ( D) CAT 9 若 a 是 float 型变量, b 是 unsigned 型变量,以下输入语句合法的是 ( ) ( A) scanf(“%6 2f%d“, static int a88; for(i=0;i #include main() char w10=“ABCD“,“EFGH“,“IJKL“,“MNOP“,k; for(k=1;k3;k+) printf(“%sn“, ( A) ABCD FGH KL ( B) ABC EFG IJ M ( C) EFG JK 0 ( D) F
4、GH KL 32 有以下程序 main ( ) char a,b,c,d; scanf (“%c, %c, %d, %d“ , printf(“%c,%c,%c,%cn“,a,b,c,d); 若运行时从键盘上输入: 6,5,65,66回车。则输出结果是 ( A) 6,5,A,B ( B) 6,5,65,66 ( C) 6,5,6,5 ( D) 6,5,6,6 33 程序中头文件 type1.h 的内容是 #define N 5#define M1 N*3 程序如下 :#define “type1.h“#define M2 N*2main () int i; i=M1+M2; printf(“%
5、dn“, i); ) 程序编译后运行的输出结果是 ( )。 ( A) 10 ( B) 20 ( C) 25 ( D) 30 34 设有以下语句: char str1=“string“,str28,*str3,*str4=“string; 则 _不是对库函数的正确调用。 ( A) strcpy(str1,“HELLO1“); ( B) strcpy(str2,“HELLO2“); ( C) strcpy(str3,“HELLO3“); ( D) strcpy(str4,“HELLO4“) 35 下面程序的输出结果是 _。 void prty(int *x) printf(“%dn“,+ *x);
6、 main() int a=25; prty( ( A) 23 ( B) 24 ( C) 25 ( D) 26 36 设有变量说明 int(*ptrm);其中的标识符 ptr 是 ( )。 ( A) m 个指向整型变量的指针 ( B)指向 m 个整型变量的函数指针 ( C)一个指向具有 m 个整型元素的一维数组的指针 ( D)具有 m 个指针元素的一维指数组,每个元素都只能指向整型变量 37 下面程序运行后的输出结果是 _。 fut(int * *s,int p23) *s=p11; main() int a23=1, 3, 5, 7, 9, 11, * p; p=(int*)malloc(s
7、izeof(int); fut( for(k=0; sk; k+) switch(sk) default: v4+; case1: v1+; case3: v3+; case2: v2+; printf(“v1=%d,v2=%d,v3=%d,v4=%dn“,v1,v2,v3,v4); ( A) v1=4,v2=2,v3=1,v4=1 ( B) v1=4,v2=9,v3=3,v4=1 ( C) v1=5,v2=8,v3=6,v4=1 ( D) v1=8,v2=8,v3=8, v4=8 39 以下程序的输出结果是 ( ) main ( ) int i, x 3 3 l, 2, 3, 4, 5, 6
8、,7, 8, 9; for (i 0; i 3; i+ +)printf (“%d, “, xi2-i); ( A) 1, 5, 9 ( B) 1, 4, 7 ( C) 3, 5, 7 ( D) 3, 6, 9 40 下列函数值的类型是 ( )。 fun(double x) float y; y=3*x-4; return y; ( A) int ( B)不确定 ( C) void ( D) float 41 若有结构体定义: struct stuint num; char sex; int age; a1,a2; 则下列语句中错误的是 ( )。 ( A) printf(“%d, %c, %d
9、“, a1); ( B) a2.age=a1.age; ( C) a1.age+; ( D) a1.num=5; 42 注释一般分为序言性注释和 _注释。 43 数据字典是各类数据描述 的集合,它通常包括五个部分,即数据项、数据结构、数据流、【 】和处理过程。 44 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【 】。 45 Windows 的空口分为两类,一类是应用程序窗口,另一类是【 】窗口。 46 结构化分析方法是面向 _进行分析的方法。 47 函数 my_cmp()的功能是比较字符串 s 和 t 的大小,当 s 等于 t 时返回 0,否则返
10、回 s 和t 的第一个不同字符的 ASCII 码差值,即 s t 时返回正值,当 s t 时返回负值。请填空 。 my_cmp(char *s, char *t) while(*s=*t) if(*s=0)return 0; +s; +t; return 【 】; 47 若有定义: int k;,以下程序段的输出结果是 _。 for(k=2; k 6; k+, k+)printf(“#%d“,k); 48 程序测试分为静态测试和动态测试。其中 ( )是指不执行程序,而只是对程序文本进行检查,通过阅读 和讨论,分析和发现程序中的错误。 49 以下程序的输出结果是 _。 main( ) int y
11、=9; for(;y 0;y-) if(y%3=0) printf(“%d“,-y);continue; 50 下列程序的输出结果是 _。 main() int i=0,a=0; while(i 20) for(;) if(i%10) =0) break; else i-; i+=11; a+=i; printf(“%dn“,A) ; 51 若变量 a,b 已定义为 int 类型并赋值 21 和 55,要求用 printf 函数以 a=21,b=55 的形式输出,请写出完整的的输出语句 ( )。 52 若有以下程序 main ( ) int a4 4=1,2;-3,-4,0,-12,-13,1
12、4 , 21,23,0,-24,-31,32,-33;0; int i,j,s=0; for(i=0;i 4;i+) for(j=0;j 4;j+) if(aij 0) continue; if(aij=0) break; s+=aij; printf(“%dn“,s); 执行后输出结果是 _。 53 有以下程序: main() int t=1,i=5; for(; i =0;i-) t*=i; printf(“%dn“,t); 执行后输出结果是【 】。 54 以下函数用来求出两整数之和,并通过形参将结果传回。请填空。 void func(int x, int y,【 】 z) * z x+y; 55 下列循环的循环次数是 _。 int k=2; while (k=0) printf(“%d“, k); k-; printf(“n“); 56 下面程序的功能是调用 sub 函数计算数组 a 中字符串的长度,请填空。 sub(char s) int n; for(n=0;【 】 n+); return 【 】; main() char*a;int k; gets(a); 【 】 printf(“%d“,k); 国家二级( C 语言)笔试模拟试卷 227 答案与解析