[计算机类试卷]国家二级(C语言)机试模拟试卷44及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷44及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷44及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 44及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 2 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 3 对下列二叉树 进行前序遍历的结果为 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 4 一个栈的初始状态为空。现将元素 1,2,3,A,B,
2、C依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A) 1,2,3,A,B,C ( B) C,B,A,1,2,3 ( C) C,B,A,3,2,1 ( D) 1,2,3,C,B,A 5 下面属于白盒测试方法的是 ( A)等价类划分法 ( B)逻辑覆盖 ( C)边界值分析法 ( D)错误推测法 6 下面对对象概念描述正确的是 ( A)对象间的通信靠消息传递 ( B)对象是名字和方法的封装体 ( C)任何对象必须有继承性 ( D)对象的多态性是指一个对象有多个操作 7 软件设计中模块划分应遵循的准则是 ( A)低内聚低耦合 ( B)高耦合高内聚 ( C)高内聚低耦合 ( D)以上说法均错误 8
3、下面描述中不属于数据库系统特点的是 ( A)数据共享 ( B)数据完整性 ( C)数据冗余度高 ( D)数据独立性高 9 数据库设计过程不包括 ( A)概念设计 ( B)逻辑设计 ( C)物理设计 ( D)算法设计 10 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( A)自然连接 ( B)交 ( C)投影 ( D)并 11 下列叙述中正确的是 ( A) C程序中所有函数之间都可以相互调用 ( B)在 C程序中 main函数的位置是固定的 ( C)在 C程序的函数中不能定义另一个函数 ( D)每个 C程序文件中都必须要有一个 main函数 12 以下叙述正确的是 (
4、 A) C语言函数可以嵌套调用,例如: fun(fun(x) ( B) C语言程序是由过程和函数组成的 ( C) C语言函数不可以单独编译 ( D) C语言中除了 main函数,其他函数不可作为单独文件形式存在 13 以下选项中合法的标识符是 ( A) 1_ _ ( B) 2015/1/1 ( C) 1_1 ( D) _11 14 表达式 3.6-5/2+1.2+5%2的值是 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 15 有以下定义: int a; long b; double x, y; 则以下选项中正确的表达式是 ( A) a=x y ( B) a%(int
5、)(x-y) ( C) (a*y)%b ( D) y=x+y=x 16 有以下程序 #include stdio.h main() int a=0, b=0; /* 给 a赋值 a=10; b=20; 给 b赋值 */ printf(“a+b=%dn“,a+b); /* 输出计算结果 */ 程序运行后的输出结果是 ( A)出错 ( B) a+b=30 ( C) a+b=10 ( D) a+b=0 17 以下选项中,值为 1的表达式是 ( A) 1 -0 ( B) 1 - 0 ( C) 1 -0 ( D) 0 - 0 18 当变量 c的值不为 2、 4、 6时,值为 “真 “的表达式是 ( A)
6、 (c =2 else printf(“%dn“, y); ( B) if ( a=0 ) printf(“%dn“, y); else printf(“%dn“, x); ( C) if ( a=0 ) printf(“%dn“, x); else printf(“%dn“, y); ( D) if ( a ) printf(“%dn“, x); else printf(“%dn“, y); 20 有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(x y) if(y z) printf(“%d“,+z); else printf(“%d“,+
7、y); printf(“%dn“, x+ ); 程序的运行结果是 ( A) 1 ( B) 41 ( C) 2 ( D) 331 21 要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是 ( A) while(ch=getchar() =N) printf(“%c “,ch); ( B) while(ch=getchar()!=N) printf(“%c “,ch); ( C) while(ch=getchar()=N) printf(“%c “,ch); ( D) while(ch=getchar()=N) printf(“%c “,ch);
8、22 以下叙述中正确的是 ( A) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 ( B) break语句只能用在循环体内和 switch语句体内 ( C)在循环体内使用 break语句和 continue语 句的作用相同 ( D) break语句只能用于 switch语句体中 23 若各选项中所用变量已正确定义,函数 fun中通过 return语句返回一个函数值,以下选项中错误的程序是 ( A) main() x=fun(2,10); float fun(int a,intB) ( B) float fun(int a,intB) main() x=fun(i,j);
9、( C) float fun(int ,int); main() x=fun(2,10); ( D) main() float fun(int i,int j); x=fun(i,j); 24 若有定义语句: int year=2009, *p= 以下不能使变量 year中的值增至 2010的语句是 ( A) (*p)+; ( B) *p+; ( C) +(*p); ( D) *p+=1; 25 若在定义语句: int a,b,c,*p= 接着执行以下选项中的语 句,则能正确执行的语句是 ( A) scanf(“%d“,a,b,c); ( B) scanf(“%d%d%d“,a,b,c); (
10、 C) scanf(“%d“,p); ( D) scanf(“%d“, 26 以下错误的定义语句是 ( A) int x43=1,2,3,1,2,3,1,2,3,1,2,3; ( B) int x4= 1,2,3,1,2,3,1,2,3,1,2,3; ( C) int x3=0,1,1,2,3; ( D) int x3=1,2,3,4; 27 有以下程序 #include stdio.h main() int i, t3=9,8,7,6,5,4,3,2,1; for(i=0;i 3;i+) printf(“%d “,t2-ii); 程序执行后的输出结果是 ( A) 3 5 7 ( B) 7 5
11、 3 ( C) 3 6 9 ( D) 7 5 1 28 有以下程序 #include stdio.h void fun(int *a, int n) /* fun函数的功能是将 a所指数组元素从大到小排序 */ int t, i, j; for (i=0; i n-1;i+) for (j=i+1; j n; j+) if (ai aj) t=ai; ai=aj; aj=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4, 6); for (i=0;i 10; i+) printf(“%d,“, ci); printf(“n“); 程序的运行结果是
12、 ( A) 1,2,3,4,9,8,7,6,5,0, ( B) 0,9,8,7,6,5,1,2,3,4, ( C) 0,9,8,7,6,5,4,3,2,1, ( D) 1,2,3,4,5,6,7,8,9,0, 29 以下正确的字符串常量是 ( A) ( B) abc ( C) Olympic Games 30 下列选项中,能够满足 “只要字符串 s1等于字符串 s2,则执行 ST“要求的是 ( A) if(s1-s2=0) ST; ( B) if(s1=s2) ST; ( C) if(strcpy(s1,s2)=1) ST; ( D) if(strcmp(s2,s1)=0) ST; 31 有以
13、下程序 #include stdio.h int fun(char p10) int n=0,i; for(i=0; i 7; i+) if(pi0= T) n+; return n; main() char str10=“Mon“,“Tue“,“Wed“,“Thu“,“Fri“,“Sat“,“Sun“; printf(“%dn“,fun(str); 程序执行后的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 0 32 有以下程序 #include stdio.h void fun(char *t , char *s) while(*t!=0) t+; while( (*t+
14、= *s+ )!=0 ) ; main() char ss10=“acc“,aa10=“bbxxyy“; fun(ss, aa); printf(“%s,%sn“, ss,aa); 程序的运行结果是 ( A) acc,bbxxyy ( B) accbbxxyy,bbxxyy ( C) accxxyy,bbxxyy ( D) accxyy,bbxxyy 33 有以下程序 #include stdio.h #include string.h void fun (char *w, int m ) char s, *p1, *p2; p1=w; p2=w+m-1; while ( p1 p2 ) s=
15、*p1; *p1=*p2; *p2=s; p1+; p2-; main() char a =“123456“; fun ( a, strlen(a) ); puts(a); 程序运行后的输出结果是 ( A) 123456 ( B) 116611 ( C) 161616 ( D) 654321 34 有以下程序 #include stdio.h int b=2; int fun(int *k ) b=*k+b; return (b); main() int a10=1,2,3,4,5,6,7,8, i; for(i=2;i 4;i+) b=fun( printf(“%d “,b); printf
16、(“n“); 程序运行后的输出结果是 ( A) 8 10 ( B) 10 28 ( C) 10 12 ( D) 10 16 35 设有定义: struct char mark12; int num1; double num2; t1,t2; 若变量均已正确赋初值,则以下语句中错误的是 ( A) t1=t2; ( B) t2.num1=t1.num1; ( C) t2.mark=t1.mark; ( D) t2.num2=t1.num2; 36 有以下程序 #include stdio.h #include string.h struct A int a; char b10; double c;
17、 void f(struct A t); main() struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d,%s,%6.1fn“, a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行 后的输出结果是 ( A) 1002,ZhangDa,1202.0 ( B) 1002,ChangRong,1202.0 ( C) 1001,ChangRong,1098.0 ( D) 1001,ZhangDa,1098.0 37 有以下程序 #in
18、clude stdio.h #include string.h typedef struct char name9; char sex; float score2; STU; STU f(STU A) STU b=“Zhao“, m, 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex = b.sex; for (i=0; i 2; i+) a.scorei = b.scorei; return a; main() STU c=“Qian“, f, 95.0, 92.0, d; d=f(c); printf(“%s,%c,%2.0f,%2.0fn“
19、,d.name,d.sex,d.score0,d.score1); 程序的运行结果是 ( A) Zhao,m,85,90 ( B) Qian,m,85,90 ( C) Qian,f,95,92 ( D) Zhao,f,95,92 38 若程序中有宏定义行: #define N 100 则以下叙述中正确的是 ( A)宏定义行中定义了标识符 N的值为整数 100 ( B) 在编译程序对 C源程序进行预处理时用 100替换标识符 N ( C)上述宏定义行实现将 100赋给标示符 N ( D)在运行时用 100替换标识符 N 39 若变量已正确定义,则以下语句的输出结果是 s=32; s=32; pr
20、intf(“%d“,s); ( A) -1 ( B) 0 ( C) 1 ( D) 32 40 有以下程序 #include stdio.h main() FILE *fp;char str10; fp=fopen(“myfile.dat“,“w“); fputs(“abc“,fp); fclose(fp); fp=fopen(“myfile.dat“,“a+“); fprintf(fp,“%d“,28); rewind(fp); fscanf(fp,“%s“,str); puts(str); fclose(fp); 程序运行后的输出结果是 ( A) abc ( B) 28c ( C) abc2
21、8 ( D)因类型不一致而出错 二、程序填空题 41 下列给定程序的功能是:调用函数 fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回 1,失败时返回 0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量 sfname中,目标文件名放在变量 harne中。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include stdlib h int fun(char*source, char*target) FILE*fs
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 44 答案 解析 DOC
