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

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

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

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

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

    1、二级 C 语言-77 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈2.下列数据结构中,能够按照“先进后出”原则存取数据的是_。(分数:1.00)A.循环队列B.栈C.队列D.二叉树3.对于循环队列,下列叙述中正确的是_。(分数:1.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针4.算法的空间复杂度是指_。(分数:1.00)A.算法在执行过程中所需要的计

    2、算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数5.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合6.下列选项中不属于结构化程序设计原则的是_。(分数:1.00)A.可封装B.自顶向下C.模块化D.逐步求精7.软件详细设计产生的图如下: (分数:1.00)A.N-S 图B.PAD 图C.程序流程图D.E-R 图8.数据库管理系统是_。(分数:1.00)A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统9.在 E-R 图中,用来表示实体联

    3、系的图形是_。(分数:1.00)A.椭圆形B.矩形C.菱形D.三角形10.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 c 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C.交D.并11.以下关于结构化程序设计的叙述中正确的是_。(分数:1.00)A.由三种基本结构构成的程序只能解决小规模的问题B.结构化程序使用 goto 语句会很便捷C.一个结构化程序必须同时由顺序、分支、循环三种结构组成D.在 C 语言中,程序

    4、的模块化是利用函数实现的12.对于一个正常运行的 C 程序,以下叙述中正确的是_。(分数:1.00)A.程序的执行总是从 main 函数开始B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束13.以下选项中能表示合法常量的是_。(分数:1.00)A.“/007“B.1.5E2.0C.“/“D.1,20014.以下定义语句中正确的是_。(分数:1.00)A.int a=b=0;B.char A=65+1,b=“b“;C.float a=1,*b=D

    5、.double a=0.0;b=1.1;15.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是_。(分数:1.00)A.+x,y=x-B.x+1=yC.x=x+10=x+yD.double(x)/1016.若变量已正确定义为 int 型,要通过语句 scanf(“%d,%d,%d“,给 a 赋值 1、给 b 赋值 2、给c 赋值 3,以下输入形式中错误的是_(注:代表一个空格符)。(分数:1.00)A.123B.1,2,3C.1,2,3D.1,2,317.以下不能输出字符 A 的语句是_(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)。(

    6、分数:1.00)A.printf(“%c/in“,65);B.printf(“%c/in“,“a“-32);C.printf(“%d/n“,“A“);D.printf(“%c/n“,“B“-1);18.若 a 是数值类型,则逻辑表达式(a=1)(a!=1)的值是_。(分数:1.00)A.a 的值不确定B.0C.2D.119.设有定义: int a=1, b=2, c=3; 以下语句中执行效果与其他三个不同的是_。(分数:1.00)A.if(ab) c=a; a=b; b=c;B.if(ab) c=a, a=b, b=c;C.if(ab) c=a, a=b, b=c;D.if(ab) c=a;

    7、a=b; b=c;20.有以下程序 #include stdio.h main() int y=10; while(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=0B.y=-1C.y=1D.while 构成无限循环21.有以下程序 #include stdio.h main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+) printf(“%d*%d=%d “,i,j,i*j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*3

    8、=63*3=9B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=922.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(“*%d“,i);break;) i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.*7B.*3*5C.*5D.*2*623.以下叙述中错误的是_。(分数:1.00)A.函数形参

    9、的值也可以传回给对应的实参B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.C 程序必须由一个或一个以上的函数组成24.有以下程序 #include stdio.h main() int a=1,b=3,c=5; int *p1= *p=*p1*(*p2); printf(“%d/n“,c); 执行后的输出结果是_。(分数:1.00)A.4B.2C.1D.325.有以下程序 #include stdio.h void f(int *p,int *q); main() int m=1,n=2,*r= f(r, printf(“%d,%d“, m,n);

    10、 void f(int *p,int *q) p=p+1; *q=*q+1; 程序运行后的输出结果是_。(分数:1.00)A.1,3B.2,3C.1,4D.1,226.若有定义语句: int a23,*p3; 则以下语句中正确的是_。(分数:1.00)A.p0=B.p0=a;C.p=a;D.p1=27.以下程序中函数 f 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进行由大到小排序。 #include stdio.h void f(int b,int n,int flag) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j

    11、+) if(flag?bibj:bibj) t=bi;bi=bj;bj=t; main() int a10=5,4,3,2,1,6,7,8,9,10,i; f( f(a,5,1); for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.3,4,5,6,7,2,1,8,9,10,C.5,4,3,2,1,6,7,8,9,10,D.10,9,8,7,6,5,4,3,2,1,28.有以下程序 #include stdio.h main() int s12=1,2,3,4,4,3,2,1,1,1,

    12、2,3,c5=0,i; for(i=0;i12;i+) csi+; for(i=1;i5;i+) printf(“%d“,ci); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.4 3 3 2B.2 3 4 4C.1 2 3 4D.1 1 2 329.设有定义: char *c; 以下选项中能够使 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“;c=str;B.scanf(“%s“,c);C.c=getchar();D.*c=“string“;30.若有定义语句: char s10=“1234567/0/0“; 则 strlen(

    13、s)的值是_。(分数:1.00)A.10B.8C.9D.731.有以下程序 #include stdio.h #include string.h main() char p20=“a“,“b“,“c“,“d“,q=“abc“,r=“abcde“; strcat(p,r); strcpy(p+strlen(q),q); printf(“%d/n“,strlen(p); 程序运行后的输出结果是_。(分数:1.00)A.6B.9C.11D.732.有以下程序(注:字母 A 的 ASCII 码值是 65) #include stdio.h void fun(char *s) while(*s) if(

    14、*s%2) printf(“%c“,*s); s+; main() char a=“BYTE“; fun(a); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.YTB.BTC.YED.BY33.有以下程序 #include stdio.h int fun() static int x=1; x+=1; return x; main() int i,8=1; for(i=1;i=5;i+)s+=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.21B.11C.6D.12034.有以下程序 #include stdio.

    15、h void fun2(char a,char b) printf(“%c%c“,a,b); char a=“A“,b=“B“; void fun1() a=“C“; b=“D“; main() fun1(); printf(“%c%c“,a,b); fun2(“E“,“F“); 程序的运行结果是_。(分数:1.00)A.C D E FB.A B E FC.A B C DD.C D A B35.以下关于 typedef 的叙述错误的是_。(分数:1.00)A.用 typedef 为类型说明一个新名,通常可以增加程序的可读性B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typ

    16、edef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 可以增加新类型36.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q、均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针指向链表的第一个结点。 (分数:1.00)A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点37.有以下程序 #include stdio.h #define S(x) 4*(x)*x+1 main() int k=5,j=2; printf(“%d/n“,S(k+j); 程序运行后的输出结果是_。(分数:1.00)A.143B.197

    17、C.33D.2838.若有以下程序段 int r=8; printf(“%d/n“,r1); 输出结果是_。(分数:1.00)A.8B.4C.16D.239.以下叙述中错误的是_。(分数:1.00)A.getchar 函数用于从磁盘文件读入字符B.gets 函数用于从终端读入字符串C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件40.有以下程序 #include stdio.h main() FILE *pf; char *s1=“China“,*s2=“Beijing“; pf=fopen(“abc.dat“,“wb+“); fwrite(s2,

    18、7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat 文件的内容是_。(分数:1.00)A.ChinangB.ChinaC.ChinaBeijingD.BeijingChina二、程序填空题(总题数:1,分数:20.00)41.给定程序中,函数 fun 的功能是:将形参 n 中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如,输入一个整数:27638496,函数返回值为:64862。 请在程序的下划线处填入正确的内容并把下划线删除,使程

    19、序得出正确的结果。 注意:源程序存放在 的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h unsigned long fun(unsigned long n) unsigned long x=0; int t; while(n) t=n%10; /*found*/ if(t%2= _ 1_ ) /*found*/ x= _ 2_ +t; /*found*/ n= _ 3_ ; return x; main() unsigned long n=-1; while(n99999999n0) printf(“Please input(

    20、0n100000000):“); scanf(“%ld“, printf(“/nThe result is:%ld/n“,fun(n); (分数:20.00)三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 87653142 时,t 中的数为 7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h voi

    21、d fun(long s,long *t) int d; long sl=1; /*found*/ t=0; while(s0) d=s%10; /*found*/ if(d%2=0) *t=d*sl+*t; sl*=10; s/=10; main() long s,t; printf(“/nPlease enter s:“);scanf(“%ld“, fun(s, printf(“The result is:%ld/n“,t); (分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.编写一个函数 fun,它的功能是:实现两个字符串的连接(不使用库函数 strcat),即把

    22、 p2 所指的字符串连接到 p1 所指的字符串后。 例如,分别输入下面两个字符串: FirstString- SecondString 程序输出: FirstString-SecondString 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #include stdio.h void fun(char p1,char p2) main() char s180,s240; printf(“Enter s1 and s2:/n“); scanf(“%s%s“,s1,s2); pr

    23、intf(“s1=%s/n“,s1); printf(“s2=%s/n“,s2); printf(“Invoke fun(s1,s2):/n“); fun(s1,s2); printf(“After invoking:/n“); printf(“%s/n“,s1); (分数:20.00)_二级 C 语言-77 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析 树是简单的非线性结构,因此二叉树作为树的一种属于非线性结构,答案 C 正确

    24、。2.下列数据结构中,能够按照“先进后出”原则存取数据的是_。(分数:1.00)A.循环队列B.栈 C.队列D.二叉树解析:解析 栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为 B。3.对于循环队列,下列叙述中正确的是_。(分数:1.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针 解析:解析 循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以对头指针有时可能大于队尾指针有时也可能小于队尾指针,故本题答案为 D。4.算法的空

    25、间复杂度是指_。(分数:1.00)A.算法在执行过程中所需要的计算机存储空间 B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析 算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为 A。5.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为 B。6.下列选项中不属于结构化程序设计原则的是_。(分数:1.00)A.可封装

    26、 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,因此本题答案为 A。7.软件详细设计产生的图如下: (分数:1.00)A.N-S 图B.PAD 图C.程序流程图 D.E-R 图解析:解析 N-S 图提出了用方框图来代替传统的程序流程图,因此 A 不对。PAD 图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,因此 B 不对。E-R 图是数据库中用于表示 E-R 模型的图示工具,因此 D 不对。根据图中所示表示方法可以得知该图是进行软件详细设计时使用的程序流程图,因此本

    27、题答案为 C。8.数据库管理系统是_。(分数:1.00)A.操作系统的一部分B.在操作系统支持下的系统软件 C.一种编译系统D.一种操作系统解析:解析 数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是一种在操作系统支持下的系统软件,因此本题答案为 B。9.在 E-R 图中,用来表示实体联系的图形是_。(分数:1.00)A.椭圆形B.矩形C.菱形 D.三角形解析:解析 在 E-R 图中实体集用矩形表示,属性用椭圆表示,联系用菱形表示,因此选择 C。10.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1

    28、 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 c 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C.交D.并 解析:解析 在关系 T 中包含了关系 R 与 S 中的所有元组,所以进行的是并的运算,答案为 D。11.以下关于结构化程序设计的叙述中正确的是_。(分数:1.00)A.由三种基本结构构成的程序只能解决小规模的问题B.结构化程序使用 goto 语句会很便捷C.一个结构化程序必须同时由顺序、分支、循环三种结构组成D.在 C 语言中,程序的模块化是利用函数实现的 解析:解析 使用 go

    29、to 语句会使程序混乱,所以 B 错误;一个结构化程序没有必要同时由顺序、分支、循环三种结构组成,所以 C 错误;使用三种基本结构构成的程序可以解决任何复杂的问题,所以 A 错误。12.对于一个正常运行的 C 程序,以下叙述中正确的是_。(分数:1.00)A.程序的执行总是从 main 函数开始 B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束解析:解析 程序的执行总是从 main 函数开始,在 main 函数中结束,其他函数通过 main 函

    30、数调用执行,所以 A 正确。13.以下选项中能表示合法常量的是_。(分数:1.00)A.“/007“ B.1.5E2.0C.“/“D.1,200解析:解析 E 前 E 后有数字,E 后数字为整数,B 错误;“/”为转义字符,后面跟特定字符,用来表示 ASCII 字符,C 错误;一个整数之间不能有逗号,D 错误。14.以下定义语句中正确的是_。(分数:1.00)A.int a=b=0;B.char A=65+1,b=“b“; C.float a=1,*b=D.double a=0.0;b=1.1;解析:解析 定义变量时不能连等,所以 A 错误,C 选项中,b 是指针,c 定义为指向指针的指针才可

    31、以接受给 a 赋值 1、给 b 赋值 2、给c 赋值 3,以下输入形式中错误的是_(注:代表一个空格符)。(分数:1.00)A.123 B.1,2,3C.1,2,3D.1,2,3解析:解析 本题考查的是格式化输入函数 scanf()基本用法。使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项 A 中没有输入非格式符“,”,所以是不正确的。17.以下不能输出字符 A 的语句是_(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)。(分数:1.00)A.printf(“%c/in“,65);B.printf(“%c/in“,“

    32、a“-32);C.printf(“%d/n“,“A“); D.printf(“%c/n“,“B“-1);解析:解析 %d 输出整数,所以选择 C。18.若 a 是数值类型,则逻辑表达式(a=1)(a!=1)的值是_。(分数:1.00)A.a 的值不确定B.0C.2D.1 解析:解析 无论 a 的值为多少,(a=1)和(a!=1)总会有一个成立,两者或运算,则值为真,为 1。19.设有定义: int a=1, b=2, c=3; 以下语句中执行效果与其他三个不同的是_。(分数:1.00)A.if(ab) c=a; a=b; b=c; B.if(ab) c=a, a=b, b=c;C.if(ab)

    33、 c=a, a=b, b=c;D.if(ab) c=a; a=b; b=c;解析:解析 选项 B、D 中 if 语句后都是一条复合语句,选项 C 中 if 语句后都是一条语句,选项 A 之后有 3 条语句,所以答案选择 A。20.有以下程序 #include stdio.h main() int y=10; while(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:解析 当 y 为 0 时,表达式 y-才为假,循环结束,最终 y 的值为-1,所以答案选择 B。21.有以下程序 #

    34、include stdio.h main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+) printf(“%d*%d=%d “,i,j,i*j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9 B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9解析:解析 外层循环 i,值分别为 1 2 3,内层循环 j 分

    35、别为 1 2 3、2 3 和 3,所以答案为 A。22.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(“*%d“,i);break;) i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.*7 B.*3*5C.*5D.*2*6解析:解析 本题考查的是 break 语句。dowhile 循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量 i 为 5,然后进入 dowhile 循环体,首先判断(i%3=1),因为 5%3=2

    36、,所以 if 条件不满足,跳过下面的 if 语句,执行 i+,i 变为 6。第 1 遍循环结束,判断(i!=0)为真,继续循环。现在 i%3=6%3=0,所以 i 语句还是不被执行,继续 i+,i 变为 7,仍然满足(i!=0),继续循环。第 3 遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2 成立,即输出*7,然后执行hreak 语句跳出循环。23.以下叙述中错误的是_。(分数:1.00)A.函数形参的值也可以传回给对应的实参 B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.C 程序必须由一个或一个以上的函数组成解析

    37、:解析 函数参数传递是个不可逆的过程,形参不会把值传回实参,所以 A 选项错误。24.有以下程序 #include stdio.h main() int a=1,b=3,c=5; int *p1= *p=*p1*(*p2); printf(“%d/n“,c); 执行后的输出结果是_。(分数:1.00)A.4B.2C.1D.3 解析:解析 c 的值为 a 乘以 b 的值,为 3。所以答案选择 D。25.有以下程序 #include stdio.h void f(int *p,int *q); main() int m=1,n=2,*r= f(r, printf(“%d,%d“, m,n); vo

    38、id f(int *p,int *q) p=p+1; *q=*q+1; 程序运行后的输出结果是_。(分数:1.00)A.1,3 B.2,3C.1,4D.1,2解析:解析 f 函数功能使第二个指针指向的元素增 1,第一个指针指向的元素不变,所以答案选择 A。26.若有定义语句: int a23,*p3; 则以下语句中正确的是_。(分数:1.00)A.p0= B.p0=a;C.p=a;D.p1=解析:解析 本题考查的知识点是:二维数组和指针数组。无论一个数组有多少维或者是否含指针类型,该数组最终都可以被看做一个比较特殊的一维数组。例如本题中的 int a23可以看作元素为 int3(即包含 3 个

    39、 int 型元素的一维数组),包含 2 个这样元素的一维数组;而 int*p3则可以看作元素为int*,包含 3 个这样元素的一维数组。选项 C 中,p 为数组名,其值是不能被改变的,故非法;选项 B 中,p0的类型是 int*,而 a 是二维数组名(类型为 int3),两者无法赋值,故非法;选项 A 中,p0为int 型指针, for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag?bibj:bibj) t=bi;bi=bj;bj=t; main() int a10=5,4,3,2,1,6,7,8,9,10,i; f( f(a,5,1); for(i=0;i10;

    40、i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.3,4,5,6,7,2,1,8,9,10, C.5,4,3,2,1,6,7,8,9,10,D.10,9,8,7,6,5,4,3,2,1,解析:解析 flag 为 1 小时从小到大排序,flag 为 0 时从大到小排序,这道题要注意排序的起始,和排序的个数,答案选择 B。28.有以下程序 #include stdio.h main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+) csi+; f

    41、or(i=1;i5;i+) printf(“%d“,ci); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.4 3 3 2 B.2 3 4 4C.1 2 3 4D.1 1 2 3解析:解析 si元素作为 c 数组的下标,使 c 数组元素自增,执行完毕后,c 数组元素为 0 4 3 3 2,按题目要求输出,4 3 3 2,所以答案选择 A。29.设有定义: char *c; 以下选项中能够使 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“;c=str; B.scanf(“%s“,c);C.c=getchar();D.*c=“stri

    42、ng“;解析:解析 选项 A 定义字符数组 str,然后将 str 赋值给 c,c 便指向字符串 str,符合题意,所以选择 A。30.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的值是_。(分数:1.00)A.10B.8C.9D.7 解析:解析 本题考查的是字符串的长度。字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即“/0”之前的字符数。字符数组 s 中依次存放的字符是:1234567 和 2 个字符串结束标记“/0”,故字符串的长度是 7,所以应该选择 D。31.有以下程序 #incl

    43、ude stdio.h #include string.h main() char p20=“a“,“b“,“c“,“d“,q=“abc“,r=“abcde“; strcat(p,r); strcpy(p+strlen(q),q); printf(“%d/n“,strlen(p); 程序运行后的输出结果是_。(分数:1.00)A.6 B.9C.11D.7解析:解析 本题首先定义了 3 个字符数组 p、q、r,并分别被初始化。数组 p 指定的大小为 20,初始化列表为a,b,c,d,即只指定了前 4 个元素的内容,根据 C 语言的规定,初始化列表不足时,其余元素均自动初始化为 0。然后通过 st

    44、rcat()函数,将字符串 r 连接到字符串 p 之后,即执行后 p 中的内容为“123d123de”。因为“strlen(q)”表示求字符串 q 的长度,很明显为 3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串 q 复制到数组 p 的第 4 个元素位置处。32.有以下程序(注:字母 A 的 ASCII 码值是 65) #include stdio.h void fun(char *s) while(*s) if(*s%2) printf(“%c“,*s); s+; main() char a=“BYTE“; fun(a); printf(“/n“); 程序运

    45、行后的输出结果是_。(分数:1.00)A.YTB.BTC.YE D.BY解析:解析 fun 函数输出 ASCII 码值为奇数的字符,所以答案选择 C。33.有以下程序 #include stdio.h int fun() static int x=1; x+=1; return x; main() int i,8=1; for(i=1;i=5;i+)s+=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.21 B.11C.6D.120解析:解析 循环调用 fun 函数,依次返回值为 2 3 4 5 6,s 原值为 1,累加以上返回值,最终结果为21,所以答案选择 A。34.有以下程序 #include stdio.h void fun2(char a,char b) printf(“%c%c“,a,b); char a=“A“,b=“B“; void fun1() a=“C“; b=“D“; main() fun1(); printf(“%c%c“,a,b); fun2(“E“,“F“); 程序的运行结果是_。(分数:1.00)A.C D E F B.A B E FC.A B C DD.C D


    注意事项

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




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

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

    收起
    展开