全国计算机二级c语言题库.doc_第1页
全国计算机二级c语言题库.doc_第2页
全国计算机二级c语言题库.doc_第3页
全国计算机二级c语言题库.doc_第4页
全国计算机二级c语言题库.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章一、选择题1.对下列二叉树进行中序遍历的结果是( )。 A.ACBDFEG B.ACBDFGE C.ABDCGEF D.FCADBEG2.按照后进先出原则组织数据的数据结构是( )。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.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图8.数据库设计的4个阶段是:需求分析、概念设计、逻辑设计和()。A.编码设计B.测试阶段C.运行阶段D.物理设计9.数据库技术的根本目标是要解决数据的()。A.存储问题B.共享问题C.安全问题D.保护问题10.数据库独立性是数据库技术的重要特点之一。所谓数据独立性是指()。A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上3种说法都不对11.下列关于栈的叙述正确的是()。A.栈是非线性结构 B.栈是一种树状结构C.栈具有先进先出的特征 D.栈具有后进先出的特征12.结构化程序设计所规定的三种基本控制结构是()。A.输入、处理、输出B.树形、网型、环形C.顺序、选择、循环D.主程序、子程序、函数13.下列叙述正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关14.在结构化程序设计中,模块划分的原则是()。A.各模块应包括尽量多的功能B.各模块的规模尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度15.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()。A.n+1 B.n-1 C.2n D.n/2选择题答案:ABDCA CDDBD DCBDA二、填空题1.一棵二叉树第6层(根结点为第1层)的结点数最多为_ _个。2.对某个问题处理方案的正确而完整的描述称为_ _。3.在面向对象方法中,_ _描述的是具有相似属性与操作的一组对象。 4.在面向对象方法中,类的实例称为_ _。5.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是_。6.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中_的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。7.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为_。8.数据管理技术发展过程经过人工管理、文件系统和数据库系统3个阶段,其中数据独立性最高的阶段是_。9.在数据库系统中,实现各种数据管理功能的核心软件称为_。10.在结构化分析使用的数据流图(DFD)中,利用_对其中的图形元素进行确切解释。填空题答案:1.32 2.算法 3.类 4.对象 5.无歧义性 6.驱动模块 7.物理独立性 8.数据库系统 9.数据库管理系统 10.数据字典第二章一、选择题2.以下( )是不正确的转义字符。A. B. C.020 D.01.构成C语言程序的基本单位是()。A.函数B.变量C.子程序D.语句3.C语言规定:在一个源程序中,main( )函数的位置()。A.必须在最开始 B.必须在系统调用的库函数后面C.可以任意 D.必须在最后4.为求出return语句返回计算100!的结果,此函数的类型说明应为()。A.int B.long C.unsigned long D.选项A,B,C.都不对5.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种6.以下选项中合法的用户标识符是()。A.int B.a# C.5mem D._2437.C语言中的简单数据类型有()。A.整型、实型、逻辑型 B.整型、字符型、逻辑型C.整型、实型、字符型 D.整型、实型、字符型、逻辑型8.以下选项中不正确的整型常量是()。A.-37 B.32,758 C.326 D.69.以下选项中合法的C语言字符常量是()。A.t B.A C.67 D. A10.以下选项中不正确的实型常量是()。A.123 B.1e4 C.3640E-1 D.03511.以下选项中合法的C语言赋值语句是()。A.a=b=34 B.a=34,b=34 C.-i; D.m=(int)(x+y);12.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。A.0255 B.065535 C.-3276832767 D.-256255选择题答案:ACCDC DCBAD DB二、填空题1字符串ab034x79的长度为 。2若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为 。3若a、b和c均是int型变量,则计算表达式a=(b=4)+(c2)后,a值为 ,b值为 ,c值为 。4若有定义:char c=010;则变量c中包含的字符个数为 。5C语言中的标识符只能由3种字符组成,它们是 、 和 。6在一个C源程序中,注释部分两侧分界符分别为 和 。7在C语言中,输入操作是由库函数 完成的,输出操作是由库函数 完成的。填空题答案:1.5 2.1 3.6 2 4 4.1个 5.字母 数字 下划线 6./* */ 8.scanf() printf() 三、上机题下列给定程序中函数fun( )的功能是:求两个非零正整数的最大公约数, 并作为函数值返回。例如, 若num1和num2分别为49和21, 则输出的最大公约数为7;若num1和num2分别为27和81, 则输出的最大公约数为27。请改正程序中的错误, 使它能得出正确结果。注意:不得增行或删行, 也不得更改程序的结构。【参考答案】(1)int r, t;(2)t = a; a = b; b = t;(3)while(r != 0)【解题思路】错误1:r后面应为,号。错误2:行尾应加上;号。错误3:行尾不应加;号。#include int fun (int a, int b) /*found*/ int r;t; if(a b)&(n=cd)运算后,n的值为()。A.0 B.1 C.2 D.34.设w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(wx)? w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是()。A.4 B.3 C.2 D.15.以下程序的输出结果是()。#include main( )int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b);A.5 B.4 C.6 D.不确定6.在C语言中,如果下面的变量都是int类型,则输出的结果是()。sum=pad=5; pad=sum+ ,pad+ ,+pad;printf(%dn,pad);A.7 B.6 C.5 D.47.以下程序的输出结果是()。#include main( )int i=010 , j=10; printf(%d,%dn,+i , j-); A.11,10 B.9,10 C.010,9 D.10,98.已知int i;float f;,由以下选项中正确的语句是()。A.(int f)%i; B.int(f)%i; C.int(f%i); D.(int)f%i;9.若有定义:int x=3 ,y=2; float a=2.5 ,b=3.5; 则下面表达式的值为()。(x+y)%2+(int)a/(int)bA.1.0 B.1 C.2.0 D.210.假设所有变量均为整型,则表达式 (a=2,b=5,a+,b+,a+b)的值为()。A.7 B.8 C.9 D.1011.若有定义int x=1, y=1;, 表达式(!x|y-)的值是()。A.0 B.1 C.2 D.-112.有以下程序:main( )unsigned char a,b,c; a=0x3; b=a | 0x8; c=b1; printf(%d %dn,b,c);程序运行后的输出结果是()。A.-1112 B.-6-13 C.1224 D.112213.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。A.1 B.2 C.2.0 D.2.514.执行以下程序段后,c3的值为()。int c1=1,c2=2,c3;c3=1.0/c2*c1;A.0 B.0.5 C.1 D.215.以下程序的输出结果是()。#include main( )int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2);A.34 B.42 C.43 D.33选择题答案:BADCA BDBCB DCADC二、填空题1.若有定义int m=5,y=2;,则执行语句y+=y-=m*=y后y的值是_。2.已知float y;int x=-3;,执行语句y=x%2;后,变量y的值为_。3.已知int a=15,b=240;则表达式(a&b)&b|b的结果为_。4.表达式8.0*(1/2)的值为_。5.表达式3&4的值为_,表达式3|4的值为_。表达式3&4的值为_。6若a是int型变量,则执行语句a=25/3%3;后a的值为_。7若x和n均是int型变量,且x和n的初值均为5,则执行语句x+=n+;后x的值为_,n的值为_。8.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x)的值为_。9.表达式pow(2.8,sqrt(double(x)值的数据类型为_。10.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_。填空题答案:1. 16 2. 0 3. 1 4. 0.0 5. 0 7 2 6. 2 7. 10 68. 8.000000 9.double型 10. 26三、上机题下列给定程序中,函数fun( )的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。例如,输入一个整数27638496,函数返回值为64862。请在空白处填入正确内容,使程序得出正确的结果。(源程序在考生文件夹WEXAM00000000下)不得增行或删行,也不得更改程序的结构!#include unsigned long fun(unsigned long n) unsigned long x=0; int t; while(n) t=n%10; /*found*/ if(t%2=【1】) /*found*/ x=【2】+t; /*found*/ n=【3】; return x;main() unsigned long n=-1; while(n99999999|n0) printf(Please input(0n100000000): ); scanf(%ld,&n); printf(nThe result is: %ldn,fun(n);【参考答案】(1)0(2) 10*x(3) n/10【解题思路】填空1:定义变量t用来存放某数的各个位数值,此处判断t是否为偶数,即对2求余结果是否为0。填空2:将t作为x的个位数,原来x的各个位上升1位,即x=10*x+t。填空3:每循环一次,通过除法运算,去掉数值最后一位。第四章一、选择题1.以下选项中不是C语句的是 。A)int i;i+;printf(%dn,i); B);C)a=5,c=10 D) ; 2执行以下程序时输入1234567,程序的运行结果为 。#include main() int x,y;scanf(%2d%2ld,&x,&y);printf(%dn,x+y);A)17 B)46 C)15 D)93若有定义char a;int b;float c;double d;,则表达式a*b+c-d结果为型 。A)double B)int C)float D)char4若有定义int a,b;,则用语句scanf(%d%d,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是 。A), B)空格 C)回车 D)【Tab】键5.运行下面的程序,如果从键盘上输入: abc def则输出结果为 。#define N 6#include main() char cN;int i=0;for( ;iN;ci=getchar(),i+);for( i=0;iN;i+) putchar(ci); printf(n);A)abcdefB)abcdC)abcdD)abcdef6以下程序的输出结果是 。#include main() printf(%f,2.5+1*7%2/4);A)2.500000 B)2.750000 C)3.375000 D)3.0000007根据定义和数据的输入方式,输入语句的正确形式是 。已有定义:float f1,f2;数据的输入方式:4.523.5A)scanf(%f,%f,&f1,&f2); B)scanf(%f%f,&f1,&f2);C)scanf(%3.2f%2.1f,&f1,&f2); D)scanf(%3.2f,%2.1f,&f1,&f2);8以下程序不用第3个变量,实现将两个数进行对调的操作,请填空。#include main() int a,b;scanf(%d%d,&a,&b);printf(a=%d b=%d,a,b);a=a+b;b=a-b;a= ;printf(a=%d b=%dn,a,b);A)a+b B)a-b C)b*a D)a/b选择题答案:CBAAC BBB二、填空题1.有以下程序:#include main() char c;while(c=getchar( )!=?)putchar(-c);程序运行时,如果从键盘输入:Y?N?,则输出结果为 。2在scanf()函数调用语句中,可以在格式字符和号之间加上一个星号,它的作用是 ;当输入以下数据时:10203040(此处代表空格),下面语句的执行结果是 。int a1,a2,a3;scanf(%d%*d%d%d,&a1,&a2,&a3);printf(%d %d %d,a1,a2,a3);3执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,正确的数据输入形式是 。#include main() int a,b;float x,y; char c1,c2;scanf(a=%d b=%d,&a,&b);scanf(x=%f y=%f,&x,&y);scanf(c1=%c c2=%c,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c,a,b,x,y,c1,c2);4直接使用printf()的格式符输出八进制数和十六进制数。本题程序如下:#include main() int i;printf(输入一个整数:);scanf(%d,&i);printf(%d(10)%o(8)n,i,i);printf(%d(10)%x(16)n,i,i);输入100的执行结果为 和 。填空题答案:1、X 2、跳过对应的输入数据 10 30 40 3、a=3 b=7x=8.5 y=71.82c1=A c2=a4、100(10)144(8)100(10)64(16)三、上机题下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符09,则将0转换成9,1转换成8,2转换成7,9转换成0;若是其他字符则保持不变;并将转换后的结果作为函数值返回。请在空白处填入正确内容,使程序得出正确的结果。(源程序在考生文件夹WEXAM00000000下)不得增行或删行,也不得更改程序的结构!#include 【1】 fun(char ch) if (ch=0 &【2】) return 9- (ch-【3】); return ch ;main() char c1, c2; printf(nThe result :n); c1=2; c2 = fun(c1); printf(c1=%cc2=%cn, c1, c2); c1=8; c2 = fun(c1); printf(c1=%cc2=%cn, c1, c2);c1=a;c2 = fun(c1); printf(c1=%cc2=%cn, c1, c2);【参考答案】(1) char(2) ch=10 or a=10|a=10&a=10 |a=02. 假定所有变量均已正确定义,下列程序段运行后x的值是_。a=b=c=0;x=35;if(!a) x-; else if(b);if(c) x=3; else x=4;A)34 B)4 C)35 D)33.以下程序的输出结果_。#include main() int a,b,c=246;a=c/100%9;b=(-1)&(-1);printf(%d,%dn,a,b);A)2,1 B)3,2 C)4,3 D)2,-14.已知a=1、b=3、c=5、d=5,下列程序段运行后,x的值是_。if(ab)if(cd)x=1;elseif(ac)if(b=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b06. 以下程序的输出结果是_。#include main() int a=-1,b=1;if(+a0)& ! (b- =0)printf(%d %dn,a,b);elseprintf(%d %dn,b,a);A)-11 B)01 C)10 D)007.下列关于switch语句和break语句的结论中,正确的是_。A)break语句是switch语句中的一部分B)在switch语句中可以根据需要使用或不使用break语句C)在switch语句中必须使用break语句D)break语句只能用于switch语句中8. 若有定义int a=1,b=0;,则执行以下语句后,输出为_。switch(a) case 1:switch (b) case 0: printf(*0*); break;case 1: printf(*1*); break;case 2: printf(*2*); break;A)*0* B)*0*2*C)*0*1*2* D)有语法错误9. 以下程序的输出结果是_。#include main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b);A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=210. 以下程序的输出结果是_。#include main() int a=12,b=5,c=-3;if(ab)if(b0) c=0;else c+;printf(%dn,c);A)0 B)1 C)-2 D)-311. 阅读以下程序:#include main() int x;scanf(%d,&x);if(x-5)printf(%d,x);else printf(%d,x+);程序运行后,如果从键盘输入5,则输出结果是_。A)3 B)4 C)5 D)612. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是_。#include main( )int x;scanf(%d,&x);if(x+5)printf(%d,x);else printf(%dn,x-);A)7和5 B)6和3 C)7和4 D)6和4选择题答案:DBABD CBBAC BA二、填空题1. 若有定义:int a=10,b=9,c=8;,接着顺序执行下列语句后,变量b中的值是_。c=(a-=(b-5);c=(a%11)+(b=3);2. 表示整数x的绝对值大于5时值为真的C语言表达式是_。3. 若从键盘输入58,则以下程序输出的结果是_。#include main() int a;scanf(%d,&a);if(a50)printf(%d,a);if(a40)printf(%d,a);if(a30)printf(%d,a);4. 以下程序的输出结果是_。#include main() int a=5,b=4,c=3,d;d=(abc);printf(%dn,d);5. 若a、b、c均为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b+)-(+c);后,a的值是_。6能正确表示20x30或x-100的关系表达式是_。7若有定义:int i=10;,则执行下列程序后,变量i的正确结果是_。switch (i) case 9:i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;8若运行时输入12,则以下程序的输出结果是_。#include main( ) int x,y;scanf(%d,&x);y=x12?x+10:x-12;printf(%dn,y);9. 设x、y、z均为int型变量,请写出描述x或y中至少有一个小于z的表达式_。10.已知A7.5,B=2,C=3.6,表达式AB&CA|AB的值是_。填空题答案:1、3 2、x5|x-5 3、585858 4、0 5、28 6、(20x)&(x30)|(x-100) 7、13 8、0 9、xz|yz 10、0三、上机题下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第5个字母;若小写字母为vz,使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f。形参是字母W,则转换为小写字母b。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构!#include #include char fun(char c) if (c=A & c=a & c=v & c=z)c=c-21;return c;main ( ) char cl, c2;printf(nEnter a letter(A-Z):);cl=getchar( );if (isupper(cl) c2=fun(cl);printf(nnThe letter %c change to %cn,cl,c2);elseprintf(nEnter (A-Z) !n);参考答案】(1)c=c+32;(2)c=c+5;【解题思路】(1)从ASCII码值表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII码值大32,所以大写字母转换成小写字母要加32。(2)将大写字母转换成对应小写字母之后,再将其转换成其后面的第5个字母,所以要加5。第六章一、选择题1.在while(x)语句中的x与下面条件表达式等价的是。A)x=0 B)x=1 C)x!=1 D)x!=02.以下程序的输出结果是。#include main()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论