【计算机类职业资格】二级C语言分类模拟题520及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题520及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题520及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 520及答案解析(总分:51.50,做题时间:90 分钟)一、选择题(总题数:35,分数:51.50)1.若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为 _(分数:1.00)A.floatB.intC.charD.double2.表达式:(int)(double)9/2)-(9)%2 的值是_。(分数:1.00)A.0B.3C.4D.53.有以下程序 #include stdio.h fun(int x,int y) static int m=0,i=2; i+=m+1; m=i+x+y; return
2、m; main() int j=1,m=1,k; k=fun(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%d/n“,k); 执行后的输出结果是_。(分数:1.00)A.5,11B.5,5C.11,11D.11,54.有以下程序: #includestdio.h void fun(int*s,int n1,int n2) int i,j,t; i=n1;j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3);fun(a,4,9);fu
3、n(a,0,9); for(k=0;k10;k+) printf(“%d“,ak); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.4321098765B.5678901234C.0987654321D.09876512345.设有如下定义: struct sk int m; float x; data,*q; 若要使 q指向 data中的 m域,正确的赋值语句是_。(分数:2.00)A.q=B.*q=data.m;C.q=(struct sk*)D.q=(struct sk*)data.m;6.有以下程序: #includestdio.h #includestd
4、lib.h main() FILE * fp; char ch, str5; if(fp=fopen(“file.txt“, “wb+“)=NULL) printf(“error!/n“); exit(0); ch=getchar(); while(ch!=“!“) fputc(ch, fp); ch=getchar(); rewind(fp); do fgets(str, 4, fp); puts(str); while(!feof(fp); fclose(fp); 程序运行时输入:c:/test! 回车,则程序的输出结果是_。(分数:1.00)A.c:/testB.c:/testC.c:t
5、estD.c:/test7.对下列二叉树进行中序遍历的结果是_。 (分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG8.已知字母 a的 ASCII码为十进制数 97,下面程序的输出结果是_。 #includestdio.h main() char cl,c2; c1=“a“+“6“-“0“; c2=“a“+“3“-“0“; printf(“%c,%c/n“,c1,c2);(分数:2.00)A.输出无定值B.d,eC.e,fD.g,d9.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_。(分数:1.00)A.C语言程序仅可以编译执
6、行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对10.有以下程序: #includestdio.h main() int a,b; for(a=1,b=1;a=100;a+) if(b=20)break; if(b%3=1)b=b+3;continue; b=b-5; printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.10B.9C.8D.711.若以“a+”方式打开一个已存在的文件,以下叙述正确的是_。(分数:1.00)A.文件打开时,原有文件内容不被删除,可以进行添加和读操作B.文件打开时,原有文件内容不被删除,位置
7、指针移到文件开头,可以进行重写和读操作C.文件打开时,原有文件内容不被删除,位置指针移到文件中间,可以进行重写和读操作D.文件打开时,原有文件内容被删除,只可进行写操作12.若有以下定义和语句: #includestdio.h char s110=“abcd!“,*s2=“/n123/“; printf(“%d%d/n“,strlen(s1),strlen(s2); 则输出结果是_。(分数:1.00)A.10 7B.10 5C.5 5D.5 813.为了避免在嵌套的条件语句 if-else中产生二义性,C 语言中规定的 if-else配对原则是_。(分数:1.00)A.else子句与缩排位置相
8、同的 if配对B.else子句与其之前最近的未被配对的 if配对C.else子句与其之后最近的 if配对D.else子句与同一行上的 if配对14.若有以下程序 #includestdio.h #define N 4 void fun(int aN,int b,int flag) int i,j; for(i=0;iN;i+) bi=ai0; for(j=1;jN;j+) if(flag?(biaij):(biaij) bi=aij; main() int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i; fun(x,y,1); for(i=0;
9、iN;i+)printf(“%d,yj); fun(x,y,0); for(i=0;iN;i+)printf(“%d,“,yi); printf(“/n“); 则程序的输出结果是_。(分数:2.00)A.1,5,9,13,4,8,12,16,B.4,8,12,16,1,5,9,13,C.1,2,3,4,13,14,15,16,D.13,14,15,16,1,2,3,4,15.以下叙述正确的是(分数:1.00)A.在 C语言中,只能用“/*“和“*/“对程序进行注释B.在 C语言注释语句中,“/“和“*“之间不可以有空格C.注释语句只能使用西文D.在 C程序中,注释说明只能位于一条语句的后面16
10、.若有定义语句:“int x=10;”,则表达式 x-=x+x的值为_。(分数:1.00)A.-20B.-10C.0D.1017.在高级语言中,对文件操作的一般步骤是_。(分数:1.00)A.打开文件-操作文件-关闭文件B.操作文件-修改文件-关闭文件C.读写文件-打开文件-关闭文件D.读文件-写文件-关闭文件18.有以下程序: #include stdio.h #include string.h main() char str20=“One* World“, “One* Dream!“,* p=str1; printf(“% d,“, strlen(p); printf( “% s/n“,
11、p); 程序运行后的输出结果是_。(分数:2.00)A.10, One * Dream!B.9, One * Dream!C.9, One * WorldD.10, One * World19.有以下计算公式 (分数:1.00)A.if(x=0) y=sqrt(x);else y=sqrt(-x);B.y=sqrt(x);if(x0) y=sqrt(-x);C.if(x=0) y=sqrt(x);if(x0) y=sqrt(-x);D.y=sqrt(x=0 x:-x);20.有以下程序: #includestdio.h main() int a=7; while(a-); printf(“%d
12、/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.-1B.0C.1D.721.若有定义“float a=25, b, *p=”,则下列对赋值语句“*p=a;”和“p=”的正确解释为_。(分数:2.50)A.两个语句都是将变量 a的值赋予变量 pB.*p=a是使 p指向变量 a,而 p= 给 a赋值 1、给 b赋值 2、给 c赋值 3,以下输入形式中错误的是(注:代表一个空格符)_。(分数:3.00)A.1, 2, 3回车B.1, 2, 3回车C.1, 2, 3回车D.123回车23.有以下程序: #includestdio.h void f(int b) int i; for(
13、i=2;i6;i+) bi*=2; main() int a10=1,2,3,4,5,6,7,8,9,10,i; f(a); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.1,2,6,8,10,12,7,8,9,10,C.1,2,3,4,10,12,14,16,9,10,D.1,2,6,8,10,12,14,16,9,10,24.下列叙述中正确的是_。(分数:2.50)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变
14、化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定25.有以下程序: #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in;i+)sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.55B.50C.45D.6026.数据库系统的核心是_。(分数:2.0
15、0)A.数据模型B.数据库管理系统C.数据库D.数据库管理员27.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量 “/101“是( )。(分数:1.00)A.字符 AB.字符 aC.字符 eD.非法的常量28.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;29.在软件设计中不使用的工具是_。(分数:2.50)A.系统结构图B.PAD图C.数据流图(DFD 图)D.程序流程图30.以下
16、选项中正确的语句组是_。(分数:1.00)A.char*s;s=“BOOK!“;B.char*s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;31.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的(分数:1.00)A.安全性B.一致性C.可理解性D.合理性32.有以下程序 main() char a=“a“,“b“,“c“,“d“,“e“,“f“,“g“,“h“,“/0“;int i,j; i=sized(a);j=stden(a); printf(“%d,%d/n”,i,j); 程序运行后的
17、输出结果是(分数:1.00)A.9,9B.8,9C.1,8D.9,833.语句“pfintf(“a/bhow“are“y/bou/n“);”的输出结果是_。(分数:2.50)A.a/bhow“are“y/bouB.a/bhow“are“y/bouC.how“are“youD.ahow“are“y/bou34.下列定义数组的语句中,正确的是_。(分数:2.00)A.int x;B.int N=10;int xN;C.int x010;D.#define N 10int xN;35.下列叙述中正确的是_。(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中
18、,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定二级 C语言分类模拟题 520答案解析(总分:51.50,做题时间:90 分钟)一、选择题(总题数:35,分数:51.50)1.若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为 _(分数:1.00)A.floatB.intC.charD.double 解析:2.表达式:(int)(double)9/2)-(9)%2 的值是_。(分数:1.00)A.0B.3 C.4D.
19、5解析:解析 本题考查了强制类型转换。9/2 为 double型,所以结果为 4.5,又强制转换为整型,所以结果为 4。9%2 为取余运算,结果为 1。最终结果 4-1=3。3.有以下程序 #include stdio.h fun(int x,int y) static int m=0,i=2; i+=m+1; m=i+x+y; return m; main() int j=1,m=1,k; k=fun(j,m); printf(“%d,“,k); k=fun(j,m); printf(“%d/n“,k); 执行后的输出结果是_。(分数:1.00)A.5,11 B.5,5C.11,11D.11
20、,5解析:解析 声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数 fun中的变量 i和 m均为静态局部变量。因此第一次调用 fun函数,返回 m的值为 5,第二次再调用 fun函数时,i 的值为 3,m 的值已经是 5了,所以执行i+=m+1,i 的值变为 9,m=i+x+y=9+1+1=11,故本题答案为 A。4.有以下程序: #includestdio.h void fun(int*s,int n1,int n2) int i,j,t; i=n1;j=n2; while(ij) t=si;si=sj;sj=t;i+
21、;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k10;k+) printf(“%d“,ak); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.4321098765B.5678901234 C.0987654321D.0987651234解析:解析 该程序首先给一维数组赋值,然后三次调用 fun函数,其中 fun(a,0,3);功能是将一维数组中第 1个元素和第 4个元素互换,第 2个元素和第 3个元素互换;其中 fun(a,4,9);功能是将
22、一维数组中第 5个元素和第 10个元素互换,第 6个和第 9个元素互换,第 7个元素和第 8个元素互换;其中fun(a,0,9);功能是将将一维数组中第 1个元素和第 10个元素互换,第 2个元素和第 9个元素互换依此类推。因此 B选项正确。5.设有如下定义: struct sk int m; float x; data,*q; 若要使 q指向 data中的 m域,正确的赋值语句是_。(分数:2.00)A.q=B.*q=data.m;C.q=(struct sk*) D.q=(struct sk*)data.m;解析:6.有以下程序: #includestdio.h #includestdli
23、b.h main() FILE * fp; char ch, str5; if(fp=fopen(“file.txt“, “wb+“)=NULL) printf(“error!/n“); exit(0); ch=getchar(); while(ch!=“!“) fputc(ch, fp); ch=getchar(); rewind(fp); do fgets(str, 4, fp); puts(str); while(!feof(fp); fclose(fp); 程序运行时输入:c:/test! 回车,则程序的输出结果是_。(分数:1.00)A.c:/test B.c:/testC.c:te
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 520 答案 解析 DOC
