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

上传人:孙刚 文档编号:1326021 上传时间:2019-10-17 格式:DOC 页数:29 大小:88KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-20及答案解析.doc_第1页
第1页 / 共29页
【计算机类职业资格】二级C语言笔试-20及答案解析.doc_第2页
第2页 / 共29页
【计算机类职业资格】二级C语言笔试-20及答案解析.doc_第3页
第3页 / 共29页
【计算机类职业资格】二级C语言笔试-20及答案解析.doc_第4页
第4页 / 共29页
【计算机类职业资格】二级C语言笔试-20及答案解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、二级 C 语言笔试-20 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序:void change(int k)k0=k5;main()int x10=1,2,3,4,5,6,7,8,9,10),n=0;while(n=4)change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 52.冒泡排序在最坏情况下的比较次数是_。(分数:2.00)A.n

2、(n+1)/2B.nlog2nC.n(n-1)/2D.n/23.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()x=fun(2,10);float fun(int a,intb)B.float fun(int a,intb)main()x=fun(i,j);C.float fun(int,int);main()x=fun(2,10);float fun(int a,intb)D.main()float fun(int i,intj);x=fun(i,j);float fun(int a,intb)

3、4.下列叙述中正确的是_。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对5.有以下程序:main()int y=10;while(y-);printf(“y=%d/n“,y);程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1C.y=1D.while 构成无限循环6.有以下程序:#includestdio.hstruct ttint x;struct tt *y; *p;struct tt a4=20,a+1,15,a+2,30,a+3,17,amain(

4、)int i;p=a;for(i=1;i=2;i+)printf(“%d“,p-x);p=p-y;程序的运行结果是_。(分数:2.00)A.20,30,B.30,17C.15,30D.20,157.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.abB.a|bC.abD.ar48.以下能正确定义且赋初值的语句是_。(分数:2.00)A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=

5、12.3E2.5;9.有以下程序:int a=2;int f(int n)static int a=3;int t=0;if(n%2)static int a=4;t+=a+;elsestatic int a=5;t+=a+;return t+;main()int s=a,i;for(i=0;i3;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。(分数:2.00)_10.有以下程序:void swap(char *x,char *y)char t;t=*x; *x=*y; *y=t;main()char*s1=“abc“,*s2=“123“;swap(s1,s

6、2);printf(“%s, %s/n“,s1,s2);程序执行后的输出结果是_。(分数:2.00)A.123,abcB.abc,123C.1bc,a23D.321,cba11.有以下程序:#includestdio.hvoid fun(char*a,char*b)while(*a=*)a+;while(*b=*(分数:1.00)A.b+;a+;main12.以下能正确定义字符串的语句是_。(分数:1.00)A.char str=/064);B.char str=“kx43“;C.char str=“;D.char str=“/0“;13.有以下程序:#includestdio.hmain()

7、FTLE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“;for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,n);fclose(fp);printf(“%d/n“,n);程序的运行结果是_。(分数:1.00)A.12300B.123C.1D.32114.有以下程序:main()int a33,*p,i;p=a00;for(i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i

8、);程序运行后的输出结果是_。(分数:1.00)_15.设有条件表达式:(EXP)i+: j-,则以下表达式中与(EXP)完全等价的是_。(分数:1.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)16.有以下程序:#includestring.hmain(int argc,char *argv)int i=1,n=0;while(iargc)n=n+strlen(argvi);i+)printf(“%d/n“,n);该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行:proc 123 45 67则该程序的输出结果是_。(分数:1.00)A.3

9、B.5C.7D.1117.有以下程序:#includestdio.h#define N 5#define M N+1#define f(x)(x*M)main()int i1,i2;i1=f(2);i2=f(1+1):printf(“%d%d“,i1,i2);程序的运行结果是_。(分数:1.00)A.12 12B.11 7C.11 11D.12 718.下列选项中不属于结构化程序设计方法的是_。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用19.有以下程序:#includestdio.h#includestring.hvoid fun(char *s,int n)char *t

10、;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj)t=si;si=sj;sj=t;main()char*ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是_。(分数:1.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc20.以下叙述中错误的是_。(分数:1.00)A.可以通过 typedef 增加新的类型B.可以用 typedef 将已存在的类型用一个新的名字

11、来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名21.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句22.有以下程序:#includestring.hvoid f(char p10,int n)char t10;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strcmp(pi,pj)0)strcpy(t,pi);strcpy(pi,pj);st

12、rcpy(pj,t);main()char p510=“abc“,“aabdfg“,“abbd“,“dedbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p0);程序运行后的输出结果是_。(分数:2.00)A.2B.4C.6D.323.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,ch);B.while(ch=getchar()!=N)printf(“%c“,ch);C.while(ch=getchar()=N)pri

13、ntf(“%c“,ch);D.while(ch=getchar()=N)printf(“%c“,ch);24.有以下程序:main()int a,b,d=25;a=d/10%9;b=a(-1);printf(“%d,%d/n“,a,b);程序运行后的输出结果是_。(分数:2.00)A.6,1B.2,1C.6,0D.2,025.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩26.有以下程序:#incl

14、udestdio.hmain()int i,j;for(i=3;i=1;i-)for(j=1;j=2;j+)printf(“%d“,i+j);printf(“/n“);程序运行的结果是_。(分数:2.00)A.2 3 43 4 54 5B.4 3 25 4 3C.2 33 42 3D.4 53 427.有以下程序:#includestdio.h#includestring.htypedef struct char name9;char sex;float score2;STU;void f(STU(分数:2.00)A.STU b=“Zhao“,m,85.0,90.0);in28.以下叙述中错误

15、的是_。(分数:2.00)A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值D.当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL29.对如下二叉树:ABDECF进行后序遍历的结果为_。(分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA30.有以下程序:main()char *p=“3697“,“2584“;int i,j;long num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pij-0)%2)num=10*/num+pij-0;j+=2;printf

16、(“%d/n“,hum);程序执行后的输出结果是_。(分数:2.00)A.35B.37C.39D.397531.以下叙述中错误的是_。(分数:2.00)A.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语青中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令32.有以下程序:#includestdio.hmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12

17、;i+)csi+;for(i=1;i5;i+)printf(“%d“,ci);printf(“/n“);程序的运行结果是_。(分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 333.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为_。(分数:2.00)A.log2nB.n/2C.nD.n+134.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是_。(分数:2.00)A.并B.交C.投影D.笛卡儿乘积35.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。A) switch(

18、x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);13)switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);D) switch(a+b)case 1:printf(“*/n“);case c:printf(“*/n“);(分数:2.00)A.B.C.D.36.设有定义语句 int(*f)(int);,则以下叙述正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变

19、量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址37.下列定义变量的语句中错误的是_。(分数:2.00)A.int_int;B.double int_;C.char for;D.float US$38.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划39.两个或两个以上模块之间关联的紧密程度称为_。(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性40.程序流程图中有

20、箭头的线段表示的是_。(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系二、填空题(总题数:13,分数:30.00)41.设某循环队列的容量为 50,头指针 fron!=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_42.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_43.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_44.一个关系表的行称为 1。(分数:2.00)填空项 1:_45.在数据库管理系统提供的数据定义语言、数

21、据操纵语言和数据控制语言中, 1 负责数据的模式定义与数据的物理存取构建。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。#includestdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k);(分数:2.00)填空项 1:_47.下面程序由两个源程序文件:t4.h 和 t4.c 组成,程序编译运行结果是_。t4.h 的源程序为:#define N 10#define f2(x) (x*N)t4.c 的源程序为:#includestdio.h#

22、define M 8#define f(x)(x)*M)#include “t4.h“main()int i,j;i=f(1+1);j=f2(1+1);printf(“%d%d/n“,i,j);(分数:2.00)填空项 1:_48.以下程序的运行结果是_。main()int a=2,b=7,c=5;switch(a0)case 1:switch(b0)case 1:switch(“);break;case 2:printf(“!“);break;case 0:switch(c=5)case 0:printf(“*“);break;case 1:printf(“#“);break;case 2:

23、printf(“$“);break;default:printf(“);printf(“/n“);(分数:2.00)填空项 1:_49.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135,则输出 531,请填空。#includestdio.hmain()int n,s;printf(“Enter a number:“);scanf(“%d“,n);printf(“Output:“);dos=n%10;printf(“%d“,s);_;while(n!=0);printf(“/n“);(分数:2.00)填空项 1:_以下 isprime 函数的功能是:判断形参 a 是否为素数,是素

24、数,函数返回 1,否则返回 0。请填空。int isprime(int a)int i;for(i=2;i=a/2;i+)if(a%i=0) (10) ;(11) ;(分数:4.00)填空项 1:_填空项 1:_50.以下程序的输出结果是_。int fun(int*x,int n)if(n=0)return x0;else return x0+fun(x+1,n-1);main()int a=1,2,3,4,5,6,7);printf(“%d/n“,fun(a,3);(分数:2.00)填空项 1:_函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二

25、维数组的第 0 列中,把a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。#define N 4void rotate(int aN,int bN)int i,j;for(i=0;iN;i+)(biN-1= (13) ; (14) =aN-1i;(分数:4.00)填空项 1:_填空项 1:_51.函数 main()的功能是:在带头结点的单链表中查找数据域中值最小的结点。请填空。#includestdio.hstruct nodeint data;struct node * next;int main(struct node * first)/*指

26、针 first 为链表头指针*/struct node * p;int m;p=first-next;m=p-data;p=p-next;for(; p!=NULL;p=_)if(p-datam)m=p-data;return m;(分数:2.00)填空项 1:_二级 C 语言笔试-20 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序:void change(int k)k0=k5;main()int x10=1,2,3,4,5,6,7,8,9,10),n=0;while(n=4)change(xn);n+;for(n=0;n5;

27、n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10 B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 5解析:解析 本题主要考查数组元素的地址作为实参,当 n=0 时,把 x0的地址传递给被调函数change(),即把形参 k 和实参 x 指向同一个存储单元,执行被调函数后 k0=6,即 x0=6;当 n=1 时,执行被调函数后 x1=7,以此类推,最后得到 x 数组的值为 6,7,8,9,10。2.冒泡排序在最坏情况下的比较次数是_。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n

28、-1)/2 D.n/2解析:解析 在最坏情况下冒泡排序法需要比较的次数为 n(n-1)/2。3.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()x=fun(2,10);float fun(int a,intb) B.float fun(int a,intb)main()x=fun(i,j);C.float fun(int,int);main()x=fun(2,10);float fun(int a,intb)D.main()float fun(int i,intj);x=fun(i,j);floa

29、t fun(int a,intb)解析:解析 在调用函数时,此函数必须被声明或定义过。A 选项中 fun 在调用时并未声明,因此是错误的。4.下列叙述中正确的是_。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题 C.数据库管理系统就是数据库系统D.以上三种说法都不对解析:解析 数据库系统(DBS)是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库技术的根本目标是解决数据的共享问题。5.有以下程序:main()int y=10;while(y-);

30、printf(“y=%d/n“,y);程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:解析 whik 语句一股形式为:while(表达式)语句;其语句先判断表达式,后执行语句。而表达式 y-先返回 y 的当前值,再进行-1 运算。6.有以下程序:#includestdio.hstruct ttint x;struct tt *y; *p;struct tt a4=20,a+1,15,a+2,30,a+3,17,amain()int i;p=a;for(i=1;i=2;i+)printf(“%d“,p-x);p=p-y;程序的运行结

31、果是_。(分数:2.00)A.20,30,B.30,17C.15,30D.20,15 解析:解析 本题考查的重点是对结构体的运用与理解。在 a4的初始化中,相当于将其生成为一个链表,故打印两次相当于将前两个整数值打印出来,因此选项 D 是正确的。7.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.ab B.a|bC.abD.ar4解析:解析 1 与 1 异或结果为 0,0 与 1 异或结果为 1,可见要使某位数翻转,只要使其与 1 进行异

32、或运算即可。0 与 0 进行异或运算结果为 0,1 与 0 进行异或运算结果为 1,可见要使某位的数不变,只要使其与 0 进行异或运算即可。8.以下能正确定义且赋初值的语句是_。(分数:2.00)A.int n1=n2=10;B.char c=32; C.float f=f+1.1;D.double x=12.3E2.5;解析:解析 C 语言中规定程序中所要用到的变量应该先定义后使用。因此选项 A 和 C 都是错误的。选项 D 中,E 的后面只能为整数,不能是实数。所以 D 电是错误的。只有选项 B 是正确的,char 和 int 是通用的。9.有以下程序:int a=2;int f(int

33、n)static int a=3;int t=0;if(n%2)static int a=4;t+=a+;elsestatic int a=5;t+=a+;return t+;main()int s=a,i;for(i=0;i3;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。(分数:2.00)_解析:解析 定义“int a=2;”中的全局变量 a,起作用的范围是从定义此变量的位置开始到本源文件结束;定义“static int a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其只赋一次初值,以后每次调用函数时不再重新赋值,而只保留上次函数调用

34、结束时的值;复合语句“static int a=4;t+=a+;10.有以下程序:void swap(char *x,char *y)char t;t=*x; *x=*y; *y=t;main()char*s1=“abc“,*s2=“123“;swap(s1,s2);printf(“%s, %s/n“,s1,s2);程序执行后的输出结果是_。(分数:2.00)A.123,abcB.abc,123C.1bc,a23 D.321,cba解析:解析 函数 swap()实现的功能为交换字符指钊 x 和 y 首位的数值。11.有以下程序:#includestdio.hvoid fun(char*a,ch

35、ar*b)while(*a=*)a+;while(*b=*(分数:1.00)A.b+;a+;main解析:解析 函数 fun 中的第一个 while 循环语句将指针定位在字符串 a 的第一个不是*号的字符上;第二个 whik 循环语句将 a 所指向的字符赋值给 b,直到字符串的结束符为止。调用函数 fun(s,t);,首先将指针指向a,s=“a*b*”,然后将 s 中的字符赋给 t。12.以下能正确定义字符串的语句是_。(分数:1.00)A.char str=/064);B.char str=“kx43“;C.char str=“;D.char str=“/0“; 解析:解析 字符串必须以/0

36、为结束符。13.有以下程序:#includestdio.hmain()FTLE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“;for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,n);fclose(fp);printf(“%d/n“,n);程序的运行结果是_。(分数:1.00)A.12300B.123 C.1D.321解析:解析 本题考查的是 C 语言对文件的操作。语句 fopen(“d1.dat“, “wv

37、);用于打开文件 d1.dat,若文件不存在则建立一个新的文件,然后语句 for(i=0;j3;i+)fprintf(fp,“%d“,ai);向文件中写入数据 123/n。fp=fopen(“d1.dat“,“r“);以只读方式打开 d1.dat 文件,fscanf(fp, “%d“, n);用于将文件中的数据读入到变量 n 中,最后输出 n 的值为 123。14.有以下程序:main()int a33,*p,i;p=a00;for(i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后的输出结果是_。(分数:1.00)_解析:解析 本题的考点是

38、 C 语言的指针。p 指向二维数组 a 的首地址,而二维数组是按行存放的。因此“for(i=0;i9;i+)pi=i;”的结果是等价于 a33=0,1,2,3,4,5,6,7,8,也就是a33=0,1,2,3,4,5,6,7,815.设有条件表达式:(EXP)i+: j-,则以下表达式中与(EXP)完全等价的是_。(分数:1.00)A.(EXP=0)B.(EXP!=0) C.(EXP=1)D.(EXP!=1)解析:解析 本题考查的重点是条件表达式的用法。条件表达式首先判断“(EXP)”是真值还是假值。而在 C 语言中,真值是任意非零值,也可以是负数,而假值是零。因此,与条件表达式中“(EXP)

39、”完全等价的是选项 B。16.有以下程序:#includestring.hmain(int argc,char *argv)int i=1,n=0;while(iargc)n=n+strlen(argvi);i+)printf(“%d/n“,n);该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行:proc 123 45 67则该程序的输出结果是_。(分数:1.00)A.3B.5C.7 D.11解析:解析 main()函数中参数 argc 包含命令行选项的个数,argv 包括 argc 个 C 风格字符串。字符串长度函数 strlen(s)计算以 s 为起始地址的字符串的长度。

40、17.有以下程序:#includestdio.h#define N 5#define M N+1#define f(x)(x*M)main()int i1,i2;i1=f(2);i2=f(1+1):printf(“%d%d“,i1,i2);程序的运行结果是_。(分数:1.00)A.12 12B.11 7 C.11 11D.12 7解析:解析 根据 define 的定义,可得 f(2)=2*5+1=11,f(1+1)=1+1*5+1=7。18.下列选项中不属于结构化程序设计方法的是_。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则可以概括

41、为:自顶向下,逐步求精,模块化,限制使用goto 语句。19.有以下程序:#includestdio.h#includestring.hvoid fun(char *s,int n)char *t;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj)t=si;si=sj;sj=t;main()char*ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是_。(分数:1.00)A.xy,aaaacc B.aaaa

42、cc,xyC.bcc,aabccD.aabcc,bcc解析:解析 函数 fun 的功能是:采用冒泡排序法,对字符串数组 s 中 n 个字符串按照字符串的长度由小到大进行排序,s0指向长度最小的字符串“xy”,s4指向长度最大的字符串“aaaacc”。20.以下叙述中错误的是_。(分数:1.00)A.可以通过 typedef 增加新的类型 B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名解析:解析 typedef 用来声明新的类型名来代替已有的类型名,typed

43、ef 只是对已经存在的类型增加了一个类型名,原有类型名仍有效。typedef 不能用来定义变量。21.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句解析:解析 C 程序中所有语句都必须由一个分号“;”作为结束符。如果只有一个分号,这个分号也是一条语句,称为“空语句”,程序执行时不产生任何动作。程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,影响程序的运行。所以选项 C 的说法是错误的。22.有以下程序:#includestr

44、ing.hvoid f(char p10,int n)char t10;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strcmp(pi,pj)0)strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);main()char p510=“abc“,“aabdfg“,“abbd“,“dedbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p0);程序运行后的输出结果是_。(分数:2.00)A.2B.4C.6 D.3解析:解析 本题考核的是二维字符数组按行存放字符串、二维数组名作为函数的参数以及字符串的排序。主函数中定义了一个二维字符串数组 p 并按行赋值,调用 f()函数,将字符串从小到大排序,strcmp()函数的功能是对两个字符串作向右逐个字符比较,直到出现不同的字符或遇到“/0”为止。如果全部字符都相同,则认为相等;若出现不同的字符则以第一个不相同的字符的比较结果为准。由此可知最小的字符串是“aabdfg”,排序后存放在 p0中,最后在主函数中输出 p0的长度。23.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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