[计算机类试卷]国家二级(C语言)笔试模拟试卷21及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷21及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷21及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 21及答案与解析 1 下列叙述中正确的是 ( A)程序设计就是编制程序 ( B)程序的测试必须由程序员自己去完成 ( C)程序经调试改错后还应进行再测试 ( D)程序经调试改错后不必进行再测试 2 设有下列二叉树: 对此二叉树后序遍历的结果为 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 3 结构化程序设计的一种基本方法是 ( A)筛选法 ( B)递归法 ( C)归纳法 ( D)逐步求精法 4 在面向对象方法中,一个对象请 求另一对象为其服务的方式是通过发送 ( A)调用语句 ( B)命令 ( C)口令 ( D
2、)消息 5 需求分析最终结果是产生 ( A)项目开发计划 ( B)需求规格说明书 ( C)设计说明书 ( D)可行性分析报告 6 下列叙述中正确的是 ( A)一个逻辑数据结构只能有一种存储结构 ( B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 7 下列描述中正确的是 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D
3、)软件工程只是解决软件开发中的技术问题 8 一个算法应该具有 “确定性 ”等 5个特性,下面对另外 4个特性的描述中错误的是 ( A)有零个或多个输入 ( B)有零个或多个输出 ( C)有穷性 ( D)可行性 9 结构化程序由三种基本结构组成,三种基本的结构组成的算法 ( A)可以完成任何复杂的任务 ( B)只能完成部分复 杂的任务 ( C)只能完成符合结构化的任务 ( D)只能完成些简单的仟务 10 在一个 C语言程序中 ( A) main函数必须出现在所有函数之前 ( B) main函数可以在任何地方出现 ( C) main函数必须出现在所有函数之后 ( D) main函数必须出现在固定位
4、置 11 以下程序输出的结果是 #include stdio h main() int i=010, j=10; printf(“%d, %dn“, +i, j-); ( A) 11, 10 ( B) 9, 10 ( C) 010, 9 ( D) 10, 9 12 已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量 101是 ( A)字符 A ( B)字符 a ( C)字符 e ( D)非法的常量 13 下列关于 C语言用户标识符的叙述中正确的是 ( A)用户标识符中可以出现下划线和中划线 (减号 ) ( B)用户标识符中不可以出现中划线
5、,但可以出现下划线 ( C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 ( D)用户标识符中可以出现下划线和数字 ,它们都可以放在用户标识符的开头 14 若有以下程序段 (n所赋的是八进制数 ) int m=32767, n=032767; printf(“%d, %On“, m, n); 执行后输出结果是 ( A) 32767, 32767 ( B) 32767, 032767 ( C) 32767, 77777 ( D) 32767, 077777 15 有以下程序 main() char a=a, b; printf(“%c, “, +A) ; printf(“%cn“。
6、b=a+); 程序运行后的输出结果是 ( A) b, b ( B) b, c ( C) a, b ( D) a,c 16 以下程序段的输出结果是 int a=1234; printf(“%2dn“, A) ; ( A) 12 ( B) 34 ( C) 1234 ( D)提示出错、无结果 17 有以下程序 main() int a=666, b=888; printf(“%dn“, a, B) ; 程序运行后的输出结果是 ( A)错误信息 ( B) 666 ( C) 888 ( D) 666,888 18 若有以下程序: main() int k=2, i=2, m; m=(k+=i*=k);
7、printf(“%d, %dn“, m, i); 执行后的输出结果是 ( A) 8, 6 ( B) 8, 3 ( C) 6, 4 ( D) 7, 4 19 在 16位 C编译系统上,若定义 long a;,则能给 a赋 40000的正确语句是 ( A) a=20000+20000; ( B) a=4000*10; ( C) a=30000+10000; ( D) a=4000L*1OL; 20 有以下程序 main() int a=5, b=4, c=3, d=2; if(a b C) printf(“%dn“, D) ; else if(c-1 =D) =1) printf(“%dn“, d
8、+1); else printf(“%dn, d+2); 执行后输出的结果是 ( A) 2 ( B) 3 ( C) 4 ( D)编译时有错,无结果 21 以下叙述中正确的是 ( A)用 C 程序实现的算法必须要有输入和输出操作 ( B)用 C 程序实现的算法可以没有输出但必须要有输入 ( C)用 C 程序实现的算法可以没有输入但必须要有输出 ( D)用 C 程序实现的算法可以既没有输入出没有输出 22 有以下程序 main () int i=0,s=0; do if(i%2) i+;continue; i+; s+=i; while (i 7); printf ( “%dn“ , s ); 执
9、行后输出的结果是 ( A) 16 ( B) 12 ( C) 28 ( D) 21 23 已定义 ch为字符型变量,以下赋值语句中错误的是 ( A) ch=; ( B) ch=62+3; ( C) ch=NULL; ( D) ch=xaa; 24 有以下程序 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 25 以下
10、能正确定义二维数给的是 ( A) int a3; ( B) int a3=2*3; ( C) int a3=; ( D) int a23=1,2,3,4; 26 以下 程序输出结果是 #include stdio.h main ( ) int i=0,a=0; while ( i 2 0 ) for(;) if (i%10) =0) break; else i-; i+=11; a+=i; print f ( “%dn“ , a); ( A) 21 ( B) 32 ( C) 33 ( D) 11 27 若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是 ( A) in
11、t *i = NULL; scanf(“%d“, i); ( B) float *f = NULL; *f = 10.5; ( C) char t = m, *c = *c = ( D) long *L; L = 0; 28 有以下程序 #include stdio .h main () printf(“%dn“, NULL); ( A) 0 ( B) 1 ( C) -1 ( D) NULL没定义,出错 29 有以下程序 main () char *s=“one“,“two“,“three“,*P; p=s 1; printf ( “%c, %sn“, *(p+1) ,s0 ); 执行后输出结
12、果是 ( A) n,two ( B) t,one ( C) w,one ( D) o,two 30 以下不能正确定义二维数组的选项是 ( A) int a22 = 1, 2); ( B) int a2 = 1, 2, 3, 4; ( C) int a22 = 1, 2, 3; ( D) int a2 = 1, 2, 3, 4); 31 设有定义 : int a=2,b=3,c=4;, 则以下选项中值为 0的表达式是 ( A) (!a=1) p0=a1; 则*(p0+1)所代表的数组元素是 ( A) a01 ( B) a10 ( C) a11 ( D) al2 33 有以下程序 main ()
13、int aa44=1,2,3,4 5,6,7,8,3,9.10,2,4,2,9,6; int i. s=0 for(i=0;i 4;i+) s+=aai 1; printf ( “%dn“, s); 程序运行后的输出结果是 ( A) 11 ( B) 19 ( C) 13 ( D) 20 34 有以下程序 int f1int x.int y) return x y?x:y; int f2(int x, int y) returrnx y?y:x; main ( ) int a=4,b=3, c=5, d=2, e, f, g; e = f2(f1(a,b, f1(c,d); f=f1(f2(a,
14、b), f2(c,d); g = a+b+c+d-e-f; printf(“%d,%d,%dn“,c,f,g); 程序运行后的输出结果是 ( A) 4,3,7 ( B) 3,4,7 ( C) 5,2,7 ( D) 2,5,7 35 设变量已正确定义,则以下能正确计算 f=n!的程序段 是 ( A) f=0; for(i=1; i n; i+)f*=i; ( B) f=1; for(i=1; i n; i+)f*=i; ( C) f=1; for (i=n; i 1; i+) f*=i; ( D) f=1; for (i=n; i =2; i-)f*=i; 36 以下叙述十正确的是 ( A)全局
15、变量的作用域一定比局部变量的作用域范围大 ( B)静态 (static)类别变量的生存期贯穿于整个程序的运行期间 ( C)函数的形参都属于全局变量 ( D)未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值 37 设有以下语句: typedef struct S int g; char h; T; 则下面叙述中正确的是 ( A)可用 S定义结构体变量 ( B)可以用 T定义结构体变量 ( C) S是 struct类型的变量 ( D) T是 structs类型的变量 38 以下叙述中错误的是 ( A)对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出 (
16、 B)数组名代表的是数组所占存储区的首地址,其值不可改变 ( C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出 “下标越界 ”的出错信息 ( D)可以通过赋初值的方式确定数组元素的个数 39 有以下程序 int fa(int x) return x*x; int fb(int x) return x*x*x; int f(int (*f1)(),int (*f2)(),int x) return f2(x)-f1(x); main() int i; i-f(fa, fb,2); printf(“%d n“,i); 程序运行后的输出结果是 ( A) 4 ( B) 1 ( C)
17、4 ( D) 8 40 有以下程序 struct s int x,y; data2=10,100,20,200; main() struct s *p=data; printf(“%dn“,+(p- x); 程序运行后的输出结果是 ( A) 10 ( B) 11 ( C) 20 ( D) 21 41 有以下程序 void ss(char *s,char t) while *s) if (*s=t) *s-t-a +A; S+; main () char strl 100 =“ abcddfefdbd“ , c= d; ss(str1,c); printf (“%sn“ ,str1); 程序运行
18、后的输出结果是 ( A) ABCDDEFEDBD ( B) abcDDfefDbD ( C) abcAAfefAbA ( D) Abcddfefdbd 42 有以下程序 main(int arge,char *argv ) int n,i=0; while(argv1 i !=0) n-fun(); i+; printf ( “%dn“ , n*argc); int fun ( ) static int s=0; s+=1; return s; 假设程序经编译、连接后生成可执行文件 exam.exe,若键入以下命令 exam 123 回车 ( A) 6 ( B) 8 ( C) 3 ( D) 4
19、 43 已定义以下函数 : fun (char* p2, char* p1) while (*p2=*p1) != 0) p1+;p2+; ( A)将 p1所指字符串复制 到 p2所指内存空间 ( B)将 p1所指字符串的地址赋给指针 p2 ( C)对 p1和 p2两个指针所指字符串进行比较 ( D)检查 p1和 p2两个指针所指字符串中是否有 0 44 有以下程序 main ( ) int x = 1, 3, 5, 7, 2, 4, 6, 0, i, j, k; for (i = 0; i 3; i+) for(j = 2; j = i; j-) if (xj+1 xj) k= xj; xj
20、 = xj+1; xj+1 = k; for (i = 0; i 3; i+) for j = 4; j 7-i; j+) if xj xj+1) k = xj; xj = xj+l; xj+l = k; for (i = 0; i 8; i+) printf(“%d“, xi); printf(“n); 程序运行后的输出结果是 ( A) 75310246 ( B) 1234567 ( C) 76310462 ( D) 13570246 45 设有如下定义 struct ss char name10; int age;, char sex; std3,* p=std; 下面各输入语句中错误的是
21、 ( A) scanf(“%d“, ( B) scanf(“%s“, ( C) sean(“%c“, ( D) scanf(“%c“, 46 有以下结构体说明和变量定义,如图所示,指针 p、 q、 r分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; *p, *q, *r; 现要将 q和 r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序是 ( A) r- next=q; q- next=r- next; p- next=r; ( B) q- next=r- next; p- next=r; r- next=q; (
22、 C) p- next=r; q- next=r- next; r- next=q; ( D) q- next=r- next; r- next=q; p- next=r; 47 以下程序中函数 f的功能是将 n个字符 串按由大到小的顺序进行排序。 #include string.h void f(char p10, int n) char t20; int i,j; for(i=0;in-1;i+) for(j=i+l;j n;j+) if(strcmp (pi,pj) 0) strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t); main() char plO-“
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 21 答案 解析 DOC
