【计算机类职业资格】国家计算机二级(C)72及答案解析.doc

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

1、国家计算机二级(C)72 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:50,分数:3000.00)1.以下叙述中错误的是【 】。(分数:60.00)A.C 语言是一种结构化程序设计语言B.结构化程序由顺序、分支、循环三种基本结构组成C.使用三种基本结构构成的程序只能解决简单问题D.结构化程序设计提倡模块化的设计方法2.下列叙述中正确的是【 】。(分数:60.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时

2、间复杂度与空间复杂度一定相关3.以下叙述中正确的是( )。(分数:60.00)A.局部变量说明为 static 存储数,其生存期将得到延长B.全局变量说明为 static 存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同4.所谓 “裸机”是指( )。(分数:60.00)A.单片机B.单板机C.不装备任何软件的计算机D.只装备操作系统的计算机5.若 fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为( )。 (分数:60.00)A.0B.1C.-1D.一个非 0 值6.在数据库系统中,用户

3、所见的数据模式为【 】。(分数:60.00)A.概念模式B.外模式C.内模式D.物理模式7.有以下程序 #include main() FILE *fp; int i; char ch=“abcd“,t; fp=fopen(“abc.dat“, “wb+“); for(i=0;iA.dB.cC.bD.a8.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为【 】。(分数:60.00)A.63B.64C.6D.79.有以下程序: main( ) int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=aA.0,0B.0,1C.1,0D.1,110.有以下程序段

4、int a10=1,2,3,4,5,6,7,8,9,10,*p= b=p5; b 中的值是( )。 (分数:60.00)A.5B.6C.8D.911.在 Windows 环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按( )。(分数:60.00)A.Ctrl+Printscreen 键B.Alt+Printscreen 键C.Shift+Printscreen 键D.Printscreen 键12.算法的有穷性是指(分数:60.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用13. 有以下结构体说明和变量定义,如图

5、所示,指针 p、q、r 分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; *p, *q, *r; (分数:60.00)A.r-next=q; q-next=r-next; p-next=r;B.q-next=r-next; p-next=r; r-next=q;C.p-next=r; q-next=r-next; r-next=q;D.q-next=r-next; r-next=q; p-next=r;14.有以下程序(提示:程序中 fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从

6、文件尾向前移 2*sizeof(int)字节) #include stdio.h main( ) FILE *fp; int i,a4=1,2,3,4,b; fp=fopen(“data.dat“,“wb“); for(i=0;iA.2B.1C.4D.315.下列叙述中正确的是( )。(分数:60.00)A.C 语言中既有逻辑类型也有集合类型B.C 语言中没有逻辑类型但有集合类型C.C 语言中有逻辑类型但没有集合类型D.C 语言中既没有逻辑类型也没有集合类型16.有以下程序 #include stdio.h main( ) printf(“%d/n“,NULL); 程序运行后的输出结果是( )

7、。 (分数:60.00)A.0B.1C.-1D.NULL 没定义,出错17.从 Windows 环境进入 MSDOS 方式后,返回 Windows 环境的 DOS 命令为( )。(分数:60.00)A.EXITB.QUITC.RETD.MSDOS18.有以下程序 #include main() struct STUchar name9;char sex;double score2; ; struct STU a=“Zhao“,m,85.0,90.0,b=“Qian“,f,95.0,92.0; b=a: printf(“%s,%c,%2.0f,%2.0f/n“,bname,bsex,bscore

8、 0,bscore1); 程序的运行结果是 (分数:60.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9019.若有以下程序段(n 所赋的是八进制数) int m=32767,n=032767; printf(“%d,%o/n“,m,n); 执行后输出结果是( )。 (分数:60.00)A.32767,32767B.32767,032767C.32767,77777D.32767,07777720.若有说明语句:double*p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是【 】。(分数:60.00)A.*P

9、= while(sli=s2i return(sli=/0 此函数的功能是( )。 (分数:60.00)A.比较 s1 和 s2 所指字符串的大小,若 s1 比 s2 的大,函数值为 1,否则函数值为 0B.将 s2 所指字符串赋给 s1C.比较 s1 和 s2 所指字符串是否相等,若相等,函数值为 1,否则函数值为 0D.比较 s1 和 s2 所指字符串的长度,若 s1 比 s2 的长,函数值为 1,否则函数值为 027.有以下程序 #include main() FILE * fp;int k , n,a6=1,2,3,4, 5,6; fp=fopen(“d2.dat“,“W“); fpr

10、intf(fp,“dddn“,a0,a1,a2);fprintf(fp,“dddn“,a3,a4,aS); fclose(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“dd“,B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S;35.以下关于宏的叙述中正确的是(分数:60.00)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间36.有以下程序: void swap1(int c ) int t; t=c0;c0=c1

11、;c1=t; void swap2(int c0,int c1) int t; t=c0;c0=c1;c1=t; main( ) int a2=3,5,b2=3,5; swap1(a); swap2(b0,b1); printf(“%d %d %d %d/n”,a0,a1,b0,b1); 其输出结果是( )。 (分数:60.00)A.5 3 5 3B.5 3 3 5C.3 5 3 5D.3 5 5 337.结构化程序由三种基本结构组成,三种基本结构组成的算法( )。(分数:60.00)A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务38

12、.下列叙述中正确的是【 】。(分数:60.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对39.程序中头文件 typel.h 的内容是: #define N 5 #define M1 N*3 程序如下: #include“typel.h“ #define M2 N *2 main( ) int i; i=M1+M2; printf(“%d/n“,i); 程序编译后运行的输出结果是( )。 (分数:60.00)A.10B.20C.25D.3040.当把以下四个表达式用作

13、if 语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是【 】。(分数:60.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=141.有以下程序: #includestdlib.h main( ) char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf(“%s%s“,p,q); printf(“%s%s/n“,p,q); 若从键盘输入:abc def回车,则输出结果是( )。 (分数:60.00)A.def defB.abc defC.abc dD.d d42.对存储器按字节进行编址,若某存储器芯

14、片共有 10 根地址线,则该存储器芯片的存储容量为( )。(分数:60.00)A.1KBB.2KBC.4KBD.8KB43.若有定义:int w35;,则以下不能正确表示该数组元素的表达式是【 】。(分数:60.00)A.*(*W+3)B.*(*W+1)4C.*(*(*W+1)D.*(*00+1)44.执行以下程序后,test.txt 文件的内容是【 】。(若文件能正常打开) #include main() FILE * fp; char*sl=“Fortran“,*s2=“Basic“; if(fp=fopen(“test.txt“,“wb“)=NULL) printf(“Cant open

15、 test.txt filen“);exit(1); fwrite(sl,7,1,fp);*把从地址 sl 开始的 7 个字符写到 fp 所指文件中* fseek(fp,0L,SEEK_SET);*文件位置指针移到文件开头* fwrite(s2,5,1,fp); fclose(fp); (分数:60.00)A.BasicanB.BasicFortranC.BasicD.FortranBasic45.假定已建立以下链表结构,且指针 p 和 q 已指向如图所示的结点: (分数:60.00)A.(*P)next=(*q)next;free(P);B.P=q-next;free(q);C.P=q;fr

16、ee(q);D.p-next=q-next;free(q);46.若有定义:int *p3;,则以下叙述中正确的是( )。 (分数:60.00)A.定义了一个基类型为 int 的指针变量 p,该变量具有三个指针B.定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D.定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素47.程序流程图中带有箭头的线段表示的是(分数:60.00)A.图元关系B.数据流C.控制流D.调用关系48.有以下程序 #include main()

17、int i,j; for(i=3;i=1;i-) for(j=1;j=0)prinff(“C“,sn-); 当编译连接通过后,运行程序 T18 时,输入 Thank!则输出结果是: 5。 (分数:40.00)填空项 1:_53.在二维表中,元组的 1 不能再分成更小的数据项。(分数:40.00)填空项 1:_54.以下程序的功能是;求出数组 X 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。 main1 int x10,a9,i; for(i=O;ia)|(m=aA.0,0B.0,1C.1,0 D.1,1解析:10.有以下程序段 int a10=1,2,3,4,5,6,7,8,

18、9,10,*p= b=p5; b 中的值是( )。 (分数:60.00)A.5B.6C.8D.9 解析:11.在 Windows 环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按( )。(分数:60.00)A.Ctrl+Printscreen 键B.Alt+Printscreen 键C.Shift+Printscreen 键D.Printscreen 键 解析:12.算法的有穷性是指(分数:60.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:算法具有 5 个特性:有穷性:一个算法必须总是(对任何合法的输入

19、值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。输出:一个算法有一个或多个输出。13. 有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; *p, *q, *r; (分数:60.00)A.r-next=q; q-next=

20、r-next; p-next=r; B.q-next=r-next; p-next=r; r-next=q;C.p-next=r; q-next=r-next; r-next=q;D.q-next=r-next; r-next=q; p-next=r;解析:14.有以下程序(提示:程序中 fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移 2*sizeof(int)字节) #include stdio.h main( ) FILE *fp; int i,a4=1,2,3,4,b; fp=fopen(“data.dat“,“wb“); fo

21、r(i=0;iA.2B.1C.4D.3 解析:15.下列叙述中正确的是( )。(分数:60.00)A.C 语言中既有逻辑类型也有集合类型B.C 语言中没有逻辑类型但有集合类型C.C 语言中有逻辑类型但没有集合类型D.C 语言中既没有逻辑类型也没有集合类型 解析:16.有以下程序 #include stdio.h main( ) printf(“%d/n“,NULL); 程序运行后的输出结果是( )。 (分数:60.00)A.0 B.1C.-1D.NULL 没定义,出错解析:17.从 Windows 环境进入 MSDOS 方式后,返回 Windows 环境的 DOS 命令为( )。(分数:60.

22、00)A.EXIT B.QUITC.RETD.MSDOS解析:18.有以下程序 #include main() struct STUchar name9;char sex;double score2; ; struct STU a=“Zhao“,m,85.0,90.0,b=“Qian“,f,95.0,92.0; b=a: printf(“%s,%c,%2.0f,%2.0f/n“,bname,bsex,bscore 0,bscore1); 程序的运行结果是 (分数:60.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90 解析:

23、该题目考查结构体数据类型,注意语句 b=a,因此输出 bname 为 zhao,bsex 为 m,依此类推。19.若有以下程序段(n 所赋的是八进制数) int m=32767,n=032767; printf(“%d,%o/n“,m,n); 执行后输出结果是( )。 (分数:60.00)A.32767,32767 B.32767,032767C.32767,77777D.32767,077777解析:20.若有说明语句:double*p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是【 】。(分数:60.00)A.*P= while(sli=s2i return(sli=/0

24、此函数的功能是( )。 (分数:60.00)A.比较 s1 和 s2 所指字符串的大小,若 s1 比 s2 的大,函数值为 1,否则函数值为 0B.将 s2 所指字符串赋给 s1C.比较 s1 和 s2 所指字符串是否相等,若相等,函数值为 1,否则函数值为 0 D.比较 s1 和 s2 所指字符串的长度,若 s1 比 s2 的长,函数值为 1,否则函数值为 0解析:27.有以下程序 #include main() FILE * fp;int k , n,a6=1,2,3,4, 5,6; fp=fopen(“d2.dat“,“W“); fprintf(fp,“dddn“,a0,a1,a2);f

25、printf(fp,“dddn“,a3,a4,aS); fclose(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“dd“,B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S; 解析:35.以下关于宏的叙述中正确的是(分数:60.00)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制 D.宏调用比函数调用耗费时间解析:宏名可以大写,也可以小写。其有效范围为定义命令之后到本源文件结束。宏的调用是字符的替换,没有数据类型限制。36.有以下程序: v

26、oid swap1(int c ) int t; t=c0;c0=c1;c1=t; void swap2(int c0,int c1) int t; t=c0;c0=c1;c1=t; main( ) int a2=3,5,b2=3,5; swap1(a); swap2(b0,b1); printf(“%d %d %d %d/n”,a0,a1,b0,b1); 其输出结果是( )。 (分数:60.00)A.5 3 5 3B.5 3 3 5 C.3 5 3 5D.3 5 5 3解析:37.结构化程序由三种基本结构组成,三种基本结构组成的算法( )。(分数:60.00)A.可以完成任何复杂的任务B.只

27、能完成部分复杂的任务C.只能完成符合结构化的任务 D.只能完成一些简单的任务解析:38.下列叙述中正确的是【 】。(分数:60.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对 解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量;算法的空间复杂度是指执行这个算法所需要的内存空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。39.程序中头文件 typel.h 的

28、内容是: #define N 5 #define M1 N*3 程序如下: #include“typel.h“ #define M2 N *2 main( ) int i; i=M1+M2; printf(“%d/n“,i); 程序编译后运行的输出结果是( )。 (分数:60.00)A.10B.20C.25 D.30解析:40.当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是【 】。(分数:60.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=1 解析:本题选项 A、B、C 中表达式用作 if 语句表达式时,其值一致,即判断 k 的

29、值是否为奇数,若为奇数,其表达式为真,否则为假;而选项 D 的表达式“!k%2=1“相当于“!(k%2)=1,若 k 的值为奇数,则此表达式的值为假。 41.有以下程序: #includestdlib.h main( ) char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf(“%s%s“,p,q); printf(“%s%s/n“,p,q); 若从键盘输入:abc def回车,则输出结果是( )。 (分数:60.00)A.def def B.abc defC.abc dD.d d解析:42.对存储器按字节进行编址,若某存储器

30、芯片共有 10 根地址线,则该存储器芯片的存储容量为( )。(分数:60.00)A.1KB B.2KBC.4KBD.8KB解析:43.若有定义:int w35;,则以下不能正确表示该数组元素的表达式是【 】。(分数:60.00)A.*(*W+3)B.*(*W+1)4C.*(*(*W+1) D.*(*00+1)解析:在 C 语言中,二维数组的名字表示的是二维数组的地址,表达式*(w+1)表示的是二维数组的第一行的第二元素。在其前面再加上*(*(w+1)就是错误的表达式。44.执行以下程序后,test.txt 文件的内容是【 】。(若文件能正常打开) #include main() FILE *

31、fp; char*sl=“Fortran“,*s2=“Basic“; if(fp=fopen(“test.txt“,“wb“)=NULL) printf(“Cant open test.txt filen“);exit(1); fwrite(sl,7,1,fp);*把从地址 sl 开始的 7 个字符写到 fp 所指文件中* fseek(fp,0L,SEEK_SET);*文件位置指针移到文件开头* fwrite(s2,5,1,fp); fclose(fp); (分数:60.00)A.Basican B.BasicFortranC.BasicD.FortranBasic解析:第一次 fwrite

32、操作把 Fortran 写到文件 fp 中,第二次操作,把 Basic 写入文件 fp 中,此时把 Four字符覆盖了,所以最后输出的是 Basican。45.假定已建立以下链表结构,且指针 p 和 q 已指向如图所示的结点: (分数:60.00)A.(*P)next=(*q)next;free(P);B.P=q-next;free(q);C.P=q;free(q);D.p-next=q-next;free(q); 解析:要将结点 b 从链表中删除,应先将 a 的指针域指向 b 结点的下一个结点,即 p-next=q-next,然后释放指针 q 的空间。46.若有定义:int *p3;,则以下

33、叙述中正确的是( )。 (分数:60.00)A.定义了一个基类型为 int 的指针变量 p,该变量具有三个指针B.定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针 C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D.定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素解析:47.程序流程图中带有箭头的线段表示的是(分数:60.00)A.图元关系B.数据流C.控制流 D.调用关系解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作

34、的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:或表示控制流;表示加工步骤;表示逻辑条件。48.有以下程序 #include main() int i,j; for(i=3;i=1;i-) for(j=1;j=0)prinff(“C“,sn-); 当编译连接通过后,运行程序 T18 时,输入 Thank!则输出结果是: 5。 (分数:40.00)填空项 1:_ (正确答案:!knahT)解析:此程序是一道次序颠倒题,即输入“T

35、hank!“,则输出“!knahT“。53.在二维表中,元组的 1 不能再分成更小的数据项。(分数:40.00)填空项 1:_ (正确答案:分量)解析:一张二维表对应一个关系,代表一个实体集。表中的一行称为一个元组。54.以下程序的功能是;求出数组 X 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。 main1 int x10,a9,i; for(i=O;i10;i+)scanf(“d“, for(i=O;i填空项 1:_ (正确答案:i=1)填空项 1:_ (正确答案:xi-1)解析:对于 l0 个数,相临的两个数相加取和,总共要进行 9 次加法运算。所以空 14 处应填入

36、i-1。相临的两个数相加取和,放在数组 a 中,x0与 x1的和存放在 a0中。所以空 15 处应填入 xi-1。55.若有以下程序 int f(int x,int y) return(y-x)*x; main( ) int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5); printf(“%d/n“,d); 执行后输出结果是 1。 (分数:40.00)填空项 1:_ (正确答案:9)解析:56.以下程序段的输出结果是 1。 int i=9; printf(“%o/n“,i); (分数:40.00)填空项 1:_ (正确答案:11)解析:57.若有语句 int i=-19,j

37、=i%4; printf(“%d/n“,j); 则输出的结果是 1。 (分数:40.00)填空项 1:_ (正确答案:-3)解析:58.以下程序的输出结果是 1。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main( ) int i=2,j=3; printf(“%d/n“,MCRB(j,MCRA(i); (分数:40.00)填空项 1:_ (正确答案:16)解析:59.以下程序中,函数 fun 的功能是计算 X 的 2 次方-2x+6,主函数中将调用 fun 函数计算: y1=(x+8)的 2次方-2(X+8)+6 y2=sin2(x)一 2sin(x)+6 请填空。 #include “math.h“ double fun(double X)return(X*x-2*X+6); main1 double x,yl,y2; printf(“Enter x:“);scanf(“If“, sstrcpy(str1,str2); printf(“%s/n”,str1); (分数:40.00)填空项 1:_ (正确答案:*t+)解析:

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

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

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