计算机等级考试二级C语言模拟试卷.pdf
计算机等级考试二级C语言模拟试卷(1)一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二叉树后序遍历序列是d a b e c,中序遍历序列是d e b a c,它的前序遍历序列是A)a c b e dB)d e c a bC)d e a b cD)c e d b a(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数0)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)卜一列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(1 1)以下叙述中正确的是A)C 语言比其他语言高级B)C 语言可以不用编译就能被计算机识别执行C)C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C 语言出现的最晚,具有其他语言的一切优点(1 2)C 语言中用于结构化程序设计的3 种基本结构是A)顺序结构、选择结构、循环结构B)i f,s wi t c h,b r e a kC)fo r,w h i l e,d o-w h i l eD)i f,fo r,c o nt i nu e(1 3)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型(1 4)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+lB)a=b=c+2C)i nt 1 8.5%3D)a=a+7=c+b(1 5)下列可用于C语言用户标识符的一组是A)v o i d,d e fi ne,WO R DB)a 3 _b 3,_1 2 3,C a rC)Fo r,-a b c,IF C a s eD)2 a,DO,s i z e o f(1 6)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)=(1 7)若变量a,i已正确定义,且 i已正确赋值,合法的语句是A)a=1B)+i;C)a=a+=5;D)a=i nt (i);(1 8)已知i nt t=0;w h i l e (t=l).)则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1O 循环捽制表达式不合法D)以上说法都不对(1 9)若变量已正确说明为fl o a t 型,要通过语句s c a nf(,&a,&b,&c);给 a赋予 1 0.0,b赋予2 2.0,c赋予3 3.0,下列不正确的输入形式是A)1 0 回车 2 2 回车 3 3 回车)B)1 0.0,2 2.0,3 3.0 回车)C)1 0.0 回车2 2.0 3 3.0 回车)D)1 0 2 2 回车3 3 回车(2 0)有如下程序:ma i n()(i nt x=l,a=0,b=0;s w i t c h (x)(c a s e 0:b+;c a s e 1:a+;c a s e 2:a+;b+;p r i nt f(a=%d,b=%d n,a,b);该程序的输出结果是A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2(2 1)有以下程序ma i n()i nt i=l,j=l,k=2;i f(j+|k+)&i+)p r i nt f(,z%d,%d,%d n,z,i,j,k);I执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3(2 2)有如下程序ma i n()fl o a t x=2.0,y;i f(x 0.0)y=0.0;e l s e i f(x 6)n-;p r i nt f(%d ,n);I该程序的输出结果是A)9 8 7B)8 7 6C)8 7 6 5D)9 8 7 6(2 4)在下列选项中,没有构成死循环的是A)i nt i=1 0 0;w h i l e (1)i=i%1 0 0+l;i f(i 1 0 0)b r e a k;B)fo r (;);C)i nt k=1 0 0 0 0;d o k+;w h i l e (k 1 0 0 0 0);D)i nt s=3 6;w h i l e (s)-s;(2 5)设 i nt x=l,y=l;表 达 式(!x|y-)的值是A)0B)1C)2D)-1(2 6)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参(2 7)有以下程序fl o a t fu n(i nt x,i nt y)r e t u r n(x+y);)ma i n()i nt a=2,b=5,c=8;p r i nt f(%3.O f n”,fu n(i nt)fu n(a+c,b),a-c);I程序运行后的输出结果是A)编译出错B)9C)2 1D)9.0(2 8)若有以下调用语句,则不正确的fu n函数的首部是ma i n()i nt a 5 0 ,n;fu n(n,&a 9);A)v o i d fu n(i nt m,i nt )B)v o i d fu n(i nt s,i nt h 4 1)C)v o i d fu n(i nt p,i nt *s)D)v o i d fu n(i nt n,i nt a)(2 9)fs e e k函数的正确调用形式是A)fs e e k(文件指针,起始点,位移量)B)fs e e k(文件指针,位移量,起始点)C)fs e e k(位移量,起始点,文件指针)D)fs e e k(起始点,位移量,文件指针)(3 0)若 fp 是指向某文件的指针,且已读到文件末尾,则函数fe o f(fp)的返回值是A)EO FB)-1C)1D)N U LL(3 1)若有说明语句:c h a r c=7 2 ;则变量cA)包 含 1 个字符B)包含2个字符C)包含3 个字符D)说明不合法,c的值不确定(3 2)若有说明i nt a 3 4 ;则 a 数组元素的非法引用是A)a 0 2*1 B)a 1 3 C)a 4-2 01D)a 0 4 (3 3)设有以下说明语句s t r u c t s t u i nt a;fl o a t b;s t u t y p e;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名(3 4)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式(3 5)若运行时给变量x输 入1 2,则以下程序的运行结果是main()int x,y;scanf(%d”,&x);y=x12?x+10:x-12;printf(%dn,y);A)0B)22C)12D)10(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分(3 7)表达式0 x 1 3 八 0 x 1 7 的值是A)0 x 0 4B)0 x 1 3C)0 x E8D)0 x 1 7(3 8)有以下程序M e fi ne F(X,Y)(X)*(Y)ma i n()i nt a=3,b=4;p r i nt f(d n ,F(a+,b+);;程序运行后的输出结果是A)1 2B)1 5C)1 6D)2 0(3 9)下列程序执行后的输出结果是v o i d fu nc (i nt *a,i nt b )b 0 =*a+6;ma i n()i nt a,b 5 ;a=0;b 0 =3;fu nc (&a,b);p r i nt f(d n,b 0);A)6B)7C)8D)9(4 0)若有下面的程序段:c h a r s =c h i na”;c h a r *p;p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s 0 相等(41)以下程序中函数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;f o r (i=0;i n-l;i+)f o r (j=i+l;j n;j+)i f (a i a j )t=a i ;a i =a j ;a j =t;)m ai n ()i n t aa 10=1,2,3,4,5,6,7,8,9,10),i;s o r t (&aa 3 ,5);f o r (i=0;i 10;i+)p r i n t f (%d,”,aa i);p r i n t f (n);)程序运行后的输出结果是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)以下程序的运行结果是#i n c l u d e “s t d i o.h m ai n ()s t r u c t d at e i n t y e ar,m o n t h,d ay;t o d ay;p r i n t f (,z%d n/z,s i z e o f (s t r u c t d at e);A)6B)8C)10D)12(4 3)若有语句i n t *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)已定义以下函数f u n (c h ar *p 2,c h ar *p l)w h i l e (*p 2=*p l)!八O )p l+;p 2+;函数的功能是A)将 p l 所指字符串复制到p 2所指内存空间B)将 p l 所指字符串的地址赋给指针p 2C)对 p l 和 p 2两个指针所指字符串进行比较D)检查p l 和 p 2两个指针所指字符串中是否有 0(4 6)若执行下述程序时,若从键盘输入6 和 8 时,结果为m ai n ()i n t a,b,s;s c an f (d%d”,&a,&b);s=ai f (an e x t=&c;q-n e x t=p-n e x t;D)(*p).n e x t=q;(*q).n e x t=&b;二、填空题(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。(2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【2】o解析:对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较l o g 2 n 次,而顺序查找需要比较n次。(3)在面向对象的程序设计中,类描述的是具有相似性质的一组【3】。解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【4】。解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)数据库管理系统常见的数据模型有层次模型、网 状 模 型 和【5】3种。解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(6)设 y 是 i n t 型,请写出y 为奇数的关系表达式【6】。答案(那2)=1(7)设 i n t a=5,b=6,表 达 式(+a=b)?+a:一b 的值是【7 .解析:此表达式为三目运算符,+a的值为6,b 的值为6,则整个表达式的值为+a的值,+a的值为7。请注意前缀+,一和后缀+,一的区别。(8)卜列程序的输出结果是 8】。m a i m ()c h a r b =,H e l l o yo u”;b 5 =0;p r i n t f (%s n ,b);解析:语句b 5 =0;相当于语句b 5 =0,且 0为字符串结束标志,输出时遇 到 0就停止输出。(9)当调用函数时,实参是一个数组名,则向函数传递的是 9 。解析:在函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现。(1 0)以下程序的输出结果是 1 0 。i n t a=1 2 3 4:p r i n t f (%2 d n”,a);解析:在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。(1 1)用高级语言编写的程序称为 1 1 程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。解析:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另 种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程序),然后执行目标程序。(12)以下程序的输出结果是 1 2 ,ma in()int a=0;a+=(a=8);printf(,z%d n,z,a);解析:赋值表达式的值就是所赋值变量的值,本题中a+=8 相当于a=a+8,对表达式逐步进行求解:a+=(a=8)此 时,a的值由于赋值为8,而不是0a+=8a=a+8a=1 6(1 3)函数 X I +v oid fun(floa t*sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n 通过形参传入,n 的值大于等于0。请填空。v oid fun(floa t*sn,int n)floa t s=0.0,w,f=-l.0;int i=0;for(i=0;i n。M (m-Q!例如:m=1 2,n=8时,运行结果应该是4 9 5.0 0 0 0 0 0。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include#include floa t fun(int m,int n)int i;double p=l.0;for(i=l;i=m;i+)1 5 ;for(i=l;i=n;i+)1 6 ;for(i=l;i=m-n;i+)p=p/i;return p;ma in()clrscr();printf C p=%f nz/,fun(1 2,8);解析:本题中,欲 求P的值,需要先求m,n,m-n的阶乘值,可用循环语句实现。(1 5)该程序运行的结果是 1 7 o#include#includedefine M 1 0 0v oid fun(int m,int*a,int*n)int i,j=0;for(i=l;i=m;i+)if(i%7=0|i%ll=0)a j+=i;*n=j;ma in()int a a M ,n,k;clrscr();fun(1 0,a a,&n);for(k=0;k n;k+)if(k+1)%2 0=0)printf(n);else printf(%4 d,a a k );printf(n);解析:解答本题的关键是要读懂程序,试题要找出能被7 或 1 1 整除的所有整数,注意数学中 的“或”和 C语言中的“或”的区别,但在此处,if条 件 语 句 中 用 了 运 算 符,若要找能同时被7 和 1 1 整除的所有整数则在if()中应用“&”运算符。当然,如果m 的值输入5 0,即表达式fun(1 0,a a,&n);为fun(5 0,a a,&n);时输入结果为:7 1 1 1 4 2 1 2 2 2 8 3 3 3 5 4 2 4 4 4 9 o(1 6)下列程序的功能是:求 出 ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串1 2 3 4 1 2 1 3 2,输入字符1,则输出3,请填空。#include#include define M 8 1int fun(cha r*ss,cha r c)int i=0;for(;1 8 ;ss+)if(*ss=c)i+;return i;)ma in()cha r a M ,ch;clrscr();printf C nP lea se enter a string:);gets(a);printf(,z nP lea se enter a cha r:);ch=getcha r();printf(nThe number of the cha r is:%d n,fun(a,ch);解析:从字符串ss中找出子字符串的方法是:从 第 1 个字符开始,对字符串进行遍历;若SS串的当前字符等于t 串的第1 个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若 SS串的字符和C串的字符对应不同,继续对SS串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,i f()的作用是进行判断是否相同,若与C 相同则表示又出现一次。(1 7)下面程序把从终端读入的文本(用 作为文本结束标志)输出到一个名为bi.da t的新文件中,请填空。#i nclude stdi o.h F IL E *f p;ch a r ch;i f (f p=f open(1 9 )=N U L L)exi t(0);wh i le(ch=g etch a r ()!=)f putc(ch,f p);f close(f p);解析:f open函数的调用方式通常为:F IL E *f pf p二 f open(文件名,使用文件方式);(1 8)设有如下宏定义 def i ne M Y SW A P (z,x,y)z=x;x=y;y=z;以下程序段通过宏调用实现变量a,b 内容交换,请填空。f loa t a=5,b=1 6,c;M Y SW A P (2 0 ,a,b);解析:该题考查两个知识点:(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#1 6 丘1)0 标识符字符串(2)在 M Y SW A P 宏定义中,利用中间变量z 来交换x 和 y 的值,所以要实现a 和 b 的交换,只需通过中间变量即可,所以,此处应填c。选择题0 1-0 5 C D B D D0 6-1 0 C D C C B1 1-1 5 C A B B B1 6-2 0 A B B B A2 1-2 5 C C S D B2 6-3 0 D B D B C3 1-3 5 A D C C A3 6-4 0 C A A A D4 1-4 5 C A B B A4 6-5 0 B D D B D计算机等级考试二级C语言模拟试卷一、选择题(1)已知一棵二叉树前序遍历和中序遍历分别为A B D E GC F H和 D B GE A C HF,则该二叉树的后序遍历为A)GE D HF B C AB)D GE B HF C AC)A B C D E F GIID)A C B F E D HG(2)树是结点的集合,它的根结点数目是A)有且只有1B)1 或多于1C)0 或 1D)至少2(3)如果进栈序列为el,e2,e3,e 4,则可能的出栈序列是A)e3,el,e4,e2B)e2,e4,e3,elC)e3,e4,el,e2D)任意顺序(4)在设计程序时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好0)程序结构应有助于读者理解(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分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)键)域(10)SQL语言又称为A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言(1 1)下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用(1 2)在C语言中,退格符是A)nB)tC)fD)b(1 3)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)m a i n ()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义(1 4)在 C程序中,判逻辑值时,用“非 0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,用()表示逻辑表达式值为“真”,又 用()表示逻辑表达式值为“假”。A)1 0B)0 1C)非 0 非 0D)1 1(1 5)在 C 语言中,运算对象必须是整型数的运算符是A)%B)C)%和D)*(1 6)字符型数据在机器中是用A S C H 码表示的,字 符“5”和“7”在机器中表示为A)1 0 1 0 0 0 1 1 和 0 1 1 1 0 1 1 1B)0 1 0 0 0 1 0 1 和 0 1 1 0 0 0 1 1C)0 0 1 1 0 1 0 1 和 0 0 1 1 0 1 1 1D)0 1 1 0 0 1 0 1 和 0 1 1 0 0 1 1 1(1 7)若已定义:i n t a=2 5,b=1 4,c=1 9;以卜三目运算符(?:)所构成语句的执行后a =2 5&b 一=2&c?p r i n t f (*a=%d,b=%d,c=%d n”,a,b,c):p r i n t f b=%d,c=%d n,a,b,c);程序输出的结果是A)*a=2 5,b=1 3,c=1 9B)*a=2 6,b=1 4,c=1 9C)nnn a=2 5,b=1 3,c=1 9D)#a=2 6,b=1 4,c=1 9(1 8)若有定义:i n t a=7;f l o a t x=2.5,y=4.7;则表达式 x+a%3*(i n t)(x+y)%2/4 的值是A)2.5 0 0 0 0 0B)2.7 5 0 0 0 0C)3.5 0 0 0 0 0D)0.0 0 0 0 0 0(1 9)下列程序段的输出结果是:i n t a=1 2 3 4;f l o a t b=1 2 3.4 5 6;d o u b l e c=1 2 3 4 5.5 4 3 2 1;p r i n t f (%2 d,%2.I f,%2.I f”,a,b,c);A)无输出B)1 2,1 2 3.5,1 2 3 4 5.5C)1 2 3 4,1 2 3.5,1 2 3 4 5.5D)1 2 3 4,1 2 3.4,1 2 3 4.5(2 0)若运行以下程序时,从键盘输入A D e s c r i p t o r (表示回车),则下面程序的运行结果是#i n c l u d e m a i n ()ch a r c;i n t v 0=l,v l=0,v 2=0;do s w i t ch (c=g e t ch a r ()ca s e a :ca s e A :ca s e 1 e :ca s e E:ca s e i :ca s e I:ca s e o :ca s e O:ca s e u :ca s e U:v l+=l;de f a u l t:v 0+=l;v 2+=l;w h i l e (c!=z nz);p r i n t f (,zv O=%d,v l=%d,v 2=%d nz,,v O,v l,v 2);A)v 0=7,v l=4,v 2=7B)v 0=8,v l=4,v 2=8C)v O=l l,v l=4,v 2=l lD)v 0=13,v l=4,v 2=12(2 1)设有以F程序段i n t x=0,s=0;w h i l e (!x!=0)s+=+x;p r i n t f (%d,s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(2 2)有如下程序m a i n ()f l o a t x=2.0,y;i f (x 10.0)y=l.0/x;e l s e y=l.0;p r i n t f (%f n,y);该程序的输出结果是A)0.000000B)0.25 0000C)0.5 00000D)1.000000(23)执行下面的程序段后,变量k中的值为i n t k=3,s 2 ;s 0 =k;k=s 1 *10;A)不定值B)33C)30D)10(2 4)以下程序段的描述,正确的是x=-l;do x=x*x;w h i l e (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误(25)以下选项错误的是A)m a i n ()i n t x,y,z;x=O;y=x-l;z二 x+y;B)m a i n ()i n t x,y,z;x=0,y=x+l;z=x+y;C)m a i n ()i n t x;i n ti n t y;x=0,y=x+l;z=x+y;D)m a i n ()i n t x,y,z;x=O;y=x+l;z=x+y,(26)有如下程序段i n t a=14,b=15,x;ch a r c=A;x=(a&b)&(c B );执行该程序段后,x 的值为A)t u r eB)f a l s eC)0D)1(27)下列程序执行后的输出结果是v o i d f u n d(i n t i);v o i d f u n c2(i n t i);ch a r s t =h e l l o,f r i e n d!”;v o i d f u n d(i n t i)p r i n t f (z/%cz,,s t i );i f (i 3)i+=2;f u n c2(i);v o i d f u n c2(i n t i)p r i n t f s t i );i f (i 3)i+=2;f u n cl (i);m a i n ()i n t i=0;f u n d(i);p r i n t f (n);)A)h e l l oB)h e lC)h l oD)h i m(28)以下函数返回a所指数组中最大值所在的下标值f u n (i n t *a,i n t n)i n t i,j=0,p;P=J;f o r (i=j;i a p );r e t u r n (p);)在下划线处应填入的内容是A)i=pB)a p =a i C)P=jD)p=I(29)下面说明不正确的是A)ch a r a 101=ch i n a”;B)ch a r a 10 ,*p 二 a;p=ch i n a”C)ch a r *a;a=ch i n a”;D)ch a r a 10 ,*p;p=a=ch i n a”(30)以下程序的输出结果是#i n cl u de v o i d p r t (i n t *x,i n t *y,i n t *z)p r i n t f (d,%d,%d n ,+*x,+*y,*(z+);m a i n ()i n t a=10,b=4 0,c=20;p r t (&a,&b,&c);p r t (&a,&b,&c);A)11,4 2,3112,22,4 1B)11,4 1,2012,4 2,20C)11,21,4 011,21,21D)11,4 1,2112,4 2,22(31)若有函数内部说明:i n t a 3 4 ;则数组a中各元素A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0(34)定义如下变量和数组:i n t k;i n t a 3 3 =9,8,7,6,5,4,3,2,1);则下面语句的输出结果是f o r (k=0;k3;k+)p r i n t f (%d,a k k );A)7 5 3B)9 5 10 9 6 3D)7 4 1(35)下列程序执行后的输出结果是m a i n ()ch a r a r r 2 4 ;s t r cp y(a r r,yo u);s t r cp y(a r r 1 ,m 6);a r r 0 3 =;p r i n t f (%s n,a r r);A)yo u&m eB)yo uC)m eD)e r r(36)有以下函数ch a r f u n (ch a r *p)r e t u r n p;该函数的返回值是A)无确切的值B)形参p中存放的地址值C)一个临时存储单元的地址D)形参p自身的地址值(37)以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内B)r e t u r n 后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准(38)有以下程序i n t f (i n t n)i f (n-1)r e t u r n 1;e l s e r e t u r n f (n-1)+1;)m a i n ()i n t i,j=0;f o r (i=l;i j 共执行的次数是m a i n ()i n t i=0,j=10,k=2,s=0;f o r (;)i+=k;i f (i j)p r i n t f s);br e a k;s+=i;IA)4B)7C)5D)6(4 3)以下4个选项中,不能看做一条语句的是A);B)a=5,b=2.5,c=3.6;C)i f (a 5);D)i f (b!=5)x=2;y=6;(4 4)在 C语言中,变量的隐含存储类别是A)a u t oB)s t a t i cC)e xt e r nD)无存储类别(4 5)若有以下程序#i n cl u de v o i d f (i n t n);m a i n ()v o i d f (i n t n);f (5);v o i d f (i n t n)p r i n t f (%d n ,n);)则以下叙述中不正确的是A)若只在主函数中对函数f 进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D)函数f无返回值,所以可用v o i d将其类型定义为无返回值型(4 6)若有下面的说明和定义s t r u ct t e s t i n t m l;ch a r m 2;f l o a t m 3;u n i o n u u ch a r u l 5 ;i n t u 2 2 ;u a;m ya a;则 s i ze o f (s t r u ct t e s t )的值是A)12B)16C)14D)9(4 7)以下程序的输出是s t r u ct s t i n t x;i n t *y;*p;i n t dt 4 =10,20,30,4 0);s t r u ct s t a a 4 =5 0,&dt 01,6 0,&dt 0 ,6 0,&dt 0 ,6 0,&dt 0 ;m a i n ()P=a a;p r i n t f (%d n,+(p-x);A)10B)11C)5 1D)6 0(4 8)若有运算符,s i ze o f,二,则它们按优先级山高至低的正确排列次序是A)s i ze o f,&=,B)s i ze o f,&二C)*,s i ze o f,&=D),&=,s i ze o f(4 9)函数f s e e k(p f,O L,S E E K E N D)中的SEEK EN D代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对(50)有以下程序#i n c l u d e m a i n ()F IL E*f p;i n t i=20,j=30,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,z,k,n);f c l o s e (f p);程序运行后的输出结果是A)20 30B)20 50C)30 50D)30 20二、填空题(1)数据结构分为逻辑结构与存储结构,线 性 链 表 属 于【1】O解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。(2)在面向对象方法中,类之间共享属性和操作的机制称为【2】。解析:类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。(3)耦合和内聚是评价模块独立性的两个主要标准,其 中【3】反映了模块内各成分之间的联系。解析:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体”项目主管与实体项目”的 联 系 属 于【4】的联系。解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1:1)的联系、一对多(1:N)或多对一(N :1)的联系和多对多(N :N)的联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。解析:数据