【计算机类职业资格】二级C语言笔试-47及答案解析.doc
《【计算机类职业资格】二级C语言笔试-47及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-47及答案解析.doc(34页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-47 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.有以下程序main()iht m=3,n=r,x;x=-m+;X=x+8/+n;printf(“%d/n“,x);程序运行后的输出结果是(分数:1.00)A.3B.5C.-1D.-22.有以下程序main()int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0;i3;i+)for(j=2;ji;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;
2、xj;xj+1;xj+1=k;for(i=0;i8;i+)printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是(分数:1.00)A.75310246B.01234567C.76310462D.135702463.有以下程序main()char str10=“China“,“Beijing“,*p=str;printf(“%s/n“,p+10);程序运行后的输出结果是(分数:1.00)A.ChinaB.BeijingC.ngD.ing4.已有定义:int i,a10,*p;,则合法的赋值语句是(分数:1.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a
3、+2;5.在数据库的两级映射中,从概念模式到内模式的映射一般由()实现。(分数:1.00)A.数据库系统B.数据库管理系统C.数据库管理员D.数据库操作系统6.设有以下定义和语句int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是(分数:1.00)A.a01B.a10C.a11D.a127.有以下程序main()char a,b,c,d;seanf(“%c,%c,%d,%d“,printf(“%c,%c,%c,%c/n“,a,b,c,d) ;若运行时从键盘上输入:6,5,65,66回车。则输出结果是(分数:1.00)A.6,5,A,BB.6,5,65,
4、66C.6,5,6,5D.6,5,6,68.以下能正确定义二维数组的是(分数:1.00)A.int a3;B.int a3=2*3;C.int a3=;D.int a23=1,2,3,4;9.在函数调用过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数 funA,则(分数:1.00)A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用10.下列关于栈的叙述中,正确的是(分数:1.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表11.有以下定义语句double a,b;
5、 int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b;12.设有下列二叉树:(分数:1.00)A.B.C.D.13.有以下程序main()unsigned int a;int b=-1;a=b;printf(“%u“,(分数:1.00)A.;i3;i+)switch(i)case0:printf(“%d“,i);case2:printf(“%d“,i);default:printf(“%d“,i);程序运行后的输出结果是(分数:1.00)A.022111B.0210
6、21C.000122D.01223.若 x和 y代表整型数,以下表达式中不能正确表示数学关系|x-y|10 的是(分数:1.00)A.abs(x-y)10B.x-y-10;以下选项中引用结构体变量成员的表达式错误的是(分数:1.00)A.(p+)-numB.p-numC.(*p)numD.stu3age26.有以下程序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.4427.没有定义语句
7、int x6=2,4,6,8,5,7,*p=x,i;要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是(分数:1.00)A.for(i=0;i6;i+) printf(“%2d“,*(p+);B.for(i=0;i6;i+) printf(“%2d“,*(p+i);C.for(i=0;i6;i+) printf(“%2d“,*p+);D.for(i=0;i6;i+) printf(“%2d“,(*p)+);28.(48)(50)题以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项#inc
8、lude stdlibhstruct nodechar data; struct node *next;(48) CreatList(char*s),struct node *h,*p,*q;h=(struct node*)malloc(sizeof(struct node);p=q=h;while(*s!=“/0“)p=(struct node*)malloc(sizeof(struct node);p-data= (49) ;q-next=p;q= (50) ;s+;p-next=“/0“;return h;main()char str=“link list“;struct node*he
9、ad;head=CreatList(str);(分数:1.00)A.char*B.struct nodeC.struct node*D.char29.在关系数据模型中,通常可以把()称为属性,其值称为属性值。(分数:1.00)A.记录B.基本表C.模式D.字段30.有以下程序main()char s=“Yse/n/No“,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D中的第一行是空行)(分数:1.00)A.n/No Yes /NoB./NoYesC.n/Noyes /NoD./NoYes31.有以下程序void fun(int*a,int
10、 i,int j)int t;if(ij)t=ai;ai=aj;aj=t;i+; j-;fun(a,i,j);main()int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4;i+) printf(“%2d“,xi);printf(“/n“);程序运行后的输出结果是(分数:1.00)A.1 2 6 8B.8 6 2 1C.8 1 6 2D.8 6 1 232.支持数据库各种操作的软件系统叫做(分数:1.00)A.数据库管理系统B.文件系统C.数据库系统D.操作系统33.有以下程序int f(int(分数:1.00)A.Printf(“%d/n“,a,b) ;程序运行后的输
11、出结果是(分数:1.00)A.错误信息B.666C.888D.666,88838.以下叙述中正确的是(分数:1.00)A.局部变量说明为 static存储类,其生存期将得到延长B.全局变量说明为 static存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同39.函数重载是指(分数:1.00)A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类
12、型相同40.下列条件语句中,功能与其他语句不同的是(分数:1.00)A.if(A) printf(“%d/n“,x); else printf(“%d/n/B.if(a=0) printf(“%d/n“,y); else printf(“%d/n“,x);C.if(a!=0) printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a=0) printf(“%d/n“,x); else printf(“%d/n“,y);41.用 C语言编写的代码程序(分数:2.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行42.有以下程序 #
13、includestdiohmain()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q= *(p+5);printf(“%d %d/n“,*p,*q);程序运行后的输出结果是(分数:2.00)A.运行后报错B.6 6C.6 11D.5 1043.(分数:2.00)A.*sB.sC.*s+D.(*s)+44.以下定义语句中正确的是(分数:2.00)A.char a=Ab=B;B.float a=b=10.0;C.int a=10,*b=fprintf(fp1,“abc“);fclose(fp1);若文本文件 f1txt 中原有内容为:good,
14、则运行以上程序后文件 f1txt 中的内容为(分数:2.00)A.goodabcB.abcdC.abcD.abcgood46.若变量已正确定义,要求程序段完成求 5!的计算,不能完成此操作的程序段是(分数:2.00)A.for(i=1,p=1;i5;i+) p*=i;B.for(i=1;i5;i+) p=1; p*=i;C.i=1;p=1;while(i5)p*=i; i+;D.i=1;p=1;dop*=i; i+; while(i5);47.下列选项中,不能用作标识符的是(分数:2.00)A._1234_B._1_2C.int_2_D.2_int_48.下面不属于软件设计原则的是(分数:2.
15、00)A.抽象B.模块化C.自底向上D.信息隐蔽49.有以下程序main()int i=0,s=0;for(;)if(i=3i=5) continue;if(i=6) break;i+;s+=i;printf(“%d/n“,s);程序运行后的输出结果是(分数:2.00)A.10B.13C.24D.程序进入死循环50.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是(分数:2.00)A.c1c2B.c1 int k;p1=a; p2=b;for(k=0;k7;k+)if(*(p1+k)=*(p2+k)printf(“%c“,*(p1+k);(分数:2.00)填空项 1:
16、_62.以下程序运行后的输出结果是 【12】 。main()char a=“123456789“,*p; int i=0;p=a;while(*p)if(i%2=0) *p=*;p+;i+;puts(A) ;(分数:2.00)填空项 1:_63.以下程序中,for 循环体执行的次数是 【13】 。#define N 2#define M N+1#define K M+1*M/2main()int i;for(i=1;iK;i+)(分数:2.00)填空项 1:_64.以下程序通过函数 SunFun求 (分数:4.00)填空项 1:_65.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算
17、它们之和。请填空。main()int i,a20,sum,count;sum=count=0;for(i=0;i20;i+) scanf(“%d“, 【16】 );for(i=0;i20;i+)if(ai0) count+;sum+= 【17】 ;printf(“sum=%d,count=%d/n“,sum,count);(分数:4.00)填空项 1:_66.以下程序中,函数 SumColumMin的功能是:求出 M行 N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#define M 2#define N 4void SumColumMin(int aM
18、N,int *sum)int i,j,k,s=0;for(i=0;iN;i+)k=0;for(j=1;jM;j+)if(akiaji)k=j;s+= 【18】 ;【19】 =s;main()int xMN=3,2,5,1,4,1,8,3,s;SumColumMin( 【20】 );printf(“%d/n“,s);(分数:6.00)填空项 1:_二级 C语言笔试-47 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.有以下程序main()iht m=3,n=r,x;x=-m+;X=x+8/+n;printf(“%d/n“,x);程序运行后的输
19、出结果是(分数:1.00)A.3B.5C.-1D.-2 解析:解析主函数中首先定义了整型变量 m、n 和 x,并给 m和 n赋初值为 3和 4,接着执行两条赋值语句,第一条 x=-m+等价于 x=-(m+),其值即为-3,第二条 x=x+ 8/+n等价于 x=x+8/(+n),即为 x=-3+8/5=-2,因此最后输出 x的值为-2。2.有以下程序main()int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0;i3;i+)for(j=2;ji;j-)if(xj+1xj) k=xj;xj=xj+1;xj+1=k;for(i=0;i3;i+)for(j=4;j7-i;j+)if
20、(xjxj+1) k=xj;xj;xj+1;xj+1=k;for(i=0;i8;i+)printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是(分数:1.00)A.75310246 B.01234567C.76310462D.13570246解析:解析主函数中定义了一个整型数组 x,并初始化。接着执行了一个二重 for 循环,在该二重循环的作用是将数组的前 4个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后 4个元素按从小到大的顺序排序,故最后依次输出数组各元素的值为 75310246。3.有以下程序main()char str10=“China“,
21、“Beijing“,*p=str;printf(“%s/n“,p+10);程序运行后的输出结果是(分数:1.00)A.ChinaB.Beijing C.ngD.ing解析:解析本题中首先定义了一个字符串数组并初始化,初始化后使得 str0 =“China”,str1=“Beijing”,然后定义一个指针变量 p并让其指向 str,而在该二维数组中定义每个字符串的长度为10,所以 p+10将指向 str1,因此最后输出*(p+10)的值为 Beijing。4.已有定义:int i,a10,*p;,则合法的赋值语句是(分数:1.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;
22、 解析:解析本题中定义了一个整型数组 a和一个整型指针变量 p。选项 A中将一个整型数赋值给一个指针变量,C 语言规定,只能将地址赋给指针指针变量;选项 B中 a 5为一数组元素,同样不是一个地址;选项 C中 a2为一数组元素,同样是一个整型数据,不是个地址;选项 D中数组名 a代表数组首地址加2,代表第三个元素的地址。5.在数据库的两级映射中,从概念模式到内模式的映射一般由()实现。(分数:1.00)A.数据库系统B.数据库管理系统 C.数据库管理员D.数据库操作系统解析:解析从概念模式到内模式的映射一般由数据库管理系统(DBMS)实现。6.设有以下定义和语句int a32=1,2,3,4,
23、5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是(分数:1.00)A.a01B.a10C.a11 D.a12解析:解析本题中首先定义了一个 3行 2列的数组 a,一个长度为 3的指针数组 p,接着把地址 a1赋给 p0此时 p0为 a10的地址,p0+1 为 a11的地址,故*(P0+1)代表的元素为 a11。7.有以下程序main()char a,b,c,d;seanf(“%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,6
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 47 答案 解析 DOC
