[计算机类试卷]国家二级(C语言)机试模拟试卷134及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷134及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷134及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 134及答案与解析 一、选择题 1 关于计算机算法的时间复杂度的叙述中正确的是 ( )。 ( A)算法的时间复杂度与算法程序中的撰写细节有关 ( B)算法的时间复杂度与计算机的运行速度有关 ( C)算法的时间复杂度与运行算法时特定的输入有关 ( D)算法的时间复杂度与算法程序编制者的水平有关 2 下列各排序算法中,最坏情况下的时间复杂度最低的是 ( )。 ( A)快速排序 ( B)冒泡排序 ( C)堆排序 ( D)希尔排序 3 下列叙述中正确的是 ( )。 ( A)有一个以上根节点的数据结构不一定是非线性结构 ( B)只有一个根节点的数据结构不一定是线性结构
2、( C)循环链表是非线性结构 ( D)双向链表是非线性结构 4 某二叉树共有 121个节点,其中有 78个度为 2的节点,则该二叉树中的叶子节点数为 ( )。 ( A)不存在这样的二叉树 ( B) 79 ( C) 120 ( D) 49 5 在设计计算机程序时,结构化程序的三种基本结构是 ( )。 ( A)跳转、迭代和回溯 ( B)跳转、函数和子程序 ( C)顺序、选择和循环 ( D)调用、返回和选择 6 下面 描述中错误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) P
3、AD图是软件详细设计的表示工具 7 计算机软件设计过程中,不属于需求规格说明的是 ( )。 ( A)运行环境 ( B)算法详细设计 ( C)软件的性能 ( D)软件的主要功能 8 不属于数据库管理技术发展的三个阶段的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库阶段 ( D)面向对象阶段 9 建立表示学生借书活动的实体联系模型,其中的两个实体分别是 ( )。 ( A)书号和学号 ( B)学生和图书 ( C)学生和学号 ( D)书名和书号 10 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的关系是 ( )。 ( A) 1: 1关系 ( B) 1:
4、 m关系 ( C) m: 1关系 ( D) m: n关系 11 关于计算机算法的叙述中不正确的是 ( )。 ( A)只要能够成功编译和运行的算法都会得到期望的结果 ( B)算法的操作步骤应该是有限的 ( C)算法中每一条指令必须有确切的含 义 ( D)算法可以用各种描述方法来进行描述 12 若有定义语句: int x=l; 则表达式 x一 =x+2的值为 ( )。 ( A) 2 ( B) 2 ( C) 0 ( D)一 1 13 若有定义: float a=22; int i=0, k=18; 下列选项中不合法的 C语言表达式是 ( )。 ( A) a=a+=3, i+; ( B) i=(a+i
5、) =(a+k); ( C) i=a 3; ( D) i=! k; 14 关于科学计数法,下列选项中合法的 C语言实数是 ( )。 ( A) 2e0 ( B) 0 2e0 2 ( C) E2 1 ( D) 3E 15 以下 C语言表达式中,与 k=i+完全等价的表达式是 ( )。 ( A) k=i, i=i+1 ( B) i=i+1, k=i ( C) k=+i ( D) k+=i+1 16 关于 C语言用户标识符的叙述中,错误的是 ( )。 ( A)若用户标识符的命名与预定义标识符相同,命名无效 ( B)若用户标识符的命名与关键字相同将产生编译错误 ( C)若用户标识符的命名与预定义标识符相
6、同。预定义标识符失去原有含义 ( D)若用户标识符的命名与预定义标识符相同,可能引发运行错 误 17 设有定义: double x;,以下选项中不能将输入数据 0 681读入赋给变量 x的是 ( )。 ( A) scanf( 51f, &x); ( B) scanf( lf, &x); ( C) scanf( le, &x); ( D) scanf( 5 3f, &x); 18 若有定义: double x=1 5; int a=1, b=3, c=2; 则关于 C语言中的 switch语句,下列选项中正确的是 ( )。 ( A) switch(a+b) case 1: printf(* n)
7、; case 2+1: printf(* n); ( B) switch(x); case 1: printf(* n); case 2+1: printf(* n); ( C) switch(x) case1 0: printf(* n); case 2 0: printf(* n); ( D) switch(a+b) case 1: printf(* n); case c一 1: printf(* n); 19 有以下程序段: #include int a, b, C; a=1; b=5; c=3; if(a b)a=b, b=c; c=a; printf(a= d b= d e= d n
8、, a, b, c); 程序的输出结果是 ( )。 ( A) a=1 b=5 c=1 ( B) a=1 b=5 c=3 ( C) a=1 b=3 c=1 ( D) a=5 b=3 c=5 20 关于 C语言中循环语句的叙述中正确的是 ( )。 ( A) for语句的循环体至少执行一次 ( B) while语句的循环体至少执行一次 ( C) dowhil e语句的循环体至少执行一次 ( D)上述说法均正确 21 有以下程序: #include main() int m, x=0, y=0, t; do scanf( d, &m); t=m 0; switch(t) case 0: break;
9、case 1: x+=m; continue; y+=m; while(m); printf( d, d n, x, y); 程序运行时输入:一 1 12 2 0,则输出结果是 ( )。 ( A) 0, 0 ( B) 3, 0 ( C) 3,一 3 ( D) 0,一 3 22 有以下程序: #include main() int a33=1, 2, 3, 4, 5, 6, 7, 8, 9, i, j, t=0; for(i=0; i 3; i+) for(j=i; j 3; j+)t+=aij; printf( d n, t); 程序运行后的输出结果是 ( )。 ( A) 15 ( B) 6
10、( C) 16 ( D) 26 23 下列 C语言语句能正确定义二维数组的是 ( )。 ( A) float a2: 1, 4; ( B) float a2=1, 2, 3; ( C) float a2=; ( D) float a23=1 0, 2 0, 3 0, 4 0; 24 若有函数定义如下: int fun(int x, int y) return 2*x*y; 则以下涉及上述函数的说明语句错误的是 ( )。 ( A) int fun(int x, y); ( B) int fun(int, int); ( C) int fun(int a, int B); ( D) int fun
11、(int x, int y); 25 有以下程序: #include #define N 4 main() int xNN=0, i, j, k; for(i=0; i N 2; i+) for(j=i; j N一 i; j+) xij=xN一 i一 1j=i+1; for(k=i+l; k Ni一 1; k+) xki=xkNi一 1=i+1; for(j=0; j N; j+) printf( 2d, x1j); printf( n); 执行后的输出结果是 ( )。 ( A) 2 2 2 2 ( B) 2 1 1 2 ( C) 1 1 1 1 ( D) 1 2 2 1 26 有以下程序:
12、#include int fun(int n); main() int a=3, s; s=fun(a); s=s+fun(a); printf( d n, s); int fun(int n) static int a=1: n+=a+; return n; 程序运行后的输出结果是 ( )。 ( A) 17 ( B) 8 ( C) 9 ( D) 26 27 有以下程序: #include main() char cha6=1234, 123, 12; int i; for(i=0; i 3; i+)puts(chai); 执行后的输出结果是 ( )。 ( A) 1234 121 ( B) 1
13、1231 ( C) 1234 343 ( D) 12342 28 若有以下函数: int fun(char *a, char*b) int flag=0; while(*a! = 0)&(*b! = 0)&strlen(a)=strlen(b) if(*b! =*a)flag=0; break; a+; b+; flag=1; return flag; 此函数的功能是 ( )。 ( A)判断 a和 b两个字符串的长度是否相等 ( B)将字符串 a改名为字符串 b ( C)将字符串变量 a的值赋给字符串变量 b ( D)判断 a和 b两个字符串是否相等 29 设有如下定义和语句: 1char*s
14、; s=China; 2chars7; s=China; 3chars=China; 4chars; s=China; 其中定义项可以作为字符串使用的是 ( )。 ( A) 1和 2 ( B) 1和 3 ( C) 1和 4 ( D) 3和 4 30 有以下程序: #lnclude #include int f(int n) int*P; p=(int*)malloc(sizeof(int); *P=n; return *P; main() int a; a=f(5); printf( d n, a+f(10); 程序的运行结果是 ( )。 ( A) 15 ( B) 20 ( C) 0 ( D)
15、出错 31 有以下程序: #include struct ST int a, b; data2=10, 100, 20, 200; main() struct ST p=data0; printf( d n, +(p a); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 11 ( C) 20 ( D) 21 32 关于 C语言中对文件 操作叙述中正确的是 ( )。 ( A) C语言中的文件是流式文件,因此只能顺序存取数据 ( B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( C)在对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据
16、( D)当对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 33 有以下程序: #include main() FILE*fp; int i, a6=a, b, c, d, e, f, k; fp=fopen(data dat, w+b); fwrite(&a0, sizeof(int), 1, fp); for(i=1; i 6; i+) fseek(fp, 0L, 0); fwrite(&ai; sizeof(int), 1, fp); fseek(fp, 0L, 0); fread(&k, sizeof(int), 1, fp); fclose(fp); pfintf
17、( c n, k); 程序运行后的输出结果是 ( )。 ( A) abcdef ( B) ab ( C) f ( D) fedcba 34 有以下程序: #lnclude #define F(x)(x x)*x main() int k=4, j=2; printf( d, d n, F(k+j), F(j+k); 程序运行后的输出结果是 ( )。 ( A) 26, 6 ( B) 28, 6 ( C) 6, 6 ( D) 26, 26 35 下列选项中结果为 0的是 ( )。 ( A) a=a&0; ( B) a=a 0; ( C) a=a 0: ( D) a=! a; 36 程序中若有以下的
18、说明定义和语句: #include #include struct ST char num10; int s; ; main() struct ST t, *p; p=&t; 下列语句不能正确赋值的是 ( )。 ( A) (*p) s=2; p num0= 0; ( B) p s=12; p num0=0; ( C) (*p) s=12; (*p) num= ; ( D) p s=12; strcpy(*p) mum, ); 37 有以下程序: #include intg(int a) int b=2; static int c=2; b+; c; return(a+b+c); main()
19、int k, a=5; for(k=0; k 3; k+)printf( d, g(a); printf( n); 执行后的输出结果是 ( )。 ( A) 987 ( B) 888 ( C) 678 ( D) 666 38 设已定义 int i和 char cl10, c210=Chinese;则能正确赋值的语句是 ( )。 ( A) c1=c2; ( B) for(i=0; i =7; i+)cli=c2i; ( C) while(c2)c1+=c2+; ( D) for(i=0; c2i; i+)cli=c2i; 39 以下程序拟读取一个学生结构体中的人名,查找其年龄并输出: #inclu
20、de #include #include struct stuchar name10; int age; ; struct stu team6=zhangli, 18, wangtao, 20, limei, 19, zhaodong, 18, liuxiu, 19 , *P; main() inti, flag=0; p=(struct stu *)malloc(sizeof(struct stu); gets(&p name); for(i=0; i 6; i+) if(strcmp(p name, teami name)=0) pfintf( d n, teami age); flag=
21、1; if(flag=0)printf(No find! n); 程序有语法错误,出错的是 ( )。 ( A) pfintf( d n, teami age) ( B) p=(struct stu*)malloc(sizeof(structstu) ( C) if(strcmp(p name, teami name)=0) ( D) gets(&p name); 40 有以下程序: #include #include main() FILE*fp; char ch, str5; if(fp=fopen(data dat, wb+)=NULL) printf(error! n); exit(0)
22、; ch=getchar(); while(ch! =! ) fputs(ch, fp); ch=getchar(); rewind(fp); do fgets(str, 4, fp); puts(str); while(! feof(fp); felose(fp); 程序运行时输入: hello! ,则 程序的输出结果是 ( )。 ( A) hello ( B) he 1lo ( C) hell o ( D) hell 二、程序填空题 41 下列给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置 (即下标值 ),若
23、未找到则返回一 1。 ss所指字符串数组中共有 N个内容不同的字符串,且串长小于M。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANKl C中。不得增行或删行,也不得更改程序的结构 ! #include #include #define N 5 #define M 8 int fun(char(*ss)M, char*t) int i: *found* for(i=0; i 【 1】 ; i+) *found* if(strcmp(ssi, t)=0)return【 2】 ; return一 1: main() char chNM=if
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 134 答案 解析 DOC
