二级C语言笔试考试考前预测题.pdf
二 级 C 语言笔试考试考前预测题(共 有 10套)计算机等级考试二级C 语言考前预测题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二义树后序遍历序列是d a b ec,中序遍历序列是d eb a c,它的前序遍历序列是A)a c b edB)d ec a bC)d ea b cD)c ed b a(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)结构化程序设计的3 种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据D)集中对付那些错误群集的程序(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8)数据库管理系统D B M S 中用来定义模式、内模式和外模式的语言为A)CB)Ba s i cC)D D LD)D M L(9)卜列有关数据库的描述,正确的是A)数据库是一个D B F 文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(1 0)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段C)在完成编码以后制定软件的测试计划D)如果一个关系中的属性或属性组并非该关系的关键字,但它是(1 6)C语言中运算对象必须是整型的运算符是另一个关系的关键字,则称其为本关系的外关键字A)%=(1 1)以下叙述中正确的是B)/A)C语言比其他语言高级C)=B)C语言可以不用编译就能被计算机识别执行D)22.()3 3.()同车B)a3 _b3,_1 23,C arD)1 0 22 回车3 3 回车C)F o r,-abc,I F C ase(20)有如下程序:D)2a,D O,siz e o fm ain ()in t x=l,a=O,b=O;sw itch(x)case 0:b+;case 1:a+;case 2:a+;b+;)p r in tf (,a=%d,b=%dn,a,b);该程序的输出结果是A)a=2,b=1B)a=1 ,b=1C)a=l,b=0D)a=2,b=2(2 1)有以下程序m ain ()in t i=l,j=l,k=2;if (j+l l k+)&i+)p r in tf (&%d,%d n”,i,j,k);)执行后输出结果是A)1,1,2B)2,2C)2,2,2D)2,2,3(2 2)有如下程序m ain ()f l o at x=2.0,y;if (x 0.0)y=0.0;e l se if (x 6)n;p r in tf (%d,n);)该程序的输出结果是A)9 8 7B)8 7 6C)8 7 6 5D)9 8 7 6(2 4)在下列选项中,没有构成死循环的是A)in t i=1 0 0;w hil e (1)i=i%1 0 0+l;if (i 1 0 0)br e ak;B)f o r (;);C)in t k=1 0 0 0 0;do k+;w hil e (k 1 0 0 0 0);D)in t s=3 6;w hil e (s)-s;(2 5)设 in t x=l,y=l;表达式(!x l l y-)的值是A)0B)1C)2D)-1(2 6)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参(2 7)有以下程序f l o at f un (in t x,in t y)r e tur n (x+y);)m ain ()in t a=2,b=5,c=8;p r in tf (%3.0 f n,f un (in t)f un (a+c,b),a-c);)程序运行后的输出结果是A)编译出错B)9C)21D)9.0(2 8)若有以下调用语句,则不正确的f un函数的首部是m ain ()in t a 5 0 ,n;f iin (n,&a 9);A)v o id f un(in t m,in t x )B)v o id f un(in ts,in t h 4 1 )C)v o id f un(in t p,in t*s)D)v o id f un(in t n,in t a)(29)f se e k函数的正确调用形式是A)f se e k(文件指针,起始点,位移量)B)f se e k(文件指针,位移量,起始点)C)f se e k(位移量,起始点,文件指针)D)f se e k(起始点,位移量,文件指针)(3 0)若中是指向某文件的指针,且已读到文件末尾,则函数f e o f(f p)的返回值是A)E O FB)-1C)1D)N U L L(3 1)若有说明语句:char c=7 2;则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定(3 2)若有说明in t a 3 4;则a数组元素的非法引用是A)a 0 2*1 B)a 1 3 C)a E4-2 Eo(3 6)以卜说法正确的是1D)a 0 4 (3 3)设有以下说明语句stm ct stu(in t a;f l o at b;1 stuty p e;则下面的叙述不正确的是A)str uct是结构体类型的关键字B)str uct stu是用户定义的结构体类型C)sm ty p e是用户定义的结构体类型名D)a和b都是结构体成员名(3 4)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式(3 5)若运行时给变量x输入1 2,则以下程序的运行结果是m ain ()(in t x,y;scan f (,%d,&x);y=x 1 2?x+1 0:x-1 2;p r in tf (1%d nn,y);)A)0B)22C)1 2D)1 0 (A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在m a i n ()函数中定义C)C语言程序总是从m a i n ()函数开始执行D)C语言程序中的m a i n ()函数必须放在程序的开始部分(37)表达式O x i 3Ao x 17的值是A)0 x 04B)0 x 13C)0 x E8D)0 x 17(38)有以下程序#d efi n eF(X.Y)(X)*(Y)m a i n ()(i n t a=3,b=4;p r i n t f(%d n ,F(a+,b+);)程序运行后的输出结果是A)12B)15C)16D)2 0(39)下列程序执行后的输出结果是v o i d fu n c (i n t *a,i n t b )b 0=*a+6;m a i n ()i n t a,b 5 ;a=0;b 0=3;fu n c (&a,b);p r i n t f(n%d n ,b 0 );)B)109 8 7 6,5,4,3,2,1,A)6B)7C)8D)9(4 0)若有5面的程序段:c h a r s =*c h i n a ;c h a r *p;p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s 0 相等(4 1)以下程序中函数s o r t的功能是对a数组中的数据进行由大到小的排序v o i d s o r t (i n t a ,i n t n)i n t i j,t;fo r (i=0;i n-l;i+)fo r (j=i+l;j n;j+)i f(a i a j )t=a i ;a i =a j ;a j =t;)m a i n ()i n t a a 10=1,2,3,4,5,6,7,8,9,10,i;s o r t (&a a 3,5);fo r (i=0;i 10;i+)p r i n t f(%d,n,a a i);p r i n t f n);)程序运行后的输出结果是A)12 3,4,5,67 8,9,10,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5 A3,(4 2)以下程序的运行结果是#i n c l u d e Hs t d i o.h m a i n ()s t r u c t d a t e i n t y ea r,m o n t h Td a y;)t o d a y;p r i n t f(%d nn,s i z eo f(s t r u c t d a t e);)A)6B)8C)10D)12(4 3)若有语句i n i *p o i n t,a=4;和p o i n t二&a;卜面均代表地址的一组选项是A)a,p o i n t,*&aB)&*a,&a,*p o i n tC)*&p o i n t,*p o i n t,&aD)&a,&*p o i n t.p o i n t(4 4)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定(4 5)已定义以卜函数fu n (c h a r *p 2,c h a r *p l )w h i l e(*p 2=*p l)!=O )p l+;p 2+;)函数的功能是A)将p l所指字符串复制到p2所指内存空间B)将pl所指字符串的地址赋给指针p 2C)对pl和p2两个指针所指字符串进行比较D)检查pl和p2两个指针所指字符串中是否有、0,(4 6)若执行下述程序口寸,若从键盘输入6和8时,结果为m a i n ()i n t a,b,s;s c a n f(%d%d”,&a,&b);s=ai f(a next=&c;q-next=p-next;D)(*p).next=q;(*q).next=&b;二、填空题(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。解析:算法是指解题方案的准确而完整的描述。它有4 个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。(2)在长度为n 的有序线性表中进行二分查找。最坏的情况,需要的比较次数为【2】o解析:对于长度为n 的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n 次。(3)在面向对象的程序设计中,类描述的是具有相似性质的组属性、共同方法的对象的集合。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过 程 称 为【4】。解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)数据库管理系统常见的数据模型有层次模型、网状模型和【5】3 种。解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(6)设y 是int型,请写出y 为奇数的关系表达式【6】。答案(y%2)=l(7)设 int a=5,b=6,表达式(+a=b-)?+a:表的值是 7 。解析:此表达式为三目运算符,+a 的值为6,b 的值为6,则整个表达式的值为+a的值,+a 的值为7。请注意前缀+和后缀+,-的区别。(8)下列程序的输出结果是8】。maim()char b =Helloyou;b 5=0;(31 printf(H%s n,b);解析:语句b 5 =0;相当于语句b 5=、(),,且、0,为字符串结束标志,输出时遇到,0 就停止输出。(9)当调用函数时,实参是 个数组名,则向函数传递的是【9】o解析:在函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现。(1 0)以下程序的输出结果是 1().i n t a=1 2 3 4:p r i n t f (%2 d n ,a);解析:在与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。(11)用高级语言编写的程序称为【1 1】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。解析:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码 程 序),然后执行目标程序。(12)以下程序的输出结果是【1 2】。ma in()int a=O;a+=(a=8);printf(%d n,a);a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a的值由于赋值为8,而不是0a+=8a=a+8a=1 6i _ 0 2 X 1 +(1 3)函数 void fhn(floa t*sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。void fun(floa t*sn,int n)floa t s=0.(),w,f=-1.0;int i=0;for(i=0;i n。解析:赋值表达式的值就是所赋值变量的值,本题中a+=8相当于例如:m=l2,n=8时,运行结果应该是495.000(X)0。请在题目的空白 intaa M ,n,k;处填写适当的程序语句,将该程序补充完整。#include#include float fun(int m,int n)int i;double p=1.0;for(i=l;i=m;i+)1 5;for(i=l;i=n;i+)16;for(i=l;i=m-n;i+)p=p/i;return p;main()clrscr();printf(np=%f n,fun(12,8);)解析:本题中,欲求p的值,需要先求m,n,mn的阶乘值,可用循环语句实现。(1 5)该程序运行的结果是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=0lli%ll=0)a j+=i;*n=j;main()clrscr();fun(10,aa,&n);for(k=0;kn;k+)if(k+1)%20=0)printf(n”);elseprintf(%4d,aa k );printf(M n);解析:解答本题的关键是要读懂程序,试题要找出能被7或11整除的所有整数,注意数学中的“或”和C语言中的“或”的区别,但在此处,if条件语句中用了“I 运算符,若要找能同时被7和11整除的所有整数则在if()中应用“&”运算符。当然,如果m的值输入50,即表达式fun(10,aa,&n);为fun(50,aa,&n);时输入结果为:7 11 14 21 22 28 33 35 42 44 49。(1 6)卜列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include#include#defineM81int fun(char*ss,chare)int i=0;for(;18;ss+)if(*ss=c)i+;return i;main()chara M ,ch;clrscr();printf(nP le a se e nte r a string:);ge ts(a);printf(nP le a se e nte r a c ha r:);c h=ge tc ha r();printf(nT he numbe r of the c ha r is:%d n,fun(a,c h);)解析:从字符串s s中找出子字符串的方法是:从第I个字符开始,对字符串进行遍历;若S S串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较卜.一 个 字符;若比较至字符串的结尾,则跳出循环;若S S串的字符和C串的字符对应不同,继续对S S串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与C相同则表示又出现一次。(1 7)下面程序把从终端读入的文本(用 作为文本结束标志)输出到一个名为bi.da t的新文件中,请填空。#includc stdio.hF I L E *fp;cha r ch;if(fp=fopen(1 9 )=N U L L)exit(0);while(ch=getcha r()!=)fputc(ch,fp);fclose(f p);)解析:fopen函数的调用方式通常为:F I L E *fpfp=fopen(文件名,使用文件方式);(1 8)设有如下宏定义#define MY SWA P(z,x,y)z=x;x=y;y=z;以卜程序段通过宏调用实现变量a,b内容交换,请填空。MY SWA P(2 0 ,a,b);解析:该题考查两个知识点:(1)用 个指定的标识符(即名字)来代表个字符串,它的一般形式为#define标识符字符串(2)在MY SWA P宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。选择题0 1-0 5CDBDD0 6-1 0 C1 1-1 5 C1 6-2 0 AD C C BA B B BB B B A2 1-2 5 C C S2 6-3 0 D3 1-3 5 A3 6-4 0 C4 1-4 5 CD BB D B CD C C AA A A DABBA4 6-5 0 B D DB Dfloa t a=5,b=1 6,c;计算机等级考试二级c 语言考前预测题(2)一、选择题(1)已知一棵二叉树前序遍历和中序遍历分别为A B D E G C F H 和D B G E A C H F,则该二叉树的后序遍历为A)G E D H F B C AB)D G E B H F C AC)AB C D E F G HD)AC B F E D H G(2)树是结点的集合,它的根结点数目是A)有且只有1B)1 或多于1C)0 或 1D)至少2(3)如果进栈序列为el,e2,e3,e4,则可能的出栈序列是A)e3,el,e4,e2B)e2,e4,e3,e 1C)e3,e4,el,e2D)任意顺序(4)在设计程序时,应采纳的原则之是A)不限制got。语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和B)变量成分C)语句成分D)传输成分(6)卜.列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依居C)作为确认测试和验收的依据D)便于开发人员进行需求分析(7)卜 列不属于软件工程的3 个要素的是A)工具B)过程C)方法D)环境(8)单个用户使用的数据视图的描述称为A)外模式B)概念模式C)内模式D)存储模式(9)将E-R 图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(1 0)S Q L 语言又称为A)结构化定义语言B)结构化控制语言A)对象成分C)结构化查询语言D)结构化操纵语言(1 6)字符型数据在机器中是用ASCI【码表示的,字符“5”和“7,在机(1 1)下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用(1 2)在C语言中,退格符是A)nB)tC)fD)b(1 3)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义(14)在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假 在 求 逻 辑 值 时,用O表示逻辑表达式值为“真”,又 用()表示逻辑表达式值为“假”。A)1 0B)0 1C)非0非0D)1 1(1 5)在C语言中,运算对象必须是整型数的运算符是A)%B)C)%和 D)*器中表示为A)10100011 和 01110111B)010(X)101 和 01100011C)00110101和 00110111D)01100101 和 01100111(1 7)若已定义:inta=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a=25&b-(vCR表示main()何车),则卜.面程序的运行结果是#成1 1 由0 2 float x=2.0,y;main()if(x10.0)y=1.0/x;int v0=l,vl=0,v2=0;else y=1.0;do switch(c=getchar()printf(M%fnM,y);)case a:case A:该程序的输出结果是case e:case E:A)0.000000case incase T:B)0.250000case foz:case O:C)0.500000case u:case U:vl+=1;D)1.000000default:v0+=1 ;v2+=1;(23)执行下面的程序段后,变量k中的值为)while(c!nf);int k=3,s 2 ;printf(Hv0=%d,vl=%d,v2=%d nv0,vl,v2);)s CO=k;k=s 1 *10;A)v0=7,vl=4,v2=7A)不定值B)v0=8,vl=45v2=8B)33C)v0=ll,vl=4,v2=llC)30D)v0=13,vl=4,v2=12D)10(21)设有以卜.程序段(24)以下程序段的描述,正确的是int x=0,s=0;x=-l;while(!x!=0)s+=+x;doprintf(%d,s);x=x*x;则while(!x);A)运行程序段后输出0A)是死循环B)运行程序段后输出1B)循环执行两次C)循环执行一次D)有语法错误(27)卜.列程序执行后的输出结果是(25)以下选项错误的是vo i d f un d(i n t i);A)m a i n ()vo i d f un c 2 (i n t i);i n t x,y,z;c h a r st =h el l o,f r i en d!;x=O;y=x-l;v o i d f i i n cl (i n t i)z=x+y;pr i n t f (%c,s t i);B)m a i n ()i f (i 3)i+=2;f u n c2 (i);i n t x,y,z;v o i d f i i n c2 (i n t i)x=O,y=x+l;pr i n t f (%c,s t i);z=x+y;i f (i 3)i+=2;f u n cl (i);C)m a i n ()m a i n ()i n t x;i n t i n t i=0;f u n ci (i);pr i n t f (H n);)i n l y;A)h el l ox=O,y=x+l;B)h elz=x+y;C)h l oD)m a i n ()D)h i m i n t x,y,z;(28)以下函数返回a所指数组中最大值所在的下标值x=O;y=x+l;f u n (i n t *a,i n t n)z=x+y,i n t i,j=O,p;(2 6)有如下程序段P=j;i n t a=1 4,b=1 5,x;f o r (i=j;i a p )_ _ _ _ _ _ _ _ _ _ _;x=(a&b)&(c vB);r et u r n (p);)执行该程序段后,X的值为在下划线处应填入的内容是A)t u r eA)i=pB)f a l s eB)a p =a i C)0C)p=jD)1D)p=I(29)卜.面说明不正确的是A)ch a r a 10=ch i n a;B)ch a r a 1 0 ,*p=a;p=,ch i n a C)ch a r*a;a=*ch i n a;D)ch a r a 1 0 ,*p;p=a=,ch i n a(30)以 卜.程序的输出结果是#i n cl u d e v o i d pr t (i n i *x5 i n t *y,i n t *z)pr i n t f (%d,%d,%d nn,+*x,-H-*y,*(z+);m a i n ()i n t a=1 0,b=4 0,c=2 0;pr t (&a,&b,&c);pr t (&a,&b,&c);A)1 1,4 2,3 11 2,2 2,4 1B)1 1,4 1,2 01 2,4 2,2 0C)1 1,2 1,4 01 1,2 1,2 1D)1 1,4 1,2 11 2,4 2,2 2(31)若有函数内部说明:i n t a 3 4;则数组a中各元素A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值()C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0(34)定义如卜.变量和数组:i n t a 3 3 =9,8,7,6,5,4,3 2 1 ;则下面语句的输出结果是f o r (k=O;k 3;k+)pr i n t f (%d,a k k);A)753B)95 1C)963D)74 1(35)下列程序执行后的输出结果是m a i n ()ch a r a r r 2 4 ;s t r cpy (a r r,y o u);s t r cpy (a r r 1 J me );a r r 0 3 pr i n t f (M%s n,a r r);A)you&meB)y o uC)meD)er r(36)有以卜函数ch a r f u n (ch a r *p)r et u r n p;)该函数的返回值是A)无确切的值B)形参p中存放的地址值C)一个临时存储单元的地址D)形参p自身的地址值(37)以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内i n t k;B)r el u r n后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准 i n t n;D)如果形参与实参类型不一致,以实参类型为准f l o a t m;(38)有以下程序 AA;i n t f (i n t n)A A t d l;i f (n=l)r et u r n 1;B)#d ef i n e A A s t r u ct a ael s e r et u r n f (n-1)+1;A A i n t n;m a i n ()f l o a t m;i n t i,j=O;l t d l;f o r (i=l;i j)pr i n t f (1%d n,n);pr i n t f (d”,s);则以卜.叙述中不正确的是br ea k;A)若只在主函数中对函数f进行说明,则只能在主函数中正确 s+=i;调用函数f)B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fA)4C)对于以上程序,编译时系统会提示出错信息:提示对f函数B)7重复说明C)5D)函数f无返回值,所以可用v o i d将其类型定义为无返回值型D)6(4 6)若有下面的说明和定义(4 3)以卜.4个选项中,不能看做一条语句的是s t r u ct t es tA);i n t m l;ch a r m 2;f l o a t m 3;B)a=5,b=2.5,c=3.6;u n i o n u u ch a r u l 5 ;i n t u 2 2 :)u a;C)i f (a 5);)m y a a;D)i f (b!=5)x=2;y=6;贝ij s i z eo f (s t r u ct t es t )的值是(4 4)在C语言中,变量的隐含存储类别是A)1 2A)a u t oB)1 6B)s t a t i cC)1 4C)ex t er nD)9D)无存储类别(4 7)以下程序的输出是(4 5)若有以下程序s t r u ct s t#i n cl u d e i n t x;i n t *y;*p;v o i d f (i n t n );i n t d i 4 =1 0,2 0,3 0,4 0 );m a i n ()s t r u ct s t a a 4 =(5 0,&d t 0 ,6 0,&d t 0 ,6 0,&d t 0 ,6 0,&d t v o i d f (i n t n );Eo);f (5);)m a i n ()(p=a a;v o i d f (i n t n)pr i n t f (n%d (p-x );A)1 0A)2 0 3 0B)1 1B)2 0 5 0C)5 1C)3 0 5 0D)6 0D)3 0 2 0(4 8)若有运算符,s i z eo f A&=,则它们按优先级由高至低的正确排列二、填空题次序是A)s i z eo f,&=,A(1)数据结构分为逻辑结构与存储结构,线 性 链 表 属 于【I】。B)s i z eo f,A,&=解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;C)A,s i ze o f,&=数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形D),A,&=,s i ze o f式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存(4 9)函数 f s e e k (p f,O L,S E E K _ E N D)中的 S E E K _ E N D 代表的起始放各数据元素之间的前后件关系的信息。点是A)文件开始(2)在面向对象方法中,类之间共享属性和操作的机制称为【2】。B)文件末尾解析:类是面向对象语言中必备的程序语言结构,用来实现抽象数C)文件当前位置据类型。类与类之间的继承关系实现了类之间的共享属性和操作,-D)以上都不对个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其(5 0)有以下程序超类的属性和方法,当然,也可以定义自己的属性和方法。#i n c l u d e m a i n ()(3)耦合和内聚是评价模块独立性的两个主要标准,其 中【3】反(F I L E *f p;i n t i=2 0,j=3 0,k,n;映了模块内各成分之间的联系。f p=f o p e n (d l.d a t ,w );解析:内 聚 性 是 一 个 模块内部各个元素间彼此结合的紧密程度的度f p r i n t f (f p,%d n ,i)j f p r i n t f (f p,%d n j);量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连f c l o s e (f p);接的紧密程度的度量。f p=f o p e n (d l.d a t ,r );f s c a n f (f p,%d%d ,&k,&n);p r i n t f (%d%d n ,k,n);(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,f c l o s e (f p);则实体 项目主管 与实体”项目”的 联 系 属 于【4】的联系。)程序运行后的输出结果是解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1 :I)的联系、-对 多(1 :N)或多对 一(N:1)的联系和多对多(N:N)的联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。(6)以下程序的运行结果是1 6】。#d e f i n e MA X(a,b)(a b?a:b)+1m a i n ()i n i i=6,j=8.k;p r i n t f (%d n ,M AX (i j);I解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。(7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。m ai n ()fl o at x,an i ax,am i n;s can f(%f,&x);am ax=x;am i n=x;w h i l e(7)am ax=x;el s ei f 8am i n=x;el s e s can f(%f,&x );p r i n t f(n am ax=%fn am i n=%f n.am ax,am i n);)解析:本题先从键盘接受数值,并分别赋给am ax (用于保存最高成绩)和am i n (用干保存最低成绩),然后通过w h i l e循环控制是否结束输入,并且通过i f语句来给am ax和am i n赋值和进行下一次的输入。(8)在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是9】。答案;r ew i n d()(9)在计算机中,字符的比较是对它们的【1 0】进行比较。解析:C语言中,字符也可以进行比较运算,且是按照AS CH码值进行的。(1 0)在内存中,存储字符父要占用1个字节,存储字符串X要占用【I I】个字节。解析:计算机存储一个字符用1个字节,存储字符串时,每个字符用占用I个字节,另在字符串的有效字符之后存储I个字符串的结束标记符。所以存储字符串“X”要占用2个字节,存储字符犬只要1个字节。i f(x am ax )1 1)下列程序的输出结果是1 6.0 0,请填空。main()int a=9,b=2;floatx=12,y=l.l,z;z=a/2+b*x/y+l/2;printf(H%5.2fn;z);)解析:本题最后一条语句,表示以浮点格式输出z的值,宽度为5,其中所含2位小数,应该注意的是,两个整型运算结果仍为整型,如1/2的结果为0,对本题可逐步求解:16.00=9/2+2*x/l.1+1/216.00=4+2*x/l.l+012.00=2*x/l.l所以,x的值为6.6。(1 2)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【1 3。要求形参名为b.main()double s 10 2 2;int n;tfun(s);.1 iI)解析:本题中,为了明确表示“不带同值”,可以用“void”定义“无类型”(或称“空 类 型。这系统就保证不使函数带回任何值,二维数组的第一维可以省略。(1 3)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。main()inti,x,y=l;scant,(%d,&x);for(i=2;i=x/2;i+)if 14 y=();break;)printf(%d n,y);)解析:为判数x是否是素数,预置变量y的值为I(x可能是素数),然后用循环,用2至x/2的整数i测试对x的整除性,若能被其中的某个整数整除,则x是合数,置y的值为0(x不是素数),结束测试循环。若都不能整除,则x为素数。i能否整除x,可用求余运算x%i等于0来判定。所以程序中的空框可填x%i=0。测试x为素数的