2017年福建省二级C语言试卷真题
- 格式:doc
- 大小:43.41 KB
- 文档页数:25
二级C语言真题2017年03月-(3)及答案解析(1/40)单项选择题第1题下列叙述中正确的是( )。
A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关下一题(2/40)单项选择题第2题下列叙述中正确的是( )。
A.线性表链式存储结构的存储空间一般要少于顺序存储结构B.线性表链式存储结构与顺序存储结构的存储空间都是连续的C.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D.以上说法均错误上一题下一题(3/40)单项选择题第3题某二叉树共有12个节点,其中叶子节点只有1个,则该二叉树的深度为(根节点在第l层)( )。
A.3B.6C.8D.12上一题下一题(4/40)单项选择题第4题对长度为n的线性表作快速排序,在最坏情况下,比较次数为( )。
A.nB.n-1C.n(n-1)D.n(n-1)/2上一题下一题(5/40)单项选择题第5题结构化程序设计中,下面对goto语句使用描述正确的是( )。
A.禁止使用goto语句B.使用goto语句程序效率高C.应避免滥用goto语句D.以上说法均错误上一题下一题(6/40)单项选择题第6题下面不属于软件测试实施步骤的是( )。
A.集成测试B.回归测试C.确认测试D.单元测试上一题下一题(7/40)单项选择题第7题下面不属于软件需求分析阶段主要工作的是( )。
A.需求变更申请B.需求分析C.需求评审D.需求获取上一题下一题(8/40)单项选择题第8题一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。
A.记录B.行C.属性D.元组上一题下一题(9/40)单项选择题第9题有三个关系R、S和T如下:图片则由关系R和S得到关系T的操作是( )。
A.选择B.差C.交D.并上一题下一题(10/40)单项选择题第10题有表示公司和职员及工作的三张表,职员可在多家公司兼职。
计算机二级c语言2017试题及答案一、选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. variable-2D. _variable2答案:D2. 关于C语言中的数组,以下说法正确的是?A. 数组的大小在声明后可以改变B. 数组的索引从0开始C. 数组可以存储不同类型的数据D. 数组只能存储数字答案:B3. 下列哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:C5. C语言中,以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. =D. &&答案:A6. 在C语言中,以下哪个选项表示“或”逻辑运算?A. &&B. ||C. !D. %答案:B7. C语言中,以下哪个选项用于定义一个全局变量?A. staticB. externC. constD. register答案:B8. 在C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 关于C语言中的指针,以下说法正确的是?A. 指针可以存储任何类型的数据B. 指针变量必须初始化C. 指针可以存储变量的地址D. 指针不能存储函数的地址答案:C10. 在C语言中,以下哪个选项用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 字符串"Hello, World!"在C语言中的正确表示方式是________。
答案:"Hello, World!"3. 在C语言中,用于定义一个函数的关键字是________。
全国计算机二级《C语言》操作试题及答案2017全国计算机二级《C语言》操作试题及答案一、程序填空题给定程序中,函数fun的功能是:把形参S所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。
若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abcdefgh,n的.值为5,程序执行后t所指字符数组中的字符串应为:defgh。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。
二、程序修改题下列给定程序中,函数fun的功能是:找出一个大于给定整数m 且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!三、程序设计题参考答案一、程序填空题【参考答案】二、程序修改题【参考答案】(1)if(i%k==0)(2)if(k==i)【解题思路】(1)判断当前数是否为素数,若存在一个数(除1和其自身)能整除当前数,则跳出本次循环,所以if条件应为i%k==0。
(2)如果i是素数,则循环结束时k==i,将该值返回。
三、程序设计题【参考答案】【解题思路】本题考查:偶数的判定方法;整除的实现。
本题题干信息是:能整除X且不是偶数的所有整数。
循环语句中变量i从1开始且每次增2,所以i始终是奇数。
整除的方法,已经讲过多次,这里就不再赘述了。
对于本题目要求的不是偶数的判定方法,即该数对2求余不为0。
除本题描述的方法外,还可以通过for循环语句直接把偶数筛出去,确保参与操作的数均为奇数。
更多计算机二级考试相关试题推荐:1.2.3.4.5.6.7.8.9.10.。
2017计算机二级c试题及答案一、选择题1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. intC. _variableD. variable2答案:C2. 关于C语言中的数组,以下说法正确的是?A. 数组的大小在定义后可以改变B. 数组的索引从1开始C. 数组的元素必须是同一数据类型D. 数组可以存储不同类型的数据答案:C3. 下列哪个函数不能正确计算两个整数的和?A. int add(int a, int b) { return a + b; }B. int sum(int a, int b) { return a - b; }C. int total(int a, int b) { return a + b; }D. int combine(int a, int b) { return a + b; }答案:B4. 在C语言中,以下哪个关键字用于声明一个函数?A. structB. staticC. voidD. int答案:C5. 关于C语言中的指针,以下说法错误的是?A. 指针可以存储变量的地址B. 指针可以被初始化为NULLC. 指针可以直接存储整数值D. 指针可以指向函数答案:C二、填空题1. 在C语言中,定义一个整型变量并初始化为10的语句是:______。
答案:int x = 10;2. 如果一个函数的返回类型是void,那么该函数______返回任何值。
答案:不能3. 在C语言中,用于表示逻辑“与”操作的运算符是______。
答案:&&4. 声明一个指向整型的指针变量的语句是:______。
答案:int *p;5. 在C语言中,用于定义一个结构体的关键字是______。
答案:struct三、编程题1. 编写一个函数,计算并返回两个整数的乘积。
答案:```cint multiply(int a, int b) {return a * b;}```2. 编写一个程序,读取用户输入的两个整数,然后调用上述函数计算它们的乘积,并输出结果。
计算机二级c语言考试真题及答案(2)2017年计算机二级c语言考试真题及答案#includevoidfun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a);printf("\n");}程序运行后的输出结果是A)BYB)BTC)YTD) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3B)2C)1D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s;B)p=k;C)p=s[0];D)k=s;(29)有以下程序#includevoidfun(char *C){ while(*C){if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ chars[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
全国计算机等级考试二级笔试试卷C 语言程序设计(附答案)(考试时间90 分钟,满分100 分)一、选择题((1)—(10)、(21)—(40)每题2 分,(11)—(20)每题1 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制C)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文件的大小B)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S 和T 如下:则由关系R 和S 得到关系T 的操作是A)自然连接B)交C)投影D)并(11)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto 语句会很便捷C)在C 语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(13)以下叙述中错误的是A)C 程序在运行过程中所有计算都以二进制方式进行B)C 程序在运行过程中所有计算都以十进制方式进行C)所有C 程序都需要编译链接无误后才能进行D)C 程序中整型变量只能存放整数,实型变量只能存放浮点数(14)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:‟\‟ D)字符串:”\007” (16)表达式a+=a-=a=9 的值是A)9 B)-9 C)18 D)0(17)若变量已正确定义,在if(W)printf(“%d\n”,k);中,以下不可替代W的是A)a<>b+c B)ch=getchar() C)a==b+c D)a++(18)有以下程序#includemain(){ int a=1,b=0;if(!a) b++;else if(a==0)if(a) b+=2;else b+=3;printf(“%d\n”,b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)若有定义语句int a,b;double x;则下列选项中没有错误的是A)switch (x%2){ case 0: a++; break;case 1: b++; break;default: a++; b++; }B) switch ((int)x/2.0){ case 0: a++; break;case 1: b++; break;default : a++; b++; }C) switch((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++; }(20)有以下程序#includemain(){ int a=1,b=2;while(a<6) {b+=a; a+=2;b%=10;}printf(“%d, %d\n”,a,b);}程序运行后的输出结果是A)5,11 B)7,1 C)7,11 D)6,1(21)有以下程序#includemain(){ int y=10;while(y--);printf(“y=%d\n”,y);}程序执行后的输出结果是A)y=0 B)y=-1 C)y=1 D)while 构成无限循环(22)有以下程序#includemain(){ char s[ ]=”rstuv”;printf(“%c\n”,*s+2);}程序运行后的输出结果是A)tuv B) 字符t 的ASCII 值C)t D)出错(23)有以下程序#include <stdio.h>#include <string.h>main(){ char x[ ]=”STRING”;x[0]=0; x[1]=‟\0‟; x[2]=‟0‟;printf(“%d %d\n”,sizeof(x),strlen(x));}程序运行后的输出结果是A) 6 1 B) 7 0 C) 6 3 D) 7 1(24)有以下程序#includeint f(int x);main(){ int n=1,m;m=f(f(f(n)));printf(“%d\n”,m);}int f(int x){ return x*2; }程序运行后的输出结果是A)1 B)2 C)4 D)8(25)以下程序段完全正确的是A)int *p; scanf(“%d”,&p);B) int *p; scanf(“%d”,p);C) int k, *p=&k; scanf(“%d”,p);D) int k,*p; *p=&k; scanf(“%d”,p);(26)有定义语句:int *p[4];以下选项中与此语句等价的是A)int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4];(27)下列定义数组的语句中,正确的是A) int N=10; B) #define N 10 int x[N]; int x[N]; C) int x[0..10]; D) int x[ ];(28)若要定义一个具有5 个元素的整型数组,以下错误的定义语句是A)int a[5]={0}; B) int b[ ]={0,0,0,0,0}; C)int c[2+3]; D) int i=5,d[i];(29)有以下程序#includevoid f(int *p);main(){ int a[5]={1,2,3,4,5},*r=a;f(r );printf(“%d\n”,*r); }void f(int *p){ p=p+3;printf(“%d,”,*p);}程序运行后的输出结果是A)1,4 B)4,4 C) 3,1 D)4,1(30)有以下程序(函数fun 只对下标为偶数的元素进行操作)#includevoid fun(int *a,int n){ int i,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2) if(a[j]>a[k]) k=j;t=a[i]; a[i]=a[k]; a[k]=t; }}main(){ int aa[10]={1,2,3,4,5,6,7},i;fun(aa,7);for(i=0;i<7;i++)printf(“%d,”,aa[i]);printf(“\n”);}程序运行后输出结果是A)7,2,5,4,3,6,1,B)1,6,3,4,5,2,7,C)7,6,5,4,3,2,1,D)1,7,3,5,6,2,1,(31)下列选项中,能够满足“若字符串s1 等于字符串s2, 则执行ST”要求的是A)if(strcmp(s2,s1) ==0) ST;B) if(s1==s2) ST;C) if(strcpy(s1,s2) ==1) ST;D) if(s1-s2==0) ST;(32)以下不能将s 所指字符串正确复制到t 所指存储空间的是A)while(*t=*s){t++,s++;}B)for(i=0;t[i]=s[i];i++);C)do{*t++=*s++;}while(*s);D)for(i=0,j=0;t[i++]=s[j++]; );(33)有以下程序(strcat 函数用以连接两个字符串)#include <stdio.h>#include <string.h>main(){ char a[20]=”ABCD\0EFG\0”, b[ ]=”IJK”;strcat(a,b);printf(“%s\n”,a);}程序运行后的输出结果是A)ABCDE\OFG\OIJK B)ABCDIJK C)IJK D)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断ch 中的字母是否为小写字母#include <stdio.h>#include <ctype.h>void fun(char *p){ int i=0;while(p[i]){ if(p[i] ==‟…&&islower(p[i-1])) p[i-1]=p[i-1]-‟a‟+‟A‟;i++;}}main(){ char s1[100]=”ab cd EFG !”;fun(s1);printf(“%s\n”,s1);}程序运行后的结果是A) ab cd EFG ! B) Ab Cd EFg ! C) aB cD EFG ! D) ab cd EFg !(35)有以下程序#includevoid fun(int x){ if(x/2>1)fun(x/2);printf(“%d ”,x);}main(){ fun(7);printf(“\n”);}程序运行后的输出结果是A)1 3 7 B)7 3 1 C)7 3 D)3 7(36)有以下程序#includeint fun(){ static int x=1;x+=1;return x;}main(){ int i, s=1;for(i=1;i<=5;i++)s+=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)11 B)21 C)6 D)120(37)有以下程序`#include <stdio.h>#include <stdlib.h>main(){ int *a,*b,*c;a=b=c=(int *)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(38)有以下程序#includemain(){ int s,t,A=10;double B=6;s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}在VC6 平台上编绎运行,程序运行后输出结果是A)2,4 B)1,4 C)4,8 D)10,6(39)若有以下语句typedef struct S{int g ; char h;} T;以下叙述中正确的是A)可用S 定义结构体变量B)可用T 定义结构体变量C)S 是struct 类型的变量D)T 是struct S 类型的变量(40)有以下程序#includemain(){ short c=124; c=c ;printf(“%d\n”,c);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B) |248 C)& 0248 D) <<1二、填空题(每空2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
二级C语言真题2017年09月-(1)及答案解析(1/40)单项选择题第1题设有一个栈与一个队列的初始状态均为空。
现有一个序列的元素为A,B,C,D,E,F,G,H,先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。
最后得到的序列为______。
A.A,B,C,D,H,G,F,EB.D,C,B,A,H,G,F,EC.A,B,C,D,E,F,G,HD.D,C,B,A,E,F,G,H下一题(2/40)单项选择题第2题设某棵树的度为3,其中度为2,1,0的节点个数分别为3,4,15,则该树中总节点数为______。
A.30B.22C.35D.不可能有这样的树上一题下一题(3/40)单项选择题第3题设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。
则按层次输出(从上到下,同一层从左到右)的序列为______。
A.ABCDEFGHIJB.DCHEBIJFCAC.JIHGFEDCBAD.GHIJDEFBCA上一题下一题(4/40)单项选择题第4题设顺序表的长度为16,对该表进行简单插入排序。
在最坏情况下需要的比较次数为______。
A.15B.60C.30D.120上一题下一题(5/40)单项选择题第5题软件系统总体结构图的作用是______。
A.描述软件系统结构的图形工具B.描述软件系统的控制流C.描述软件系统的数据流D.描述软件系统的数据结构上一题下一题(6/40)单项选择题第6题不属于对象构成成份的是______。
A.属性B.规则C.方法(或操作)D.标识上一题下一题(7/40)单项选择题第7题十进制整数设为整数类Ⅰ,则下面属于类Ⅰ的实例的是______。
A.-518B.0.518C.518E-2D..518上一题下一题(8/40)单项选择题第8题结构化程序设计原则强调的是______。
A.自顶向下B.可封装性C.可复用性D.可恢复性上一题下一题(9/40)单项选择题第9题违背数据流图(DFD)构造规则的是______。
2017年3月全国计算机等级考试二级C语言程序设计真题(1)(总分:100.00,做题时间:120分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是(分数:1.00)A.程序执行的效率与数据的存储结构密切相关(正确答案)B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上说法均错误解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
2.下列与队列结构有关联的是(分数:1.00)A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度(正确答案)解析:队列的修改是依照“先进先出” 的原则进行的,故D 正确。
3.对下列二叉树进行前序遍历的结果为(分数:1.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZ (正确答案)D.ABCDEFXYZ解析:前序遍历是指在访问根节点、遍历左子树与遍历右子树这三者中,首先访问根节点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。
因此,前序遍历可描述为:若二叉树为空,则执行空操作。
否则:①访问根节点;②前序遍历左子树;③前序遍历右子树。
所以C 正确。
4.一个栈的初始状态为空,现将元素1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1 (正确答案)D.1,2,3,C,B,A解析:栈的修改是按照“后进先出” 的原则进行的,所以顺序应与入栈顺序相反,故选C。
5.下面属于白盒测试方法的是(分数:1.00)A.等价类划分法B.逻辑覆盖(正确答案)C.边界值分析法D.错误推测法解析:白盒测试法主要有逻辑覆盖、基本路径测试等。
逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断一条件覆盖,故选择B。
(1) 下面叙述正确的是(D )。
A) ( )函数必须位于源程序文件的开头B) 程序中必需含有自定义函数C) 每行最多只能写两条语句D) 所有语句都必须以分号“;”结束(2) 下面叙述错误的是(D )。
A) C语言规定可逐个引用数组元素但不能一次引用整个数组B) C语言数组名称是数组在内存中的首地址C) 数组中每一个元素都属于同一个数据类型D) C语言数组长度在定义数组时刻不作确定(3) 以下程序段的运行结果是(C )。
t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};(“\n”[1][1]);A) 4B) 3C) 5D) 1(4) 以下程序段的运行结果是(C )。
[3][2]={‘a’,’b’,’c’,’\0’,’e’,’f’};(“”[0]);A) \0B)C)D) a(5) 以下程序段的运行结果是(C )。
f( c){ 2;c;}( ){ 25;(a);(“\n”);}A) 2 4B) 4 4C) 4 5D) 2 5B) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率C) “<>”命令的作用是在预处理时将文件中的实际内容代替该命令D) 宏定义也是C语句,必须在行末加分号(7) 若有定义:2,*;,则以下(A )均表示地址。
A) ,pB) a,pC) a,*pD) ,*p(8) 以下程序段运行后x的值为(C )。
a[ ]={1,2,3,4,5,6,7,8};,*p;1;[1];(0<3)x*=*();A) 1B) 120C) 24D) 6(9) 下列(C )对结构类型变量定义是错误的。
A){ ;;};1;B){ ;;} 1, 2;C){ ;;} ;1;D){ ;;} 1;(10) 以下程序段运行后,(D )对数组a元素的引用是错误的。
(其中0≤i<4,0≤j<3)D) *(p[i])(11) 若有定义:;;{, , , , , , };a[];则(C )对下列语句是否符合语法规则的判断是正确的。
2017 年全国计算机等级考试笔试试卷及答案二级公共基础知识和C 语言程序设计(考试时间120 分钟,满分100 分)一、选择题((1)-(10)每小题2 分,(11)-(50)每小题1 分,共60 分)(1)下列选项中不属于结构化程序设计方法的是()。
A)自顶向下B)逐步求精C)模块化D)可复用(2)两个或两个以上模块之间关联的紧密程度称为()。
A)耦合度B)内聚度C)复杂度D)数据传输特性(3)下列叙述中正确的是()。
A)软件测试应该由程序开发者来完成B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护D)以上三种说法都不对(4)按照“后进先出”原则组织数据的数据结构是()。
A)队列B)栈C)双向链表D)二叉树(5)下列叙述中正确的是()。
A)线性链表是线性表的链式存储结构B)栈与队列是非线性结构C)双向链表是非线性结构D)只有根结点的二叉树是线性结构(6)对如下二叉树进行后序遍历的结果为()。
A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA(7)在深度为7 的满二叉树中,叶子结点的个数为()。
A)32B)31C)64D)63(8)“商品”与“顾客”两个实体集之间的联系一般是()。
A)一对一B)一对多C)多对一D)多对多(9)在E-R 图中,用来表示实体的图形是()。
A)矩形B)椭圆形C)菱形D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS 之间的关系是()。
A)DB 包含DBS 和DBMSB)DBMS 包含DB 和DBSC)DBS 包含DB 和DBMSD)没有任何关系(11)下列不合法的用户标识符是()。
A)j2_KEYB)DoubleC)4dD)_8_(12)下列不合法的数值常量是()。
A)011B)1e1C)8.0E0.5D)0xabcd(13)下列不合法的字符常量是()。
A)'\018'B)'\" 'C)'\\'D)'\xcc'(14)表达式3.6-5/2+1.2+5%2 的值是()。
(1) 下面叙述正确的是(D )。
A) main( )函数必须位于源程序文件的开头B) 程序中必需含有自定义函数C) 每行最多只能写两条语句D) 所有语句都必须以分号“;”结束(2) 下面叙述错误的是(D )。
A) C语言规定可逐个引用数组元素但不能一次引用整个数组B) C语言数组名称是数组在内存中的首地址C) 数组中每一个元素都属于同一个数据类型D) C语言数组长度在定义数组时刻不作确定(3) 以下程序段的运行结果是(C )。
int t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,t[1][1]);A) 4B) 3C) 5D) 1(4) 以下程序段的运行结果是(C )。
char str[3][2]={‘a','b','c','\0','e','f'};printf(“%s”,str[0]);A) abc\0efB) abcefC) abcD) a(5) 以下程序段的运行结果是(C )。
int f(int c){ c+=2;return c;}main( ){ int a=2,c=5;a=f(a);printf(“%d %d \n”,a,c);}A) 2 4C) 4 5D) 2 5(6) 下面叙述错误的是(D )。
PRICE等价的符号常量30”命令的作用是定义一个与#define PRICE 30“A)B) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率C) “#include <stdio.h>”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令D) 宏定义也是C语句,必须在行末加分号(7) 若有定义:int a=2,*p=&a;,则以下(A )均表示地址。
A) &a,pB) a,pC) a,*pD) &a,*p(8) 以下程序段运行后x的值为(C )。
int a[ ]={1,2,3,4,5,6,7,8};int i,x,*p;x=1;p=&a[1];for (i=0;i<3;i++)x*=*(p+i);A) 1B) 120C) 24D) 6(9) 下列(C )对结构类型变量定义是错误的。
A) struct teacher{ int num;int age;};struct teacher teach1;B) struct{ int num;int age;} teach1, teach2;C) structint age;} teacher;struct teacher teach1;D) struct teacher{ int num;int age;} teach1;(10) 以下程序段运行后,(D )对数组a元素的引用是错误的。
(其中0≤i<4,0≤j<3)int i,j,(*p)[3];int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;A) *(*(a+i)+j)B) *(*(p+i)+j)C) p[i][j]D) *(p[i]+j)(11) 若有定义:char ch;int j,k;enum day {sun, mon, tue, wed, thu, fri, sat};int a[sat];则( C )对下列语句是否符合语法规则的判断是正确的。
sun=0; /*语句1*/j=mon+tue; /*语句2*/if (a[mon]>0) j++; /*语句3*/A) 语句1、2、3均正确B) 语句2正确,语句1和语句3错误C) 语句1错误,语句2和语句3正确D) 语句1、2、3均错误(12) C语言的基本数据类型包括(A )。
A) 整型、实型、字符型B) 整型、指针型、字符型C) 整型、实型、逻辑型D) 整型、实型、空类型(13) 下面程序运行后,屏幕显示error!,则可能的原因是(A )。
#include <stdio.h>{FILE *fp;char str[256];fp=fopen(“test.txt”,”rt”);if (fp= =NULL){ printf(“error!:);return;}fscanf(fp,”%s”,str);fclose(fp);}A) 当前工作目录下没有test.txt文件B) 函数fopen( )的参数是错误的C) 当前工作目录下的test.txt文件是空文件D) text.txt文件已经打开(14)(C )语句符合C语言语法。
int a=b=2,c=5;A)B) float x=3.2, int i,j=6;C) float x=2.3,b,c;D) int a=2,b+=a;(15) 若有定义:int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后x的值为(B )。
A) 6B) 7C) 8D) 3(16) 若有定义int a=8,b=5;要实现输出形式为:8*5=40,正确的printf( )函数调用语句是(D )。
A) printf(“a*b=a*b\n”);B) printf(“a*b=%d\n”,a*b);C) printf(“%d*%d=a*b\n”,a,b);D) printf(“%d*%d=%d\n”,a,b,a*b);(17) 若有定义:int a;且表达式!a的值为0,则表达式(B )的值为1。
A) !(a<0||a>0)B) a!=0C) a= =0(18) 下列运算符中优先级最低的是(C )。
A) >B) *C) =D) !(19) 以下程序段运行后x的值为(C )。
int a=3,b=6,x;x=(a= =b)?a++:--b;A) 6B) 4C) 5D) 3(20) 以下程序段运行后x的值为(A )。
int i=0,x=0;for (;i<=5;i++,i++){x+=3;}A) 9B) 15C) 612 D)(21)(B )是关于C语言数据类型的正确叙述。
A) 枚举类型不是基本类型B) 变量使用前应定义相应的数据类型C) 不允许使用空类型D) 数组不是构造类型(22)(C )是正确的数组定义。
A) int n=5; int arr[n];B) int n; n=5; int arr[n];C) int arr[10];D) int N=5, arr[N];(23) 以下程序段运行后a的值为(B )。
int a=2;a=strcmp(“miss”,”miss”);A) trueB) 0C) 1D) -1(24) 以下程序段的运行结果是(D )。
int fun(int array[3][3]){ int j;for (j=0;j<3;j++) array[1][j]++;printf(\);}main( ){ int j,a[3][3]={0,1,2,1,0,4,2,4,5};fun(a);for (j=0;j<3;j++) printf(“-”,a[1][j]);printf(\);}A) 1 0 4B) 0 1 2C) 1 2 3D) 2 1 5(25) 若有定义:#define PI 3,则表达式PI*2*2的值为(C )。
A) 4B) 不确定C) 12D) 322(26) 若有定义:int *p1,*p2;,则不能用于指针变量p1、p2之间的运算符是(C )。
A) -B) =C) +D) = =(27) 若有定义:struct teacher{ int num;char sex;int age;} teacher1;则下面叙述错误的是( A )。
A) teacher1是结构类型名B) struct teacher是用户定义的结构类型C) num、sex、age都是结构变量teacher1的成员D) struct是结构类型的关键字(28) 下列程序段运行后,表达式(A )的值为3。
struct point{ int x;int y;} *p;struct point a[3]={1,2,3,4,5,6};p=a;A) p[1].xB) *(p+2)C) p[3].xD) p[2].x(29) 若有定义:typedef int NUM[100];NUM n;则( A )语句是正确的。
A) n[0]=2;B) NUM=2;C) NUM=n;D) n=2;(30)(D )为非法的字符串常量。
A) “case”B) ““C) .”056”D) ‘123'(31) 若当前工作目录下有一文本文件test.txt,其内容为cprogram“(不包含引号),则以下程序段的运行结果是( A )。
char *str;if ((fp=fopen(“test.txt”,”r”))!=NULL)str=fgets(str,5,fp);printf(%s,str);fclose(fp);A) cproB) cprogC) ogramD) gram(32) 若有定义:int a=3;,语句a+=a-=a*a;运行后a的值为(C )。
A) -3B) -6C) -12D) 0(33) 若有定义:int i=3,j=6;,则表达式(--i)*(j++)的值为(A )。
A) 12B) 10C) 18D) 15(34) getchar( )函数的功能是获取终端输入的(B )。
A) 一个实型变量值B) 一个字符C) 多个字符D) 一个整型变量表达式(35) 若有定义:int a;,则表达式(B )不能用来判断a值为奇数是“真”,偶数是“假”。
A) a%2= =1B) !(a%2)C) a%2D) !(a%2= =0)(36) 若有定义:float x=3.5,y=3.6; 则表达式(A )的值为6。
A) (int)x+(int)yB) x+yC) (int)(x+y)。
)C 以下程序运行后输出结果是((37)void main(){ int a,b=2,c=6;a=3;if (a>6) a=a+b;else if (a= =6) b=a+c;else a=b+c;printf(%d\n,a);}A) 9B) 6C) 8D) 5(38) 以下程序段运行后x的值为(D )。
int i,j,x=0;for (i=3;i>=1;i--)for (j=1;j<=i;j++)x=x+2;A) 8B) 14C) 10D) 12(39) 下面叙述错误的是(D )。
A) c源程序必须包含一个main( )函数B) c源程序可由一个或多个函数组成C) 一个c源程序的执行是从main( )函数开始,直到main( )函数结束D) 注释说明部分只能位于c源程序的最前面(40) 下面叙述错误的是(C )。