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

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

1、二级 C语言笔试-255 及答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.在数据库设计的四个阶段中,为关系模式选择存取方法应该是在_阶段。(分数:1.00)A.需求分析B.概念设计C.逻辑设计D.物理设计2.以下不能定义为用户标识符的是(分数:1.00)A.scanfB.VoidC._3com_D.int3.若 fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(中)的值为(分数:1.00)A.0B.1C.-1D.一个非 0值4.与数学式子 (分数:1.00)A.3*xn(2*x-1)B.3*x*n(2*x-1)C.3*p

2、ow(x,n)*(1/(2*x-1)D.3*pow(n,x)/(2*x-1)5.若有说明语句:int a,b,c,*d=printf (“%d/n“,strlen(s);(分数:1.00)A.9B.12C.13D.148.以下程序的输出结果是main()int a=0,i;for(i=1;i5 i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(“%d/n“,(分数:1.00)A.;A) 31B.13C.10D.209.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10vo

3、id arrin(int xN)int i=0;while(iN)scanf(“%d“, _);在下划线处应填入的是(分数:1.00)A.x+iB.p=s;printf(“%c“,*p+);pritnf(“%c“,*p+);程序运行后的输出结果是(分数:1.00)A.15B.16C.12D.5911.以下数据结构中属于线性数据结构的是(分数:1.00)A.集合B.线性表C.二叉树D.图12.有以下程序int a=3;main()int s=0;int a=5; s+=a+; s+=a+;printf(“%d/n“,s);程序运行后的输出结果是(分数:1.00)A.8B.10C.7D.1113.

4、以下选项中可作为 C语言合法整数的是(分数:1.00)A.10110BB.0386C.0XffaD.x2a214.有以下程序main()int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7 i+;printf(“%d/n“,k);执行后输出的结果足(分数:1.00)A.58B.56C.45D.2415.有定义语句:“int x,y;”,若要通过“scanf(“%d,%d,return y;main()int a=9,b=8,c=7;print f (“%c/n“ , fun(fun(a, B) , fun(b, C) ) );程序的执行结果是(分数:1.00

5、)A.函数调用出错B.8C.9D.717.有以下程序:void swapl(int c)int t;t=c0; c0=c1; c1=t;void swap2int c0, int c1)int t;t=c0; c0=c1; c1=t;main()int a2=3,5, b2=3,5;swap1 ((分数:1.00)A.; swap2 (b0,b1);printf(“%d %d %d %d/n“,a0,a1,b0,b1);其输出结果是 A) 5 3 5 3B.5 3 3 5C.3 5 3 5D.3 5 5 318.算法执行过程中所需要的存储空间称为算法的(分数:1.00)A.时间复杂度B.计算工

6、作量C.空间复杂度D.工作空间19.有以下程序int f (int(分数:1.00)A.return a%2; main ( )int s8=1,3,5,2,4,6),i,d=0;for (i=0; f(si; i+) d +=si;print f (“%d/n“,D) ;程序运行后的输出结果是 A) 9B.11C.19D.2120.下列描述中正确的是(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合21.以下程序的输出结果是#include stdio.h#include string,hmain()cha

7、r b18=“abcdefg“,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pB) ;printf(“%d/n“,strlen(b2);(分数:1.00)A.8B.3C.1D.722.以下选项中不属于 C语言的类型的是(分数:1.00)A.signed short intB.unsigned long intC.unslgned intD.long short23.有以下程序#include stdio.hmain()FILE *fp; int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);f

8、printf(fp,“%d/n“,j);fclose(fp);fp=fopen(“d1.dat“, “r“);fp=fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是(分数:1.00)A.20 30B.20 50C.30 50D.302024.有以下程序:void f(int v , int w)int t;t=v;v=w;w=t;main()int x=l,y=3,z=2;if(xy f(x,y);else if(yz) f(y,z);else f(x,z);printf(“%d,%d,%d/n“,x,y,z);执行后输

9、出结果是(分数:1.00)A.1,2,3B.3,1,2C.1,3,2D.2,3,125.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 ,则以下表达式中值为零的是(分数:1.00)A.c1c2B.c1main()int i;for (i=1;ix;i+) incre();incre()staic int x=1;x*=x+1;printf(“ %d“,x);(分数:1.00)A.3 3B.22C.26D.2528.有以下程序:void sum(int *(分数:1.00)A.a0 =a1; main ( )int aa10=1,2,3,4,5,6,7,8,9,10,

10、i;for (i=2 ;i=0;i-) sum(print f (“%d/n“,aa0);执行后的输出结果是 A) 4B.3C.2D.129.若变量已正确定义,要求程序段完成求 51的计算,不能完成此操作的程序段是(分数:1.00)A.for(i=1,p=1;i=5;i+) p*=i;B.for(i=1;i=5;i+) p=1; p*=i;C.i=1; p=1; while(i=5)p*=i; i+;D.i=1;p=1;dop*=i; i+; while(i=5)30.检查软件产品是否符合需求定义的过程称为(分数:1.00)A.确认测试B.集成测试C.验证测试D.验收测试31.以下对结构体类型

11、变量 td的定义中,错误的是(分数:1.00)A.typedef struct aa int n; float m; AA; AA td;B.stmct aaint n;float m;td;stmct aa td;C.struct int n; float m; aa; struct aa rd;D.structint n;float m;td;32.有以下程序main()int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0;i3;i+)printf(“%d “,mki); 执行后输出结果是(分数:1.00)A.456B.2 5 8C.3 6 9D.7 8

12、 933.有以下程序main()int a,b,d=25;a=d/10 % 9; b=a printf (“%d,%d/n“,a,B) ;程序运行后的输出结果是(分数:1.00)A.6,1B.2,1C.6,0D.2,034.在结构化程序设计方法中,下面哪种内聚的内聚性最弱?(分数:1.00)A.逻辑内聚B.时间内聚C.偶然内聚D.过程内聚35.有以下程序#include string.hstruct STUchar name10;int num;void f(char *name, int num)struct STU s2=“SunDan“,20044,“Penghua“,20045;num

13、=s0.num;strcpy(name,s0.name);main()struct STU s2=“YangSan“,20041,“LiSiGuo“,20042,*p;p=f(p-name,p-num);printf(“%s %d/n“,p-name,p-num);程序运行后的输出结果是(分数:1.00)A.SunDan 20042B.SunDan 20044C.LiSiGuo 20042D.YangSan 2004136.若有定义:int aa8则以下表达式中不能代表数组元 aa1的地址的是(分数:1.00)A. float score3; ;main()struct STU s3=“200

14、21“,90,95,85,“20022“,95,80,75,“20023“,100,95,90,*p=s;int i; float sum=0;for(i-0;i3,i+)sum=sum+p-scorei;printf(“%6.2f/n“,sum;程序运行后的输出结果是(分数:1.00)A.260.00B.270.00C.280.00D.285.0038.支持数据库各种操作的软件系统叫做(分数:1.00)A.数据库管理系统B.文件系统C.数据库系统D.操作系统39.若有定义:int x=0,*p=,则语句 printf(“%d/n“,*p);的输出结果是(分数:1.00)A.随机值B.0C.x

15、的地址D.p的地址40.有以下程序#include string.h main ( )char p=a,b ,c, q10=a,b,c;printf(“%d %d/n“,strlen(p),strlen(q);以下叙述中正确的是(分数:1.00)A.在给 p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 p数组中没有字符申结束符,长度不能确定;但 q数组中字符串长度为 3C.由于 q数组中没有字符串结束符,长度不能确定:但 p数组中字符串长度为 3D.由于 p和 q数组中都没有字符串结束符,故长度都不能确定41.数据库系统可分为三级模式,下列选项中不属于数据库三级

16、模式的是(分数:1.00)A.抽象模式B.外模式C.概念模式D.内模式42.以下说法不正确的是(分数:1.00)A.C程序中必须有一个 main()函数,C 程序是从 main()函数的第 1条语句开始执行的。B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的。C.C程序中的 main()函数必须放在程序的开始位置。D.C程序中的 main()函数位置可以任意指定。43.有以下程序(提示:程序中 fseek(fp-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件末尾向前移 2*sizeof(ing)字节)#include stdio.hmain(

17、)FILE *fp; int i, a4=1,2,3,4,b;fp=fopen(“data.dat“,“wb“);for(i=0;i4;i+) fwrite(fclose(fp);fp=fopen(“data.dat“,“rb“);fseek(fp,-2L*sizeof(int),SEEK_END) ;fread ( /*从文件中读取 sizeof(int)字节的数据到变量 b中*/fclose(fp);printf(“%d/n“,B) ;执行后输出结果是(分数:1.00)A.2B.1C.4D.344.函数重载是指(分数:1.00)A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

18、B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不问,但形参的个数或类别相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同45.在函数调用过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数 funA,则(分数:1.00)A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言上不允许这样的递归调用46.以下叙述正确的是(分数:1.00)A.可以把 define和 if定义为用户标识符B.可以把 define定义为用户标识符,但不能把 if定义为用户标识符C.可以把 if定义为用户标识符,

19、但不能把 define定义为用户标识符D.define和 if都不能定义为用户标识符47.下列数据结构巾,能用二分法进行查找的是(分数:1.00)A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表48.有以下程序main()int i=0,s=0;for(;)if(i=3i=5) continue;if(i=6) break;i+;s+=i;printf(“%d/n“,s)程序运行后的输出结果是(分数:1.00)A.10B.13C.21D.程序进入死循环49.有以下程序:void sort(int a,int n)int i,j,t;for(i=0;in-1;i+=2)for(j

20、=i+2;jn;j+=2)if(aiaj) t=ai;ai=aj;aj=t;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(aa,10);for(i=0;i10;i+) printf(“%d“,aai);printf(“/n“);其输出结果是(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.9,2,7,4,5,6,3,8,1,10,D.1,10,3,8,5,6,7,4,9,2,50.已定义以下函数:fun(int *p)return *p; 该函数的返回值是(分数:1.00)A.不确定的值B.

21、形参 p中存放的值C.形参 p所指存储单元中的值D.形参 P的地址值二、填空题(总题数:18,分数:52.00)51.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 1。(分数:2.00)填空项 1:_52.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于 1。(分数:2.00)填空项 1:_53.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和_。(分数:2.00)填空项 1:_54.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,_是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填

22、空项 1:_55.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_56.已知字符 A的 ACSII码值为 65,以下语句的输出结果是_。char ch= B;printf(“%c %d/n“,ch,ch);(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是_。main()int a,b,c;a = 25;b = 025;c = 0x25;printf(“%d %d %d/n“,a,b,C) ;(分数:2.00)填空项 1:_58.已有定义:double *p;,请写出完整的语句,利用 malloc函数使 p指向一个双精度型的动态存储单

23、元_。(分数:2.00)填空项 1:_59.以下程序运行后的输出结果是_。main()char c; int n=100;float f=10; double x;x=f*=n/=(c=50);printf(“%d %f/n“,n,x);(分数:2.00)填空项 1:_60.以下程序运行后的输出结果是_。main()char c1,c2;for c1=0,c2=9;c1c2;c1+,C2-)printf(“%c%c“,c1,c2);printf(“/n“);(分数:2.00)填空项 1:_61.已知字母 A的 ASCII码为 65。以下程序运行后的输出结果是_。main()char a,b;a

24、=A+5-3; b=a+6-2;printf(“%d %c/n“,a,B) ;(分数:4.00)填空项 1:_62.以下函数的功能是计算 s=1+1/2!+1/3!+1/n!,请填空。double fun(int n)double s=0.0,fac=1.0; int i;for(i=1,i=n;i+)fac=fac_;s=s+fac;return s;(分数:4.00)填空项 1:_63.下面 rotate函数的功能是:将 n行 n列的矩阵 A转置为 A,例如:1 2 3 4 1 5 9 135 6 7 8 2 6 10 14当 A = 9 10 11 12 则 A= 3 7 11 1513

25、 14 15 16 4 8 12 16请填空。#define N 4void rotate(int a NJ )int i,j,t;for ( i=0; iN; i+ )for(j=0; _;j+)t=ai j;_;aj i=t;(分数:4.00)填空项 1:_64.以下 sstrcpy()函数实现字符串复制,即将 t所指字符串复制到 s所指向内存空间中,形成一个新的字符串 s。请填空。void sstrcpy(char *s,char *t)while(*s+=_); main()char str1100,str2=“abcdefgh“;sstrcpy(str1,str2);printf(“

26、%s/n“,str1);(分数:4.00)填空项 1:_65.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main()int i, a20,sum, count;sum=count=0;for (i=0;i20; i+)scanf(“%d“,(_);for(i=0;i20; i+)if(ai0)count+;sum+=(_);print f ( “sum=%d,count-%dkn“ , sum, count);(分数:4.00)填空项 1:_66.下面程序的运行结果是_。void swap(int *a,int *B) int *t;t=a; a=b; b=t

27、;main()int x=3,y=5,*p=swap(p,q);printf(“%d %d/n“,*p,*q);(分数:4.00)填空项 1:_67.下面程序的运行结果是_。typedef union studentchar name10;long sno;char sex;float score4;STU;main()STU a5;printf(“%d/n“,sizeof(A) );(分数:4.00)填空项 1:_68.以下 sum函数的功能是计算下列级数之和。 (分数:4.00)填空项 1:_二级 C语言笔试-255 答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:

28、50,分数:50.00)1.在数据库设计的四个阶段中,为关系模式选择存取方法应该是在_阶段。(分数:1.00)A.需求分析B.概念设计C.逻辑设计D.物理设计 解析:解析 需求分析阶段是分析用户的需求,显然不属于这个阶段,由此可以排除选项 A概念设计是将需求分析得到的用户需求抽象为信息结构及概念模型的过程,涉及不到数据的存取,所以选项 D错误。逻辑设计是在概念设计的基础上将 E-R图转换成数据库管理系统的逻辑数据模型表示的逻辑模式,也不涉及存取问题,选项 C也不对。答案为 D。2.以下不能定义为用户标识符的是(分数:1.00)A.scanfB.VoidC._3com_D.int 解析:解析 本

29、题考核的知识点是用户标识符的定义。在 C语言中,合法的标识符由字母、数字和下划线组成,并且第 1个字符必须为字母或下划线。选项 D中 int为 C语言中的保留字,不能作为用户的标识符;选项 A、B、C 都为合法的标识符所以,4 个选项中选项 D符合题意。3.若 fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(中)的值为(分数:1.00)A.0 B.1C.-1D.一个非 0值解析:解析 读取文件时,当文件中的数据全部读完后,文件位置指针将位于文件的结尾。此时如果读数据,将会出现错误。为了保证读写数据的正确性,需要进行文件尾测试,文件尾测试使用函数 feof(),它的功能测试

30、 fp指向的文件是否到达文件尾若到达文件尾,返回值为非 0,否则返回值为 0。在本题中fP指向的某文件还没有到了文件尾,因此返回 0,所以,4 个选项中选项 A符合题意。4.与数学式子 (分数:1.00)A.3*xn(2*x-1)B.3*x*n(2*x-1)C.3*pow(x,n)*(1/(2*x-1) D.3*pow(n,x)/(2*x-1)解析:解析 本题考查的知识点是表达式的表示。在该题中,x 的 n次方应该调用函数 pow(x,n)计算,故选项 A、B 排除。而在选项 D中, pow(x,n)的参数写反了。选项 C正确。5.若有说明语句:int a,b,c,*d=printf (“%d

31、/n“,strlen(s);(分数:1.00)A.9 B.12C.13D.14解析:解析 本题考核的知识点是字符串的长度。字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即,/0之前的字符数。 字符数组 s中依次存放的字符是: /“1“4“1“141“a“b“c“/t和最后一个字符串结束标记 /0,故字符串的长度是 9。所以,4 个选项中 A为所选。8.以下程序的输出结果是main()int a=0,i;for(i=1;i5 i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;defau

32、lt:a+=5;printf(“%d/n“,(分数:1.00)A.;A) 31 B.13C.10D.20解析:解析 本题考核的知识点是 for 语句与 switch语句地综合运用。switch 语句的执行过程是:在switch后面的表达式的值和 case后面常量表达式的值吻合时,就执行该 case分支的语句。如果在该语句的后面没有 break语句,则按顺序继续执行下一个 case分支,直到遇到 break语句或 switch多分支语句结束,在 switch语句中,break 语句的作用是使流程跳出 switch结构,终止 switch语句的执行在本题中,因为每个 case语句后面都没有 bre

33、ak语句,所以,第一轮循环(i=1)执行过后 a的值为 8,第2轮(i=2)执行过后 a的值为 16,第 3轮(i=3)执行过后 a的值为 26,第 4轮(i=4)执行过后 a的值为31,然后执行“i+”语句,这时循环条件为假,循环结束所以,4 个选项中 A为所选。9.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(int xN)int i=0;while(iN)scanf(“%d“, _);在下划线处应填入的是(分数:1.00)A.x+iB.p=s;printf(“%c“,*p+);pritnf(“%c“,*p+);程序运行后的输出结

34、果是(分数:1.00)A.15 B.16C.12D.59解析:解析 本题首先定义了一个字符数组并用字符串“159“初始化之,然后用一个字符型指针 p指向该数组的第一个元素,最后两次输出表达式*p+的值,所以本题的关键在于求解表达式*p+的值。*和+的优先级相同,但结合性是“从右至左”,即*P+相当于*(P+),由于子表达式 p+的值是 p自增之前的值,所以第一次输出的是数组的第一个元素的值1,到第二条输出语句时 p已自增 1 次,所以第;次输出的是第二个元素5。故应该选择选项 A。11.以下数据结构中属于线性数据结构的是(分数:1.00)A.集合B.线性表 C.二叉树D.图解析:解析 所谓的线

35、性结构是指:如果一个非空的数据结构满足下列两个条件,即 1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。故答案为 B。12.有以下程序int a=3;main()int s=0;int a=5; s+=a+; s+=a+;printf(“%d/n“,s);程序运行后的输出结果是(分数:1.00)A.8 B.10C.7D.11解析:解析 本题中定义一个全局变量 a和一个局部变量 a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)

36、时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义的位置开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量 s并赋值为 0,接着在嵌套的复合语句中定义了变量 a并赋初值为 5,接着执行语句 s+=a+a;在这条语句中 a加 1,但表达式 a+还是原来的值,故 s=s+5,s 为 5,程序执行到外层,此时内定义的变量 a不再有效,此时的变量 a为之前定义的且初值为 3,接着执行后面的语句s+=a+;相

37、当于执行语句 s=s+(+);即 s=5+3,最后值为 8,所以最后输出的 s值为 8。所以 4个选项中A正确。13.以下选项中可作为 C语言合法整数的是(分数:1.00)A.10110BB.0386C.0Xffa D.x2a2解析:解析 本题考核的知识点是整数及常数的表示方法。在 C语言中,整数常量可以用十进制、八进制和十六进制来表示,选项 A为二进制表示,故选项 A不正确;选项 B是八进制表示法,但在八进制数中,各个位数只能为数字。到 7中的一个,而在选项 B中,有一个数字 8,故选项 B 不正确;选项 C为十六进制表示法正确:选项 D中也为十六进制表示法,但十六进制数以 Ox开头,故选项

38、 D不正确,所以,4 个选项中选项 c符合题意。14.有以下程序main()int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7 i+;printf(“%d/n“,k);执行后输出的结果足(分数:1.00)A.58B.56C.45D.24 解析:解析 本题考核的知识点是 while 循环语句的程序分析。在主函数中首先定义了一个数组 p并初始化,在 while后面括号里的表达式中,i 初值为 0,当 pi为偶数时,pi%2 等于 0,根据“return y;main()int a=9,b=8,c=7;print f (“%c/n“ , fun(fun(a, B

39、) , fun(b, C) ) );程序的执行结果是(分数:1.00)A.函数调用出错B.8C.9D.7 解析:解析 本题考核的知识点是函数的返回值以及返回值作为函数的参数。经过分析得出函数 fun()的功能是比较形参 x和形参 y的大小,返回较小的一个函数 fun()有两个参数本题中,首先定义了三个整型变量 a、b 和 c,分别赋初值为 9、8 和 7然后执行函数 fun(fun(a,b) ,fun(b,c) )。在该函数中分别将 fun(a,b) 和 fun(b,C) 函数的返回值作为该函数的两个实参。在函数 fun(a,b) 中, 由于 ab,故返回较小值 b即 8,在函数 fun(b,

40、C) 中,由于 bc, 故返回较小值 c即为 7, 因此调用函数 fun(fun(a,b) ,fun(b,C) )相当于执行函数 fun(8,7),返回较小值即 7。所以,4 个选项中选项 D符合题意。17.有以下程序:void swapl(int c)int t;t=c0; c0=c1; c1=t;void swap2int c0, int c1)int t;t=c0; c0=c1; c1=t;main()int a2=3,5, b2=3,5;swap1 ((分数:1.00)A.; swap2 (b0,b1);printf(“%d %d %d %d/n“,a0,a1,b0,b1);其输出结果

41、是 A) 5 3 5 3B.5 3 3 5 C.3 5 3 5D.3 5 5 3解析:解析 本题考核的知识点是函数调用中值传递和地址传递。函数间的参数的传递有两种情况,第1种情况变量作为形参时的参数传递,变量作为形参时,要求对应的实参应为变量或表达式,变量作为函数的参数其传递方式是“值传递”,该种情况下,形参被赋值为实参的值,然后实参与形参再无联系。也就是说对行参的改变将不再影响实参:第 2种情况是地址或数组名作为形参时的参数传递,该种情况下对形参的改变将对实参产生影响。本题中函数 swap1()是传递的地址。所以对该形参 c的改变将影响实参,分析可知该函数的作用,是使数组 c的第一个元素和第

42、二个元素的值互换。主函数中调用该函数将 a作为实参传递给形参 c,故执行该函数后 a的第一个元素和第二个元素的值将交换。分别为 5和 2函数swap2()是值传递的,所以该函数执行后对数组 b将没有任何改变,此时该数组的第一个和第二个元素依然为 3和 5,因此最后的输出为 5、3,3 和 5,所以,4 个选项中选项 B符合题意。18.算法执行过程中所需要的存储空间称为算法的(分数:1.00)A.时间复杂度B.计算工作量C.空间复杂度 D.工作空间解析:解析 算法执行时所需要的存储空间,包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法

43、程序执行过程的工作单元以及某种数据结构所需要的附加存储空间这些存储空间共称为算法的空间复杂度。19.有以下程序int f (int(分数:1.00)A.return a%2; main ( )int s8=1,3,5,2,4,6),i,d=0;for (i=0; f(si; i+) d +=si;print f (“%d/n“,D) ;程序运行后的输出结果是 A) 9 B.11C.19D.21解析:解析 本题考核的知识点是一维数组的定义,初始化和数组中元素的引用。函数 f()的作用是形参 a为偶数的时候返回 0,主函数中首先定义了一个长度为 8的一维数组,然后给它赋初值使得 s0=1、a1=3

44、、s2=5、s3=2、s4=4、 s5=6其他没有赋值的数组元素将自动赋值为 0。 for 循环中,当 s1不为偶数的时,将 si相加,即当 i=3 时,si=2 为偶数,退出循环,此时 d的值为 d=s101+s1+s2=1+3+5=9,因此最后输出的 d的值为 9。所以,4 个选项中选项 A符合题意。20.下列描述中正确的是(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合 解析:解析 计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。选项 D的描述正确。21.以下程序

45、的输出结果是#include stdio.h#include string,hmain()char b18=“abcdefg“,b28,*pb=b1+3;while (-pb=b1) strcpy(b2,pB) ;printf(“%d/n“,strlen(b2);(分数:1.00)A.8B.3C.1D.7 解析:解析 本题考核的知识点是指针变量的运算及字符函数 strcpy()的应用。strepy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向得数组中首先定义了两个字符数组 b1和 b2,并用一个字符串给 b1赋初值,然后定义了一个字符型指针变量 pb,通过赋初值使它指向 b13

46、。接着执行while循环,该循环执行了 3次;第一次判断条件“-pb=b1”,使 pb的值为“b1+2”,执行“strcpy(b2,pB) ;”后,b2 中的内容为“cdefg”;第二次判断条件“-pb=b1”,使 pb的值为“b1+1”,执行“strcpy(b2,pB) ;”后 b2的内容为“bcdefg”第三次判断条件“-pb=b1”使 Pb的值为“b1”,执行“strcpy(b2,pB) ;”后 b2的内容为“abcdefg”。最后输出 b2数组中存放的字符串长度,显然是 7。 (这里还有一个关键点:就是每当执行一次 while循环判断条件,就执行一次“-Pb”,他使得指针 pb 自减

47、1,即前移一位)所以,4 个选项中 D为所选。22.以下选项中不属于 C语言的类型的是(分数:1.00)A.signed short intB.unsigned long intC.unslgned intD.long short 解析:本题考核的知识点是 c 语言中的数据类型。在选项中很明显选项 A为无符号短整型,选项 B为无符号长整型,选项 C为无符号整型,而选项 D的类型在 C语言中不存在。所以,4 个选项中 D为所选。23.有以下程序#include stdio.hmain()FILE *fp; int i=20,j=30,k,n;fp=fopen(“d1.dat“,“w“);fprintf(fp,“%d/n“,i);fprintf(fp,“%d/n“,j);fclose(

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

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

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