《全国计算机等级考试二级C语言2010模拟题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言2010模拟题.docx(147页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级C语言2010三月考试密卷(1)(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A) acbedB) decabC) deabcD) cedba(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5
2、)为了提高测试的效率,应该A)随机选取测试数据B)取切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A) CB) BasicC) DDLD) DML(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)
3、数据库是一组文件(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关健字,但它是另一个关系的关键字, 则称其为本关系的外关键字(11)以下叙述中正确的是A) C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点(12) C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)
4、 if,switch,breakC) for,while,do-whileD) if,for,continue(13) C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A) a:=b+lB) a=b=c+2C) int 18.5%3D) a=a+7=c+b(15)下列可用于C语言用户标识符的一组是A) void, define, WORDB) a3_b3,_123,CarC ) For, -abc, IF CaseE) 2a, DO, sizeof(16) C语言
5、中运算对象必须是整型的运算符是A) %=B) /C)=D) =(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A) a=lB) +i;C) a=a+=5;D) a=int (i);(18)已知int t=0;while (t=l)则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(19)若变量已正确说明为float型,要通过语句scanf (,&a,&b,&c);给2赋予10.0, b赋予22.0, c赋予33.0,下列不正确的输入形式是A) 10回车22回车33回车B) 10.0,22.0,33.0 回车)C) 10.
6、0回车 22.033.0 回车D) 10 22回车33回车)(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=%d n,a,b) ;该程序的输出结果是A) a=2,b=lB) a=l,b=lC) a=l,b=0D) a=2,b=2(21)有以下程序main ()int i=l j=l,k=2;if (j+|k+) &i+)printf (%d,%d,%d n,ij,k);执行后输出结果是A) 1,1,2B) 2,2,1C) 2,2,2D) 2,2,3
7、(22)有如下程序main ()float x=2.0,y;if (x0.0) y=0.0;else if (x6) n; printf (d”,n) ;)该程序的输出结果是A) 987B) 876C) 8765D) 9876(24)在下列选项中,没有构成死循环的是A) int i=100;while (1)i=i+ 0+1;if (i100) break;B) for (;);C) intk= 10000;dok+;while (k 10000);D) int s=36; while (s) -s;(25)设 intx=l,y=l;表达式(!x|y-)的值是A) 0B) 1C) 2D) -1
8、(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参 (27)有以下程序float fiin (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) 9C) 21D) 9.0(28)若有以下调用语句,则不正确的fim函数的首部是 main ()(-int a 50 ,n;fun
9、(n, &a 9);A) void fun (int m, int x )B) void fun (int s, int h 41 )C) void fbn (int p, int *s)D) void fun (int n, int a)(29) fkeek函数的正确调用形式是A) fseek (文件指针,起始点,位移量)B) fseek (文件指针,位移量,起始点)C) fseek (位移量,起始点,文件指针)D) fseek (起始点,位移量,文件指针)(30)若小是指向某文件的指针,且已读到文件末尾,则函数feof (巾)的返回值是A) EOFB) -1C) 1D) NULL(31)若
10、有说明语句:charc=72;则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定(32)若有说明int a 3 4;则a数组元素的非法引用是A) a 0 2*1B) a 1 3C) a 4-2 01D) a 0 4 (33)设有以下说明语句struct stuint a;float b; stutype;则下面的叙述不正确的是A) struct是结构体类型的关键字B) struct stu是用户定义的结构体类型C) stutype是用户定义的结构体类型名D) a和b都是结构体成员名(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量B)
11、整型表达式C)整型常量或整型表达式D)任何类型的表达式(35)若运行时给变量x输入12,则以下程序的运行结果是 main ()int x,y;scanf (%d,&x);y=x12?x+10:x-l2;printf (dn”,y);)A) 0B) 22C) 12D) 10 (36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main ()函数中定义C) C语言程序总是从main ()函数开始执行D) C语言程序中的main ()函数必须放在程序的开始部分(37)表达式0x13Aox 17的值是A) 0x04B) 0x13C) 0xE8D) 0x1
12、7(38)有以下程序#define F (X,Y) (X) * (Y) main ()int a=3, b=4;printf (%dn, F (a+, b+);)程序运行后的输出结果是A) 12B) 15C) 16D) 20(39)下列程序执行后的输出结果是void func (int *a,int b ) b 0 =*a+6; main ()int a,b 5;a=0;b 0 =3;func (&a,b) ; printf (%dn,b 0);)A) 6B) 7C) 8D) 9(40)若有下面的程序段:char s =china;char *p; p=s;则下列叙述正确的是A) s和p完全相
13、同B)数组s中的内容和指针变量p中的内容相等C) s数组长度和p所指向的字符串长度相等D) *p与s 0相等(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort (int a ,int n)int i,j,t;for (i=0;iN-l;I+)for (j=i+lyN;J+) if (a i)main ()intaa 10 = 1,2,3,4,5,6,7,8,9,10,i;sort (&aa 3 ,5);for (i=0;i10;i+) printf (%d,aa i);printf (n);程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9
14、,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 nstdio.hmain ()struct dateint year,month,day;today;printf (M%d nM,sizeof (struct date);A) 6B) 8C) 10D) 12(43)若有语句int *point,a=4;和point=&a;卜,面均代表地址的一组选项是A) a,point,*&aB) &*a,&a,*pointC) *&point,*point,&
15、aD) &a,&*point,point(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定(45)已定义以下函数fiin (char *p2, char *pl)(while (*p2=*pl) !=0) pl+;p2+;)函数的功能是A)将pl所指字符串复制到p2所指内存空间B)将pl所指字符串的地址赋给指针p2C)对pl和p2两个指针所指字符串进行比较D)检查pl和p2两个指针所指字符串中是否有、(T(46)若执行下述程序时,若从健盘输入6和8时,结果为main ()int a,b,s
16、;scanf (%d%d,&a,&b);s=aif (anext=&c; q-next=p-next;D) (*p) .next=q; (*q) .next=&b;二、填空题(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定 性、有穷性和拥有足够的情报。(2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【2】o 解析:对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺 序查找需要比较n次。(3)在面向对象的程序设计中,类描述的是具有相似性质的一组【3】.解
17、析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象 的集合。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为4。 解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生 命周期。般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)数据库管理系统常见的数据模型有层次模型、网状模型和【5】3种。解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件, 是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状 模型和关系模型。(6)设y是int型,请写出y为奇
18、数的关系表达式6.答案(y%2)=l(7)设 int a=5,b=6,表达式( + +a=b-) ?+a:-b 的值是7。解析:此表达式为三目运算符,+a的值为6,b一一的值为6,则整个表达式的值为+a 的值,+a的值为7。请注意前缀+ + ,-和后缀+ + , -的区别。(8)下列程序的输出结果是8】。maim ()charb =Hello you;b 5 =0;printf (%sn,b) ;解析:语句b 5 =0;相当于语句b 5 =0,,且,0,为字符串结束标志,输出时遇到, 0就停止输出。(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。解析:在函数中,可以通过指针变量来
19、引用调用函数中对应的数组元素,此操作是通过传 递数组的首地址来实现。(10)以下程序的输出结果是(101 int a=1234;printf (An, a);解析:在与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插 入的宽度小于实际的宽度时,则实际的宽度输出。(11)用高级语言编写的程序称为11程序,它可以通过解释程序翻译句执行一句的 方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。解析:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序 有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程 序一次翻译产生目标程
20、序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制 代码程序),然后执行目标程序。(12)以下程序的输出结果是【121main ()int a=0;a+= (a=8);printf (w%dnM,a) ;解析:赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进 行求解:a+= (a=8)此时,a的值由于赋值为8,而不是0a+=8a=a+8a=16(13)函数v H void fun (float *sn, int n)的功能是:根据以卜公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。void fun ( float *
21、sn, int n) float s=0.0, w, f=-1.0;int i=0;for (i=0; in。 ! (m-e)!例如:m=12, n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语 句,将该程序补充完整。/include#includefloat fun (int m, int n )int i;double p=1.0;for (i=l;iv=m;i+) 15;for (i=l;i=n;i+4-) 16;for (i=l;i=m-n;i+) p=p/i;return p;main () clrscr ();printf (Mp=%fn,fun (1
22、2,8) ;解析:本题中,欲求p的值,需要先求m, n, mn的阶乘值,可用循环语句实现。(15)该程序运行的结果是【17】。/include/include#define M 100void fun (int m, int *a, int *n) int ij=0;for (i=l;i=m;i+)if (i%7=0|ifn oilooonC) 00110101 和 00110111D) 01100101 和 01100111(17)若已定义:int a=25,b=14,c=19;以下三日运算符(?:)所构成语句的执行后 a=25&b-=2&c?printf (n*a=%d,b=%d,c=%d
23、 nH,a,b,c) :printf (H#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.000000(19)下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54
24、321;printf (n-,%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 (表示回车),则下面程序的运行结果 J#includemain ()char c;int v0=l,vl=0,v2=0;do switch (c=getchar ()case a:case A:case e:case E:case i:case T:case o:case O:case u:case U:vl+=1;default:v0+
25、= 1;v2+= 1; while (c!=rnr);printf (v0=%d,vl=%d,v2=%d nn,v0,vl,v2) ;A) v0=7,vl=4,v2=7B) v0=8,vl=4,v2=8C) v0=ll,vl=4,v2=llD) v0=13,vl=4,v2=12(21)设有以下程序段int x=O,s=O;while (!x!=0) s+=+x;printf (”d”,s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(22)有如下程序main () float x=2.0,y;if (x10.0) y=1.0/x;else
26、 y=1.0;printf (%fn,y) ; 该程序的输出结果是A) 0.000000B) 0.250000C) 0.500000D) 1.000000(23)执行下面的程序段后,变量k中的值为 int k=3, s 2;s 0 =k; k=s 1 *10;A)不定值B) 33C) 30D) 10(24)以下程序段的描述,正确的是x=-l;dox=x*x;while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误(25)以下选项错误的是A) main () int x,y,z;x=0;y=x-1;z=x+y;B) main () int x,y,z;x=O,y=x+1;
27、z=x+y; C) main () int x;intint y;x=O,y=x+l;z=x+y; D) main () int x,y,z;x=O;y=x+l;z=x+y,(26)有如下程序段int a=14,b=15,x;char c=A;x= (a&b) & (cB);执行该程序段后,x的值为A) tureB) falseC) 0D) 1(27)下列程序执行后的输出结果是void fiincl (int i);void func2 (int i);char st =Hhello,friend!H;void fund (int i) printf C%c,st i);if (i3) i+=
28、2;func2 (i) ;void func2 (int i) printf (“c”,st i);if (i3) i+=2;funcl (i) ; main () int i=0; fiincl (i) ; printf (nn) ; A) helloB) helC) hloD) him(28)以下函数返回a所指数组中最大值所在的下标值 fun (int *a,int n)int ij=O,p;P=j;fbr (i=j;ia p) ;return (p) ;)在下划线处应填入的内容是A) i=pB) a p =a iO p=jD) p=l(29)下面说明不正确的是A) char a 10 =
29、Mchinaw;B) chara 10 ,*p=a;p=MchinaHC ) char *a;a=chinaM;D) char a 10 ,*p;p=a=HchinaH(30)以下程序的输出结果是#includevoid prt (int *x, int *y, int *z)printf (d,%d,%dn”,+*x,H*y,* (z+) ;main ()int a=10,b=40,c=20;prt (&a,&b,&c);prt (&a,&b,&c) ;A) 11,42,3112,22,41B) 11,41,2012,42,20C) 11,21,4011,21,21D) 11,41,2112
30、,42,22(31)若有函数内部说明:inta 3 4;则数组a中各元素A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0(34)定义如下变量和数组:int k;inta 3 3 =9,8,7,6,5,4,3,2,1;则下面语句的输出结果是for (k=0;k3;k+) printf (%d,a k k);A) 753B) 95 1C) 963D) 74 1(35)下列程序执行后的输出结果是main () char arr 2 4;strcpy (arr,youM) ; strcpy (arr 1 Jme);arr 0
31、3 =&;printf (n%snH,arr) ;A) you&meB) youC) meD) err(36)有以下函数char fun (char *p)return p;该函数的返回值是A)无确切的值B)形参p中存放的地址值C) 一个临时存储单元的地址D)形参p自身的地址值(37)以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内B) return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准(38)有以下程序int f (int n)if (n=l) return 1;else return f (n-1) +1;main ()in