欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言笔试-29及答案解析.doc

    • 资源ID:1326103       资源大小:118.50KB        全文页数:37页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言笔试-29及答案解析.doc

    1、二级 C 语言笔试-29 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下 4 组用户定义标识符中,全部合法的一组是( )。(分数:1.00)A._mainencludesinB.If-maxturboC.txtREAL3COMD.intk_2_0012.下列叙述中正确的是( )。(分数:1.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对3.已定义 c 为字符型变量,则下列语句中正确的是( )。(分数:1.00)A.c=97;

    2、B.c=“97“;C.c=97;D.c=“a“;4.以下叙述中不正确的是( )。(分数:1.00)A.C 语言中的文本文件以 ASCII 码形式存储数据B.C 语言中对二进制文件的访问速度比文本文件快C.C 语言中,随机读写方式不适用于文本文件D.C 语言中,顺序读写方式不适用于二进制文件5.以下选项中非法的表达式是( )。(分数:1.00)A.0=x100B.i=j=0C.(char)(65+3)D.x+1=x+16.有如下程序:void f(int x, int y)int t;if (xy)t=x; x=y; y=t;main()int a=4,b=3,C=5,f (a,b); f (a

    3、,c); f (b,c);printf(“%d,%d,%d/n“,a,b,C);执行后输出结果是( )。(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,57.若要说明一个类型名 STP,使得定义语句 STP s 等价于 char *s,以下选项中正确的是( )。(分数:1.00)A.typedef STP char *s;B.typedef *char STP;C.typedef STP *char;D.typedef char* STP;8.有以下程序:float fun(int x,int y)return(x+y);main()int a=2,b=5,C=8;pr

    4、intf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是( )。(分数:1.00)A.编译出错B.9C.21D.9.09.有以下程序:main()char s=“Yes/n/No“,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D 中的第一行是空行)( )。(分数:1.00)A.n/NoYes/NoB./NoYesC.n/NoYes/NoD./NoYes10.有以下程序:int a=3;main()int s=0;int a=5; s+=a+; )s+=a+; printf(%d/n,s);程序运

    5、行后的输出结果是( )。(分数:1.00)_11.阅读以下函数:fun(char*s1, char*s2)int i=0;while(s1i=s2ireturn(s1i=此函数的功能是( )。(分数:1.00)A.将 s2 所指字符串赋给 s1B.比较 s1 和 s2 所指字符串的大小,若 s1 比 s2 的大,函数值为 1,否则函数值为 0C.比较 s1 和 s2 所指字符串是否相等,若相等,函数值为 1,否则函数值为 0D.比较 s1 和 s2 所指字符串的长度,若 s1 比 s2 的长,函数值为 1,否则函数值为 012.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是( )

    6、。(分数:1.00)A.a=1B.+i;C.a=int(i);D.a=a+=5;13.若有以下结构体,则正确的定义或引用是( )。struct Testint x;int y;v1;(分数:1.00)A.Test.x=10;B.Test v2;v2.x=10;C.struct Test v2;v2.x=10;D.struct Test.v2=10;14.有以下程序:int f1(int x,int y)return xy?x:y;int f2(int x,int y)return xy?y:x;main()int a=4,b=3,c=5,d,e,f;d=fl(a,b);d=f1(d,c);e=

    7、f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf(“%d,%d,%d/n“,d,f,e);执行后输出结果是( )。(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.3,5,415.有如下程序:main()int x=23;doprintf(“%d“,x-); while(!x);程序运行后的输出结果是( )。(分数:1.00)A.321B.23C.不输出任何内容D.陷入死循环16.下列关于队列的叙述中正确的是( )。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表17.在下列定义中的共用

    8、体所占内存字节数是( )。unionchar k6;structint m;floar f;a;double d;b;(分数:1.00)A.8B.14C.18D.1018.以下叙述中正确的是( )。(分数:1.00)A.C 语言的源程序不必通过编译就可以直接运行B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C 源程序经编译形成的二进制代码可以直接运行D.C 语言中的函数不可以单独进行编译19.有以下程序:main()int m3=1,4,7,2,5,8,3,6,9int i,j,k=2;for( i=0; i3; i+ )printf(“%d“,mki);执行后输出结果是(

    9、 )。(分数:1.00)A.456B.258C.369D.78920.有如下说明和定义语句:struct studentint age; char num8;struct student stu3=20,“200401“,21,“200402“),19,“200403“;struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是( )。(分数:1.00)A.(p+)-numB.p-numC.(*p).numD.stu3.age21. (分数:1.00)A.B.C.D.22.执行下列程序的结果是( )。#define N 5#define H(x) (N+2)*x)

    10、main()int a=2,b=3,C;c=H(a+b);printf(“%d“,c);(分数:1.00)A.15B.17C.23D.3523.有以下程序(提示,程序中 fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移 2*sizeof(int)字节):#include stdio.hmain()FILE *fp; int i, a4=l,2,3,4,b;fp=fopen(“data.dat“,“wb“);for(i=0;i4;i+) fwrite(fclose(fp);fp=fopen(“data.dar“,“rb“);fseek(

    11、fp,-2L*sizeof(int),SEEK END);fread(/*从文件中读取 sizeof(int)字节的数据到变量 b 中 *fclose(fp);printf(“%d/n“,b);执行后输出结果是( )。(分数:1.00)A.2B.1C.4D.324.有以下程序:main()int m=0256,n=256;printf(“%o %o/n,m,n);程序运行后的输出结果是( )。(分数:1.00)A.0256 0400B.0256 256C.256 400D.400 40025.有以下程序:main()char s=“/n123/“;printf(%d,%d/n,strlen(s

    12、),sizeof(s);执行后输出结果是( )。(分数:1.00)A.赋初值的字符串有错B.6,7C.5,6D.6,626.以下不能正确定义二维数组的选项是( )。(分数:1.00)A.int a212=1,2;B.int a2=1,2,3,4;C.int a22=1,2,3:D.int a2=1,2,3,4;27.程序设计方法要求在程序设计过程中( )。(分数:1.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位

    13、置处加注释D.以上三种说法都不对28.以下符合 C 语言语法的实型常量是( )。(分数:1.00)A.1.2E0.5B.3.14159EC.5E-3D.E1529.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1,则 T 中的叶子结点数为( )。(分数:1.00)A.5B.6C.7D.830.以下叙述中正确的是( )。(分数:1.00)A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static)类别变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值31.设有

    14、如下说明:typedef structint n; char c; double x;) STD;则以下选项中,能正确定义结构体数组并赋初值的语句是( )。(分数:1.00)_32.有以下程序:void fun( int *a, int i, int j)int t;if ( ij )t=ai;ai=aj;aj=t;fun (a,+i,-j);main()int a=1,2,3,4,5,6),i;fun(a,0,5)for( i=0; i6; i+) printf(“%d“,ai);执行后的输出结果是( )。(分数:1.00)A.654321B.432156C.456123D.12345633

    15、.要求以下程序的功能是计算 s=1+1/2+1/3+1/10main()int n; float s;s=1.0;for(n=1O;n1;n-)s=s+1/n;printf(“%6.4f/n“,s);程序运行后输出结果错误,导致错误结果的程序行是( )。(分数:1.00)A.s=1.0;B.for(n=1O;nl;n-)C.s=s+1/n;D.printf(“%6.4f/n“,s);34.有以下程序:#includestdio.hmain()printf(“%d/n“,NULL);程序运行后的输出结果是( )。(分数:1.00)A.0B.1C.-1D.NULL 没定义,出错35.设变量 x 为

    16、 noat 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第 3 位四舍五入的是( )。(分数:1.00)A.X=X*100+0.5/100.0;B.x=(x*100+0.5)/100.0;C.x=(int)(x*100+0.5)/100.0;D.x=(x/100+0.5)*100.0;36.下列叙述中正确的是( )。(分数:1.00)A.运行结果正确的程序一定具有易读性B.自己编写的程序主要是给自己使用的C.当前编写的程序主要是为当前使用的D.上述三种说法都不对37.有定义语句:“int x,y;”,若要通过“scanf(“%d,%d“,while(cn=getchar(

    17、)!=n)switch(ch-a)case 0: putchar(ch+1);case 1:putchar(ch+1);break;case 2:putchar(ch+2);caSe 3:putchar(ch+2);break;(分数:2.00)A.abcB.bbcC.abcdD.bbcee42.算法的空间复杂度是指( )。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间43.表达式“9B.float*f=NULL;scanf(“%d“,i); *f=10.5;C.char t=m,*C=D.long*L;*C= L=0;

    18、45.下列叙述中正确的是( )。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致46.假定下列程序的可执行文件名为 filel.exe,在该程序的子目录下输入命令行:file1China Bejing回车main(int argc,char*argv)while(argc-1)printf(“%s/n“,*+argv);则程序运行后的输出结果是( )。(分数:2.00)A.filel China BejingB.China BejingC.C

    19、hinaD.Bejing47.若有以下程序段:int m=0xabc, n=0xabc;m-=n;printf(“%X/n“,m);执行后输出结果是( )。(分数:2.00)A.0X0B.0x0C.0D.0XABC48.若有如下程序:main()char a35 = “name“,“age“,“sex“,n;for(n=0;n3;n+) printf(“%s/n“,an);则程序执行后的输出结果是( )。(分数:2.00)A.nameagesexB.nameC.nameD.nameagexex ge age sex x sex49.有以下程序:main()int k=4,n=0;for(; n

    20、k;)n+;if(n%3!=O) continue;k-;printf(“%d,%d/n“,k,n);程序运行后的输出结果是( )。(分数:2.00)A.1,1B.2,2C.3,3D.4,450.下面程序的输出结果为( )。struct st int x;int *y;*p;int dt4=10,20,30,40);struct st aa4=50,main()p=aa;printf(“%d/n“,+p-x);printf(“%d|n“,(+p)-x);printf(“%d/n“,+(*p-y);(分数:2.00)A.102020B.506021C.516021D.607031二、填空题(总题

    21、数:18,分数:40.00)51.设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为 【1】 。(分数:2.00)填空项 1:_52.在面向对象的程序设计中,类描述的是具有相似性质的一组 【2】 。(分数:2.00)填空项 1:_53.Jackson 方法是一种面向 【3】 的结构化方法。(分数:2.00)填空项 1:_54.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体集“项目主管”与实体集“项目”的联系属于 【4】 的联系。(分数:2.00)填空项 1:_55.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构

    22、可以不变,所以,基于逻辑结构的应用程序不必修改,称为 【5】 。(分数:2.00)填空项 1:_56.执行下列程序的输出结果是 【6】 。main()float a = 1,b;b=+a* +a;printf(“%f/n“,b);(分数:2.00)填空项 1:_57.若有如下程序:main()int s=1,2,3,4,5,6,*p=s;printf“%d,%d/n“,*(p+3),*(p+5)则程序运行后的输出结果是 【7】 。(分数:2.00)填空项 1:_58.执行下面程序后,输出结果是 【8】 。main()char s12=“very good!“;printf(“%d“,strle

    23、n(s);(分数:2.00)填空项 1:_59.若有如下程序:void sub()static int x=8;x/=2;printf(“%d“,x);main()int m;for(m=0;m2;m+) sub();则程序运行后的输出结果是 【9】 。(分数:2.00)填空项 1:_60.若有以下程序:main()int a44=l,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0;int i,j,s=0;for( i=0; i4; i+ )for( j=0; j4; j+ )if (aij0) continue;if (aij=0) break;

    24、s+=ai j;printf(“%d/n“,s);执行后输出的结果是 【10】 。(分数:2.00)填空项 1:_61. (分数:2.00)填空项 1:_62.若有以下程序:int f(int x,int y)return (y-x)*x;main()int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5);printf(“%d/n“,d);执行后输出的结果是 【12】 。(分数:2.00)填空项 1:_63.下面 rotme 函数的功能是:将 n 行 n 列的矩阵 A 转置为 A。例如:(分数:4.00)填空项 1:_64.以下函数的功能是删除字符串 s 中的所有数字字符。请填

    25、空。void dele (char *s)int n=0,i;for(i=0, si; i+)if ( 【15】 )sn+=si;sn= 【16】 ;(分数:4.00)填空项 1:_65.设函数 findbig 已定义为求 3 个数中的最大值。以下程序将利用函数指针调用 findbig 函数。请填空。main()int findbig(int,int,int);int(*f) (),x,yz,z,big;f= 【17】 ;scanf(“%d%d%d“, big=(*f)(x,y,z);printf(“big=%d/n“,big);(分数:2.00)填空项 1:_66.以下程序的输出结果是 【1

    26、8】 。#define MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)+mmain()int i=2, j=3;printf(“%d/n“,MCRB(j,MCRA(i);(分数:2.00)填空项 1:_67.设有以下定义:struct ssint info; struct ss *link; x,y,z;且已建立如下图所示链表结构,(分数:2.00)填空项 1:_68.已有文本文件 test.txt,其中的内容为:Hello,everyone!。以下程序中,文件 test.txt 已正确为“读”而打开,由文件指针 fr 指向该文件,则程序的输出结果是 【20】 。

    27、#include stdio.hmain()FILE *fr; char str40;fgets(str,5,fr);printf(“%s/n“,str);fclose(fr);(分数:2.00)填空项 1:_二级 C 语言笔试-29 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下 4 组用户定义标识符中,全部合法的一组是( )。(分数:1.00)A._mainencludesin B.If-maxturboC.txtREAL3COMD.intk_2_001解析:解析 标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如

    28、,-max 含非法字符-),并且用户标识符不能与 C 语言中的 32 个关键字同名(例如,int 是关键字,不是合法的用户标识符)。选项 B 中-max 不是字母、数字或下划线组成的字符序列,故选项 B 不正确;选项 C 中 3COM 不是由字母或下划线开头,故选项 C 不正确;选项 D 中 int 为 C 语言中的关键字,故选项 D 不正确;选项 A 中全部为合法的标识符,所以,4 个选项中选项 A 符合题意。2.下列叙述中正确的是( )。(分数:1.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题 C.数据库管理系统就是数据库系统D.

    29、以上三种说法都不对解析:解析 数据库系统由操作系统、数据库管理系统和应用程序在一定的硬件支持下构成,它不仅指数据库本身,也不仅指数据库管理系统,而是指计算机系统中引进数据库以后的系统,选项 A 和 C 错误。选项 B 的说法正确。3.已定义 c 为字符型变量,则下列语句中正确的是( )。(分数:1.00)A.c=97;B.c=“97“;C.c=97; D.c=“a“;解析:解析 用单引号括起来的介字符称为字符常量,而选项 B 和选项 D 中用的是双引号,而用双引号括起来的字符为字符串常量,故选项 B 和选项 D 不正确。因为在 C 语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,

    30、而是将该字符的相应 ASCII 代码放到存储单元中,所以 C 语言使字符型数据和整形数据之间可以通用,选项 C 正确。而选项 A 中,给字符型变量赋值时只能赋一个字符,9,7作为字符时为两个字符且必须分别为单引号括起来,故选项 A 不正确,所以,4 个选项中选项 C 符合题意。4.以下叙述中不正确的是( )。(分数:1.00)A.C 语言中的文本文件以 ASCII 码形式存储数据B.C 语言中对二进制文件的访问速度比文本文件快C.C 语言中,随机读写方式不适用于文本文件D.C 语言中,顺序读写方式不适用于二进制文件 解析:解析 在 C 语言中文本文件是以 ASCII 码形式存放的,每个字符占一

    31、个字节。由于数据在计算机中是以二进制形式存放的,因此二进制文件中的数据可以直接读出,而不需要像文本文件那样把 ASCII 码转换成二进制,因此速度较快。在文本文件叶,数据以 ASCII 码形式存放,用户很难判定一个数据到底占几个字节,所以不适合使用随机读写方式。数据以二进制形式存放,占有的字节数是固定的,所以可以进行随机读写,当然也可以顺序读写。故 D 选项为所选。5.以下选项中非法的表达式是( )。(分数:1.00)A.0=x100B.i=j=0C.(char)(65+3)D.x+1=x+1 解析:解析 选项 D 中将表达式的值赋给表达式,在 C 语言中是不允许给表达式赋值的,故选项 D 是

    32、非法的表达式,所以,4 个选项中选项 D 符合题意。6.有如下程序:void f(int x, int y)int t;if (xy)t=x; x=y; y=t;main()int a=4,b=3,C=5,f (a,b); f (a,c); f (b,c);printf(“%d,%d,%d/n“,a,b,C);执行后输出结果是( )。(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,5 解析:解析 C 语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数 f(),用变量作为形参,在 main()函数中调用了

    33、 3 次 f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。故输出的 a、b、c 依旧是原来的值 4、3、5。D 选项为所选。7.若要说明一个类型名 STP,使得定义语句 STP s 等价于 char *s,以下选项中正确的是( )。(分数:1.00)A.typedef STP char *s;B.typedef *char STP;C.typedef STP *char;D.typedef char* STP; 解析:解析 指针类型的白定义形式如下:typedef 类型说明符*用户类型名。不难看出只有选项 D 是正确的定义形式。所以,D 选项为所选。8.有以下程序:flo

    34、at fun(int x,int y)return(x+y);main()int a=2,b=5,C=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是( )。(分数:1.00)A.编译出错B.9 C.21D.9.0解析:解析 fun(int)fun(a+c,b),a-c)是用函数的返回值做实参。第一次调用 fun(a+c,b),x+y=a+c+b=2+5+8=15,由于函数 fun()的返回值类型被定义为 float 型,返回值为 15.000000,在主函数中被强制转换为 int 型变为 15。第二次调用后 fun(15,a-c),

    35、x+y=15+a-c =15+2-8=9,返回值为9.000000,输出格式要求小数位为 0 且数据宽度为 3,则输出 9。9.有以下程序:main()char s=“Yes/n/No“,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D 中的第一行是空行)( )。(分数:1.00)A.n/NoYes/NoB./NoYes C.n/NoYes/NoD./NoYes解析:解析 主函数中定义了一个字符数组 s 并赋初值,一个字符串指针变量 ps 并让它指向 s。程序中p+4 的地址为数组第 5 个元素的地址,而调用 put(str_adr)函数时

    36、,将从 str_adr 这一地址开始,依次输出存储单元中的字符,遇到第一个/0 时结束输出,并自动输出一个换行符。所以 put(p+4)将输出n/No,put(s)将从 s 第一个元素开始输出到第 3 个元素结束(因为执行*(p+4)=0 语句后 s 中的第 5 个元素的值为 0,而 s 中的第 4 个元素为/,puts 将遇到/0,结束输出),即输出 yes。所以,4 个选项中选项 B符合题意。10.有以下程序:int a=3;main()int s=0;int a=5; s+=a+; )s+=a+; printf(%d/n,s);程序运行后的输出结果是( )。(分数:1.00)_解析:解析

    37、 本题中定义一个全局变量 a 和一个局部变量 a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量 s 并赋值为 0,接着在嵌套的复合语句中定义了变量 a 并赋初值为 5,接着执行语句“s+=a+;”在这条语句中 a 加 1,但表达式 a+还是原来的值,

    38、故 s=s+5,s 为 5,程序执行到外层,此时内定义的变量 a 不再有效,变量 a 为 之前定义的且初值为 3,接着执行11.阅读以下函数:fun(char*s1, char*s2)int i=0;while(s1i=s2ireturn(s1i=此函数的功能是( )。(分数:1.00)A.将 s2 所指字符串赋给 s1B.比较 s1 和 s2 所指字符串的大小,若 s1 比 s2 的大,函数值为 1,否则函数值为 0C.比较 s1 和 s2 所指字符串是否相等,若相等,函数值为 1,否则函数值为 0 D.比较 s1 和 s2 所指字符串的长度,若 s1 比 s2 的长,函数值为 1,否则函数

    39、值为 0解析:解析 在函数 fun()中有两个字符型指针变量 s1 和 s2,在函数中程序执行 while 循环,该循环退出条件有两个:一个是 s1i!=s2i(两个字符串不相等);第二个是 s1i和 s2i相等均为/0(两个字符串相等)。循环退出后,执行 return 语句,即两个字符串相等则返回 1,不相等则返回 0。所以,C 选项为所选。12.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是( )。(分数:1.00)A.a=1B.+i; C.a=int(i);D.a=a+=5;解析:解析 C 语言中的语句都以“;”结尾,因此选项 A 不是合法语句。强制类型转换运算符应为“(类

    40、型名)”,选项 C 中的 int(i)不符合规定;如将 int(i)看成函数调用也是不正确的,int 是 C 语言的关键字,不能作为用户定义的标识符当函数名使用。赋值表达式的左侧应为变量名,而选项 D 中的a+=5 不符合规定。13.若有以下结构体,则正确的定义或引用是( )。struct Testint x;int y;v1;(分数:1.00)A.Test.x=10;B.Test v2;v2.x=10;C.struct Test v2;v2.x=10; D.struct Test.v2=10;解析:解析 定义结构体类型的变量的方式有:紧跟在结构体类型说明之后进行定义,如题目中给出的;在说明对

    41、结构成员的引用形式为结构体变量名成员名选项 A 对结构成员的引用的形式是错误的,Test 是结构体名,不能用来引用结构成员。选项 B 中定义结构体类型的变量的形式是错误的,Test 是结构体名,不能用宋定义结构体类型的变量。选项 D 中对结构成员的引用的形式是错误的,对结构成员的引用的形式为:结构体变量名成员名。4 个选项中只有选项C 是正确的定义或引用。14.有以下程序:int f1(int x,int y)return xy?x:y;int f2(int x,int y)return xy?y:x;main()int a=4,b=3,c=5,d,e,f;d=fl(a,b);d=f1(d,c

    42、);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf(“%d,%d,%d/n“,d,f,e);执行后输出结果是( )。(分数:1.00)A.3,4,5B.5,3,4C.5,4,3 D.3,5,4解析:解析 函数 f1()的作用是返回形参 x 和 y 的较大值,函数 f2()的作用是返回形参 x 和 y 的较小值,在 main()函数中通过调用两次 f1()函数,求得 a、b、c 的最大值并存放在变量 d 中,通过调用两次 f2()函数,求得 a、b、c 的最小值并存放到变量 e 中。由程序可知 d 值为 5,f 的值为 4,e 的值为 3,因此最后输出的 d、f、e

    43、 的值为 5、4、3。所以 C 选项为所选。15.有如下程序:main()int x=23;doprintf(“%d“,x-); while(!x);程序运行后的输出结果是( )。(分数:1.00)A.321B.23 C.不输出任何内容D.陷入死循环解析:解析 本题中使用 do-while 循环,每执行一次循环体输出 x 的值后将 x 减 1。当 x=23,执行循环体输出 x 为 23,X=X-1=23-1=22,判断循环条件是否成立,因为 x=22,!x 的值为 0,终止循环,因此只输出 23。16.下列关于队列的叙述中正确的是( )。(分数:1.00)A.在队列中只能插入数据B.在队列中只

    44、能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项 A 和选项 B 错误;在队列中,最先插入的元素将最先被删除,又称为“先进先出”的线性表,选项 C 正确,选项 D 错误。17.在下列定义中的共用体所占内存字节数是( )。unionchar k6;structint m;floar f;a;double d;b;(分数:1.00)A.8 B.14C.18D.10解析:解析 结构体变量所占的存储空间是各个分量所占空间的总和。共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。m

    45、 占 2 个字节,f 占 4 个字节,因此结构体变量 a 所占的存储空间为 6 字节。k6占 6 个字节,d 占 8 个字节。共用体变量 b 所占的存储空间与占存储空间最多的 d 所占存储空间的字节数相同。所以,A 选项为所选。18.以下叙述中正确的是( )。(分数:1.00)A.C 语言的源程序不必通过编译就可以直接运行B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C 源程序经编译形成的二进制代码可以直接运行D.C 语言中的函数不可以单独进行编译解析:解析 C 语言采用编译方式将源程序转换为二进制的目标代码,编写好一个 C 程序到完成运行一般经过以下几个步骤。编辑、编译

    46、,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后得到的二进制代码还不能直接执行,因为每一个模块往往是 单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项 A、C、D 均不正确。所以,4 个选项中选项 B 符合题意。19.有以下程序:main()int m3=1,4,7,2,5,8,3,6,9int i,j,k=2;for( i=0; i3; i+ )printf(“%d“,mki);执行后输出结果是( )。(分数:1.00)A.456B.258C.369 D.789解析:解析 变量 k 的初值为 2,循环执行了 3 次,分别输出 m20、m21和 m22,其值分别为 3、6、9。所以,C 选项为所选。20.有如下说明和定义语句:struct studentint age; char num8;struct student stu3=20,“200401“,21,“200402“),19,“200403“;struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是( )。(分数:1.00)A.(p+)-numB.p


    注意事项

    本文(【计算机类职业资格】二级C语言笔试-29及答案解析.doc)为本站会员(sofeeling205)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开