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

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

1、二级 C 语言笔试-428 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列数据结构中,属于非线性的是( )。A) 线性表 B) 队列 C) 树 D) 栈(分数:2.00)A.B.C.D.2.设有如下关系表:(分数:2.00)A.B.C.D.3.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) N-S D) DFD(分数:1.00)A.B.C.D.4.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.5.在长度

2、为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。A) 63 B) 64 C) 6 D) 7(分数:2.00)A.B.C.D.6.下列描述中正确的是_。A) 程序就是软件 B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体 D) 软件是程序、数据与相关文档的集合(分数:2.00)A.B.C.D.7.结构化分析方法是面向( )的自顶向下逐步求精进行需求分析的方法。A) 对象 B) 数据结构 C) 数据流 D) 目标(分数:2.00)A.B.C.D.8.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。A) 属性 B) 关系 C) 键 D) 域(分

3、数:1.00)A.B.C.D.9.有三个关系 R、S 和 T 如下: * 则由关系 R 和 S 得到关系 T 的操作是 A) 自然连接 B) 交 C) 投影 D) 并(分数:2.00)A.B.C.D.10.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+z B) int(15.8%5)C) x=y+z+5,+y D) x=25%5.0(分数:2.00)A.B.C.D.11.设有定义下列:inta=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=aB) A) 14 B) 8 C) 5 D) 输出项不合法,无正常输出(分数:1.00)A.B.C.D.13.下列叙述中错

4、误的是( )。 A) 计算机不能直接执行用 C 语言编写的源程序 B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件 C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.14.以下叙述中正确的是_。(A) break 语句只能用于 switch 语句体中(B) continue 语句的作用是:使程序的执行流程跳出包含它的所有循环(C) break 语句只能用在循环体内和 switch 语句体内(D) 在循环体内使用 break 语句和 co

5、ntinue 语句的作用相同(分数:1.00)A.B.C.D.15.结构化程序由三种基本结构组成,三种基本结构组成的算法( )。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务(分数:1.00)A.B.C.D.16.以下叙述中不正确的是( )。 A) 在不同的函数中可以使用相同的名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(分数:1.00)A.B.C.D.17.以下程序运行后的输出结果是#includestdio.

6、hmain()char s=“012xy“; int i, n=0;for(i=0; si!=0; i+)if(si=a printf(“%d/n“, n);A) 0 B) 2 C) 3 D) 5(分数:1.00)A.B.C.D.18.以下程序段中的变量已正确定义for(=0;i4;i+,i+)for(k=1;k3;k+);printf(“*“)程序段的输出结果是_。A) * B) * C) * D) *(分数:2.00)A.B.C.D.19.下面程序段的输出结果是( )。#includestdio.hmain()float x=1.236547;printf(“%f/n“,(int)(x*1

7、000+0.5)/(float)1000);A) 1.237000B) 输出格式说明与输出项不匹配,输出无定值C) 1.236000D) 1.24(分数:1.00)A.B.C.D.20.以下程序的输出结果是( )。main()char w10=“ABCD“,“EFGH“,“IJKL“,“MNOP“),K;for(k=1;k3;k+) printf(“%s/n“,wk);AABCDFGHKLBABCDEFGIJCEFGJKODEFGHIJKL(分数:1.00)A.B.C.D.21.下列选项中不是字符常量的是( )A) /V B) /x2a C) a D) “/0/(分数:2.00)A.B.C.D

8、.22.下列叙述中错误的是( )。A用户定义的函数中可以没有 return 语句B用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D函数的 return 语句中可以没有表达式(分数:1.00)A.B.C.D.23.有以下程序:main()char p=a, b, c, q=“abc“;printf(“% d % d/n“, sizeof(p), sizeof(q);程序运行后的输出结果是_。A) 4 4 B) 3 3 C) 3 4 D) 4 3(分数:2.00)A.B.C.D.24.下列

9、程序执行输出的结果是( )。#includestdio.hf(int a)int b=0;static c=3;a=c+;b+;return(a);main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);printf(“%d/n“,k);A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B.C.D.25.有以下程序:voidf(int*x,int * y)int t;t= *x;*x= *y;*y=t;main()inta8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q= int i,j;for(i=0;iN-1;i+)for(j=i+1;jN;

10、j+)/*比较字符串的首字符大小,并交换字符串的首字符*/if(si0sj0) t=si0; si0=sj0; sj0=t;main()char s510=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5); printf(“%s,%s/n“, ss0,ss4);程序的运行结果是_。(A) xy,aaaacc(B) aaaacc,xy(C) xcc,aabcc(D) acc,xabcc(分数:2.00)A.B.C.D.30.若有说明语句:double*p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是( )。A) *p=scanf(“%1f“

11、,p); B) *p=scanf(“%f“,p);C) p=scanf(“%1f“,*p); D) p=scanf(“%1f“,p);(分数:2.00)A.B.C.D.31.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则下面程序的运行结果是( )。#includestdio.hmain()char c;int v0=1,v1=0,v2=0;do switch(c=getchar()casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1:default:v0+=1;v2+=1;while(c

12、!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:2.00)A.B.C.D.32.若有以下定义和语句char s110=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是A) 5 5 B) 10 5 C) 10 7 D) 5 8A.B.C.D.33.有以下程序:#includestdio.h#define N 8void

13、fun(int*x,int i)*x=*(x+i);main()int aN=1,2,3,4,5,6,7,8),i;fun(a,2);for(i=0;iN/2;i+)printf(“%d“,ai);print*r(”/n”);程序运行后的输出结果是( )。A1313 B2234 C3234 D1234(分数:1.00)A.B.C.D.34.设已包含头文件string.h,下列程序段的运行结果是( )。char s1=“ACDEF“;char s2=“ABC“;strcpy(s1,s2);printf(“%d“,strlen(s1);A) 3 B) 4 C) 6 D) 5(分数:2.00)A.B

14、.C.D.35.有以下程序#include stdio.hvoid fun(int a,int n)int i,t;for(i=0;in/2;i+) t=ai; ai=an-1-i; an-1-i=t;main()int k10=1,2,3,4,5,6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+) printf(“%d“,ki);printf(“/n“);程序的运行结果是_。A) 345678 B) 876543 C) 1098765 D) 321678(分数:2.00)A.B.C.D.36.有以下程序#include stdio.h#include string.ht

15、ypedef stmct char name9;char sex;float score2;STU;void f(STU a)STU b=“Zhao“,m,85.0,90.0; int i;strcpy(a.name,b.name) ;a.sex=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;main( )STU c=“Qian“,f,95.0,92.0;f(c);printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1) ;程序的运行结果是A)Qian,f,95,92 B)Qian,m,85,90

16、C)Zhao,f,95,92 D)Zhao,m,85,90(分数:2.00)A.B.C.D.37.有以下程序:void swapl(int c0, int c1)int t;t=coo; coo=o1o; c1o=t;void swap2(int * c0, int * c1)int t;t=*c0; *c0=*c1; *c1=t;main()int a2=3, 5, b2=A3, 5);swapl(a, a+1); swap2(printf(“%d%d%d%d/n“, a0, a1, b0,b1);程序运行后的输出结果是_。A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D

17、) 5 3 5 3(分数:2.00)A.B.C.D.38.下列程序的输出结果是( )。#includestdio.h#defineF(x)2.84+x#definew(y)printf(“%d“,(int(y)#defineP(y)w(y)pmchar(/nmain()int x2;P(F(5)*x);A) 12 B) 13 C) 14 D) 16(分数:2.00)A.B.C.D.39.以下 scanf 函数调用语句中对结构体变量成员的引用不正确的是char name20;pup5,*p;A) scanf(“%s“,pup0.name); B) scanf(“%d“, B) ch=62+3;

18、C) ch=NULL; D) ch=/xaa;(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:32.00)41.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_42.一个项目具有一个项目经理,一个项目经理可管理多个项目,则实体“项目经理”与实体“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_43.在关系模型中,把数据看成一个二维表,每一个二维表称为一个U /U。(分数:2.00)填空项 1:_44.数据库系统的三级模式分别为U /U模式、内部级模式与外部级模式。(分数:2.00)填空项 1:_45.有以下程序:main(

19、)int t=1, i=5;for(; i=0; i-)t*=i;printf(“% d/n“, t);执行后的输出结果是U /U。(分数:2.00)填空项 1:_46.以下程序的运行结果是_。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:printf(“$“);break;default:prin

20、tf (“);printf(“/n“);(分数:2.00)填空项 1:_47.在 C 语言中,while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_48.语句“int(*ptr)1;”的含义是 2 是指向函数的指针,该函数返回一个 int 型数据。(分数:2.00)填空项 1:_49.下面程序的功能是:输出 100 以内能被 4 整除且个位数为 8 的所有整数,请填空。 main() int i,j; for(i=0=_;i+) j=i*10+8; if(j%4!=0)continue; printf(“%d“,j); (分数:2.00)填

21、空项 1:_以下程序的功能是输出如下形式的方阵:13 14 15 169 10 11 125 6 7 81 2 3 4请填空。main()int i,j,x;for(j=4; jU /U; j-)for(i=1; i=4; i+)x=(j-1)*4 +U /U;printf(“M“,x);printf(“/n“);(分数:4.00)填空项 1:_填空项 1:_50.以下程序的输出结果是_。#include stdio.hvoid swap(int *a, int *b)int *t;t=a;a=b;b=t;main( )int i=3,j=5,*p=i,*q=j;swap(p,q); prin

22、tf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_51.以下程序的输出结果是_。#includestdlib.hmain()char*s1,*s2,m;s1=s2=(char*)malloc(sizeof(char);*s1=15;*s2=20;m=*s1+*s2:printf(“%d/n“,m);(分数:2.00)填空项 1:_52.“printf(“%d/n“,strlen(“/t/“/023/xAB/nC“);”语句的输出结果是_。(分数:2.00)填空项 1:_53.下面程序的功能:输出 100 以内能被 3 整除且个位数为 6 的所有整数,请填空。# inclu

23、destdio. hmain()int i, j;for(i=0; i10 或 i=9; i+)j=i*10+6;if(U /U)continue;printf(“% d“, j);(分数:2.00)填空项 1:_54.下列程序的字符串中各单词之间有一个空格,则程序的输出结果是U /U。#include stdio.h#include string.hmain()char str1=“How do you do“, *p1=str1;strcpy(str1+strlen(str1)/2,“es she“);printf(“%s/n“,p1);(分数:2.00)填空项 1:_二级 C 语言笔试-

24、428 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列数据结构中,属于非线性的是( )。A) 线性表 B) 队列 C) 树 D) 栈(分数:2.00)A.B.C. D.解析:解析 线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。2.设有如下关系表:(分数:2.00)A.B. C.D.解析:解析 仔细观察 3 个表可以看到,R,S,T 具有相同的关系模式,且 T 包含了 R 和 S 的所有元组,故 T=RS。3.下列工具中为需求分析常用工具的是( )

25、。A) PAD B) PFD C) N-S D) DFD(分数:1.00)A.B.C.D. 解析:解析 需求分析常用的工具有数据流图(DFD) 、数据字典(DD) 、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、 N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。4.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C. D.解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况

26、下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。5.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。A) 63 B) 64 C) 6 D) 7(分数:2.00)A.B. C.D.解析:解析 对于长度为 n 的有序线性表,在最坏情况下,顺序查找需要比较 n 次。6.下列描述中正确的是_。A) 程序就是软件 B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体 D) 软件是程序、数据与相关文档的集合(分数:2.00)A.B.C.D. 解析:解析 计算机软件是包括程序、数据及相关文档的完

27、整集合,软件是一种逻辑实体,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。7.结构化分析方法是面向( )的自顶向下逐步求精进行需求分析的方法。A) 对象 B) 数据结构 C) 数据流 D) 目标(分数:2.00)A.B.C. D.解析:解析 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。8.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。A) 属性 B) 关系 C) 键 D) 域(分数:1.00)A.B. C.D.解析:解析 数据库逻辑设计的主要工作是将 E-R 图转换成

28、指定 RDBMS 中的关系模式。从 E-R 图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中属性也可以转换成关系的属性。实体集也可以转换成关系。9.有三个关系 R、S 和 T 如下: * 则由关系 R 和 S 得到关系 T 的操作是 A) 自然连接 B) 交 C) 投影 D) 并(分数:2.00)A. B.C.D.解析:解析 本题考查关系运算的理解。选项 B、C、D 都不会使关系的属性值增加,而本题中 T 的属性值有所增加,所以选项 A 正确。10.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+z B) int(15.8%5)C) x=y+z+5,

29、+y D) x=25%5.0(分数:2.00)A.B.C. D.解析:解析 赋值运算符的左边必须是一个代表某一存储单元的变量名,而 A 选项中的“y*5=x+z”部分是非法赋值。求余运算符的对象只能是整型,故选项 B 和选项 D 是错误的。选项 C 为逗号表达式。11.设有定义下列:inta=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=aB) A) 14 B) 8 C) 5 D) 输出项不合法,无正常输出(分数:1.00)A.B.C. D.解析:评析 在 C 语言中,以“/”开头的字符均为转义字符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x 及 12 位十六进制数,

30、以此来代表一个特定的字符。13.下列叙述中错误的是( )。 A) 计算机不能直接执行用 C 语言编写的源程序 B) C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件 C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D. 解析:解析 C 源程序经过程序编译之后生成一个后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”的软件包文件与 C 语言提供的各种库函数连接起来生成一个后缀为“.exe”的可运行文件。14.以下叙述中正确的是

31、_。(A) break 语句只能用于 switch 语句体中(B) continue 语句的作用是:使程序的执行流程跳出包含它的所有循环(C) break 语句只能用在循环体内和 switch 语句体内(D) 在循环体内使用 break 语句和 continue 语句的作用相同(分数:1.00)A.B.C. D.解析:15.结构化程序由三种基本结构组成,三种基本结构组成的算法( )。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务(分数:1.00)A.B.C. D.解析:解析 C 语言的算法由三种基本结构(顺序结构、选择结

32、构、循环结构)组成,用三种基本结构组成的程序是结构化的程序,结构化的程序完成的是符合结构化的任务。16.以下叙述中不正确的是( )。 A) 在不同的函数中可以使用相同的名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(分数:1.00)A.B.C.D. 解析:解析 此题考查的是变量的作用范围。选项 D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。17.以下程序运行后的输出结果是#includestdio.hmain()char

33、s=“012xy“; int i, n=0;for(i=0; si!=0; i+)if(si=a printf(“%d/n“, n);A) 0 B) 2 C) 3 D) 5(分数:1.00)A.B. C.D.解析:解析 程序的功能是统计字符串“012xy”中小写字母的个数。所以程序的运行结果为 2。18.以下程序段中的变量已正确定义for(=0;i4;i+,i+)for(k=1;k3;k+);printf(“*“)程序段的输出结果是_。A) * B) * C) * D) *(分数:2.00)A.B.C.D. 解析:评析 本题考查的是 for 循环语句的使用以及分号“;”的使用,第一层 for

34、循环由于 i 两次自增运算故执行两次,每执行一次第一层 for 循环,第二条 for 循环语句执行三次,但由于语句后面加了分号,因此这一条空循环语句,结果当第一层的 for 语句执行完,跳出整个循环语句后,执行 printf 语句,因此执行一次 printf 语句,选项 D 是正确的。19.下面程序段的输出结果是( )。#includestdio.hmain()float x=1.236547;printf(“%f/n“,(int)(x*1000+0.5)/(float)1000);A) 1.237000B) 输出格式说明与输出项不匹配,输出无定值C) 1.236000D) 1.24(分数:1

35、.00)A. B.C.D.解析:解析 本题中,(int)(x*1000+0.5)的结果为 1237,(float)1000 是将 1000 强制转换成 float 类型;整个表达式(int)(x*1000+0.5)/(float)1000 的结果为 1.237000,再以实数(6 位小数)形式输出。20.以下程序的输出结果是( )。main()char w10=“ABCD“,“EFGH“,“IJKL“,“MNOP“),K;for(k=1;k3;k+) printf(“%s/n“,wk);AABCDFGHKLBABCDEFGIJCEFGJKODEFGHIJKL(分数:1.00)A.B.C.D.

36、解析:解析 当 k=1 时,循环成立,输出 w1的数组即 EFGH,接着执行 k+后 k 为 2;当 k=2 时,循环成立,输出 w2的数组即 IJKL,接着执行 k+后,k 为 3;当 k=3 时,循环不成立,退出。21.下列选项中不是字符常量的是( )A) /V B) /x2a C) a D) “/0/(分数:2.00)A.B.C.D. 解析:解析 C 语言规定,一个字符常量代表 ASCII 码字符集里的一个字符,在程序中用单引号括起来,以便区分。“/v”表示的是竖向跳格;“/x2a”表示的是两位+六进制数;“a”表示的是字符 a 对应的 ASCII码值。22.下列叙述中错误的是( )。A

37、用户定义的函数中可以没有 return 语句B用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D函数的 return 语句中可以没有表达式(分数:1.00)A.B. C.D.解析:解析 本题考查 return 语句,return 语句有以下几个特点:用户定义的函数中可以没有返回语句。一个函数体内可以有多个返回语句,不论执行哪一个,函数都可以结束,回到主函数,但是调用一次只能有一个返回值,为了保证函数不返回任何值,C 语言规定,可以定义无类型函数,其形式为 void functionnam

38、e(参数一,参数二,)。当函数中不需要指明返回值对,可以写成 return。23.有以下程序:main()char p=a, b, c, q=“abc“;printf(“% d % d/n“, sizeof(p), sizeof(q);程序运行后的输出结果是_。A) 4 4 B) 3 3 C) 3 4 D) 4 3(分数:2.00)A.B.C. D.解析:解析 因为在 C 语言中对于字符串都会在最后加上结束标志/0,因此,q 的民度为 4。24.下列程序执行输出的结果是( )。#includestdio.hf(int a)int b=0;static c=3;a=c+;b+;return(a)

39、;main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);printf(“%d/n“,k);A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B. C.D.解析:解析 本题考查函数调用时的参数传递。在函数调用时,static 变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。在主函数中,第一次循环,i=0,调用 k=f(a+)=f(2),调用完之后才将 a 加 1,a 变为 3,在 f(2)中,先将 c=3 赋值给 a 返回,然后将 c 加 1,得到 k=a=3,c=4。第二次循环,i=1,调用 k=f(a+)=f(3),调用完之后才将 a 加

40、 1,a 变为 4,在 f(3)中,先将 c=4 赋值给a 返回,然后将 c 加 1,得到 k=a=4,c=5。25.有以下程序:voidf(int*x,int * y)int t;t= *x;*x= *y;*y=t;main()inta8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q= int i,j;for(i=0;iN-1;i+)for(j=i+1;jN;j+)/*比较字符串的首字符大小,并交换字符串的首字符*/if(si0sj0) t=si0; si0=sj0; sj0=t;main()char s510=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc

41、“;fun(ss,5); printf(“%s,%s/n“, ss0,ss4);程序的运行结果是_。(A) xy,aaaacc(B) aaaacc,xy(C) xcc,aabcc(D) acc,xabcc(分数:2.00)A.B.C.D. 解析:30.若有说明语句:double*p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是( )。A) *p=scanf(“%1f“,p); B) *p=scanf(“%f“,p);C) p=scanf(“%1f“,*p); D) p=scanf(“%1f“,p);(分数:2.00)A.B.C.D. 解析:解析 double *p,a;语句表示

42、定义了一个指向双精度型的指针变量 p 和双精度型变量 a,而语句p=int v0=1,v1=0,v2=0;do switch(c=getchar()casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1:default:v0+=1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:2.00)A.B.C

43、.D. 解析:解析 本题考查的是 switch 语句的应用。分析程序,do-while 语句是先执行 do 后面的语句再判断是否符合 while 的条件。V2+=1;语句无论读入的是什么字母(包括回车符),此语句都要执行,语句default:v0+=1;亦是如此;而语句 caseU:v1+=1;只有在读入的字母是a、A、e、E、i、I、o、O、u、U时才会执行。32.若有以下定义和语句char s110=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是A) 5 5 B) 10 5 C) 10 7 D) 5 8A.

44、 B.C.D.解析:解析 计算字符串长度是从第一个字符开始到/0前的一个字符结束。第一个字符串长度为5,分别为a、b、c、d、!第二个字符串的长度也为 5,分别为/n,1,2,3,/,其中/n和/均表示一个字符。33.有以下程序:#includestdio.h#define N 8void fun(int*x,int i)*x=*(x+i);main()int aN=1,2,3,4,5,6,7,8),i;fun(a,2);for(i=0;iN/2;i+)printf(“%d“,ai);print*r(”/n”);程序运行后的输出结果是( )。A1313 B2234 C3234 D1234(分数

45、:1.00)A.B.C. D.解析:解析 本题考查了宏定义与局部变量的区别,宏定义的作用范围为整个程序,而变量的作用范围只在定义它的函数体的部分,因此,主函数中定义的 i 与 fun()中的 i 互不相干。34.设已包含头文件string.h,下列程序段的运行结果是( )。char s1=“ACDEF“;char s2=“ABC“;strcpy(s1,s2);printf(“%d“,strlen(s1);A) 3 B) 4 C) 6 D) 5(分数:2.00)A. B.C.D.解析:解析 头文件string.h是字符串处理函数对应的头文件,要想调用 C 语言的库函数时,都要在程序中嵌入该函数对

46、应的头文件,否则无法使用库函数。strcpy(s1,s2)把,2 中的字符串复制到 s1 中,所以结果就为 s2 的长度。35.有以下程序#include stdio.hvoid fun(int a,int n)int i,t;for(i=0;in/2;i+) t=ai; ai=an-1-i; an-1-i=t;main()int k10=1,2,3,4,5,6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+) printf(“%d“,ki);printf(“/n“);程序的运行结果是_。A) 345678 B) 876543 C) 1098765 D) 321678(分数:2.00)A.B.C.D. 解析:评析 在主函数中,定义了一维数组 k,并通过调用 fun 函数将形参数组 a 指向实参数组 k 所在的存储单元,这样,a 和 k 共用同一存储单元,所以对数组 a 的元素值的改变相当于对相应数组 k 的元素值的改变。在 fun 函数中,通过 for

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

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

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