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

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

1、二级 C 语言-82 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.具有 3 个结点的二叉树有_。(分数:1.00)A.2 种形态B.4 种形态C.7 种形态D.5 种形态2.设有下列二叉树: (分数:1.00)A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY3.下列数据结构中,能用二分法进行查找的是_。(分数:1.00)A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表4.结构化程序设计主要强调的是_。(分数:1.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性5.为

2、了使模块尽可能独立,要求_。(分数:1.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强6.在结构化方法中,软件功能分别属于下列软件开发中的_阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计D.编程调试7.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图8.用树形结构来表示实体之间联系的模型称为_。(分数:1.00)A.关系模

3、型B.层次模型C.网状模型D.数据模型9.关系数据库管理系统所管理的关系是_。(分数:1.00)A.若干个二维表B.一个 DBF 文件C.一个 DBC 文件D.若干个 DBC 文件10.设有如下三个关系表: R A B C 1 1 2 2 2 3 S A B C 3 1 3 T A B C 1 1 2 2 2 3 3 1 3 下列操作中正确的是_。(分数:1.00)A.T=RSB.T=RSC.T=RSD.T=R/S11.下列叙述中正确的是_。(分数:1.00)A.在 C 程序的函数中不能定义另一个函数B.在 C 程序中 main 函数的位置是固定的C.C 程序中所有函数之间都可以相互调用D.每

4、个 C 程序文件中都必须要有一个 main 函数12.以下叙述正确的是_。(分数:1.00)A.C 语言函数可以嵌套调用,例如“fun(fun(x)”B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数,其他函数不可作为单独文件形式存在13.以下选项中合法的标识符是_。(分数:1.00)A._11B.1-1C.1_1D.1_ _14.表达式 3.6-5/2+1.2+5%2 的值是_。(分数:1.00)A.3.8B.4.8C.3.3D.4.315.有以下定义 int a; long b; double x,y; 则以下选项中正确的表达式是_。(分数

5、:1.00)A.a%(int)(x-y)B.a=xyC.(a*y)%bD.y=x+y=x16.有以下程序 #include main() int a=0,b=0; /*给 a 赋值 a=10; b=20;给 b 赋值*/ printf(“a+b=%d/n“,a+b);/*输出计算结果*/ 程序运行后的输出结果是_。(分数:1.00)A.a+b=0B.a+b=30C.a+b=10D.出错17.以下选项中,值为 1 的表达式是_。(分数:1.00)A.1-“/0“B.1-“0“C.“1“-0D.“/0“-“0“18.当变量 c 的值不为 2、4、6 时,值为“真”的表达式是_。(分数:1.00)A

6、.(c=2 else printf(“%d/n“,y);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) printf(“%d/n“,x); else printf(“%d/n“,y);20.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程

7、序的运行结果是_。(分数:1.00)A.1B.41C.2D.33121.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环,若变量已正确定义,以下正确的程序段是_。(分数:1.00)A.while(ch=getchar()!=“N“) printf(“%c“,ch);B.while(ch=getchar()=“N“) printf(“%c“,ch);C.while(ch=getehar()=“N“) printf(“%c“,ch);D.while(ch=getchar()=“N“) printf(“%c“,ch);22.以下叙述中正确的是_。(分数:1.00)A.break 语

8、句只能用在循环体内和 switch 语句体内B.continue 语句的作用是使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break 语句和 eontinue 语句的作用相同D.break 语句只能用于 switch 语句体中23.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(分数:1.00)A.函数的形参和实参分别占用不同的存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的实参和其对应的形参共占同一存储单元24.设有以下函数: void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确

9、的是_。(分数:1.00)A.void (*pf)(int,char*); pf=fun;B.void *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char); pf=25.若要求定义具有 10 个 int 型元素的一维数组 a,则以下定义语句中错误的是_。(分数:1.00)A.int n=10,an;int a2*n;B.#define n 5C.int a5+5;D.#define N 10int aN;26.有以下程序 #include stdio.h main() int i,t3=9,8,7,6,5,4,3,2,1; fo

10、r(i=0;i3;i+) printf(“%d“,t2-ii); 程序执行后的输出结果是_。(分数:1.00)A.3 5 7B.7 5 3C.3 6 9D.7 5 127.有以下程序 #include stdio.h void fun(int *s,int n1,int n2) int i,j,t; i=n1;j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k10;k+) printf(“%d“,ak)

11、; printf(“/n“); 程序的运行结果是_。(分数:1.00)A.5678901234B.4321098765C.0987654321D.098765123428.有以下程序 #include stdio.h main() int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+1;k4;k+) if(aiiakk) t=aii;aii=akk;akk=t; for(i=0;i4;i+) printf(“%d,“,a0i); 程序运行后的输出结果是_。(分数:1.00)A.6,4,3,2,B.6,2,1

12、,1,C.1,1,2,6,D.2,3,4,6,29.以下正确的字符串常量是_。(分数:1.00)A.“B.“abc“C.Olympic GamesD.“/“30.下列选项中,能够满足“只要字符串 s1 等于字符串 s2,则执行 ST”要求的是_。(分数:1.00)A.if(strcmp(s2,s1)=0) ST;B.if(s1=s2) ST;C.if(strcpy(s1,s2)=1) ST;D.if(s1-s2=0) ST;31.有以下程序 #include stdio.h int fun(char p10) int n=0,i; for(i=0;i7:i+) if(pi0=“T“) n+;

13、return n; main() char str10=“Mon“,“Tue“,“Wed“,“Thu“,“Fri“,“Sat“,“Sun“; printf(“%d/n“,fun(str); 程序执行后的输出结果是_。(分数:1.00)A.2B.1C.3D.032.有以下程序 #include stdio.h void fun(char *t,char *s) while(*t!=0) t+; while(*t+=*s+)!=0); main() char ss10=“acc“,aa10=“bbxxyy“; fun(ss,aa); printf(“%s,%s/n“,ss,aa); 程序的运行结果

14、是_。(分数:1.00)A.accbbxxyy,bbxxyyB.acc,bbxxyyC.accxxyy,bbxxyyD.accxyy,bbxxyy33.有以下程序 #include stdio.h #include string.h void fun(char *w,int m) char s,*p1,*p2; p1=w; p2=w+m-1; while(p1p2) s=*p1;*p1=*p2;*p2=s; p1+;p2-; main() char a=“123456“; fun(a,strlen(a); puts(a); 程序运行后的输出结果是_。(分数:1.00)A.654321B.116

15、611C.161616D.12345634.有以下程序 #include stdio.h int b=2: int fun(int *k) b=*k+b;return(b); main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)b=fun(printf(“%d“,b); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.10 28B.8 10C.10 12D.10 1635.设有定义 struct char mark12;int num1;double num2; t1,t2; 若变量均已正确赋初值,则以下语句中错误的是_。

16、(分数:1.00)A.t2.mark=t1.mark;B.t2.num1=t1.num1;C.t1=t2;D.t2.num2=t1.num2;36.有以下程序 #include stdio.h #include string.h struct A int a;char b10;double c; void f(struct A t); main() struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c); void f(struct A t) t.a=1002;strcpy(t.b,“ChangRo

17、ng“);t.c=1202.0; 程序运行后的输出结果是_。(分数:1.00)A.1001,ZhangDa,1098.0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1002,ZhangDa,1202.037.有以下程序 #include stdio.h #include string.h typedef struct char name9;char sex;float score2; STU; STU f(STU a) STU b=“Zhao“,“m“,85.0,90.0; int i; strcpy(a.name,b.name); a.se

18、x=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; return a; main() STU c=“Qian“,“f“,95.0,92.0,d; d=f(c); printf(“%s,%c,%2.0f,%2.0f/n“,d.name,d.sex,d.score0,d.score1); 程序的运行结果是_。(分数:1.00)A.Zhao,m,85,90B.Qian,m,85,90C.Qian,f,95,92D.Zhao,f,95,9238.若程序中有宏定义行: #define N 100 则以下叙述中正确的是_。(分数:1.00)A.在编译程序对 C 源程序进行

19、预处理时用 100 替换标识符 NB.宏定义行中定义了标识符 N 的值为整数 100C.上述宏定义行实现将 100 赋给标识符 ND.在运行时用 100 替换标识符 N39.若变量已正确定义,则以下语句的输出结果是_。 s=32; s=32; printf(“%d“,s);(分数:1.00)A.0B.-1C.1D.3240.有以下程序 #include stdio.h main() FILE *fp;char str10; fp=fopen(“myfile.dat“,“w“); fputs(“abc“,fp); fclose(fp); fp=fopen(“myfile.dat“,“a+“);

20、fprintf(fp,“%d“,28); rewind(fp); fscanf(fp,“%s“,str); puts(str); fclose(fp); 程序运行后的输出结果是_。(分数:1.00)A.abc28B.28cC.abcD.因类型不一致而出错二、程序填空题(总题数:1,分数:20.00)41.给定程序中,函数 fun 的功能是:将形参 s 所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s 所指字符串为“asd123fgh543df”,处理后新字符串为“asdfghdf123543”。 请在程序的下划线处填入正确的内容并把下划线删

21、除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h #include stdlib.h #include string.h char *fun(char *s) int i,j,k,n; char *p,*t; n=strlen(s)+1; t=(char*)malloe(n*sizeof(char); p=(char*)malloe(n*sizeof(ehar); j=0;k=0; for(i=0;in;i+) if(si=“a“)j+; else pk=si;k+; /*fou

22、nd*/ for(i=0;i _ 2_ ;i+) tj+i=pi; /*found*/ tj+k= _ 3_ ; return t; main() char s80; printf(“Please input:“); scanf(“%s“,s); printf(“/nThe result is:%s/n“,fun(s); (分数:20.00)三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:将 s 所指字符串中最后一次出现的与 t1 所指字符串相同的子串替换成 t2 所指字符串,所形成的新串放在 w 所指的数组中。在此处,要求 t1 和 t

23、2 所指字符串的长度相同。 例如,当 s 所指字符串中的内容为“abcdabfabc”,t1 所指子串中的内容为“ab”,t2 所指子串中的内容为“99”时,结果,在 w 所指的数组中的内容应为“abcdabf99c”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h #include string.h void fun(chat *s,char *t1,char *t2,char *w) char *p,*r,*a=s; strcpy(w,s); /*found*/ while

24、(w) p=w;r=t1; while(*r) /*found*/ IF(*r=*p) r+;p+;) else break; if(*r=“/0“) a=w; w+; r=t2; while(*r) *a=*r;a+;r+; main() char s100,t1100,t2100,w100; printf(“/nPlease enter string S:“); scanf(“%s“,s); printf(“/nPlease enter substring t1:“); scanf(“%s“,t1); printf(“/nPlease enter suhstring t2:“); scan

25、f(“%s“,t2); if(strlen(t1)=strlen(t2) fun(s,t1,t2,w); printf(“/nThe result is:%s/n“,w); else printf(“/nError:strlen(t1)!=strlen(t2)/n“); (分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.函数 fun 的功能是:将 s 所指字符串中 ASCII 值为奇数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。 例如,若 s 所指字符串中的内容为:“ABCDE FG12345”,其中字符 A 的 ASCII 码值为奇数、字符 1的 ASC

26、II 码值也为奇数、都应当删除,其他依此类推。最后 t 所指的数组中的内容应是“BDF24”。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序: #include stdio.h #include string.h void fun(char *s,char t) main() char s100,t100; printf(“/nPlease enter string S:“); scanf(“%s“,s); fun(s,t); printf(“/nThe result is:%s/

27、n“,t); (分数:20.00)_二级 C 语言-82 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.具有 3 个结点的二叉树有_。(分数:1.00)A.2 种形态B.4 种形态C.7 种形态D.5 种形态 解析:解析 具有 3 个结点的二叉树有以下几种形态: 2.设有下列二叉树: (分数:1.00)A.ZBTYCPXAB.ATBZXCYP C.ZBTACYXPD.ATBZXCPY解析:解析 本题考查二叉树的遍历。所谓二叉树的前序遍历(DLR),是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子

28、树,并且,在遍历左右子树时,上述规则同样适用,即“根左右”,故该二叉树的前序遍历结果为“ATBZXCYP”。3.下列数据结构中,能用二分法进行查找的是_。(分数:1.00)A.顺序存储的有序线性表 B.线性链表C.二叉链表D.有序线性链表解析:解析 二分查找只适用于顺序存储的有序表。此处所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项 A 正确。4.结构化程序设计主要强调的是_。(分数:1.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性 解析:解析 本题考查考生的结构化程序设计的思想。结构化程序设计强调的是程序的易读性。5.为了

29、使模块尽可能独立,要求_。(分数:1.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强解析:解析 系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项 B 的答案正确。6.在结构化方法中,软件功能分

30、别属于下列软件开发中的_阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计 D.编程调试解析:解析 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。7.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图 解析:解析 数据流图 DFD 是结构化分析方法最主要的一种图形工具,不属于过程设计

31、工具。8.用树形结构来表示实体之间联系的模型称为_。(分数:1.00)A.关系模型B.层次模型 C.网状模型D.数据模型解析:解析 层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。9.关系数据库管理系统所管理的关系是_。(分数:1.00)A.若干个二维表 B.一个 DBF 文件C.一个 DBC 文件D.若干个 DBC 文件解析:解析 在关系数据库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。10.设有如下三个关系表: R A B C 1 1 2 2 2 3 S A B C 3 1

32、 3 T A B C 1 1 2 2 2 3 3 1 3 下列操作中正确的是_。(分数:1.00)A.T=RSB.T=RS C.T=RSD.T=R/S解析:解析 两个相同结构关系的“并”是由属于这两个关系的元组组成的集合。11.下列叙述中正确的是_。(分数:1.00)A.在 C 程序的函数中不能定义另一个函数 B.在 C 程序中 main 函数的位置是固定的C.C 程序中所有函数之间都可以相互调用D.每个 C 程序文件中都必须要有一个 main 函数解析:解析 在 C 语言中函数不能嵌套定义,所以选择 A。12.以下叙述正确的是_。(分数:1.00)A.C 语言函数可以嵌套调用,例如“fun(

33、fun(x)” B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数,其他函数不可作为单独文件形式存在解析:解析 C 语言程序没有过程,所以 B 错误;C 语言函数可以单独编译,所以 C 错误;函数可以作为单独文件存在,所以 D 错误,所以答案选择 A。13.以下选项中合法的标识符是_。(分数:1.00)A._11 B.1-1C.1_1D.1_ _解析:解析 标识符由字母、数字或下划线组成,并且数字不能开头,所以答案选择 A。14.表达式 3.6-5/2+1.2+5%2 的值是_。(分数:1.00)A.3.8 B.4.8C.3.3D.4.3解析:

34、解析 5/2 值为 2,5%2 值为 1,所以 3.6-2+1.2+1 值为 3.8。15.有以下定义 int a; long b; double x,y; 则以下选项中正确的表达式是_。(分数:1.00)A.a%(int)(x-y) B.a=xyC.(a*y)%bD.y=x+y=x解析:解析 C 语言中不存在运算符,B 错误;%两边必须都是整数,C 错误;x+y 不能出现在赋值号的左边,D 错误。16.有以下程序 #include main() int a=0,b=0; /*给 a 赋值 a=10; b=20;给 b 赋值*/ printf(“a+b=%d/n“,a+b);/*输出计算结果*

35、/ 程序运行后的输出结果是_。(分数:1.00)A.a+b=0 B.a+b=30C.a+b=10D.出错解析:解析 注释/*和*/之间计算机不参与编译,所以 a、b 值仍为 0,答案选择 A。17.以下选项中,值为 1 的表达式是_。(分数:1.00)A.1-“/0“ B.1-“0“C.“1“-0D.“/0“-“0“解析:解析 “/0“值为 0,所以 1-“/0“值为 1。答案为 A。18.当变量 c 的值不为 2、4、6 时,值为“真”的表达式是_。(分数:1.00)A.(c=2 else printf(“%d/n“,y); B.if(a=0) printf(“%d/n“,y); else

36、printf(“%d/n“,x);C.if(a!=0) printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a) printf(“%d/n“,x); else printf(“%d/n“,y);解析:解析 若 a 为 0,A 选项输出 x,其他输出 y,所以选择 A。20.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程序的运行结果是_。(分数:1.00)A.1 B.

37、41C.2D.331解析:解析 xy 不成立,之后的 if 和 else 都不执行,输出 x+表达式值为 1。21.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环,若变量已正确定义,以下正确的程序段是_。(分数:1.00)A.while(ch=getchar()!=“N“) printf(“%c“,ch); B.while(ch=getchar()=“N“) printf(“%c“,ch);C.while(ch=getehar()=“N“) printf(“%c“,ch);D.while(ch=getchar()=“N“) printf(“%c“,ch);解析:解析 本题考

38、查的知识点是:getchar 函数和逻辑表达式的判定。题目要求“当读入字母 N 时结束循环”,所以 C、D 选项不对;选项 B 中,作为条件的表达式的值恒成立,不符合题目要求,故本题选A。22.以下叙述中正确的是_。(分数:1.00)A.break 语句只能用在循环体内和 switch 语句体内 B.continue 语句的作用是使程序的执行流程跳出包含它的所有循环C.在循环体内使用 break 语句和 eontinue 语句的作用相同D.break 语句只能用于 switch 语句体中解析:解析 本题主要考查的知识点是 break 和 continue 语句。break 语句可以用于 swi

39、tch 或循环体内,作用是跳出 switch 或循环体。continue 语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项 A 是正确的。23.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(分数:1.00)A.函数的形参和实参分别占用不同的存储单元 B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的实参和其对应的形参共占同一存储单元解析:解析 本题考查的知识点是函数的形参和实参。在定义函数时函数名后面括号中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表

40、达式)称为“实际参数”(简称实参)。C 语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择 A。24.设有以下函数: void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确的是_。(分数:1.00)A.void (*pf)(int,char*); pf=fun; B.void *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char); pf=解析:解析 赋值给函数指针,需要函数的参数一致,返回值

41、一致,才可以赋值。选项 A 正确。25.若要求定义具有 10 个 int 型元素的一维数组 a,则以下定义语句中错误的是_。(分数:1.00)A.int n=10,an;int a2*n; B.#define n 5C.int a5+5;D.#define N 10int aN;解析:解析 变量不能充当数组定义的长度。所以 A 错误。26.有以下程序 #include stdio.h main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+) printf(“%d“,t2-ii); 程序执行后的输出结果是_。(分数:1.00)A.3 5 7 B.7 5

42、3C.3 6 9D.7 5 1解析:解析 本题考查的是 for 循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第 1 行的第 1 个元素起,直到第 1 行满,接着代表第 2 行、第 3行的每一个元素。程序中的循环将循环 3 次,循环变量 i 的值分别是 0、1、2,所以 3 次循环中输出的数分别是:t2-00、t2-11、t2-22,即 t20、t11、t02,所以最后输出的结果为 3、5、7。故应该选择 A。27.有以下程序 #include stdio.h void fun(int *s,int n1,int n2) int i,j,t;

43、i=n1;j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k10;k+) printf(“%d“,ak); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.5678901234 B.4321098765C.0987654321D.0987651234解析:解析 本题主要考查的是函数。在 fun 函数中,首先将形参 n1 和 n2 分别赋给局部变量 i 和 j,然后使用 while

44、循环,交换 si和 sj的内容,并使 i 增 1、j 减 1,直到 i 不小于 j 为止。所以该函数实现的能是:对形参指针 s 所指的一系列元素,从第 n1 位到第 n2 位进行逆序。主函数中,连续调用了 3次 fun 函数,依次对数组 a 的第 03 位、第 49 位和第 09 位进行了逆序。对 03 位逆序后,数组 a的内容是4,3,2,1,5,6,7,8,9,0;再对 49 位逆序后是4,3,2,1,0,9,8,7,6,5;最后对 09 位逆序后是5,6,7,8,9,0,1,2,3,4。28.有以下程序 #include stdio.h main() int a44=1,4,3,2,8,

45、6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+1;k4;k+) if(aiiakk) t=aii;aii=akk;akk=t; for(i=0;i4;i+) printf(“%d,“,a0i); 程序运行后的输出结果是_。(分数:1.00)A.6,4,3,2, B.6,2,1,1,C.1,1,2,6,D.2,3,4,6,解析:解析 第一个嵌套的 for 循环功能将对角线上的数据从大到小排序,其他数据不变,排序完成后,a00值为 6,输出第一行为 6 4 3 2,答案选择 A。29.以下正确的字符串常量是_。(分数:1.00)A.“ B.“abc“C.Olympic GamesD.“/“解析:解析 字符串常量需要用双引号括起来,D 选项中第三个/和“和在一起是一个字符所以错误。答案选择 A。30.下列选项中,能够满足“只要字符串 s1 等于字符串 s2,则执行 ST”要求的是_。(分数:1.00)A.if(strcmp(s2,s1)=0) ST; B.if(s1=s2) ST;C.if(strcpy(s1,s2)=1)

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

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

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