2014年3月份全国计算机等级考试二级C语言选择题大全
计算机等级考试二级VISUAL+BASIC分类真题2014年3月
计算机等级考试二级VISUAL BASIC分类真题2014年3月(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是______。
(分数:2.50)A.有且只有一个根结点的数据结构一定是线性结构B.每一个结点最多有一个前件也最多有一个后件的数据结构一定是线性结构C.有且只有一个根结点的数据结构一定是非线性结构D.有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构√解析:[解析] 一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,称为线性结构,故A、B和C选项都错误;不同时满足以上两个条件的数据结构就称为非线性结构,其中树形结构只有一个根结点,D选项正确。
2.某二叉树的前序遍历为ABCD,中序遍历为DCBA,则后序遍历为______。
(分数:2.50)A.在双向链表中,可以从任何一个结点开始直接遍历到所有结点B.在循环链表中,可以从任何一个结点开始直接遍历到所有结点C.在线性单链表中,可以从任何一个结点开始直接遍历到所有结点√D.在二叉链表中,可以从根结点开始遍历到所有结点解析:[解析] 线性单链表就是指线性表的链式存储结构,这种结构只能从一个节点遍历到其后的所有节点,故C选项叙述错误;在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,所以可以从任何一个节点开始直接遍历到所有节点,最后一个节点的指针域的值由NULL改为指向表头节点,这样的链表称为循环链表;双向链表是指链表节点含有指向前一个节点的指针和指向后一个节点的指针,所以可以从任何一个节点开始直接遍历到所有节点;二叉树链表中节点指针由父节点指向子节点,可以从根节点开始遍历到所有节点,所以选项A、B、D叙述均正确。
3.某二叉树共有13个结点,其中有4个度为1的结点,则叶子结点数为______。
(分数:2.50)A.5 √B.4C.3D.2解析:[解析] 在树结构中,一个节点所拥有的后件个数称为该节点的度。
全国计算机等级考试二级C语言真题题库4+2014年3月
全国计算机等级考试二级C语言真题题库4 2014年3月(总分:43.00,做题时间:120分钟)一、—、选择题(每小题1分,共40分)(总题数:40,分数:40.00)1.在最坏情况下()。
(分数:1.00)A.快速排序的时间复杂度比冒泡排序的时间复杂度要小B.快速排序的时间复杂度比希尔排序的时间复杂度要小C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小√D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的解析:[解析]对长度为n的线性表排序常用排序方法时间复杂度如下表所示。
2.在深度为7的满二叉树中,度为2的节点个数为()。
(分数:1.00)A.64B.63 √C.32D.31解析:[解析]在树结构中,一个节点所拥有的后件个数称为该节点的度。
深度,定义一棵树的根节点所在的层次为1,其他节点所在的层次等于它的父节点所在的层次加1,树的最大层次称为树的深度。
满二叉树指除最后一层外,每一层上的所有节点都有两个子节点的二叉树。
一棵深度为K的满二叉树,整棵二叉树共有2K-1个节点;满二叉树在其第i层上有2i-1个节点。
在满二叉树中,只有度为2和度为0的节点。
深度为7的满二叉树,节点个数为27-1=127,第七层叶节点个数为27-1=64,则127—64=63,B选项正确。
3.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。
现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为()。
(分数:1.00)A.30B.20C.m-19 √D.m-20解析:[解析]栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。
栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。
初始状态为top=m+1,当top==20时,元素依次存储在单元20:m中,个数为m-19,故C选项正确。
4.算法空间复杂度的度量方法是()。
2014计算机二级c语言试题及答案
2014计算机二级c语言试题及答案一、单项选择题(每题1分,共40分)1. C语言中,用于定义变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = 'Hello';D. char str[6] = 'Hello';答案:A3. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};5. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. strcmp()D. strlen()答案:A6. 在C语言中,以下哪个选项是正确的函数定义?A. int function(int a, int b) { return a + b; }B. int function(int a, int b) = { return a + b; }C. int function(int a, int b) { return a + b; }D. int function(int a, int b) { return a + b; }答案:A7. C语言中,以下哪个关键字用于定义函数?A. defineB. defC. functionD. void答案:D8. 在C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D9. C语言中,以下哪个选项是正确的条件语句?B. elseC. switchD. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针定义方式?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
3月计算机等级考试二级C语言笔试真题及参考答案
2010年3月计算机等级考试二级C语言笔试真题一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应本资.料来源于贵-州-学-习-网使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(aB)k=(aC)k=(aD)k=(a(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%dn",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%dn",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%dn",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有本文来源于贵州学习网WWW.GZU521.COM一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%en",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%dn", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%dn",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="n123\";printf("%d %dn", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i{printf("%d",a[i]);}printf("n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%dn",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程此资料转贴于贵州学习网序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun();printf("%dn",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%dn",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是(38)有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%dn",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
全国计算机等级考试二级c语言答案
全国计算机等级考试二级c语言答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. >B. <C. ==D. !=答案:C2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-nameD. variable$name答案:B4. 若有定义:int a=5, b=9; 则表达式 a%b 的值是多少?A. 0B. 1C. 2D. 5答案:C5. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 在C语言中,哪个关键字用于定义一个无限循环?A. forB. whileC. do-whileD. switch答案:B7. 下列哪个选项是C语言中正确的二维数组声明?A. int array[3][4];B. int array[][];C. int array[3][];D. int array;答案:A8. 若有定义:float x=3.14; 则表达式 (int)x 的值是多少?A. 3B. 3.14C. 4D. 0答案:A9. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defineC. defD. void答案:D10. 下列哪个选项是C语言中正确的结构体声明?A. struct Student { int id; char name[20]; };B. struct { int id; char name[20]; } Student;C. struct Student { int id; char name[20]; } student;D. struct { int id; char name[20]; };答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个指针变量。
2014全国计算机二级c语言试题及答案
2014全国计算机二级c语言试题及答案试卷一一、选择题(共40题,每题1.5分,共60分)1. 下面对C语言中的goto语句描述正确的是:A. 使用goto语句可以在程序中实现子程序调用。
B. goto语句只能用于跳转到程序的开头位置。
C. 使用goto语句可以实现程序的循环控制。
D. 使用goto语句会导致程序的可读性下降,不推荐使用。
2. 下面表示数组a中第i个元素的正确表达式是:A. a(0)B. a[i]C. a[i-1]D. a(i)3. 以下代码片段的输出结果是什么?```cint x = 5, y = 10;if (x >= 5 && y < 20)printf("True");elseprintf("False");```A. TrueB. FalseC. 编译错误D. 运行时错误4. 下面关于字符数组的说法不正确的是:A. 字符数组可以用来存储字符串。
B. 字符数组的最后一个元素必须是空字符'\0'。
C. 字符数组可以进行逐个字符的输入输出操作。
D. 字符数组不可以进行字符串的拼接操作。
5. 下面哪个不是C语言中的关键字?A. volatileB. constC. staticD. delete6. 在C语言中,当函数返回一个整型值时,可以使用下面哪个关键字来定义返回值的类型?A. intB. voidC. returnD. none7. 下面哪个运算符的优先级最高?A. &&B. *C. =D. ?8. 下面的循环语句会执行几次?```cfor (int i = 0; i < 10; i++){if (i < 5)continue;elsebreak;}```A. 0次B. 5次C. 10次D. 无限次9. 在C语言中,对数组进行遍历时,可以使用下面哪个循环语句?A. forB. if-elseC. whileD. switch10. 在C语言中,以下哪个函数用于清空输入缓冲区?A. scanf()B. gets()C. getchar()D. fflush()...试卷二二、编程题(共3题,共40分)1. 编写一个程序,实现以下功能:输入一个正整数n,输出1到n之间(包含n)所有的素数。
2014全国计算机等级二级C语言程序设计考前试题
page 1 / 14
printf(”%d,i)”; } } 输出结果是( )。 A.28 B.27 C.42 D.41 7有以下函数: char fun(char*p) {return P;} 该函数的返回值是( )。 A.无确功的值 B.形参P中存放的地址值 C.一个临时存储单元的地址 D.形参P自身的地址值 8有以下程序: #include main() { int y=10; for(;y>0;y——)if(y%3==0) {printf(”%d”,——y);continue; ) } 程序的输出结果是( )。 A.741 B.852 C.963 D.875421 9在一个C语言源程序文件中所定义的全局变量,其作用域为( )。 A.所在文件的全部范围 B.所在程序的全部范围 C.所在函数的全部范围 D.由具体定义位置和extern说明来决定范围 10下列程序的输出结果是( )。 #include void p(int*x) {printf(”%d”,++*x); } void main() { int y=3; p(&y); } A.3 B.4 C.2 D.5 11有下列程序: main() {char p[]={'a','b','c'),q[]=”abc”; printf(”%d%d\n”,sizeof(p),sizeof(q));
page 4 / 14
A.两个语句都是将变量a的值赋予变量P B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P C.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a D.两个语句都是使P指向变量a 23在Internet中,域名服务器的主要功能是实现( )的转换。 A.IP地址到域名(主机名字) B.域名到IP地址 C.主机IP地址和: char a;int b; float C;double d; 则表达式a*b+b-c值的类型为( )。 A.float B.int C.char D.double 25以下函数返回a所指数组中最小的值所在的下标值: fun(int*a,int n) { int i,j=0,P; P=j; for(i=j;i 26若有以下程序段,W和k都是整型变量: : w=k: LB:if(w==0)go to LE; W——: printf(”*”) goto LB: LE; 则不能与上面程序段等价的循环语句是( )。 A.for(w=k;w!—0;w——)printf(”*”); B.for(w=k;W;——w)printf(”*”); C.w=k; while(w——!=O)printf(”*”); D.w=k: W++;do{w——;printf(”*”);)while(w!=O);
全国计算机等级考试二级C语言真题题库
全国计算机等级考试二级C语言真题题库2 2014年3月(总分43, 做题时间120分钟)一、选择题(每小题1分,共40分)1. 下列叙述中正确的是()。
A 每一个节点有两个指针域的链表一定是非线性结构B 所有节点的指针域都为非空的链表一定是非线性结构C 循环链表是循环队列的链式存储结构D 线性结构的存储节点也可以有多个指针答案:D[解析]一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有—个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。
双向链表节点具有两个指针域,属于线性结构,故A选项错误。
循环链表所有节点的指针域都为非空,属于线性结构,故B选项错误。
循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,故C选项错误。
双向链表节点具有多个指针域,故D选项正确。
2. 使用白盒测试方法时,设计测试用例应根据()。
A 程序的内部逻辑B 程序的复杂结构C 程序的功能D 使用说明书答案:A[解析]白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试,故A选项正确。
3. 在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是()。
A 多对多B 多对一C 一对多D 一对一答案:A[解析]一般来说,实体集之间必须通过联系来建立连接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。
医生可为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,故A选项正确。
4. 设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是()。
A 二分法查找B 顺序查找C 分块查找D 哈希查找答案:A[解析]对长度为n的线性表排序,最坏情况下时间复杂度,二分法查找为O(log2n);顺序查找法为O(n);分块查找时间复杂度与分块规则有关;哈希查找时间复杂度为O(1),因其通过计算HashCode来定位元素位置,所以只需一次即可。
计算机二级c语言笔试题库及答案
计算机二级c语言笔试题库及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 以下哪个函数用于将字符串s2连接到字符串s1的末尾?A. strcat(s1, s2)B. strcpy(s1, s2)C. strncpy(s1, s2, n)D. strcmp(s1, s2)答案:A3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 若有以下定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式a[0] +a[2] + a[4]的值是多少?A. 8B. 10C. 12D. 15答案:C5. 在C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcat()B. strcpy()C. strncpy()D. strcmp()答案:B6. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A7. 在C语言中,以下哪个关键字用于声明一个变量?A. varB. letC. intD. var答案:C8. 在C语言中,以下哪个函数用于将一个整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. strcpy()答案:B9. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. fread()D. fwrite()答案:A10. 在C语言中,以下哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,________关键字用于定义一个宏。
答案:#define2. 在C语言中,________关键字用于定义一个枚举类型。
2014年春计算机等级二级考试C语言笔试试题
2014年春计算机等级二级考试C语言笔试试题第二部分C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21、以下选项中,不能用作变量名的是____(21)_____。
A. switchB. _0_C. ForD. sqrt22、已知有声明“int x=1;”,以下语句中有语法错误的是______(22)_______。
A. if(*x) x=1;B. if(!x) x=1;C. if(x++) x=0;D. if((char)x) x=0;23、执行程序段“char c=255; c=c+1; printf("%d",c);”后,输出结果为___(23)____。
A. 256B. -255C. 1D. 024、以下有关continue语句的描述中正确的是__(24)___。
A. 可以出现在程序中任何位置B. 只能出现在循环语句中C. 只能出现在switch语句中D. 只能出现在循环语句中或switch语句中25、以下实现“仅当变量a或b的值中只有一个小于c值时输出c值”这一功能的语句中,正确的是__(25)__。
A. if(a<c&&!(b<c)||b<c&&!(a<c)) printf("%d",c);B. if(a<c||b>c&&a>c||b<c) printf("%d",c);C. if(a<c||b<c) printf("%d",c);D. if(a<c&&b<c) printf("%d",c);26. 以下数组声明中正确的是_______(26)_____。
A. int a[];B. int a[3.14];C. int a[2+3]={0};D. int a[3]={1,2,3,4};27. 以下选项中,可以正确计算a数组中元素个数的表达式是___(27)_____。
2014年3月份全国计算机等级考试二级C语言选择题题库
2014年3月份全国计算机等级考试二级C语言选择题题库选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof (13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)doublea=00;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
2014计算机二级c语言试题及答案
2014计算机二级c语言试题及答案一、选择题1. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. intC. _123D. variable_2答案:D2. 下列关于C语言中数组的描述,错误的是?A. 数组可以存储多个相同类型的元素B. 数组的大小在编译时确定C. 数组的索引从0开始D. 数组可以动态分配大小答案:D3. 在C语言中,下列哪个关键字用于定义函数?A. intB. structC. voidD. return答案:C4. 下列关于指针的描述,正确的是?A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针可以存储函数的地址D. 所有选项都是正确的答案:D二、填空题1. 在C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 若有数组定义:int arr[5] = {1, 2, 3, 4, 5}; 则arr[2]的值是____。
答案:33. 在C语言中,用于声明一个指针变量的语法是____。
答案:类型名 *指针变量名4. 若定义了一个函数void func(void),那么调用该函数时,应该使用的语法是____。
答案:func()三、编程题1. 编写一个C语言程序,实现输入一个整数,输出其绝对值。
```c#include <stdio.h>#include <stdlib.h>int main() {int num, abs_num;printf("请输入一个整数:");scanf("%d", &num);abs_num = (num < 0) ? -num : num;printf("该整数的绝对值是:%d\n", abs_num);return 0;}```2. 编写一个C语言函数,实现两个整数的交换。
```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int x = 10, y = 20;printf("交换前:x = %d, y = %d\n", x, y); swap(&x, &y);printf("交换后:x = %d, y = %d\n", x, y); return 0;}```。
全国计算机等级考试二级C语言真题题库32014年3月_真题-无答案
全国计算机等级考试二级C语言真题题库3 2014年3月(总分43,考试时间120分钟)一、选择题(每小题1分,共40分)1. 设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为()。
A. BCAB. CBAC. ABCD. CAB2. 下列叙述中正确的是()。
A. 存储空间不连续的所有链表一定是非线性结构B. 节点中有多个指针域的所有链表一定是非线性结构C. 能顺序存储的数据结构一定是线性结构D. 带链的栈与队列是线性结构3. 算法时间复杂度的度量方法是()。
A. 算法程序的长度B. 执行算法所需要的基本运算次数C. 执行算法所需要的所有运算次数D. 执行算法所需要的时间4. 设循环队列为Q(1:m),初始状态为front=rear=m。
现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为()。
A. 1B. 2C. m-1D. 0或m5. 计算机软件的构成是()。
A. 源代码B. 程序和数据C. 程序和文档D. 程序、数据及相关文档6. 下面不属于软件设计阶段任务的是()。
A. 软件的详细设计B. 软件的总体结构设计C. 软件的需求分析D. 软件的数据设计7. 下面属于黑盒测试方法的是()。
A. 边界值分析法B. 基本路径测试C. 条件覆盖D. 条件-分支覆盖8. 一名雇员就职于一家公司,一个公司有多名雇员,则实体公司和实体雇员之间的联系是()。
A. 1:1联系B. 1:m联系C. m:1联系D. m:n联系9. 有关系R如下,其中属性B为主键:则其中最后一个记录违反了()。
A. 实体完整性约束B. 参照完整性约束C. 用户定义的完整性约束D. 关系完整性约束10. 在数据库系统中,用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是()。
A. 概念数据模型B. 逻辑数据模型C. 物理数据模型D. 关系数据模型11. 以下选项中可用作C语言中合法用户标识符的是()。
全国计算机等级考试二级C语言真题题库3+2014年3月
全国计算机等级考试二级C语言真题题库3 2014年3月(总分:43.00,做题时间:120分钟)一、选择题(每小题1分,共40分)(总题数:40,分数:40.00)1.设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为()。
(分数:1.00)A.BCAB.CBAC.ABC √D.CAB解析:[解析]二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
后序序列为CBA,则A为根节点。
中序序列为ABC,则B和C均为左子树节点或右子树节点,且B为C父节点,可知前序序列为ABC,故C选项正确。
2.下列叙述中正确的是()。
(分数:1.00)A.存储空间不连续的所有链表一定是非线性结构B.节点中有多个指针域的所有链表一定是非线性结构C.能顺序存储的数据结构一定是线性结构D.带链的栈与队列是线性结构√解析:[解析]一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,也称为线性表,可以来用顺序存储和链式存储,其中链式存储空间不连续,所以A选项错误。
双向链表节点有两个指针域分别为指向前一个节点的指针和指向后一个节点的指针,也是线性结构,故B选项错误。
顺序存储结构中可能根节点不唯一,故可能不是线性结构,所以C选项错误。
栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是允许在一端进行插入,而在另一端进行删除的线性表。
故D选项正确。
3.算法时间复杂度的度量方法是()。
(分数:1.00)A.算法程序的长度B.执行算法所需要的基本运算次数√C.执行算法所需要的所有运算次数D.执行算法所需要的时间解析:[解析]算法的时间复杂度是指执行算法所需要的计算工作量,算法的计算工作量是用算法所执行的基本运算次数来度量的,故B选项正确。
计算机等级考试二级c语言习题答案
计算机等级考试二级c语言习题答案一、选择题1. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. variable!D. variable$答案:B2. C语言中,一个整型变量占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D4. 在C语言中,字符'A'的ASCII码值是多少?A. 65B. 97C. 66D. 98答案:A5. 下列哪个选项是C语言中的合法整型常量?A. 0x1AB. 1.2E3C. 0177D. 0b1010答案:C二、填空题1. 在C语言中,用于定义变量的关键字是________。
答案:int2. 若有定义 int a=5, b=6;,则表达式 a++ + b 的值是________。
答案:113. 在C语言中,用于输出的函数是________。
答案:printf4. 若有定义 int a=10;,则执行语句 a %= 3; 后,变量 a 的值是________。
答案:15. 在C语言中,用于计算两个浮点数之差的绝对值的函数是________。
答案:fabs三、编程题1. 编写一个程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...请给出完整的程序代码。
```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("The sum of the series is: %f\n", sum);return 0;}```2. 编写一个程序,实现对字符串的逆序输出。
```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("Enter a string: ");scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```结束语:以上是计算机等级考试二级C语言的部分习题及答案,希望对您的学习和备考有所帮助。
14计算机二级c语言试题及答案
14计算机二级c语言试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下选项中哪一个是合法的变量名?A. 2ndVariableB. intC. _firstVariableD. variable-name答案:C2. C语言中,用于定义一个整型数组的关键字是?A. arrayB. intC. listD. vector答案:B3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. <答案:A4. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串中?A. strcpyB. strcatC. strcmpD. strlen答案:A5. C语言中,以下哪个关键字用于声明一个函数?A. defineB. functionC. defD. void答案:D6. 在C语言中,以下哪个选项是正确的注释方式?A. /* This is a comment */B. // This is a commentC. <! This is a comment >D. # This is a comment答案:A7. C语言中,以下哪个选项是正确的整型常量表示?A. 0x1AB. 0b1010C. 0.1D. 1e2答案:A8. 在C语言中,以下哪个选项是正确的浮点型常量表示?A. 1.23B. 1.23e10C. 123.D. .123答案:B9. C语言中,以下哪个选项是正确的字符串常量表示?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A10. 在C语言中,以下哪个选项是正确的二进制常量表示?A. 0b1010B. 0x2AC. 0101D. 02A答案:A二、填空题(每题2分,共20分)1. C语言中,字符型数据在内存中以_________形式存储。