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

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

1、二级 C 语言笔试-449 及答案解析(总分:99.50,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.下列叙述中错误的是( )。A) 一种数据的逻辑结构可以有多种存储结构B) 数据的存储结构与数据的处理效率无关C) 数据的存储结构与数据的处理效率密切相关D) 数据的存储结构在计算机中所占的空间不一定是连续的(分数:2.00)A.B.C.D.2.数据的存储结构是指( )。A) 数据所占的存储空间 B) 数据的逻辑结构在计算机中的存放形式C) 数据在计算机中的顺序存储方式 D) 存储在计算机外存中的数据(分数:2.00)A.B.C.D.3.下列叙述中正确的是_。A) 线性

2、链表是线性表的链式存储结构B) 栈与队列是非线性结构C) 双向链表是非线性结构D) 只有根结点的二叉树是线性结构(分数:2.00)A.B.C.D.4.为了使模块尽可能独立,要求A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:2.00)A.B.C.D.5.数据库设计的根本目标是要解决_。A) 数据共享问题 B) 数据安全问题C) 大量数据存储问题 D) 简化数据维护(分数:2.00)A.B.C.D.6.软件

3、(程序)调试的任务是( )。A诊断和改正程序中的错误 B尽可能多地发现程序中的错误C发现并改正程序中的所有错误 D确定程序中错误的性质(分数:1.00)A.B.C.D.7.有两个关系 R、S 如下:(分数:2.00)A.B.C.D.8.关系表中的每一横行称为一个A) 元组 B) 字段 C) 属性 D) 码(分数:2.00)A.B.C.D.9.有以下程序:main()unsignedchar a,b;a= 4|3;b=4printf(“%d%d/n“,a,b);执行后输出结果是 _。A) 7 0 B) 0 7 C) 1 1 D) 43 0(分数:2.00)A.B.C.D.10.数据库设计的四个阶

4、段是:需求分析、概念设计、逻辑设计和A) 编码设计 B) 测试阶段 C) 运行阶段 D) 物理设计(分数:2.00)A.B.C.D.11.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。A) 课号,成绩 B) 学号,成绩 C) 学号,课号 D) 学号,姓名,成绩(分数:2.00)A.B.C.D.12.在 ASCII 代码表中每一个大写字母比它相应的小写字母的 ASCII 码( )。A) 小 32 B) 小 64C) 大 32 D) 大 1(分数:2.00)A.B.C.D.13.下

5、列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,y=2,z=0;if(c0) x=x+y;if(a=0)if(b0)if(c=0) y= x - y;else if(c0) y=x-y;else z= y;printf(“%d,%d,%d/n“, x, y, z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A.B.C.D.14.以下叙述中不正确的是( )。 A) 在不同的函数中可以使用相同的名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合

6、语句中定义的变量在本函数范围内有效(分数:1.00)A.B.C.D.15.有以下程序main()int k=5;while(-k)printf(“%d“,k-=3);printf(“/n“);执行后的输出结果是_。(A) 1(B) 2(C) 4(D) 死循环(分数:1.00)A.B.C.D.16.若有定义语句 int a,b;double x;则下列选项中没有错误的是( )。 A) switch(x%2) cage 0:a+;break; case 1:b+;break; default:a+;b+; B) switch(int)x/2.0) ease 0:a+;break; case 1:b

7、+;break; default:a+;b+; C) switeb(int)x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D) switch(int)(x)%2) case 0.0:a+;break; case 1.0:b+;break; default:a+;b+; (分数:1.00)A.B.C.D.17.若有说明语句:int a,b,c,*d=,则能正确从键盘读入 3 个整数分别赋给变量 a、b、c 的语句是 _。A) scanf(“%d %d %d“,B) scanf(“%d %d %d“,C) scanf(“%d %d %d

8、“,a,b,d);D) scanf(“% d% d%d“,a,b,*d);(分数:1.00)A.B.C.D.18.若变量已正确定义,下列正确的程序段是( )。A) while(ch=getchar()=/N)putchar(ch);B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D.19.有以下程序:# includestdio.hmain()char c1=1,c2=2;c1=getch

9、ar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a回车后,以下叙述正确的是 _。A) 变量 c1 被赋予字符 a,c2 被赋予回车符B) 程序将等待用户输入 2 个字符C) 变量 c1 被赋予字符 a,c2 中仍是原有字符 2D) 变量 c1 被赋予字符 a,c2 中将无确定值(分数:2.00)A.B.C.D.20.有以下程序:#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(

10、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);程序的运行结果是_。A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A.B.C.D.21.以下程序的输出结果是#includestdio.hinfun(int n,int *s)int n,f2;if(n=0n=1)*s=1;elsefun(n-1,printf(“%d/n“,m);程序的运行结果是

11、A) 0 B) 1 C) 2 D) 3(分数:1.00)A.B.C.D.23.有以下程序 A: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=2,e,f,g;e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,g);程序运行后的输出结果是_。A) 4,3,7 B) 3,4,7 C) 5,2,7 D) 2,5,7(分数:2.00)A.B.C.D.24

12、.有以下程序:#includestdio.hvoid WriteStr(char *fn, char *sir)FILE * fP;fP=fopen(fn,“w“);fput6(str,fp);fclose(fp);main()WriteStr(“t1.dar“,“start“);WrlteStr(“t1dat“,“end“);程序运行后,文件 t1.dat 中的内容是( )。A) start B) end C) startend D) endrt(分数:1.00)A.B.C.D.25.下面函数调用语句含有实参的个数为func(exp1,exp2)(exp3,exp4,exp5);A) 1 B

13、) 2 C) 4 D) 5(分数:2.00)A.B.C.D.26.若有语句:char *line5;以下叙述中正确的是( )。A) 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C) 定义 line 是一个指针数组,语句中的号称为求地址运算符D) 定义 line 是一个指向字符型函数的指针(分数:1.00)A.B.C.D.27.有下列程序:main()int k=5,n=0;doswitch(k)case 1: case 3:n+=1;k-;break;default:n=0;k-;c

14、ase 2: case 4;n+=2;k-;break;printf(“%d“,n);while(k0 程序运行后的输出结果是( )。A) 235 B) 0235 C) 02356 D) 2356(分数:2.00)A.B.C.D.28.有以下程序#includestdio.h#define N 4void fun(int aN,int b)int i;for(i=0;iN;i+)bi=aii-aiN-1-i;void main()int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,yN,i;fun(x,y);for(i=0;iN;i+)printf(“

15、%d,“,yi);printf(“/n“);程序运行后的输出结果是( )。A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3,(分数:2.00)A.B.C.D.29.以下函数按每珩 8 个输出数组中的数据void fun( iht*w, int n)inti;for(i=0;in,i+)_printf(“%d“,wi);printf(“/n“);下划线处应填入的语句是_。A) if(i/80)printf(“/n); B) if(i/8=0)continue;C) if(i%8=0)printf(“/n“); D) if(i%8=0)cont

16、inue;(分数:2.00)A.B.C.D.30.有以下程序:#includestdio.hmain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(“%d/n“,s);程序运行后的输出结果是( )。A6 B10 C11 D15(分数:1.00)A.B.C.D.31.有以下程序#includestdio.hmain()FILE*fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d3dat“,“w+b“);fwrite(a,sizeof(int),6,fp);fseek(fp,sizeof(in

17、t),3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3 个 int 型数据*/fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;6;+)printf(“%d,“,ai);程序运行后的输出结果是A) 4,5,6,4,5,6, B) 1,2,3,4,5,6,C) 4,5,6,1,2,3, D) 6,5,4,3,2,1,(分数:2.00)A.B.C.D.32.有以下程序:#includestdio.hvoid fun(char *c,int d)*c=*c+1;d+=1;printf(“%c,%c“,*c,d);main()char a

18、=F,b=f;fun(printf(“%c,%c/n“,a,b);程序的输出结果为( )。A) g,GF,g B) g,FF,g C) G,fF,G D) f,gf,g(分数:2.00)A.B.C.D.33.以下语句定义正确的是( )。 A) int a14=1,2,3,4,5; B) float a31=1,2,3; C) long a23=1,1,2,1,2,3,0,0;D)double a3=0;(分数:2.00)A.B.C.D.34.在 C 语言中引用数组元素时,其数组下标的数据类型只能是( )。A) 整型常量 B) 整型表达式C) 整型常量或整型表达式 D) 任何类型的表达式(分数:

19、1.00)A.B.C.D.35.下面函数的功能是( )。 sss(s,t) char*s,*t; while(*s); while(*t) *(s+)=*(t+); return s; A) 将字符串 s 复制到字符串 t 中 B) 比较两个字符串的大小 C) 求字符串的长度 D) 将字符串 t 续接到字符串 s 中(分数:2.00)A.B.C.D.36.下述程序向文件输出的结果是 _。#includestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%5.0f%c%d“,58,76273.0-,2278);fclose(fp);

20、A) 58 76273-2278 B) 5876273.000000-2278C) 5876273-2278 D) 因文件为二进制文件而不可读(分数:2.00)A.B.C.D.37.有以下定义和语句:struet workersint num;char name20;char c;Structint day;int month;int year;s;struct workers w,*pw;pw=a=c;c=t;if(acbc)t=b;b=a;a=tprintf(“%d%d%d/n“,a,b,c);(分数:2.00)填空项 1:_48.以下程序运行后的输出结果是_。void swap(int

21、x,int y)int t;t=x;x=y;y=t;printf(“%d%d“,x,y);main()int a=3,b=4;swap(a,b); printf(“%d%d/n“,a,b);(分数:2.00)填空项 1:_49.以下程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。main( )int x10,a9,i;for(i=0;i10;i+) scanf(“%d“,xi);for(U /U;i10;i+)ai-1=xi+U /U;for(i=0;i9;i+) printf(“%d“,ai);printf(“);(分数:4.00)填空项 1:_50

22、.以下程序的运行结果是U /U。# includestring.htypedef struct studentchar name10;long sno);float scoreSTU;main()STU a=“zhangsan“,2001,95,b=“Shangxian“,2002,90c=“Anhua“,2003,95,d,*p=d=a;if(strcmp(a.name,b.name)0)d=b;if(strcmp(c.name,d.name)0)d=c;printf(“%1d%s/n“,d.sno,p-name);(分数:2.00)填空项 1:_51.请将下列程序中的函数声明语句补充完整。

23、#includestdio.hint_;main()int x,y(*p)( );scanf(“%d%d“,a+=3;printf(“%d“,a);main()int cc;for(cc=1;cc=4;cc+)fun();printf(“/n“);(分数:2.00)填空项 1:_53.以下程序运行后的输出结果是U /U。# includestring.hvoid fun(char *s,int p,int k)int i;for(i=p;ik-1;i+)si=si+2;main()char s=“abcdefg“;fun(s,3,strlen(s);puts(s);(分数:2.00)填空项 1

24、:_54.#define 命令出现在程序中函数的外面,宏名的有效范围为 1。(分数:2.00)填空项 1:_55.有以下程序:float f1(float n)return n*n; float f2(float n)return 2*n; main()float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0);t=P1;p1=p2;p2=t;y2=p2(p1(2.0);printf(“%3.0f,%3.0f/n“,y1,y2);程序运行后的输出结果是U /U。(分数:2.00)填空项 1:_二级 C 语

25、言笔试-449 答案解析(总分:99.50,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.下列叙述中错误的是( )。A) 一种数据的逻辑结构可以有多种存储结构B) 数据的存储结构与数据的处理效率无关C) 数据的存储结构与数据的处理效率密切相关D) 数据的存储结构在计算机中所占的空间不一定是连续的(分数:2.00)A.B. C.D.解析:解析 数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。2.数据的存储结构

26、是指( )。A) 数据所占的存储空间 B) 数据的逻辑结构在计算机中的存放形式C) 数据在计算机中的顺序存储方式 D) 存储在计算机外存中的数据(分数:2.00)A.B. C.D.解析:解析 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。3.下列叙述中正确的是_。A) 线性链表是线性表的链式存储结构B) 栈与队列是非线性结构C) 双向链表是非线性结构D) 只有根结点的二叉树是线性结构(分数:2.00)A. B.C.D.解析:解析 线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元

27、素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构。线性链表:线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。4.为了使模块尽可能独立,要求A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:2.00)A.B. C.D.解析:解析 模块的独立程度可以由两个定性标准度量:耦合性和内聚性。耦合性是衡量不同模

28、块彼此间互相依赖 (连接)的紧密程度;内聚性是衡量一个模块内部各个元素彼此结合的紧密程度。一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。5.数据库设计的根本目标是要解决_。A) 数据共享问题 B) 数据安全问题C) 大量数据存储问题 D) 简化数据维护(分数:2.00)A. B.C.D.解析:解析 数据库集中了各种应用的数据,进行统一的构造与存储,从而使它们能够被不同的应用程序所使用。6.软件(程序)调试的任务是( )。A诊断和改正程序中的错误 B尽可能多地发现程序中的错误C发现并改正程序中的所有错误 D确定程序中错误的性质(分数:1.00)A. B.C.D.解析:解析 调试的目

29、的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动。7.有两个关系 R、S 如下:(分数:2.00)A.B. C.D.解析:解析 专门的关系运算有 3 种:投影、选择和连接。选择运算是从关系中找出满足给定条件的那些元组,其中的条件是以逻辑表达式给出的,值为真的元组将被选取,这种运算是从水平方向抽取元组的。投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。连接运算是二目运算,需要两个关系作为操作对象。8.关系表中的每一横行称为一个A) 元组 B) 字段 C) 属性 D) 码(分数:2.00)A. B.C.D.解析:解

30、析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。9.有以下程序:main()unsignedchar a,b;a= 4|3;b=4printf(“%d%d/n“,a,b);执行后输出结果是 _。A) 7 0 B) 0 7 C) 1 1 D) 43 0(分数:2.00)A. B.C.D.解析:解析 a=43=00000100|00000011=00000111=7,b=4int x=0,y=2,z=0;if(c0) x=x+y;if(a=0)if(b0)if(c=0) y= x - y;else

31、 if(c0) y=x-y;else z= y;printf(“%d,%d,%d/n“, x, y, z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A. B.C.D.解析:解析 本题考查 if else 语句的使用。先判断第 1 个 if 语句,因为 c=10,所以 x=x+y=0+2=2。第 1 个 if 语句,因为 a=-50,所以进入下列的复合语句。经判断发现,复合语句中第 2 个 if 语句的条件均不满足,不执行任何语句退出,在这个过程中 y 和 z 的值没有发生变化。14.以下叙述中不正确的是( )。 A) 在不同的函数中可以使用相同的

32、名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(分数:1.00)A.B.C.D. 解析:解析 此题考查的是变量的作用范围。选项 D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。15.有以下程序main()int k=5;while(-k)printf(“%d“,k-=3);printf(“/n“);执行后的输出结果是_。(A) 1(B) 2(C) 4(D) 死循环(分数:1.00)A. B.C.D.解析:16.若有定义语句

33、int a,b;double x;则下列选项中没有错误的是( )。 A) switch(x%2) cage 0:a+;break; case 1:b+;break; default:a+;b+; B) switch(int)x/2.0) ease 0:a+;break; case 1:b+;break; default:a+;b+; C) switeb(int)x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D) switch(int)(x)%2) case 0.0:a+;break; case 1.0:b+;break; defau

34、lt:a+;b+; (分数:1.00)A.B.C. D.解析:解析 %运算符两边的表达式必须是整型,所以选项 A)、B)错误。选项 D 中 switch 后的表达式类型和 case 后的表达式类型不一致。17.若有说明语句:int a,b,c,*d=,则能正确从键盘读入 3 个整数分别赋给变量 a、b、c 的语句是 _。A) scanf(“%d %d %d“,B) scanf(“%d %d %d“,C) scanf(“%d %d %d“,a,b,d);D) scanf(“% d% d%d“,a,b,*d);(分数:1.00)A. B.C.D.解析:解析 scanf 函数中格式控制后面应为变量地

35、址列表,因此选项 C 和选项 D 都错误,选项 B 中“c2=getchar();putchar(c1);putchar(c2);当运行时输入:a回车后,以下叙述正确的是 _。A) 变量 c1 被赋予字符 a,c2 被赋予回车符B) 程序将等待用户输入 2 个字符C) 变量 c1 被赋予字符 a,c2 中仍是原有字符 2D) 变量 c1 被赋予字符 a,c2 中将无确定值(分数:2.00)A. B.C.D.解析:解析 getchar 函数读入字符时,空格、回车符都作为字符读入,因此 A 正确。20.有以下程序:#includestdio.h#includestring.hvoid fun(ch

36、ar*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);程序的运行结果是_。A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A. B.C.D.解析:解析 函数 fun 的功能是:采用冒泡排序法,对字符串数组 s 中 n

37、个字符串按照字符串的长度由小到大进行排序,s0指向长度最小的字符串“xy”,s4指向长度最大的字符串“aaaacc”。21.以下程序的输出结果是#includestdio.hinfun(int n,int *s)int n,f2;if(n=0n=1)*s=1;elsefun(n-1,printf(“%d/n“,m);程序的运行结果是A) 0 B) 1 C) 2 D) 3(分数:1.00)A.B. C.D.解析:解析 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为“ji”,而 j 的初值为 3,故当 i 的值为 1 和 2 时,内层循环体都不会被执行。只有当 i 和 j

38、都等于3 时才会执行一次。m 的值为 55 对 3 取模,计算结果为 1。23.有以下程序 A: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=2,e,f,g;e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,g);程序运行后的输出结果是_。A) 4,3,7 B) 3,4,7 C) 5,2,7 D) 2,5,7(分数:2.00)A. B.C.D.

39、解析:解析 本题的函数 f1 是求两个数中的最大数,而函数 f2 是求两个数中的最小数。因此,“e=f2(f1(a,b),f1(c,d);”是先调用函数 f1 分别求出 a、b 中的最大数 4,c、d 中的最大数 5,再调用函数 f2 求出 4 和 5 中的最小数 4,e 的值为 4。而“f=f1(f2(a,b),f2(c,d);”是先调用函数 f2,分别求出 a、b 中的最小数 3,c、d 中的最小数 2,再调用函数 f1 求出 3 和 2 中的最大数 3,f 的值为3。g=a+b+c+d-e-f 结果是 4+3+5+2-4-3=7。输出结果应该是:4,3,7。24.有以下程序:#inclu

40、destdio.hvoid WriteStr(char *fn, char *sir)FILE * fP;fP=fopen(fn,“w“);fput6(str,fp);fclose(fp);main()WriteStr(“t1.dar“,“start“);WrlteStr(“t1dat“,“end“);程序运行后,文件 t1.dat 中的内容是( )。A) start B) end C) startend D) endrt(分数:1.00)A.B. C.D.解析:解析 在 main 函数中,两次调用 WriteStr 函数,即两次执行 fp=fopen(fn,“w“);语句,以“写入”方式打开

41、 fn 所指向的同一文件,当第二次打开文件时,文件指针指向文件头,写入的数据将覆盖文件中原有的数据。fputs(str,fp)函数的功能是将字符指针*str 的值输出到 fp 所指向的文件中,故本题中 t1.dat 的内容为 end。25.下面函数调用语句含有实参的个数为func(exp1,exp2)(exp3,exp4,exp5);A) 1 B) 2 C) 4 D) 5(分数:2.00)A.B. C.D.解析:解析 函数调用的一般形式为:函数名(形参表)若函数无形参,调用形式为:函数名(),当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用语句的

42、参数个数为 2 个。26.若有语句:char *line5;以下叙述中正确的是( )。A) 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C) 定义 line 是一个指针数组,语句中的号称为求地址运算符D) 定义 line 是一个指向字符型函数的指针(分数:1.00)A. B.C.D.解析:解析 由于运算符优先级比*高,所以 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量。27.有下列程序:main()int k=5,n=0;doswitch(k)case 1:

43、 case 3:n+=1;k-;break;default:n=0;k-;case 2: case 4;n+=2;k-;break;printf(“%d“,n);while(k0 程序运行后的输出结果是( )。A) 235 B) 0235 C) 02356 D) 2356(分数:2.00)A.B. C.D.解析:解析 因为变量的初始值分别为 k=5,n=0,所以程序第 1 次进入循环时,执行 default 语句,输出 0,k 减 1;这时 n=0,k=4,程序进行第 2 次循环,执行 case 4:这个分支,结果是 n=2,k=3,打印出2;这时 n=2,k=3,程序进行第 3 次循环,执行

44、 case 3:这个分支,结果是 n=3,k=2,打印出 3;这时n=3,k=2,程序然后进行第 4 次循环,执行 case 2:case 4:这个分支,结果是 n=5,k=1,打印出 5,这时因为 n=5 不满足 n5 的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印出的结果是 0235。28.有以下程序#includestdio.h#define N 4void fun(int aN,int b)int i;for(i=0;iN;i+)bi=aii-aiN-1-i;void main()int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y

45、N,i;fun(x,y);for(i=0;iN;i+)printf(“%d,“,yi);printf(“/n“);程序运行后的输出结果是( )。A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3,(分数:2.00)A.B. C.D.解析:解析 fun 函数的功能是求出二维数组 a 中第 i 行第 i 个元素与第 N-1-i 元素的差,赋给 bi。在主函数中,把实参二维数组 x 和一维数组 y 传递给形参 a 和 b,最后输出一维数组 y 中元素的值。29.以下函数按每珩 8 个输出数组中的数据void fun( iht*w, int n)in

46、ti;for(i=0;in,i+)_printf(“%d“,wi);printf(“/n“);下划线处应填入的语句是_。A) if(i/80)printf(“/n); B) if(i/8=0)continue;C) if(i%8=0)printf(“/n“); D) if(i%8=0)continue;(分数:2.00)A.B.C. D.解析:评析 本题主要考查输出换行的问题,要求每行 8 个输出,因此,下划线处应填的语句是if(i%80)printf(“/n“);选项 A 相当于空行,前七个数每输出个数换行,从第八个数以后不换行输出剩下的数。选项 B 相当于前八个数不输出,从第九个数开始不换

47、行输出剩下的数。选项 D 相当于不换行从数组中的第二个数开始输出,凡是 i 对 8 取模为 0 的数,均不输出。所以选项 C 是正确的。30.有以下程序:#includestdio.hmain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(“%d/n“,s);程序运行后的输出结果是( )。A6 B10 C11 D15(分数:1.00)A.B.C. D.解析:解析 本题考查数组的使用。本题定义了两个数组,注意数组的下标是从 0 开始的,进行第 1 次:for 循环:当 i=0 时,b0为数组 b 中第 1 个元素,结果为 0,那么 a0也是数组 a 中第 1 个元素,结果为 1,所以 s 的值为 1。第 2 次循环:i 此时自加为 1,b1为数组的第 2 个元素,值为 2,所以可求出a2(数组中的第 3 个元素)的值为 3,s=s+3,所以 s

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

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

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