2016年9月计算机二级C语言笔试题及答案
2016年c语言二级试题及答案
2016年c语言二级试题及答案2016年C语言二级试题及答案一、选择题1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接在操作系统上运行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义整型变量的关键字是()。
A. intB. floatC. charD. double答案:A3. 下列选项中,不是C语言标准库函数的是()。
A. printf()B. scanf()C. strcpy()D. strcat()答案:C二、填空题1. 在C语言中,一个整型变量占用的字节数是()。
答案:42. C语言中,用于定义字符常量的是()。
答案:单引号3. C语言中,用于定义浮点型变量的关键字是()。
答案:float三、简答题1. 请简述C语言中数组的定义方式。
答案:C语言中数组的定义方式是通过指定数组的类型、名称和大小来定义的。
例如,定义一个整型数组可以写作:`int array[10];`,其中`int`是数组的类型,`array`是数组的名称,`10`是数组的大小。
2. 请说明C语言中指针和数组的关系。
答案:在C语言中,指针和数组有密切的关系。
指针可以用于访问数组元素,数组名在大多数情况下可以作为指向数组第一个元素的指针使用。
例如,如果有一个数组`int arr[10];`,那么`arr`可以作为指向`arr[0]`的指针。
四、编程题1. 编写一个C语言程序,实现计算两个整数的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串的反转。
计算机二级C语言测试题及答案解析
2016年计算机二级C语言测试题及答案解析(二) 基本输入输出及流程控制1.#in elude?mai n(){ int a=1,b=3,c=5;if (c==a+b)prin tf("yes\n");elseprin tf(" no\n");}运行结果为:no详见教材p89选择结构详见教材p91关系符号详见附录D p378符号的优先级==表示判断符号两边的值是否相等;二表示将符号右边的值赋给左边的变量本题考点是选择结构3种基本形式的第二种选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以省略{ },此题即如此,因此两个printf 操作没有加{ }若c==a+b 成立,则执行printf("yes\n");否则(即c==a+b不成立),执行printf("no\n");+的优先级高于==,因此先算a+b,值为4,表达式5==4不成立,因此执行printf("no\n"); 即输出字符串no2.?#in clude?mai n(){ int a=12, b= -34, c=56, min=0;mi n=a;if(mi n>b)?mi n=b;if(min >c)?mi n=c;prin tf("mi n=%d", mi n);}运行结果为:min二-34详见教材p89选择结构本题考点是选择结构3种基本形式的第一种一共包含了两个选择结构(两个if语句)定义变量,并赋值此时a=12, b= -34, c=56, min=O将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。
若min>b成立,则执行min二b;若min>c成立,则执行min二c;输出min中的值12大于-34,第一个if语句的表达式成立,因此执行min二b;执行后min 中的值被更新为-34.-34小于56,第二个if语句的表达式不成立,因此不执行min二c;最后输出min中的值,为-34.3.#in elude?mai n(){ int x=2,y= -1,z=5;if(x if(yvO)?z=0;elsez=z+1;printf( “ %d\n” ,z);}运行结果为:5遇到选择结构,首先要明确条件表达式成立时执行哪些操作。
全国计算机等级考试二级C语言操作题42016年_真题(含答案与解析)-交互
全国计算机等级考试二级C语言操作题4 2016年(总分30, 做题时间90分钟)1.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是从形参filename 所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include#define N 5typedef struct student {long sno;char name[10];float score[3];} STU;void fun(char *filename){ FILE *fp; int i, j;STU s[N], t;/**********found**********/fp = fopen(filename, __1__);fread(s, sizeof(STU), N, fp);fclose(fp);for (i=0; ifor (j=i+1; j/**********found**********/if (s[i].sno __2__ s[j].sno){ t = s[i]; s[i] = s[j]; s[j] = t; }fp = fopen(filename, "wb");/**********found**********/__3__(s, sizeof(STU), N, fp); /* 二进制输出 */fclose(fp);}main(){ STU t[N]={ {10005,"ZhangSan", 95, 80, 88}, {10003,"LiSi", 85, 70, 78},{10002,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87},{10001,"MaChao", 91, 92, 77}}, ss[N];int i,j; FILE *fp;fp = fopen("student.dat", "wb");fwrite(t, sizeof(STU), 5, fp);fclose(fp);printf("\n\nThe original data :\n\n");for (j=0; j{ printf("\nNo: %ld Name: %-8s Scores: ",t[j].sno, t[j].name);for (i=0; i<3; i++) printf("%6.2f ", t[j].score[i]);printf("\n");}fun("student.dat");printf("\n\nThe data after sorting :\n\n");fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), 5, fp);fclose(fp);for (j=0; j{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}}SSS_TEXT_QUSTI分值: 10解题思路:本题是考察把结构中的数据写入文件。
计算机二级《C语言》基础练习题及答案
2016年计算机二级《C语言》基础练习题及答案(1)1[简答题]下列给定程序中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:参考解析:【参考答案】(1)t=*x;*X=Y;(2)return(t);或return t;【考点分析】本题考查:指针型变量的使用;通过return语句完成函数值的返回。
【解题思路】首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x,最后确定返回值;根据代码b=fun(8a'b),可以知道返回值将赋给变量b,而b 中应存放交换前*x中的值,所以函数应返回变量t。
2[单选题] 有以下程序程序运行后的输出结果是A.3B.1C.2D.4参考答案:C参考解析:本题考查函数的递归调用,将函数参数带入函数中,一步步递归即可得到结果,结果为2,选项C正确。
3[单选题] 以下叙述中正确的是( )A.在算法设计时,可以把复杂任务分解成一些简单的子任务B.在C语言程序设计中,所有函数必须保存在一个源文件中C.只要包含了三种基本结构的算法就是结构化程序D.结构化程序必须包含所有的三种基本结构.缺一不可参考答案:A参考解析:C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#inClude命令来引用,所以B错误。
结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。
4[单选题] 若有语句:int a[3][4],(。
P)[4];P=a;,则以下选项中叙述错误的是( )。
A.系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值B.P+1代表a[1][0]的地址C.P中将存放a数组的首地址D.P+2代表a数组最后一行的首地址参考答案:A参考解析:(+P)[4]定义了一个数组指针。
2016计算机二级考试c语言真题及答案
2016计算机二级考试c语言真题及答案一、选择题(每题1分,共20分)1. 下列关于C语言的叙述中,正确的是()。
A. C语言的源程序文件名的后缀是.cB. C语言的源程序文件名的后缀是.cppC. C语言的源程序文件名的后缀是.javaD. C语言的源程序文件名的后缀是.py答案:A2. 在C语言中,以下哪个关键字用于定义函数?()A. structB. functionC. defineD. void答案:D3. 若有以下定义:```cint a = 10, b = 20, c = 30;```则执行以下语句后,变量c的值是多少?()```cc = a > b ? a : b;```A. 10B. 20C. 30D. 40答案:B4. 在C语言中,以下哪个运算符用于取模运算?()A. %B. /C. *D. -答案:A5. 下列关于C语言中数组的叙述,不正确的是()。
A. 数组名代表数组的首地址B. 数组名是一个常量C. 数组名可以被赋值D. 数组名可以作为函数参数答案:C6. 在C语言中,以下哪个函数用于计算字符串的长度?()A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A7. 在C语言中,以下哪个关键字用于定义指针?()A. pointerB. ptrC. int*D. *答案:D8. 在C语言中,以下哪个函数用于打开文件?()A. fopen()B. fclose()C. fgetc()D. fwrite()答案:A9. 在C语言中,以下哪个函数用于将字符串复制到字符数组中?()A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A10. 在C语言中,以下哪个函数用于将格式化的数据写入文件?()A. printf()B. fprintf()C. scanf()D. fscanf()答案:B11. 在C语言中,以下哪个函数用于计算两个浮点数之间的差的绝对值?()A. fabs()B. floor()C. ceil()D. fmod()答案:A12. 在C语言中,以下哪个关键字用于定义结构体?()A. structB. unionC. enumD. typedef答案:A13. 在C语言中,以下哪个函数用于将整数转换为字符串?()A. atoi()B. itoa()C. sprintf()D. sscanf()答案:B14. 在C语言中,以下哪个函数用于获取当前时间?()A. time()B. localtime()C. mktime()D. gmtime()答案:A15. 在C语言中,以下哪个函数用于将字符串转换为浮点数?()A. atof()B. atoi()C. atol()D. atoll()答案:A16. 在C语言中,以下哪个关键字用于定义枚举类型?()A. enumB. unionC. structD. typedef答案:A17. 在C语言中,以下哪个函数用于获取字符串中的子字符串?()A. strncpy()B. strncat()C. strstr()D. strtok()答案:C18. 在C语言中,以下哪个函数用于计算两个整数之间的差的绝对值?()A. fabs()B. floor()C. abs()D. labs()答案:C19. 在C语言中,以下哪个函数用于将浮点数转换为字符串?()A. sprintf()B. sscanf()C. atof()D. atoi()答案:A20. 在C语言中,以下哪个函数用于释放动态分配的内存?()A. malloc()B. calloc()C. realloc()D. free()答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个全局变量。
2016全国计算机等级考试二级C语言笔试选择真题及答案
2016全国计算机等级考试二级C语言笔试选择真题及答案一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(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.可封装B.自顶向下C.模块化D.逐步求精(7)软件详细设计产生的图如下:该图是A.N-S图B.PAD图C.程序流程图D.E-R图(8)数据库管理系统是A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统(9)在E-R图中,用来表示实体联系的图形是A.椭圆图B.矩形C.菱形D.三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A.选择B.投影C.交D.并(11)以下叙述中正确的是A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所用数据结构C.程序设计的任务就是确定所用算法D.以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A.voidC._0_D.unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A.定义语句出错,case是关键字,不能用作用户自定义标识符B.定义语句出错,printF不能用作用户自定义标识符C.定义语句无错,scanf不能作为输入函数使用D.定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A.0B.3C.4D.5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为B.-10C.0D.10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A.0,0B.1,0C.3,2D.1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A.if(a>B.c=a,a=b,b=c;B.if(a>B.{c=a,a=b,b=c;}C.if(a>B.c=a;a=b;b=c;D.if(a>B.{c=a;a=b;b=c;}(18)有以下程序main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,C.;}程序运行后的输出结果是A.3B.5C.7D.9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A.if((a>b)&&(b>C.) k=1;else k=0;B.if((a>b)||(b>C.k=1;else k=0;C.if(a<=B.k=0;else if(b<=C.k=1;D.if(a>B.k=1;else if(b>C.k=1;else k=0;20)有以下程序#includemain(){ char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++; printf(“%d\n”,n);}程序运行后的输出结果是A.0B.2C.3D.5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A.0 2B.1 3C.5 7D.1 2(22)有以下定义语句,编译时会出现编译错误的是A.char a=’a’;B.char a=’\n’;C.char a=’aa’;D.char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A.E,68B.D,69C.E,DD.输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A.32B.12C.21D.22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i{ max=MIN;if(maxreturn max;}造成错误的原因是A.定义语句int i,max;中max未赋初值B.赋值语句max=MIN;中,不应给max赋MIN值C.语句if(maxD.赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A.1,2,1,2B.1,2,2,1C.2,1,2,1D.2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A.p=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1]; printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A.9,One*WorldB.9,One*DreamC.10,One*DreamD.10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”); }A.3 3 4 4B.2 0 5 0C.3 0 4 0D.0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A.7,4B.4,10D.10,10(31)下面是有关C语言字符数组的描述,其中错误的是A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A.将a所指字符串赋给b所指空间B.使指针b指向a所指字符串C.将a所指字符串和b所指字符串进行比较D.检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A.void (*pf)(); pf=fun;B.viod *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char);pf=&fun;(34)有以下程序int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s); }int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A.7B.8C.9D.10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A.10,64B.10,10C.64,10D.64,64(36)下面结构体的定义语句中,错误的是A.struct ord {int x;int y;int z;}; struct ord a;B.struct ord {int x;int y;int z;} struct ord a;C.struct ord {int x;int y;int z;} a;D.struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A.char str[ ]=”string”;c=str;B.scanf(“%s”,C.;C.c=getchar();D.*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.C.;}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; ) 程序运行后的输出结果是A.1001,ZhangDa,1098.0B.1001,ZhangDa,1202.0C.1001,ChangRong,1098.0D.1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A.16B.8C.4D.2(40)下列关于C语言文件的叙述中正确的是A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
2016全国计算机等级考试二级C语言笔试真题
2016全国计算机等级考试二级C语言笔试真题篇一:2016年全国计算机等级考试二级C语言考试大纲及重点2016年全国计算机等级考试二级C语言考试大纲◆基本要求1.熟悉 Visual C++ 集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在 Visual C++ 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力◆考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
语言的风格。
二、数据类型及其运算的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句1.表达式语句,空语句,复合语句。
2.输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。
五、循环结构程序设计循环结构。
和do-while循环结构。
语句和break语句。
4.循环的嵌套。
六、数组的定义和引用1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
七、函数1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理1.宏定义和调用(不带参数的宏,带参数的宏)。
2.“文件包含”处理。
九、指针1.地址与指针变量的概念,地址运算符与间址运算符。
2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。
计算机二级《C语言》测试题(附答案)
计算机二级《C语言》测试题(附答案)单项选择题1[单选题]以下叙述中错误的是A.可以通过typedef增加新的类型B.可以用typedef将已存在的类型用一个新的名字来代表C.用typedef定义新的类型名后,原有类型名仍有效D.用typedef可以为各种类型起别名,但不能为变量起别名参考答案:A参考解析:关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A错误。
2[单选题]以下叙述中正确的是A.两个字符串可以用关系运算符进行大小比较B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)C.C语言本身没有提供对字符串进行整体操作的运算符D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和参考答案:C参考解析:本题考查字符串处理函数strien、strcat、strcmp。
B 选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。
D选项当使用连接函数strcat时,内存空间会减少一个字符位置。
3[单选题]一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。
A.一对一B.一对多C.多对多D.多对一参考答案:C参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。
4[单选题]对于while(!E)s;,若要执行循环体s,则E的取值应为:A.E等于1B.E不等于0C.E不等于1D.E等于0参考答案:D参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的`值,当值为真(非0)时,执行循环体语句。
该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。
5[单选题]在软件设计中不使用的工具是()。
2016年计算机二级c语言题库及参考答案
2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。
A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是( )。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是( )0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是( )。
A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是( )。
A.1:m联系B.m:n联系C.1:1联系D.m:l联系则由关系R得到关系S的操作是( )。
A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于( )。
A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括( )。
A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是( )。
A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是( )。
A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是( )。
A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义B.用户标识符可以由字母和数字任意顺序组成C.在标识符中大写字母和小写字母被认为是相同的字符D.关键字可用做用户标识符,但失去原有含义13.以下选项中表示一个合法的常量是(说明:符号口表示空格)( )。
2016计算机二级《C语言》基础练习题及答案(5)(分享文档)
2016年计算机二级《C语言》基础练习题及答案(5) 1[单选题] 有以下程序:程序运行后的输出结果是( )。
.A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World参考答案:A参考解析:P是指向二维字符数组第二行One+Dream!的数组指针,所以长度是l0,打印输出的也是该字符串。
.2[简答题]编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
.程序运行后,若输入精度0.0005,则程序应输出为3.14…。
.注意:部分源程序给出如下。
.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
.试题程序:参考解析:【参考答案】【考点分析】本题考查:迭代法求给定多项式的值。
.迭代算法是让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
.需要注意变量的数据类型以及赋初值操作。
.【解题思路】首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。
.从第二项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用sl来表示每一项,s表示求和后的结果。
.需注意sl和s的初值都为1.0,因为循环变量从第二项开始累加。
.3[单选题] 软件设计中模块划分应遵循的准则是( )。
.A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合参考答案:B参考解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
.模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
.模块之间的耦合应尽可能的低,模块的内聚度应尽可能。
.4[单选题] 有以下程序:程序运行后的输出结果是( )。
.A.let=4B.m=2C.m=6D.m=5参考答案:C参考解析:第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}= i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。
9月计算机二级c语言试题带答案
9⽉计算机⼆级c语⾔试题带答案2016年9⽉计算机⼆级c语⾔试题(带答案) 9⽉计算机⼆级考试时间即将在9⽉24-27⽇进⾏。
为了帮助考⽣能顺利进⾏备考,yjbys⼩编提供2016年9⽉计算机⼆级C 语⾔考前测试题如下,供各位复习参考。
1、以下语句的输出结果是( )。
int a=-1,b=4,k; k=(+ +a<0)&&!(b - -<=0); printf("%d,%d,%d\n",k,a,b); A. 1,0,4 B. 1,0,3 C. 0,0,3 D. 0,0,4 2、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1)); printf("%s",str); A. xyabcAB B. abcABz C. ABabcz D. xycdBCD 3、执⾏下⾯的程序后,a的值是( )。
#define SQR(X) X*X main( ) { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); } A. 10 B. 1 C. 9 D. 0 4、设A为存放(短)整型的⼀维数组,如果A的.⾸地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2 B. P+(i-1)*2 来源:考试⼤ C. P+(i-1) D. P+i 5、下列程序执⾏后输出的结果是( )。
int d=1; fun (int p) { int d=5; d + =p + +; printf("%d,",d); } main( ) { int a=3; fun(a); d + = a + +; printf("%d\n",d); } A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5 6、表达式:10!=9的值是( )。
2016年国家计算机二级C语言试题库及答案
2016年国家计算机二级C语言试题库及答案1.(A )是构成程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从(C) 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C)。
A、-a1B、a[i]C、a2_iD、int t5-8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3axB、xC、caseD、-e2 E)union参考解析:选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123D、123参考解析:选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age参考解析:选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
201 6年9月全国计算机等级考试二级笔试试卷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)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个c)叶子结点数是度为2的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)某系统总体结构图如下图所示:该系统总体结构图的深度是( )。
A)7 B)6 C)3 D)2(6)程序调试的任务是( )。
A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确的是( )。
A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括( )。
A)概念模式B)内模式C)外模式D)数据模式(9)有三个关系R、S利T如下:则由关系R和s得到关系T的操作是( )。
A)自然连接B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是( )。
A)继承B)自顶向下C)模块化D)逐步求精(11)以下叙述中错误的是( )。
A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为一个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D)一个C语言程序只能有一个主函数(12)以下选项中关于程序模块化的叙述错误的是( )。
A)把程序分成若干相对独立的模块,可便于编码和调试B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块c)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D)可采用自项向下、逐步细化的设计方法把若干独立模块组装成所要求的程序(13)以下选项中关于c语言常量的叙述错误的是( )。
A)所谓常量,是指在程序运行过程中,其值不能被改变的量B)常量分为整型常量、实型常量、字符常量和字符串常量c)常量可分为数值型常量和非数值型常量D)经常被使用的变量可以定义成常量(14)若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是( )。
A)char B)int C)double D)float(15)若有定义语句:int x=12,3=8,z;,在其后执行语句z=0.9+x/y;,则Z的值为( )。
A)1.9 B)1 C)2 D)2.4(16)若有定义:int a,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是( )。
A)3 5 B)3,5 C)3;5 D)35(17)若有定义语句:intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为( )。
A)0和1 B)0和20 C)10和1 D)10和20(18)有以下程序#include<stdio.h>main(){int a=1,b=0;if(-a) b++;else if(a=0)b+=2:else b+=3:printf("%d\n",b);)程序运行后的输出结果是( )。
A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是( )。
A)if(a)printf("%d\-n",x);else printf("%d\n",y);B)if(a—0)printf("%d\n",y);else printf("%d\n",x);C)if(a!=0)p由tf("%d\n",x);else printf("%d\n",y);D)if(a=0)printf("%d\n",x);else printf("%d\n",y);(20)有以下程序#include<stdio.h>main(){int a=7;while(a--);printf("%d\n",a);)程序运行后的输出结果是( )。
A)-1 B)0 C)1 D)7(21)以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)A)printf("%c\n",'a'-32);B)printf("%d\n",'A');c)printf("%c\n",65);D)print-f("%c\n",'B'-1);(22)有以下程序(注:字符a的ASCIl码值为97)#include<stdio.h>main(){char*s={"abe");do{printf(”%d”,+s%10);++s;)while(+s);)程序运行后的输出结果是( )。
A)abc B)789 C)7890 D)979899(23)若有定义语句:double a,+p=&a;以下叙述中错误的是( )。
A)定义语句中的*号是一个间址运算符B)定义语句中的*号只是一个说明符C)定义语句中的P只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P(24)有以下程序#include<stdio.h>double f(double x);main(){doublea_0;inti;for(i=0;i<30;i+=10)a+--f((double)i);printf("%5.0f\n",a);}double f(double x)(return X+x+1;)程序运行后的输出结果是( )。
A)503 B)401 C)500 D)1404(25)若有定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是( )。
A)*p+=1;B)( *p)++;C)++(*p);D)*p++;(26)以下定义数组的语句中错误的是( )。
A)int num[]={1,2,3,4,5,6};B)int num[][3]={{1,2},3,4,5,6};C)int num[2][4]=({1,2,,{3,4},{5,6});D)int num[][4]={1,2,3,4,5,6};(27)有以下程序#include<stdi0.h>void fun(int+p){printf(”%d\n”,p[5]);}main() ;{int a[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);)程序运行后的输出结果是( )。
A)5 B)6 C)8 D)9(28)有以下程序#include<stdio.h>#defineN4void fun(int a[][N],im b[]){int i;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];)void main(){int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(”%d,”,y[i]);printf("\n");}程序运行后的输出结果是( )。
A)-12,-3,0,0,B)-3,-1,1,3,C)0,1,2,3,D)-3,-3,-3,-3(29)有以下函数int fun(char *x,char *y){int n=0;while((*x=*y)&&*x!='\0'){x++;y++;n++;}return n:)函数的功能是( )。
A)查找x和y所指字符串中是否有'\0'B)统计x和y所指字符串中最前面连续相同的字符个数c)将y所指字符串赋给X所指存储空间D)统计x和y所指字符串中相同的字符个数(30)若有定义语句:char *s1="OK",*s2="ok";,以下选项中,能够输出"0K"的语句是( )。
A)if(strcmp(s1,s2)=0)puts(s1);B)if(strcmp(s1,s2)!=0) puts(s2);C)if(strcmp(s1,s2)=1)puts(s1,);D)if(strcmp(s1,s2)!=0) puts(s1);(31)以下程序的主函数中调用了在其前面定义的fun函数#include<stdio.h>{main(){double a[15],k;k=fun(a);}则以下选项中错误的fun函数首部是( )。
A)double fun(double a[15]) B)double fun(double *a)C)double fun(double a[]) D)double fun(double a)(32)有以下程序#include<stdio.h>#include<string.h>main(){char a[5][10]={"china","beijing","you","tiananmen","welcome”);int i,j;chart[10];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(strcmp(a[i],a[j])>O){strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}puts(a[3]);)程序运行后的输出结果是( )。