[计算机类试卷]国家二级(C语言)机试模拟试卷52及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷52及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷52及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 52 及答案与解析 一、选择题 1 面向对象方法中,实现对象的数据和操作结合于统一体中的是 ( A)结合 ( B)封装 ( C)隐藏 ( D)抽象 2 在进行逻辑设计时,将 E-R图中实体之间联系转换为关系数据库的 ( A)关系 ( B)元组 ( C)属性 ( D)属性的值域 3 线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有 ( A)节省存储空间 ( B)插入与删除运算效率高 ( C)便于查找 ( D)排序时减少元素的比较次数 4 深度为的完全二叉树中共有 125个结点,则该完全二叉树中的叶子结点数为 ( A) 62 ( B) 63 ( C)
2、64 ( D) 65 5 下列叙述中正确的是 ( A)所谓有序表是指在顺序存储空间内连续存放的元素序列 ( B)有序表只能顺序存储在连续的存储空间内 ( C)有序表可以用链接存储方式存储在不连续的存储空间内 ( D)任何存储方式的有序表均能采用二分法进行查找 6 设二叉树如下: 则后序序列为 ( A) ABDEGCFH ( B) DBGEAFHC ( C) DGEBHFCA ( D) ABCDEFGH 7 计算机软件包括 ( A)算法和数据 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 8 下面描述中不属于软件需求分析阶段任务的是 ( A)撰写软件需求规格说明书 ( B
3、)软件的总体结构设计 ( C)软件的需求分析 ( D)软件的需求评审 9 当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的 ( A)逻辑独立性 ( B)物理独立性 ( C)应用独立性 ( D)空间独立性 10 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系T的操作是 ( A)并 ( B)投影 ( C)交 ( D)选择 11 以下叙述正确的是 ( A) C编译程序把文件后缀为 .c的源程序文件编译成文件后缀为 .obj的二进制文件 ( B) C编译程序把文件后缀为 .c的源程序文件编译成文件后缀为 .exe的可执行文件 ( C) C编译程序把文件后缀为 .obj的二
4、进制文件编译成文件后缀为 .exe的可执行文件 ( D)链接程序把文件后缀为 .c的源程序文件链接成文件后缀为 .exe的可执行文件 12 以下叙述正 确的是 ( A)循环结构、选择结构、顺序结构都是结构化程序的基本结构 ( B)计算机可以直接执行 C语言程序,不需要做任何转换 ( C)过于复杂的算法不能使用 N S流程图描述 ( D)只有不超过 20步操作步骤的算法才是简单算法 13 有如下程序 #include stdio.h main( ) int x = 072; printf(“X=%d.n“, x+1); 程序运行后的输出结果是 ( A) X=115 ( B) X=73 ( C)
5、X=59. ( D) X=72. 14 下面叙述正确的是 ( A)任何复杂任务都可以分解成简单子任务 ( B) C语言程序的所有函数只能处于同一个源文件中 WEr ( C)包含全部三种基本结构的程序才是结构化程序 ( D) C语言程序可以定义多个不同内容的 main函数 15 以下叙述正确的是 ( A) C程序总是以 main()作为程序执行的起始行 ( B) main()函数若不带参数,其后面的一对圆括号可省略 ( C)函数体内的定义语句和可执行语句允许任意穿插出现 ( D) C语言中的语句之间必须用分号作为分隔符 16 有以下程序 #include stdio.h main( ) char
6、 c; for(; (c=getchar() != #; ) putchar(+c); 执行时如输入为: abcdefg#回车 , 则输出结果是 ( A) abcdefg ( B) bcdefgh$ ( C) bcdefgh$ ( D) bcdefgh 17 有以下程序 #include stdio.h main( ) int a=1, b=0; for(; a 5; a+) if (a%2 = 0) break; continue; b += a; printf(“%d n“, b); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 10 ( D) 4 18 有以下程序 #in
7、clude stdio.h main( ) int x = 0x13; if (x = 0x12) printf(“True“); printf(“Falsen“); 程序运行后的输出结果是 ( A) True ( B) TrueFalse ( C) False ( D) TrueFalseTrue 19 为了避免在嵌套的 if-else语句中产生二义性, C语言规定与 else子句配对是 ( A)与其在同一行上的 if子句 ( B)在其之后最近的不带 else的 if子句 ( C)与其缩排位置相同的 if子句 ( D)在其之前最近的不带 else的同层 if子句 20 有以下程序 #incl
8、ude stdio.h main( ) int i,a; for (i=0; i =10; i+) a=i; printf(“%d,%dn“, i, a); 程序的运行结果是 ( A) 11,10 ( B) 10,10 ( C) 10,11 ( D) 11,11 21 有以下程序 #include stdio.h void fun(int a , int n) int i=0; for (i=0; i n; i+) if (i % 2 = 0) ai += n; else ai -= n; main( ) int c5 = 5,4,3,2,1, i; fun(c, 5); for (i=0;i
9、 5; i+) printf(“%d,“, ci); printf(“n“); 程序运行后的输出结果是 ( A) 10,-1,8,-3,6, ( B) 5,4,3,2,1, ( C) 10,2,8,4,6, ( D) 5,-1,3,-3,1, 22 有以下程序 #include stdio.h #define N 4 void fun(int aN) int i; for(i=0; i N; i+) a0i = aN-1N-1-i; main( ) int xNN= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12, 13,14,15,16, i; fun(x); for
10、(i=0; i N; i+) printf(“%d,“, xii); printf(“n“); 程序运行后的输出结果是 ( A) 16,6,11,16, ( B) 1,6,11,16, ( C) 4,7,10,13, ( D) 17,17,17,17, 23 有如下程序 #include stdio.h int convert(int* data) return (*data) +; main( ) int data = 56; convert( printf(“%d,“, data); data = convert( printf(“%d,n“, data); 程序运行后的输出结果是 ( A
11、) 56,57, ( B) 57,58, ( C) 57,57, ( D) 55,57, 24 设有如下程序段 int a1 = 0; int b = 9; char c3 = “A“, “B“; char d = “12“; 以下叙述正确的是 ( A) a, b的定义合法, c, d的定义不合法 ( B) a,b,c,d的定义都是合法的 ( C) a,b,c的定义是合法的, d的定义不合法 ( D)只有 a的定义是合法的 25 设有定义: int x=2,*p=float y=3.0; char z=c;,则立即进行以下运算有安全隐患的是 ( A) p+; ( B) x+; ( C) y+;
12、 ( D) z+; 26 有以下程序 #include stdio.h double fun(double a) double x; x = a - (int)a; return x; main( ) double a = 3.1415; printf(“%fn“, fun(a); 程序的运行结果是 ( A) 3.000000 ( B) 3.1415 ( C) 0.1415 ( D) 0 27 有以下程序 #include stdio.h #include string.h char *a = “you“; char *b = “Welcome you to Beijing!“; main(
13、) char *p; p = b; while (*p != *a) p+; p += strlen(a) + 1; printf(“%sn“, p); 程序运行后的输出结果是 ( A) Beijing! ( B) you to Beijing! ( C) Welcome you to Beijing! ( D) to Beijing! 28 有如下程序 #include stdio.h #include string.h main( ) printf(“%dn“, strlen(“0tnA0111“); 程序运行后的输出结果是 ( A) 8 ( B) 9 ( C) 7 ( D) 10 29
14、有如下程序 #include stdio.h int sum(int data) static int init = 1; return init += data; main( ) int i; for (i=1; i =1; i+) printf(“%d,“, sum(i); printf(“n“); 程序运行后的输出结果是 ( A) 2, ( B) 2,3, ( C) 3, ( D) 1, 30 有以下程序 #include stdio.h main( ) char s1 = “programe“, s2 = “Language“; char *p1 = s1, *p2 = s2; int
15、 k; for (k=0; k 8; k+) if (*(p1+k) = *(p2+k) printf(“%sn“,(p1+k); 程序的运行结果是 ( A) grame ame e e ( B) g a e ( C) programe ( D)无输出字符 31 以下针对全局变量的叙述错误的是 ( A)全局变量的作用域是从定义位置开始至源文件结束 ( B)全局变量是在函数外部任意位置上定义的变量 ( C)用 extern说明符可以限制全局变量的作用域 ( D)全局变量的生存期贯穿于整个程序的运行期间 32 有以下程序 #include stdio.h #include string.h typ
16、edef struct stu char name10; char gender; int score; STU; void f(STU *c) strcpy(c- name, “Qian“); c- gender = f; c- score = 350; main( ) STU a = “Zhao“, m, 290, b; b = a; f( printf(“%s,%c,%d,“, a.name, a.gender, a.score); printf(“%s,%c,%dn“, b.name, b.gender, b.score); 程序运行后的输出结果是 ( A) Zhao,m,290,Qi
17、an,f,350 ( B) Zhao,m,290,Qian,m,290 ( C) Zhao,m,290,Zhao,m,290 ( D) Zhao,m,290,Qian,m,350 33 下面关于编译预处理的命令行,正确的是 ( A) #define PAI 3.14 ( B) #Define Eps 0.00001 ( C) #DEFINE FALSE 0 ( D) #define int INT 34 有以下程序 #include stdio.h #define D(x) 2*x+3 main( ) int i = 1, j = 2; printf(“%dn“, D(i+j); 程序运行后的
18、输出结果是 ( A) 7 ( B) 6 ( C) 9 ( D) 2 35 有以下程序 #include stdio.h #include string.h struct S char name10; ; void change(struct S *data, int value) strcpy(data- name, “#“); value = 6; main( ) struct S input; int num = 3; strcpy(input.name, “OK“); change( printf(“%s,%dn“, input.name, num); 程序运行后的输出结果是 ( A)
19、OK,6 ( B) #,6 ( C) OK,3 ( D) #,3 36 有如下定义 struct st char name12; int age; char sex; std10,*p=std; 以下 语句错误的是 ( A) scanf(“%d“,p- age); ( B) scanf(“%s“,std0.name); ( C) scanf(“%d“, 37 有以下程序 #include stdio.h #include stdlib.h void fun(int *s, int x23) *s=*(x1+1); main() int a23 = 1,2,3,4,5,6, *p; p = (i
20、nt*)malloc(sizeof(int); fun( printf(“%dn“,*p); 程序的运行结果是 ( A) 6 ( B) 2 ( C) 5 ( D) 3 38 有如下定义 struct st int a; float b; x10; FILE *fp; 若文件已正确打开,且数组 x 的 10个元素均已赋值,以下将数组元素写到文件中的语句错误的是 ( A) for(i=0; i 10; i+) fwrite(x,sizeof(struct st),1,fp); ( B) fwrite(x,10*sizeof(struct st),1,fp); ( C) fwrite(x,sizeo
21、f(struct st),10,fp); ( D) for(i=0; i 10 ;i+) fwrite( 39 有以下程序 #include stdio.h int disp(char* str) while (*str) putchar(*str+); putchar(#); return *str; main() printf(“%dn“, disp(“C#123“); 程序运行后的输出结果是 ( A) C#123#0 ( B) C#1230 ( C) C#0 ( D) C#123#0 40 以下叙述中错误的是 ( )。 ( A)使用三种基本结构构成的程序只能解决简单问题 ( B)结构化程
22、序由顺序、分支、循环三种基本结构组成 ( C) C语言是一种结构化程序 设计语言 ( D)结构化程序设计提倡模块化的设计方法 二、程序填空题 41 下列给定程序中,函数 fun的功能是:将形参 n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。 例如,输入一个整数 27638496,函数返回值为 64862。 清在程序的下画线处填人正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlo h unsigned long fun(unsigned long
23、 n) unsigned long x=0; int t; while(n) t=n 10; /*found*/ if(t 2=【 1】 ) /*found*/ x=【 2】 +t; /*found*/ n=【 3】 ; return x; main() unsigned long n=一 1; while(n 99999999 |n 0) printf(”Please input(0 n 100000000): ”); scanf(” ld”, n); ) printf(” nThe result is: ld n”, fun(n); 三、程序修改题 42 下列给定程序中,函数 fun的功能
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 52 答案 解析 DOC
