[计算机类试卷]国家二级(C语言)机试模拟试卷111及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷111及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷111及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 111及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)栈与队列都只能顺序存储 ( B)循环队列是队列的顺序存储结构 ( C)循环链表是循环队列的链式存储结构 ( D)栈是顺序存储结构而队列是链式存储结构 2 算法空间复杂度的度量方法是 ( )。 ( A)算法程序的长度 ( B)算法所处理的数据量 ( C)执行算法所需要的工作单元 ( D)执行算法所需要的存储空间 3 设有栈 S和队列 Q,初始状态均为空。首先依次将 A, B, C, D, E, F入栈 ,然后从栈中退出三个元素依次入队,再将 X, Y, Z入栈后,将栈中所有元素退出并依次入
2、队,最后将队列中所有元素退出,则退队元素的顺序为 ( )。 ( A) DEFXYZABC ( B) FEDZYXCBA ( C) FEDXYZCBA ( D) DEFZYXABC 4 某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的后序序列为 ( )。 ( A) EFGDCBA ( B) DCBEFGA ( C) BCDGFEA ( D) DCBGFEA 5 软件生命周期是指 ( )。 ( A)软 件产品从提出、实现、使用、维护到停止使用、退役的过程 ( B)软件的需求分析、设计与实现 ( C)软件的开发与管理 ( D)软件的实现和维护 6 通常软件测试实施的步骤
3、是 ( )。 ( A)集成测试、单元测试、确认测试 ( B)单元测试、集成测试、确认测试 ( C)确认测试、集成测试、单元测试 ( D)单元测试、确认测试、集成测试 7 下面不属于对象的主要特征的是 ( )。 ( A)惟一性 ( B)多态性 ( C)可复用性 ( D)封装性 8 数据库设计中,描述数据间内在语义联系得到 E-R图的过程属于 ( )。 ( A)逻辑设计阶段 ( B)需求分析阶段 ( C)概念设计阶段 ( D)物理设计阶段 9 在数据库系统中,用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是 ( )。 ( A)概念数据模型 ( B)逻辑数据模型 ( C)物理数据模型 (
4、D)关系数据模型 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)并 ( B)投影 ( C)交 ( D)选择 11 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是( )。 ( A)三种基本结构不可以嵌套使用 ( B)顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移 ( C)选择结构是根据不同的条件执行不同分支中的语句 ( D)循环结构是根据条件决定是否重复、重复执行多少次循环体语句 12 在 C语言中,以下选项中不能正确表示 101000之值的是 ( )。 ( A) 1 0E4 0 ( B) 1 E4 ( C)
5、 10E3 ( D) 1 0e4 13 以下选项中,合法的 C语言常量是 ( )。 ( A) 21 84 ( B) CPP ( C) 1 0 ( D) 2MB 14 有以下程序: #include main() int x=010, y=10; printf(“ d, d n“, +x, y-); 程序运行后的输出结果是 ( )。 ( A) 10, 9 ( B) 11, 10 ( C) 010, 9 ( D) 9, 10 15 若有定义: int a; float b; double c;,程序运行时输入: a=1, b=2, c=3,能把值 1输入给变量 a、值 2输入给变量 b、值 3输入
6、给变量 c的输入语句是( )。 ( A) scanf(“a= d, b= f, c= If“, &a, &b, &c); ( B) scanf(“ d f If“, &a, &b, &c); ( C) scanf(“a= d, b= If, c= If“, &a, &b, &c); ( D) scanf(“a= d, b= f, c= f“, &a, &b, &c); 16 有如下程序: #include main() int a=0, b=1; if(a+&b+) printf(“T“); else printf(“F“); printf(“a= d, b= d n“, a, b); 程序运
7、行后的输出结果是 ( )。 ( A) Ta=1, b=2 ( B) Fa=0, b=2 ( C) Fa=1, b=1 ( D) Ta=0, b=1 17 以下不是合法 C语言转义字符的是 ( )。 ( A) c ( B) a ( C) b ( D) r 18 有以下程序: #include main() char ch=B; while(ch E) printf(“ d“, ch-A); ch+: printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 123 ( B) ABC ( C) abe ( D) 012 19 以下能够实现计算 5!的程序段是 ( )。 ( A) in
8、t fac=1, k=0; dok+; fac*=k; while(k 5); ( B) int fac=0, k=1; dofac*=k; k+; while(k 5); ( C) int fac=1, k=1; dok+; fac*=k; while(k =5); ( D) int fac=1, k=0; dofac=k; k+; while(k 5); 20 有以下程序: #include main() int x=0x13: if(x=0x12)printf(“True“); printf(“False n“); 程序运行后的输出结果是 ( )。 ( A) True ( B) True
9、False ( C) False ( D) TrueFalseTrue 21 有以下程序段: char c1, c2, c3; scanf(“ c c c“, &c1, &c2, &c3);若要给 c1、 c2、 c3分别赋值字母 A、 B、 C,则以下对输入形式的描述正确的是 ( )。 ( A)字母 A、 B、 C之间可以用空格分隔 ( B)字母 A、 B、 C之间不能有分隔符 ( C)字母 A、 B、 C之间可以用回车符分隔 ( D)字母 A、 B、 C之间可以用 Tab键分隔 22 有以下程序: #include main() printf(“ d n“, NULL); 程序运行后的输出
10、结果是 ( )。 ( A) 0 ( B)变量无定义,输出不确定 ( C) 1 ( D) 1 23 以下关于函数的叙述中正确的是 ( )。 ( A)函数调用必须传递实参 ( B)函数必须要有形参 ( C)函数必须要有返回值 ( D)函数形参的类型与 返回值的类型无关 24 有以下程序: #include void fun(int a, int n) int i; for(i=0; i n; i+) if(i 3=0) ai-=n; else ai+=n; main() int c5=6, 7, 8, 9, 10, i; fun(c, 5); for(i=0; i 5; i+)printf(“ d
11、, “, ci); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 1, 12, 13, 4, 15, ( B) 10, 9, 8, 7, 6, ( C) 1, 7, 13, 9, 15, ( D) 10, 12, 8, 4, 6, 25 以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处。 #include main() int a10, i=0; while(i 10)scanf(“ d“, _); ( A) a+(i+) ( B) &ai+1 ( C) a+i ( D) &a(i+) 26 有以下程序: #include int*f(int*s
12、, int*t) if(*s *t) *s=*t: return s; main() int i=3, j=5, *P=&i, *q=&j, *r; r=f(p, q); printf(“ d, d, d, d, d n“, i, j, *p, *, *r); 程序的运行结果是 ( )。 ( A) 5, 5, 5, 5, 5 ( B) 3, 5, 5, 5, 5 ( C) 5, 3, 3, 3, 5 ( D) 3, 5, 3, 5, 5 27 有如下程序: #include #include main() printf(“ d n“, strlen(“0 t nA01 1 1“); 程序运行后
13、的输出结果是 ( )。 ( A) 8 ( B) 9 ( C) 7 ( D) 10 28 若有定义: char*ps=“aa“, “bb“, “cc“, “dd“;,则以下叙述正确的是 ( )。 ( A) *ps0是字符 a ( B) *ps0是字符串 “aa“ ( C) ps0是字符 a ( D) ps是字符串 “aa“ 29 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是 ( )。 ( A) char*str, name10; str=“Hello World“; ( B) char*str, name10; name=“Hello World“; ( C) char strl1
14、0=“prog c, str210; str2=str1; ( D) char head line; head line=“= = = = = = =“; 30 有如下程序: #include void get put() char ch; ch=getchar(); if(ch! = n)get put(); putchar(ch); main() get put(); 程序运行时,输入 ABCD,则输出结果是 ( )。 ( A) DCDC ( B) DCBA ( C) BABA ( D) ABCD 31 若有以下程序段: char str412: “aaa“, “bbbb“, “cccec
15、“, “dddddd“, *strp4; int i; for(i=0; i 4; i+)strpi=stri; 则以下错误引用字符串的选项是 (其中 0k 4)( )。 ( A) *strp ( B) strk ( C) strpk ( D) strp 32 有以下程序: #include main() int findmax(int, int, int), m; m=findmax(a, b, c); int findmax(int x, int y, int z) 则以下叙述正确的是 ( )。 ( A)在 main函数中声明了 findmax函数 ( B)在 main函数中定义了 fin
16、dmax函数 ( C)在 main函数中两次调用了 findmax函数 ( D)在 main函数内、外重复定义了 findmax函数 33 有如下程序: #include int sum(int*array, int len) if(len=0) return array0; else return array0+sum(array+1, len-1); main() int array5=1, 2, 3, 4, 5; int res=sum(array, 4); printf(“ d n“, res); 程序运行后的输出结果是 ( )。 ( A) 15 ( B) 10 ( C) 8 ( D)
17、 1 34 若有定义: typedef int*T: T a20; 则以下与上述定义中 a类型完全相同的是 ( )。 ( A) int*a20; ( B) int(*a)20; ( C) int a20; ( D) int*a20; 35 有以下程序: #include #include #include main() char*p1, *p2; p1=p2=(char*)malloc(sizeof(char)*10); strcpy(p1, “malloc); strcpy(p2, p1+1); printf(“ c c n“, p10, p20); 程序的运行结果是 ( )。 ( A) a
18、a ( B) mlt ( C) am ( D) mm 36 有如下定义: struct int num; char name10; struet int y; int m; int d; birth; s, *ps=&s; 以下对内嵌结构体成员的引用形式错误的是 ( )。 ( A) ps- birth y ( B) s birth y ( C) ps birth y ( D) (*ps) birth y 37 有以下程序; #include #define N 2 #define M N+1 #define MUN (M+1)*M 2 main() printf(“ d n“, MUN); 程
19、序运行后的输出结果是 ( )。 ( A) 8 ( B) 9 ( C) 5 ( D) 6 38 有如下程序: #include struet pair int first, second; ; struet pair get min max(int*array, int len) int i; struet pair res; res first=array0; res second=array0; for(i=1; i len; i+) if(arrayi res first) res first=arrayi; if(arrayi res second) res second=arrayi:
20、 return res; main() int array5=9, 1, 3, 4; struet pair min max=get_min max(array, 5) printf(“min= d, max= d n“, min max first, min max second); 程序运行后的输出结果是 ( )。 ( A) min=1, max=9 ( B) min=0, max=9 ( C) min=1, max=4 ( D) min=0, max=4 39 有以下程序: #include main() int c, d; c=13&5: d=10&5; printf(“ d, d n
21、“, c, d); 程序的运行结果是 ( )。 ( A) 5, 1 ( B) 1, 1 ( C) 18, 1 ( D) 13, 1 40 有以下程序段: FILE*fp; if(fp=fopen(“test txt“, “w“)=NULL) printf(“不能打开文件! “); exit(0); else printf(“成功打开文件! “); 若文件 test txt已存在,则以下叙述正确的是 ( )。 ( A)程序运行后,文件 test txt中的原有内容将全部消失 ( B)程序运行时,会因文件存在而出错 ( C)对文件 test txt进行写操作后,可以随机进行读取 ( D)对文件 t
22、est txt写入的内容总是被添加到文件尾部 二、程序填空题 41 下列给定程序的功能是调用 fun函数建立班级通信录。 通信录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为 myfile5 dat的二进制文件中。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 【试题源程序】 #include #include #define N 5 typedef struct int num; char name10; char tel10; STYPE; void check(
23、); *found* int fun(【 1】 *std) *found* 【 2】 *fp; int i; if(fp=fopen(“myfile5 dat“, “wb“)=NULL) return(0); printf(“ nOutput data to file! n“); for(i=0; i N; i+) *found* fwrite(&stdi, sizeof(STYPE), 1, 【 3】 ); fclose(fp); retum(1); main() STYPE s10=1, “aaaaa”, “111111”, 1, “bbbbb“, “222222“, 1, “c CCCC
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 111 答案 解析 DOC
