全国计算机等级考试二级C语言真题题库4+2014年3月

合集下载

计算机等级考试二级VISUAL+BASIC分类真题2014年3月

计算机等级考试二级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语言考试题目及答案

计算机二级c语言考试题目及答案

计算机二级c语言考试题目及答案一、单项选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义 `int a[3] = {1, 2, 3};`,则数组元素 `a[2]` 的值是多少?A. 1B. 2C. 3D. 0答案:C3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 0x1ZC. 0x1.2D. 0x1G答案:A5. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. %D. ++答案:A6. 若有定义 `int x = 10;`,则执行 `x += 5;` 后,变量 `x` 的值是多少?A. 5B. 10C. 15D. 20答案:C7. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:D8. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. $variableD. variable-2答案:B9. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A10. 若有定义 `float x = 3.14;`,则执行 `x *= 2;` 后,变量 `x` 的值是多少?A. 3.14B. 6.28C. 2.0D. 0.0答案:B二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个指针变量。

答案:int *2. 若有定义 `char str[] = "Hello";`,则`str[0]`的ASCII码值是________。

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。

第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。

/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

函数fun中给出的语句仅供参考。

void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。

例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。

2014计算机二级c语言试题及答案

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语言笔试真题及参考答案

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语言试题及答案

国家二级计算机考试c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名必须以字母开头B. 变量名可以包含数字和下划线C. 变量名区分大小写D. 变量名可以以数字开头答案:D2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 函数结构5. 在C语言中,用于定义函数的关键字是:A. intB. voidC. returnD. function答案:B6. C语言中,用于声明一个字符型变量的关键字是:A. intB. charC. floatD. double答案:B7. 在C语言中,以下哪个选项是正确的注释方式?A. //B. /* */C.D. @@答案:B8. C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. doubleD. char答案:B9. 在C语言中,以下哪个选项不是合法的整数常量?B. 0x1AC. 0123D. 1.23答案:D10. 在C语言中,以下哪个选项不是合法的标识符?A. _nameB. name2C. 2nameD. name-name答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。

答案:int2. C语言中,使用________函数可以输出格式化的字符串。

答案:printf3. 如果要定义一个指向整型数据的指针,应该使用________关键字。

答案:int*4. 在C语言中,使用________关键字可以定义一个结构体。

答案:struct5. 使用________函数可以获取当前系统时间。

答案:time6. 在C语言中,使用________关键字可以定义一个枚举类型。

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。

第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。

/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

函数fun中给出的语句仅供参考。

void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。

例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。

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)所有的素数。

全国计算机等级考试《二级C语言程序设计》历年真题与模拟试题详解446p

全国计算机等级考试《二级C语言程序设计》历年真题与模拟试题详解最新资料,WORD格式,可编辑修改!目录第一部分历年真题及详解 (5)2016年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (5)2015年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (18)2015年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (33)2014年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (48)2014年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (62)2013年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (76)2013年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (91)2012年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (106)2012年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (121)2011年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (135)2011年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (149)2010年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (165)2010年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (180)2009年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (195)2009年3月全国计算机等级考试《二级C语言程序设计》真题及详解 (209)2008年9月全国计算机等级考试《二级C语言程序设计》真题及详解 (224)第二部分模拟试题及详解 (239)全国计算机等级考试《二级C语言程序设计》模拟试题及详解(一) (239)全国计算机等级考试《二级C语言程序设计》模拟试题及详解(二) (255)第一部分历年真题及详解2016年3月全国计算机等级考试《二级C语言程序设计》真题及详解(考试时间120分钟满分100分)一、选择题(每题1分,共40分)1.有以下定义:struct data{ int i;char c;double d;}x;以下叙述中错误的是()。

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)_____。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国计算机等级考试二级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.算法空间复杂度的度量方法是()。

(分数:1.00)A.算法程序的长度B.算法所处理的数据量C.执行算法所需要的工作单元D.执行算法所需要的存储空间√解析:[解析]算法的空间复杂度是指执行这个算法所需要的内存空间。

算法执行期间所需的存储空间包括3个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。

故D 选项正确。

5.下面不属于软件开发阶段任务的是()。

(分数:1.00)A.测试B.可行性研究√C.设计D.实现解析:[解析]软件生命周期分为3个时期共8个阶段:软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。

可行件研究属于软件定义期任务,B选项错误。

6.下面属于字符类的实例是()。

(分数:1.00)A.’518’B.”5”C.’nmD.’\n’√解析:[解析]字符实例的一般形式是用—对单引号括起来的一个字符。

另外ASCII码中还有—些控制字符,C语言中用转义字符的形式来书写,转义字符以反斜杯(\)开始,后面跟1个字符或字符序列。

‘518’单引号中省3个字符,A选项错误。

“5”双引号为字符串,B选项错误。

‘nm’单引号中有两个字符,C选项错误。

‘\n’为换行符,属于字符类实例,D选项正确。

7.某系统结构图如下图所示。

)。

(分数:1.00)A.n √B.1C.3D.4解析:[解析]扇出指的是由一个模块直接调用的其他模块数。

题干中某系统为一个模块,其扇出数目为n(n >3),功能1与功能n模块扇出数均为2,故A选项正确。

8.一个兴趣班可以招收多名学生,而一个学生可以参加多个兴趣班,则实体兴趣班和实体学生之间的联系是()。

(分数:1.00)A.1:1联系B.1:m联系C.m:1联系D.m:n联系√解析:[解析]一般来说,实体集之间必须通过联系来建立联接关系,分为3类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。

一个学生可参加多个兴趣班,一个兴趣班有多个学生组成。

多个兴趣班与多个学生的关系为(m:n)多对多联系,故D选项正确。

9.有3个关系表R、S和T如下,其中3个关系对应的关键字分别为A,B和复合关键字(A,B)。

T的记录项(b,q,4)违反了()。

(分数:1.00)A.实体完整性约束B.参照完整性约束√C.用户定义的完整性约束D.关系完整性约束解析:[解析]关系模型中可以有3类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整件约束。

实体完整性约束是指,若属性M是关系的主键,则属性M中的属性值不能为空值。

T中主键不为空,A选项错误。

参照完整性约束是指,若属性(或属性组)A是关系M的外键,它与其系M的主码相对应,则对于关系M中的每个元组在A上的值必须为:要么取空值,要么等于关系M中某个元组的主码值。

表1中属性B为关系S的外键,它与关系S的主键相对应,则T中元组在B上应该为空或S中主键值相等,题目中不相等,违反参照完整性约束,B选项正确。

此题父系中无语义要求,C选项错误。

10.在数据库系统中,给出数据模型在计算机上物理结构表示的是()。

(分数:1.00)A.概念数据模型B.逻辑数据模型C.物理数据模型√D.关系数据模型解析:[解析]数据模型按照不同的应用层次分为以下3种类型:概念数据模型,着重于对客观世界复杂事物的描述及对它们内在联系的刻画;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。

C选项正确。

11.若有定义语句:int a=12;,则执行语句:a+=a-=a*a;后,a的值是()。

(分数:1.00)A.-264 √B.552C.144D.264解析:[解析]赋值运算结合性为白右向左,a+=a-=a*a相当于a=a-a*a,a=a+a;自右向左计算过程为a=a-a*a=-132,a=a+a=-264,故A选项正确。

(分数:1.00)A.1.0/a/b/c √B.1/(a*b*c)C.1.0/a*b*cD.1/d/b/(double)c解析:[解析]由于abc均大于1,所以表达式1/abc小于1,需要用浮点类型表示。

若要计算表达式值,需要使其白动转化成浮点类型,所以A选项正确。

B选项由于变量与常量均为整型,不会自动转换为浮点类型,B选项错误。

C选项表示表达式bc/a,故错误。

D选项,由于算数运算法结合性自左向右,先计算1/a,结果为0,之后的计算无论是否转换数据类型结果均为0,D选项错误。

13.有以下程序:)。

(分数:1.00)A.10,9B.11,10C.010,9D.9,10 √解析:[解析]整型常量有3种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法,八进制整常量以0作为前缀。

自增和白减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。

x=010=8,y=10,++x先自加后取值,输小9,y--先取值输出10,再自减y=9,故D选项正确。

14.以下选项中叙述正确的是()。

(分数:1.00)A.C语言的标识符可分为关键字、预定义标识符和用户标识符√B.C语言的标识符可分为语句、变量和关键字三类C.C语言的标识符可分为函数名、变量和预定义标识符三类D.C语言的标识符可分为运算符、用户标识符和关键字三类解析:[解析]标识符就是一个名称,用来表示变量、常量、函数以及文件等名称。

C语言的标识符可分为关键字、预定义标识符和用户标识符三类,A选项正确,B、C、D选项错误。

合法的标识符由字母、数字和下划线组成,并且必须以字母或下划线开头。

用户标识符为用户根据编程需求自定义的标识符。

关键字是指被C语言保留的,不能用作其他用途的—些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。

预定义标识符是系统已经有过定义的标识符,用户可以重新定义。

15.以下选项中叙述正确的是()。

(分数:1.00)A.函数体必须由{开始√B.C程序必须由main语句开始C.C程序中的注释可以嵌套D.C程序中的注释必须在一行完成解析:[解析]函数体是函数首部下面的花括号内的部分,所以函数体必须由{开始,A选项正确。

一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的,不是main语句,B 选项错误。

C程序中允许两种注释,以//开头的单行注释;以/*开始,以*/结束的块式注释,D选项错误。

函数可以嵌套,注释不能嵌套,C选项错误。

16.已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为()。

(分数:1.00)A.1B.0C.2 √D.-1解析:[解析]“=”优先级低于“<”、“>”。

“&&”逻辑与表达式。

exp1&&exp2,规则为:对exp1求值,若为0,则表达式为0,则不计算exp2;若exp1非0,则求exp2值,作为表达式值。

本题计算过程为:先判断a>b为假,m=0,整个逻辑表达式为假,不计算右表达式,n=2。

故C选项正确。

17.有以下程序:程序的执行结果是()。

(分数:1.00)A.输出321B.输出23 √C.不输出任何内容D.陷入无限循环解析:[解析]“%2d,,表示输出的整型变量占2列。

程序执行过程为:输出x为23,之后x自减得x=22,!x 为假(0),while条件不成立,退出循环。

故B选项正确。

18.有以下程序:2473<回车>程序的输出结果是()。

(分数:1.00)A.668977 √B.4444C.6677877D.68766解析:[解析]本题执行过程为:输入c=’2’’c-’2’=0,首先匹配case0,依次输出6,6,后执行break 语句,跳出分支结构;输入c=“4’’c-’2’=2,匹配case2,输出8,执行break语句,跳出分支结构;输人c=’7’,c-’2’=5,匹配default,输出9,执行break语句,跳出分支结构;输入c=’3’,c-“2’=1,匹配case1,依次输出7,7,执行break语句,跳出分支结构。

输入回车,结束循环。

故A 选项正确。

19.有以下程序:)。

(分数:1.00)A.22B.18C.20D.16 √解析:[解析]语句sum+=i++;相当于sum+=i;i++;程序执行过程为:sum=1,i=1;sum=2,i=2;sum=4,i=3;sum=7,i=4;sum=11,i=5;sum=16,i=6;退出循环。

故D选项正确。

20.有以下程序段,若变量已正确定义并赋值)。

相关文档
最新文档