【计算机类职业资格】二级C语言-520及答案解析.doc
《【计算机类职业资格】二级C语言-520及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-520及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-520 及答案解析(总分:74.00,做题时间:90 分钟)一、选择题(总题数:34,分数:48.00)1.C 语言中,能识别处理的文件为( )。(分数:1.00)A.文本文件和数据块文件B.文本文件和二进制文件C.流文件和文本文件D.数据文件和二进制文件2.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2)static int a=4;t+=a+; elsestatic int a=5;t+=a+; return t+; main() int s=a,i; for(i=0;i3;i+)s+=f(i); p
2、rintf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29D.243.对长度为 n 的线性表进行顺序查找,在最坏的情况下需要比较的次数为 _ 。(分数:2.00)A.125B.n/2CnD.n+14.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)return(s1); else return(s2); main( ) int i; char
3、 string20, str320; for(i=0;istrcpy(string,scmp(str0,str1); /*库函数 strcpy 对字符串进行复制*/ strcpy(string,scmp(string,str2); printf(“%s/n“,string); 若运行时依次输入:abcd、abba 和 abc 三个字符串,则输出结果为 A)abcd B)abba C)abc D)abca (分数:1.00)A.B.C.D.5.算法一般都可以用_控制结构组合而成。(分数:1.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环6.设 a 为 in
4、t 型变量,执行下列赋值语句后,a 的取值分别为 ( ) a125.534;a20.0/3;a20%3;a(int)125%521%4;a52;(分数:1.00)A.125,6.666666,2,1,1B.125,6,2,1,1C.125.534,6.666666,2,1,20D.125,6,2,1,207.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构8.下列叙述中正确的是(分数:1.00)A.每个 C 语言程序文件中都必须要有一个 main()函数B.在 C 语言程序中 main()
5、函数的位置是固定的C.C 语言程序中所有函数之间都可以相互调用,与函数所在位置无关D.在 C 语言程序的函数中不能定义另一个函数9.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是 _ 。(分数:2.00)A.(!E= =0)B.(E0E0)C.(E= =0)D.(E!=0)10.若进栈序列为 1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_。(分数:2.00)A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,111.以下不能正确计算代数式 sin2()值的 C 语言表达式是 _ 。(分数:1.00)A.1/3*sin(1/2)*sin
6、(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)12.有以下程序 #includestdio.h main() int a34=(1,3,5,7,9,11,13,15,17,19,21,23,(*p)4=a,i,j,k=0; for(i=0;i3;i+) for(j=0;j2;j+)k=k+*(*(p+i)+j); printf(“%d/n“,k); 程序运行后的输出结果是_。(分数:2.00)A.60B.68C.99D.10813.下列叙述中正确的是 _ 。(分数:1.00)A.软件就是程序清单B.软
7、件就是存放在计算机中的文件C.软件应包括程序清单以及运行结果D.软件包括程序、数据和文档14.若有以下定义,则对 a 数组元素地址的正确引用是 _ 。 int a5,*p=a;(分数:2.00)A.p+5B.*a+1C. int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i6;i+) fprintf(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“); rewind(fp); fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。(分数:1.00
8、)A.0 0B.123 45C.1 4D.1 216.有下列程序: main() int t, a=1, b=5, c=-2; while(abc) t=a; a=b; b=t; c+; printf(“%d, %d, %d“, a, b, c); (分数:1.00)A.1, 5, 0B.1, 5, -2C.5, 1, -1D.5, 1, -217.设有关系 R 和 S,关系代数表达式 R-(R-S)表示的是(分数:1.00)A.RsB.R-SC.RsD.RS18.若变量已正确定义,下列正确的程序段是 _ 。(分数:2.00)A.while(ch=getchar()=“/N“)putchar(
9、ch);B.while(ch=getchar()=“/n“)putchar(ch);C.while(ch=getchar()!=“/N“)putchar(ch);D.while(ch=getchar()!=“/n“)putchar(ch);19.在位运算中,操作数每右移两位,其结果相当于 _ 。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 420.下列对于软件测试的描述中正确的是(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原
10、则21.下列叙述中正确的是 _ 。(分数:2.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对22.下面程序的运行结果是( )。 #includestdio.h main() int i; for(i=1; iif(i%3=0) break; printf(“%d“, i); (分数:1.00)A.123B.12C.23D.1234523.下列不属于软件调试技术的是_。(分数:2.00)A.强行排错法B.集成测试法C.回溯法D.原因排除法24.以下程序段的执行结果为_。 #define PLUS(X,Y)X+Y main()
11、 int x=1,y=2,z=3,sum; sum=PLUS(x+y,z)*PLUS(y,z); printf(“SUM=%d“,sum); (分数:1.00)A.SUM=9B.SUM=12C.SUM=18D.SUM=2825.在数据库系统中,用户所见的数据模式为_。(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式26.以下能正确定义一维数组的选项是 _ 。(分数:2.00)A.int a5=0, 112, 3, 4, 5;B.char a=“0“, “2“, “3“, “4“, “5“, “/0“;C.char a=“A“, “b“, “C“;D.int a5=“0123“;2
12、7.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指 _ 。(分数:2.00)A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程28.下述关于数据库系统的叙述中正确的是_。(分数:1.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型的一致D.数据库系统比文件系统能管理更多的数据29.当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。(分数:1.00)A.getchar()B.scanf()C.gets()D.getc()30.为了合理组织数据,应遵循的设计原则是 _(分数:1.
13、00)A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系B.用外部关键字保证有关联的表之间的联系C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段D.以上各原则都包括31.有以下程序 #include stdio.h void fun(int *a, int n)/* fun 函数的功能是将 a 所指数组元素从大到小排序*/ int t, i,j; for (i=0; in-1 ;i+) for 0=i+l; jn; j+) if(aiaj) t=ai; ai=aj; aj=t; main() int c10= 1,2,3,4,5,6,7,8,9,0,i; f
14、un(c+4, 6); for (i=0;i10; i+) printf(“%d,“, ci); printf(“/n“); (分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0,32.设有如下说明: typedef struct ST long a;int b;char c2; NEW; 则下面叙述中正确的是 _ 。(分数:1.00)A.以上的说明形式非法B.ST 是一个结构体类型C.NEW 是一个结构体类型D.NEW 是一个结构体变量33.有以下程序段
15、: #include “stdio.h“ #include “string.h“ main() char a320=“china“,“isa“,“bigcountry!“; char k100=0,*p=k; int i; fori=0;i3;i+) P=strcat(p,ai); i=strlen(p); printf(“%d/n“,i)=; 则程序段的输出结果是 _ 。(分数:1.00)A.18B.19C.20D.21二、填空题(总题数:15,分数:26.00)34.执行以下程序时输入 1234567CR,则输出结果是 1。 #include stdioh main() int a=1,b
16、; scanf(“%2d%2d“, prinff(“%d %dhn“,a,b); 35.若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y 后,y 的值为 _ 1_ 。 (分数:1.00)36.常用的黑箱测试有等价分类法、 1、因果图法和错误推测法 4 种。 (分数:2.00)37.以下程序的功能是将文件 filel.c 的内容输出到屏幕上并复制到文件 file2.c 中。请在横线处填入适当的内容。 #includestdio.h void main() FILE 1; fp1=fopen(“file1.c“,“r“); fp2=fopen(“file2.c“,“w“); w
17、hile(!feof(fp1) putchar(fgetc(fp1); 2 while(!feof(fp1)fputc( 3); fclose(fp1); fclose(fp2); (分数:2.00)38.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。 (分数:2.00)39.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。 (分数:2.00)40.下面的语句要使指针 p 指向一个 double 类型的动态存储单元,请填空。 p = _ 1_ malloc(sizeof(double); (分数:2.00)41.有一个学生选课的关系,其中学生的关系模式为:学生(
18、学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 1,成绩)。 (分数:4.00)42.若从键盘输入 58,则以下程序输出的结果是 _ 1_ 。 main() int a; scanf(“%d“, (分数:2.00)44.设有下列宏定义: #defineA2 #define B A+3 则执行赋值语句:t=B*2;t 为 int 型变量后的值是 1。 (分数:2.00)45.在结构化分析使用的数据流图(DFD)中,利用 1 对其中的图形元素进行确切解释。 (分数:2.00)46.当循环队列非空且队
19、尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。 (分数:2.00)47.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序完整。 (注:程序采用了冒泡排序算法) #includestdio.h #includestring.h main() char*str=“ABCDabcd“,temp; int n,i; n=strlen(str); while(n-1) for(i=0;in;i+) if(stristri+1) temp= _ 1_ ; stri=stri+1; _ 2_ =temp; printf( _ 3_ ); (分数:1.00)48.从
20、Windows 环境进入 MS-DOS 方式后,返回 Windows 环境的 DOS 命令为 【】 。 (分数:1.00)二级 C 语言-520 答案解析(总分:74.00,做题时间:90 分钟)一、选择题(总题数:34,分数:48.00)1.C 语言中,能识别处理的文件为( )。(分数:1.00)A.文本文件和数据块文件B.文本文件和二进制文件 C.流文件和文本文件D.数据文件和二进制文件解析:解析 C 语言中,能识别处理的文件为文本文件和二进制文件,故 B 为所选。2.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2)
21、static int a=4;t+=a+; elsestatic int a=5;t+=a+; return t+; main() int s=a,i; for(i=0;i3;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29 D.24解析:解析 定义“int a=2;”中的全局变量 a,起作用的范围是从定义此变量的位置开始到本源文件结束;定义“static int a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其只赋一次初值,以后每次调用函数时不再重新赋值,而只保留上次函数调用结束时的值;复合语
22、句“static int a=4;t+=a+;”和“static int a=s;t+=a+;)”中定义的两个变量 a 属于复合语句中定义的变量,作用的范围只在其本身所在的复合语句内对于本程序来讲,第三行定义的静态局部变量并不会对第 4、5两行的复合语句产生作用,这是因为复合语句也定义了与其同名的静态局部变量。3.对长度为 n 的线性表进行顺序查找,在最坏的情况下需要比较的次数为 _ 。(分数:2.00)A.125B.n/2Cn D.n+1解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏的情况下,
23、要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。4.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)return(s1); else return(s2); main( ) int i; char string20, str320; for(i=0;istrcpy(string,scmp(str0,str1); /*库函
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 520 答案 解析 DOC
