【计算机类职业资格】二级C语言笔试-188及答案解析.doc
《【计算机类职业资格】二级C语言笔试-188及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-188及答案解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-188 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下叙述中正确的是( )。(分数:1.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义2.设有定义语句;char c1=92,c2=92;,则以下表达式中值为零的是( )。(分数:1.00)A.c1c2B.c1int f(int *(分数:1.00)A.for(i=0;i3;i+)for(j=2;i=i;j-)if( xj+1xj) k=xj;xj=xj+1
2、;xj+1=k; for(i=0;i3;i+)for(j=4;j7-i;j+)if(xjxj+1) k=xj;xj=xj+1;xj+1=k; for(i=0;i8;i+) printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.75310246B.01234567C.76310462D.135702467.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是( )。(分数:1.00)A.if(ab)scanf(“%c,%c,%d,%d“,printf(%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入 6,5,
3、65,66回车。则输出结果是( )。(分数:1.00)A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,611.以下所列的 C 语言常量中,错误的是( )。(分数:1.00)A.0xFFB.1.2e0.5C.2LD./7212.有以下程序:main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“,d+ +1);elseprintf(“%d“,+d +1);printf(“%d/n“,d);程序运行后的输出结果是( )。(分数:1.00)A.2B.3C.43D.4413.有以下定义语句:double a,b; int w; lon
4、g c;若各变量已正确赋值,则下列选项中正确的表达式是( )。(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b14.有以下程序:#define f(x) x*xmain()int i;i=f(4+4)/f(2+2);printf(“%d/n“,i);执行后输出结果是( )。(分数:1.00)A.28B.22C.16D.415.有以下程序:void fun(int *a,int i,int i)int t;if(ij)t=ai;ai=aj;ai=t;i+; j-;fun(a,i,j);main()int x=2,6,1,8),i;fun(
5、x,0,3),for(i=0;i4;i+) printf(“%2d“,xi);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.1268B.8621C.8162D.861216.关系表中的每一横行称为一个( )。(分数:1.00)A.元组B.码C.属性D.字段17.设有定义语句:int x6=2,4,6,8,5,7), *p=x, i;要求依次输出 x 数组 6 个元素中的值,不能完成此操作的语句是( )。(分数:1.00)A.for(i=0;i;i+) printf(“%2d“,*(p+);B.for(i=0;i6;i+) printf(“%2d“,*(p+i);
6、C.for(i=0;i6;i+) printf(“%2d“,*p+);D.for(i=0;i6;i+) printf(“%2d“,(*p)+);18.有以下程序:main()int a3=1,2,3),4,5,0),(*p(分数:1.00)A.3,i;19.在深度为 5 的满二叉树中,结点的个数为( )。(分数:1.00)A.32B.31C.16D.1520.已定义以下函数:fun (int *p)return *P; 该函数的返回值是( )。(分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值D.形参 p 的地址值21.有以下程序:main()int p7
7、=11,13,14,15,16,17,18);i=0,k=0;while(i7 i+;printf(“%d/n“,k);执行后输出结果是( )。(分数:1.00)A.58B.56C.45D.2422.有以下程序:main()chara=“abcdefg“,b10=“abcdefg“;printf(“%d %d/n“,sizeof((分数:1.00)A.,sizeof(B.);23.下列关系运算中,能使经运算后得到的新关系中元组个数少于原来关系中元组个数的是( )。(分数:1.00)A.选择B.投影C.连接D.并24.下面程序的输出结果是( )。#include“stdio.h“int sub(
8、int m)static a=4;a+=m;return a;void main()int i=2,j=1,k;k=sub(i);k=sub(j);printf(“%d“,k);(分数:1.00)A.6B.7C.8D.925.下面这个程序段的时间复杂度是( )。for (i=1; in; i+)y=y+3;for (j=0;j=(2*n);j+)x+;(分数:1.00)A.O(10g2n)B.O(n)C.O(nlog2n)D.O(n2)26.以下不能定义为用户标识符的是( )。(分数:1.00)A.scanfB.VoidC.3comD.int27.有以下函数定义:void fun(int n
9、double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是( )。(分数:1.00)A.fun(int y,double m);B.k=fun(10,12.5);C.fun(x,n);D.void fun(n,x);28.有以下定义:int a4 3=1,2,3,4,5,6,7,8,9.10,11,12;int(*ptr)3=a,*p=a0;则下列能够正确表示数组元素 a12的表达式是( )。(分数:1.00)A.*(*ptr+1+2)B.*(*(p+5)C.(*ptr+1)+2D.*(*(a+1)+2)29.已定义 ch 为字符型变量,以下赋值语句中错误的是(
10、 )。(分数:1.00)A.ch=/B.ch=62+3;C.ch=NULL;D.ch=/xaa;30.下列关于单目运算符+、-的叙述中正确的是( )。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 double 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量31.在面向对象方法中,如果“鸡”是一类对象,“公鸡”、“母鸡”等都继承了“鸡”类的性质,因而是“鸡”的( )。(分数:1.00)
11、A.子类B.实例C.对象D.父类32.以下 4 个选项中,不能看作一条语句的是( )。(分数:1.00)A.;B.a=0,b=0,c=0;C.if(a0);D.if(b=0)m=1;n=2;33.以下能正确定义一维数组的选项是( )。(分数:1.00)A.int num; B.#define N 100int numNC.int num0100;D.int N=100int numN;34.下列选项中正确的语句是( )。(分数:1.00)_35.若有以下程序段(n 所赋的是八进制数):int m=32767,n=032767;printf(“%d,%o/n,m,n);执行后输出结果是( )。(
12、分数:1.00)A.32767,32767B.32767,032767C.32767,77777D.32767,07777736.有以下程序:void sum(int *(分数:1.00)A.p=for(i=0;i9;i+) pi=i+1;printf(“%d/n“,a12);程序运行后的输出结果是( )。(分数:1.00)A.3B.6C.9D.239.在数据结构中,从逻辑上可以把数据结构分成( )。(分数:1.00)A.动态结构和静态结构B.线性结构和非线性结构C.集合结构和非集合结构D.树形结构和图状结构,40.以下程序段中,能够通过调用函数 fun(),使 main()函数中的指针变量
13、p 指向一个合法的整型单元的是( )。(分数:1.00)A.main() int*p; fun(p); int fun(int*p) int s; p=B.mainint*pfun(iht fun(int*p)int s; *p=C.main() int*p; fun( int fun(int*p) *p=(int*)malloc(2);D.main()int*p;fun(p);int fun(int*p)p=(int*)malloc(sizeo(int);41.有以下程序:main()char str=“xyz“, *ps=str;while(*ps) ps+;for(ps-;ps-str=
14、O;ps-)puts(ps);执行后的输出结果是( )。(分数:2.00)A.yzxyzB.zyzC.zyzxyzD.xxyxyz42.有以下程序:main()int a=7,b=8,*p,*q,*r;p= q=r=p; p=q; q=r;printf(“%d,%d,%d,%d/n“,*p,*q,a,b);程序运行后的输出结果是( )。(分数:2.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,743.若有如下程序:main()int a=1,b=1;for(;a=10;a+)if(b=9) break;if(b%3=1) b+=3;continue;b+;prin
15、tf(“%d,%d“,b,(分数:2.00)A.;k=(n=b(分数:2.00)A.|(m=aB.;pri45.程序流程图(PFD)中的箭头代表的是( )。(分数:2.00)A.组成关系B.控制流C.调用关系D.数据流46.利用 E-R 模型进行数据库的概念设计,可以分成 3 步:首先设计局部 E-R 模型,然后把各个局部 E-R模型综合成一个全局的模型,最后对全局 E-R 模型进行( ),得到最终的 E-R 模型。(分数:2.00)A.简化B.结构化C.最小化D.优化47.有以下程序:main()unsigned int a;int b=-1;a=b;printf(“%u“,(分数:2.00
16、)A.;struct node *next;*p,*q,*r;(分数:2.00)A.B.C.D.49.在结构化设计方法中生成的结构图(SC)中,带有圆圈的小箭头表示( )。(分数:2.00)A.模块B.数据的流向C.模块间的信息传递D.模块之间的调用关系50.有以下程序:void fun (char *a,char *b)a=b;(*(分数:2.00)A.+;a=25;b=025;c=0x25;printf(“%d %d %d/n“,a,b,c);(分数:2.00)填空项 1:_58.下列程序的输出结果是 【8】 。main()char b=“Hello you“;b5=0;printf(“%
17、s/n“,b);(分数:2.00)填空项 1:_59.若有如下定义:int x=2,y=3,z=4;则表达式!(x=y)|x+zprintf(“%d/n“,MAL(i,j);(分数:2.00)填空项 1:_61.设 a、b、c 为整数,且 a=2、b=3、c=4,则执行完语句 a*=18+(b+)-(+c);后,a 的值是 【11】 。(分数:2.00)填空项 1:_62.若有以下程序:main()char a;a=H-A+0;printf(“%c/n“,a);执行后的输出结果是 【12】 。(分数:2.00)填空项 1:_63.以下程序的输出结果是 【13】 。#includestdio.h
18、main()struct struint a;float b;char d4;printf(“%d/n“,sizeof(struct stru);(分数:2.00)填空项 1:_64.下面程序的功能是将一个字符串 str 的内容颠倒过来,请填空。main()int i,j, 【14】 ;char str=“1234567“);for(i=0,j=strlen(str) 【15】 ;ij;i+,j-)k=stri;stri=strj;strj=k;printf(“%s/n“,str);(分数:4.00)填空项 1:_65.函数 compare 的功能是比较两个字符串是否相等,若相等则函数返回 1
19、,否则返回 o,请填空。compare(char s,char t)int i=0while(si=tireturn( 【17】 ?1:0);(分数:4.00)填空项 1:_66.下面程序的功能是调用 sub 函数计算数组 a 中字符串的长度,请填空。sub(char s)int n;for(n=0; 【18】 n+);return 【19】 ;main()char*a;int k;gets(a);【20】 printf(“%d“,k);(分数:6.00)填空项 1:_二级 C 语言笔试-188 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1
20、.以下叙述中正确的是( )。(分数:1.00)A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义解析:解析 一个 C 语言程序是由许多函数组成的,因此 C 程序的基本单位是函数,选项 A 的叙述是正确的。根据函数的定义语法规定,在 C 语言程序中,不能嵌套定义,即不能在函数中再定义函数,故排除选项 B。main()函数在 C 语言程序中是必须的,但 main()函数可以放在程序中的任意位置,故排除选项C。对于用户定义的函数应遵循“先定义,后使用”的规则。凡是未在调用前定义的函数,C 编译程序
21、都默认它的返回值类型为 int 类型。对于返回值为其他类型的函数,若把函数的定义放在调用之后,应该在调用之前对函数进行说明,因此被调用的函数不一定要在调用之前进行定义,选项 D 不正确。2.设有定义语句;char c1=92,c2=92;,则以下表达式中值为零的是( )。(分数:1.00)A.c1c2 B.c1int f(int *(分数:1.00)A.for(i=0;i3;i+)for(j=2;i=i;j-)if( xj+1xj) k=xj;xj=xj+1;xj+1=k; for(i=0;i3;i+)for(j=4;j7-i;j+)if(xjxj+1) k=xj;xj=xj+1;xj+1=k
22、; for(i=0;i8;i+) printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.75310246 B.01234567C.76310462D.13570246解析:解析 主函数中定义了一个整型数组 x,并初始化。接着执行了一个二重 for 循环,该二重循环的作用是将数组的前 4 个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后 4 个元素按从小到大的顺序排序,故最后依次输出数组的元素值为 75310246,所以,4 个选项中选项 A 符合题意。7.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是
23、( )。(分数:1.00)A.if(ab)scanf(“%c,%c,%d,%d“,printf(%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入 6,5,65,66回车。则输出结果是( )。(分数:1.00)A.6,5,A,B B.6,5,65,66C.6,5,6,5D.6,5,6,6解析:解析 主函数中首先定义了 4 个字符变量 a、b、c、d,然后通过 scanf()函数输入a、b、c、d。a 和 b 是按字符格式输入,c 和 d 是按带符号整型格式输入,并要求 a、b、c、d 都按字符输出。故 a 和 b 原样输出为 6、5,c 和 d 将把 ASCII 码值分别为
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 188 答案 解析 DOC
