《全国计算机等级考试二级C语言程序设计.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言程序设计.doc(173页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级C语言程序设计资料仅供参考全国计算机等级考试二级C语言程序设计 考前测试题(1)一、选择题:(1)栈和队列的共同特点是 A)都是先进先出 B)都是先进后出 C)只允许在端点处插入和删除元素 D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)c(3)链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比(4)结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结
2、构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构(5)为了提高测试的效率,应该 A)随机选取测试数据 B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)集中对付那些错误群集的程序(6)算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML(9)下列有关数
3、据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系 C)数据库是一个结构化的数据集合 D)数据库是一组文件(10)下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程 B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C)关系中的每一列称为元组,一个元组就是一个字段 D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是 A)C语言比其它语言高级 B)C语言能够不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表示形式 D)C语言出现
4、的最晚,具有其它语言的一切优点(12)C语言中用于结构化程序设计的3种基本结构是 A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue(13)C语言中最简单的数据类型包括 A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型(14)若变量已正确定义并赋值,以下符合C语言语法的表示式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b (15)下列可用于C语言用户标识符的一组是 A)void, define, WORD
5、B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof(16)C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)=(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)+i; C)a=a+=5; D)a=int(i);(18)已知 int t=0; while (t=1) . 则以下叙述正确的是 A)循环控制表示式的值为0 B)循环控制表示式的值为1 C)循环控制表示式不合法 D)以上说法都不对(19)若变量已正确说明为float型,要经过语句scanf(%f%f%f,&a,&b,&c);给a
6、赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是 A)102233 B)10.0,22.0,33.0 C)10.022.033.0 D)10 2233(20)有如下程序: 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=2(21)有以下程序 main() int i=1,j=1,k=2; if(j+|k+)&i+) printf(%d,
7、%d,%dn,i,j,k); 执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3(22)有如下程序 main() float x=2.0,y; if(x0.0)y=0.0; else if(x6)n-; printf(%d,n); 该程序的输出结果是 A)987 B)876 C)8765 D)9876(24)在下列选项中,没有构成死循环的是 A)int i=100; while(1) i=i0+1; if(i100)break; B)for(;);C)int k=10000; dok+;while(k10000);D)int s=36; while(s)-s;(2
8、5)设int x=1,y=1;表示式(!x|y-)的值是 A)0 B)1 C)2 D)-1(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用能够作为独立的语句存在 B)函数调用能够作为一个函数的实参 C)函数调用能够出现在表示式中 D)函数调用能够作为一个函数的形参(27)有以下程序 float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(%3.0fn,fun(int)fun(a+c,b),a-c); 程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0(28)若有以下调
9、用语句,则不正确的fun函数的首部是 main() int a50,n; fun(n, &a9); A)void fun(int m, int x) B)void fun(int s, int h41) C)void fun(int p, int *s) D)void fun(int n, int a)(29)fseek函数的正确调用形式是 A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点) C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针)(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值
10、是 A)EOF B)-1 C)1 D)NULL(31)若有说明语句:char c=72;则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定(32)若有说明 int a34;则a数组元素的非法引用是 A)a02*1 B)a13 C)a4-20 D)a04(33)设有以下说明语句 struct stu int a; float b; stutype; 则下面的叙述不正确的是 A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名(34)在C语言中,引用数组
11、元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表示式 C)整型常量或整型表示式 D)任何类型的表示式(35)若运行时给变量x输入12,则以下程序的运行结果是 main() int x,y; scanf(%d,&x); y=x12?x+10:x-12; printf(%dn,y); A)0 B)22 C)12 D)10(36)以下说法正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分(37)表示式0x130x17的值是 A
12、)0x04 B)0x13 C)0xE8 D)0x17(38)有以下程序 #define F(X,Y)(X)*(Y) main() int a=3, b=4; printf(%dn, F(a+, b+); 程序运行后的输出结果是 A)12 B)15 C)16 D)20(39)下列程序执行后的输出结果是 void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%dn,b0); A)6 B)7 C)8 D)9(40)若有下面的程序段: char s=china;char *p; p=s; 则下列叙
13、述正确的是 A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s0相等(41) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(&aa3,5); for(i=0;i10;i+)printf(%d,aai); printf(n); 程序运行后
14、的输出结果是 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3, (42) 以下程序的运行结果是 #include stdio.h main() struct date int year,month,day;today; printf(%dn,sizeof(struct date); A)6 B)8 C)10 D)12(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是 A)a,point,*&a B)&*a,&a
15、,*point C)*&point,*point,&a D)&a,&*point,point(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单向值传递 C)由实参传形参,再由形参传实参 D)传递方式由用户指定(45)已定义以下函数 fun(char *p2, char *p1) while(*p2=*p1)!=0)p1+;p2+; 函数的功能是 A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有0(46)若执行下述程序时,若从
16、键盘输入6和8时,结果为 main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(anext=&c; q-next=p-next; D)(*p).next=q; (*q).next=&b;二、填空题(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。(2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【2】。(3)在面向对象的程序设计中,类描述的是具有相似性质的一组【3】。(4)一般,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【4】。(5)数据库管理系统常见的数据模型有层次模型、网状模型和【5】3种。(6)设y是i
17、nt型,请写出y为奇数的关系表示式【6】。(7)设int a=5,b=6,表示式(a=b-)?+a:-b的值是【7】。(8)下列程序的输出结果是【8】。 maim()char b=Hello you; b5=0; printf(%sn,b);(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。(10)以下程序的输出结果是【10】。 int a=1234; printf (%2dn,a);(11) 用高级语言编写的程序称为【11】程序,它能够经过解释程序翻译一句执行一句的方式执行,也能够经过编译程序一次翻译 产生目标程序,然后执行。(12) 以下程序的输出结果是【12】。 main()
18、 int a=0; a+=(a=8); printf(%dn,a);(13)函数void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果经过形参指针sn传回;n经过形参传入,n的值大于等于0。请填空。void fun( float *sn, int n) float s=0.0, w, f=-1.0;int i=0;for(i=0; in。例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include string.h #include stdio.hfloat fun(int m, int
19、 n) int i;double p=1.0;for(i=1;i=m;i+)【15】;for(i=1;i=n;i+)【16】;for(i=1;i=m-n;i+)p=p/i;return p;main() clrscr();printf(p=%fn,fun(12,8);(15)该程序运行的结果是【17】。#include string.h #include stdio.h#define M 100void fun(int m, int *a, int *n) int i,j=0;for(i=1;i=m;i+)if(i%7=0|i=0)aj+=i;*n=j;main() int aaM,n,k;c
20、lrscr();fun(10,aa,&n);for(k=0;kN;K+)if(k+1)=0)printf(n);else printf(M,aak);printf(n);(16)下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串,输入字符1,则输出3,请填空。#include string.h #include stdio.h#define M 81int fun(char *ss, char c) int i=0;for(;【18】;ss+)if(*ss=c)i+;return i;main() char aM,ch;clrscr();printf(nPle
21、ase enter a string: ); gets(a);printf(nPlease enter a char: ); ch=getchar();printf(nThe number of the char is: %dn, fun(a,ch);(17)下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。#include stdio.hFILE *fp; char ch;if(fp=fopen(【19】)=NULL)exit(0);while(ch=getchar()!=)fputc (ch,fp);fclose(fp);(18)设有如下宏定义#
22、define MYSWAP(z,x,y)z=x;x=y;y=z;以下程序段经过宏调用实现变量a,b内容交换,请填空。float a=5,b=16,c;MYSWAP(【20】,a,b);全国计算机等级考试二级C语言程序设计 考前测试题(2)一、选择题(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为 A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHG(2)树是结点的集合,它的根结点数目是 A)有且只有1B)1或多于1C)0或1D)至少2(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A)e3,e1,
23、e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序(4)在设计程序时,应采纳的原则之一是 A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好 D)程序结构应有助于读者理解(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和 A)对象成分 B)变量成分 C)语句成分 D)传输成分(6)下列叙述中,不属于软件需求规格说明书的作用的是 A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,能够作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(7)下列不属于软件工程的3个要素的是 A)工具 B)过程 C)方法 D
24、)环境(8)单个用户使用的数据视图的描述称为 A)外模式 B)概念模式 C)内模式 D)存储模式(9)将E-R图转换到关系模式时,实体与联系都能够表示成 A)属性 B)关系 C)键 D)域(10)SQL语言又称为 A)结构化定义语言 B)结构化控制语言C)结构化查询语言D)结构化操纵语言(11)下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种C)C语言的函数能够嵌套定义 D)C语言的函数能够嵌套调用(12)在C语言中,退格符是 A)n B)t C)f D)b(13)以下叙述中正确的是 A)构成C程序的基本单位是函数 B)能够在一个函数中定义另一个函数C)mai
25、n()函数必须放在其它函数之前D)所有被调用的函数一定要在调用之前进行定义(14)在C程序中,判断逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用 表示逻辑表示式值为“真”, 又用 表示逻辑表示式值为“假”。A)1 0B)0 1C)非0 非0D)1 1(15)在C语言中,运算对象必须是整型数的运算符是 A)% B) C)%和 D)*(16)字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为 A)10100011和 01110111B)01000101和01100011C)00110101和00110111D)01100101和011
26、00111(17)若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句:a=25&b-=2&c?printf(*a=%d,b=%d,c=%dn,a,b,c):printf(#a=%d,b=%d,c=%dn,a,b,c);程序输出的结果是 A)*a=25,b=13,c=19B)*a=26,b=14,c=19C)# a=25,b=13,c=19D)# a=26,b=14,c=19(18)若有定义:int a=7;float x=2.5,y=4.7;则表示式x+a%3*(int)(x+y)%2/4的值是 A)2.500000B)2.750000C)3.500000D)0.
27、000000(19)下列程序段的输出结果是: int a=1234;float b=123.456;double c=12345.54321;printf(%2d,%2.1f,%2.1f,a,b,c);A)无输出 B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5(20)若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是 #include “stdio.h”main()char c;int v0=1,v1=0,v2=0;doswitch(c=getchar()case a:case A: ca
28、se e:case E: case i:case I: case o:case O: case u:case U:v1+=1; default:v0+=1;v2+=1; while(c!=n); printf(v0=%d,v1=%d,v2=%dn,v0,v1,v2);A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11 D)v0=13,v1=4,v2=12(21)设有以下程序段int x=0,s=0;while(!x!=0)s+=+x;printf(%d,s);则 A)运行程序段后输出0 B)运行程序段后输出1C)程序段中的控制表示式是非法的D
29、)程序段执行无限次(22)有如下程序 main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;printf(%fn,y);该程序的输出结果是 A)0.000000B)0.250000C)0.500000D)1.000000(23)执行下面的程序段后,变量k中的值为 int k=3, s2;s0=k; k=s1*10;A)不定值 B)33 C)30 D)10(24)以下程序段的描述,正确的是 x=-1;dox=x*x;while(!x);A)是死循环 B)循环执行两次C)循环执行一次 D)有语法错误(25)以下选项错误的是 A)main() int x,
30、y,z; x=0;y=x-1; z=x+y;B)main() int x,y,z; x=0,y=x+1; z=x+y;C)main() int x;int int y; x=0,y=x+1; z=x+y;D)main() int x,y,z; x=0;y=x+1; z=x+y,(26)有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为 A)ture B)false C)0 D)1(27)下列程序执行后的输出结果是 void func1(int i);void func2(int i);char st=hello,friend!;void func1(int i) printf(%c,sti);if(i3)i+=2;func2(i);void func2(int i) printf(%c,sti);if(i3)i+=2;func1(i);main() int i=0; func1(i); printf(n);A)hello B)hel C)hlo