计算机等级考试二级C语言模拟试卷_第1页
计算机等级考试二级C语言模拟试卷_第2页
计算机等级考试二级C语言模拟试卷_第3页
计算机等级考试二级C语言模拟试卷_第4页
计算机等级考试二级C语言模拟试卷_第5页
已阅读5页,还剩261页未读 继续免费阅读

下载本文档

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

文档简介

计算机等级考试二级C语言模拟试卷(1)一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是acbeddecabdeabccedba(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为CBasicDDLDML(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(io)卜一列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是C语言比其他语言高级C语言可以不用编译就能被计算机识别执行C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构if,switch,breakfor,while,do-whileif,for,continueC语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是a:=b+la=b=c+2int18.5%3a=a+7=c+b(15)下列可用于C语言用户标识符的一组是void,define,WORDa3_b3,」23,CarFor,-abc,IFCase2a,DO,sizeof(16)C语言中运算对象必须是整型的运算符是%=/C)=D)<=(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是a==1++i:a=a++=5;a=int(i);(18)已知intt=0;while(t=l){...)则以下叙述正确的是A)循环控制表达式的值为0循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给2赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是10〈回车>22〈回车>33〈回车)10.0,22.0,33.0<回车》10.0<回车〉22.033.0<回车〉1022〈回车>33<回车>(20)有如下程序:main()(intx=l,a=0,b=0;switch(x){case0:b++;a++;a++;b++;Iprintf(*a=%d,b=%d\nz\a,b);}该程序的输出结果是a=2,b=la=l,b=la=l,b=0a=2,b=2(21)有以下程序main(){inti=l,j=l,k=2;if((j++||k++)&&i++)printf(*%d,%d,%d\n*,i,j,k)执行后输出结果是1,1,22,2,12,2,22,2,3(22)有如下程序main()(floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=l.0/x;elsey=1.0;printf y);}该程序的输出结果是0.0000000.2500000.5000001.000000(23)有如下程序:main()(intn=9;while(n>6){n―;printf("%d",n);}I该程序的输出结果是87687659876(24)在下列选项中,没有构成死循环的是inti=100;while(1){i=i%100+l;if(i>100)break;Ifor(;;);intk=10000;do{k++;}while(k>10000);ints=36;while(s)-s;(25)设intx=l,y=l;表达式(!x||y—)的值是012-1(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参

(27)有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.Of\n”,fun((int)fun(a+c,b),a-c));I程序运行后的输出结果是A)编译出错9219.0(28)若有以下调用语句,则不正确的fun函数的首部是main(){…inta[50],n;fun(n,&a[9]);voidfun(intm,intx[])voidfun(ints,inth[41])voidfun(intp,int*s)voidfun(intn,voidfun(intm,intx[])voidfun(ints,inth[41])voidfun(intp,int*s)voidfun(intn,inta)fseek函数的正确调用形式是fseek(文件指针,起始点,位移量)fseek(文件指针,位移量,起始点)fseek(位移量,起始点,文件指针)fseek(起始点,位移量,文件指针)(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOF-11NULL(31)若有说明语句:charc=''72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定(32)若有说明inta[3][4];则a数组元素的非法引用是a[0][2*1]a[1][3]a[4-2][0]a[0][4](33)设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不iE确的是struct是结构体类型的关键字structstu是用户定义的结构体类型stutype是用户定义的结构体类型名a和b都是结构体成员名(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式(35)若运行时给变量x输入12,则以下程序的运行结果是main(){intx,y;scanf&x);y=x>12?x+10:x-12;printf(*%d\n*,y);)0221210((36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C语言程序总是从main()函数开始执行C语言程序中的main()函数必须放在程序的开始部分(37)表达式0x139x17的值是0x040x130xE80x17(38)有以下程序^defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf F(a++,b++));I程序运行后的输出结果是12151620(39)下列程序执行后的输出结果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);789(40)若有下面的程序段:chars[]="china”;char*p;p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等s数组长度和p所指向的字符串长度相等*p与s[0]相等(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序voidsort(inta,intn){inti,j,t;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}Imain(){intaa[10]={1,2,3,4,5,6,7,8,9,10),i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,”,aa[i]);printf("\n");I程序运行后的输出结果是1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,5,4,3,2,1,1,2,3,8,7,6,5,4,9,10,1,2,10,9,8,7,6,5,4,3,(42)以下程序的运行结果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("/d'n",sizeof(structdate));I681012(43)若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是a,point,*&a&*a,&a,*point*&point,*point,&a&a,&*point,point(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再山形参传实参D)传递方式由用户指定(45)已定义以下函数fun(char*p2,char*pl)while((*p2=*pl)!=\0'){pl++;p2++;}I函数的功能是A)将pl所指字符串复制到p2所指内存空间B)将pl所指字符串的地址赋给指针p2C)对pl和p2两个指针所指字符串进行比较D)检查pl和p2两个指针所指字符串中是否有‘\0'(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){inta,b,s;scanf(&a,&b);s=aif(a<b)s=b;s*=s;printfs);I366448D)以上都不对fscanf(fp,格式字符串,输出表列);fscanf(格式字符串,输出表列,fp);fscanf(格式字符串,文件指针,输出表列);fscanf(文件指针,格式字符串,输入表列);(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t,a'+'A';s++;])main(){charstrl[100]="abcddfefdbcT,c='d';ss(strl,c);printf(/s\n”,strl);I程序运行后的输出结果是ABCDDEFEDBDabcDDfefDbDabcAAfefAbAD)Abcddfefdbd(50)若以下定义:structlink{intdata;struct1ink*next;且变量a和b之间已有如下图所示的链表结构:a指针P指向变量a,q指向变量Co则能够把c插入到a和b之间并形成新的链表的语句组是:a.next=c;c.next=b;p.next=q;q.next=p.next;p->next=&c;q->next=p->next;(*p).next=q;(*q).next=&b;二、填空题(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。(2)在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【2】。解析:对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。(3)在面向对象的程序设计中,类描述的是具有相似性质的一组【3】o解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【4】。解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)数据库管理系统常见的数据模型有层次模型、网状模型和【5】3种。解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(6)设y是int型,请写出y为奇数的关系表达式【6】。答案(y%2)=l(7)设inta=5,b=6,表达式(++a==b—)?++a:--b的值是【7】。解析:此表达式为三目运算符,++a的值为6,b——的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,一和后缀++,一的区别。(8)下列程序的输出结果是[8】。{charb[]="Helloyou”;b[5]=0;printf("%s\n",b);}解析:语句b[5]=0;相当于语句b[5]='\0',且''0'为字符串结束标志,输出时遇到''0'就停止输出。(9)当调用函数时,实参是一个数组名,则向函数传递的是[9]。解析:在函数中,可以通过指针变量来引用调用函数中对应的数组元素,此操作是通过传递数组的首地址来实现。(10)以下程序的输出结果是[10].inta=1234:printf("%2d\n",a);解析:在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。(11)用高级语言编写的程序称为[11]程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。解析:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有两种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序一次翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程序),然后执行目标程序。(12)以下程序的输出结果是【12】。{inta=0;a+=(a=8);printf(“刎\n",a);}解析:赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a的值由于赋值为8,而不是0a+=8a=a+8a=16S缄量■(13)函数i<0 '+voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传人,n的值大于等于0。请填空。voidfun(float*sn,intn){floats=0.0,w,f=-l.0;inti-0;for(i=0;i<=n;i++){f-[13]*f;w=f/(2*i+l);s+=w;}=s;}解析:C语言中实参变量和形参变量的数据传递是单向的“值传递”方式。指针变量作函数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。(14)函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求m>n。n!(m-。)!例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。ttinclude<conio.h>#include<stdio.h>floatfun(intm,intn){inti;doublep=L0;for(i=l;i<=m;i++)[15];for(i=l;i<=n;i++)[16];for(i=l;i<=m-n;i++)p=p/i;returnp;}main(){clrscr();printf(*p=%f\n*,fun(12,8));}解析:本题中,欲求p的值,需要先求m,n,m-n的阶乘值,可用循环语句实现。(15)该程序运行的结果是[17]o#include<conio.h>#include<stdio.h>^defineM100voidfun(intm,int*a,int*n){inti,j=0;for(i=l;i<=m;i++)if(i%7==0||i%ll==0)a[j++]=i;*n=j;}main(){intaa[M],n,k;clrscr();fun(10,aa,&n);for(k=0;k<n;k++)if((k+1)%20=0)printf("\n");elseprintf("%4d”,aa[k]);printf('\n");}解析:解答本题的关键是要读懂程序,试题要找出能被7或11整除的所有整数,注意数学中的“或”和C语言中的“或”的区别,但在此处,if条件语句中用了“||”运算符,若要找能同时被7和11整除的所有整数则在if()中应用“&&”运算符。当然,如果m的值输入50,即表达式fun(10,aa,&n);为fun(50,aa,&n);时输入结果为:711142122283335424449o(16)下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符L则输出3,请填空。#include<conio.h>^defineM81intfun(char*ss,charc){inti=0;for(;[18];ss++)if(*ss==c)i++;returni;}main(){chara[M],ch;clrscr();printf(*\nPleaseenterastring:");gets(a);printf(*\nPleaseenterachar:");ch=getchar();printf(*\nThenumberofthecharis:%d\n”,fun(a,ch));}解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历;若SS串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若SS串的字符和C串的字符对应不同,继续对SS串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与C相同则表示又出现一次。(17)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。#include"stdio.h"FILE*fp;{charch;if((fp=fopen([19]))==NULL)exit(0);while((ch=getchar())!二'@')fputc(ch,fp)fclose(fp);}解析:fopen函数的调用方式通常为:FILE*fpfp=fopen(文件名,使用文件方式);(18)设有如下宏定义^defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通过宏调用实现变量a,b内容交换,请填空。floata=5,b=16,c;MYSWAP([20],a,b):解析:该题考查两个知识点:(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define标识符字符串(2)在MYSWAP宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。选择题TOC\o"1-5"\h\z01-05 C D B D D06-10 C D C C B11-15 C A B B B16-20ABBBA21-25CCSDBTOC\o"1-5"\h\z26-30 D B D B C31-35 A D C C A36-40 C A A A D41-45 C A B B A46-50 B D D B D计算机等级考试二级c语言模拟试卷(2)一、选择题(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为GEDIIFBCADGEBHFCAABCDEFGHACBFEDHG(2)树是结点的集合,它的根结点数目是A)有且只有11或多于10或1至少2(3)如果进栈序列为el,e2,e3,e4,则可能的出栈序列是e3,el,e4,e2e2,e4,e3,ele3,e4,el,e2D)任意顺序(4)在设计程序时,应采纳的原则之一是A)不限制got。语句的使用B)减少或取消注解行O程序越短越好D)程序结构应有助于读者理解(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)键D)域SQL语言又称为A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言(11)下列叙述中正确的是C语言编译时不检查语法C语言的子程序有过程和函数两种C语言的函数可以嵌套定义C语言的函数可以嵌套调用(12)在C语言中,退格符是A)\n\f\b(13)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义(14)在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。1 001C)非0非011(15)在C语言中,运算对象必须是整型数的运算符是%\%和\**(16)字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为10100011和0111011101000101和0110001100110101和0011011101100101和01100111(17)若已定义:inta=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b—<=2&&c?printf("***a=%d,b=%d,c=%d\n”,a,b,c):printf("###a=%d,b=%d,c=%d\n*,a,b,c);程序输出的结果是***a=25,b=13,c=19***a=26,b=14,c=19###a=25,b=13,c=19###a=26,b=14,c=19(18)若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是2.5000002.7500003.5000000.000000(19)下列程序段的输出结果是:inta=1234;floatb=123.456;doublec=12345.54321;printf(*%2d,%2.lf,%2.If*,a,b,c);A)无输出12,123.5,12345.51234,123.5,12345.51234,123.4,1234.5(20)若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是#include<stdio.h>main(){charc;intv0=l,vl=0,v2=0;do{switch(c=getchar()){case'a':case'A’:case'er:case'E’:case'i':case'I’:case'o':case'O’:case'u':case'U':vl+=l;default:v0+=l;v2+=l;}}while(c!=,\nz);printf(*vO=%d,vl=%d,v2=%d\n*,vO,vl,v2);}v0=7,vl=4,v2=7v0=8,vl=4,v2=8vO=ll,vl=4,v2=llv0=13,vl=4,v2=12(21)设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printfs);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(22)有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.0/x;elsey=l.0;printf y);}该程序的输出结果是0.0000000.2500000.5000001.000000(23)执行下面的程序段后,变量k中的值为intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值333010(24)以下程序段的描述,正确的是x="l;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误(25)以下选项错误的是main(){intx,y,z;x=O;y=x-l;z=x+y;}main(){intx,y,z;x=0,y=x+l;z=x+y;}main(){intx;intinty;x=0,y=x+l;z=x+y;}main(){intx,y,z;x=O;y=x+l;z=x+y,}(26)有如下程序段inta=14,b=15,x;charc=,A';x=(a&&b)&&(c<’B');执行该程序段后,x的值为A)ture01(27)下列程序执行后的输出结果是voidfund(inti);voidfunc2(inti);charst口=“hello,friend!”;voidfund(inti){printfst[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printfst[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;fund(i);printf ;}hellohelhlohim(28)以下函数返回a所指数组中最大值所在的下标值fun(int*a,intn){inti,j=0,p;P=j;for(i=j;i<n;i++)if(a[i]>a[p]);return(p);}在下划线处应填入的内容是i二pa[p]=aLi]p=jp=I(29)卜面说明不正确的是chara[10]="china”;chara[10],*p=a;p=“china”char*a;a=“china”;chara[10],*p;p=a="china”(30)以下程序的输出结果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n〃,++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}11,42,3112,22,4111,41,2012,42,20C)11,21,4011,21,2112,42,22(31)若有函数内部说明:inta[3][4];则数组a中各元素A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0O不能得到确定的初值D)可在程序的编译或运行阶段得到初值0(34)定义如下变量和数组:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是for(k=0;k<3;k++)printfa[k][k]);7539510963D)741(35)下列程序执行后的输出结果是main(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1] ;arr[0][3]='printf(*%s\n*,arr);)you&meyoume(36)有以下函数charfun(char*p){returnp;}该函数的返回值是A)无确切的值B)形参p中存放的地址值一个临时存储单元的地址D)形参p自身的地址值(37)以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准(38)有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=l;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是431(39)设有如下定义:strucksk{inta;floatb;}data;int*p;若要使P指向data中的a域,正确的赋值语句是p=&a;p=data,a;p=&data.a;*p=data.a;'(40)以下对结构体类型变量的定义中,不正确的是typedefstructaa{intn;floatm;}AA;AAtdl;ttdefineAAstructaaAA{intn;floatm;}tdl;struct{intn;floatm;}aa;structaatdl;struct{intn;floatm;}tdl;(41)若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是p=&n;scanf("%d〃,&p);p=&n;scanf *p);scanfn);p=&n;scanf p);(42)在下述程序中,判断i>j共执行的次数是main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printfs);break;}s+=i;II476(43)以下4个选项中,不能看做•条语句的是A);a=5,b=2.5,c=3.6;if(a<5);if(b!=5)x=2;y=6;(44)在C语言中,变量的隐含存储类别是autostaticexternD)无存储类别(45)若有以下程序^include<stdio.h>voidf(intn);main(){voidf(intn);f(5);Ivoidf(intn){printf("%d\n',n);}则以下叙述中不正确的是A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D)函数f无返回值,所以可用void将其类型定义为无返回值型(46)若有下面的说明和定义structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是1216149(47)以下程序的输出是structst{intx;int*y;}*p;intdt[4]={10,20,30,40);structstaa[4]={50,&dt[01,60,&dt[0],60,&dt[01,60,&dt[0]};main(){p=aa;printf(%d\n”,++(p->x));I10115160(48)若有运算符《,sizeof「,&二,则它们按优先级山高至低的正确排列次序是sizeof,&=,«,sizeof,«,,«,sizeof,&=<</,&=,sizeof(49)函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对(50)有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("dl.dat","w");fprintf(fp,"%d\n",i)jfprintf(fp, j);fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,,z%d%d,z,&k,&n);printf("%d%d\n,z,k,n);fclose(fp);I程序运行后的输出结果是203020503050二、填空题(1)数据结构分为逻辑结构与存储结构,线性链表属于【1】。解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。(2)在面向对象方法中,类之间共享属性和操作的机制称为[2].解析:类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。(3)耦合和内聚是评价模块独立性的两个主要标准,其中【3】反映了模块内各成分之间的联系。解析:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系:耦合性是模块间互相连接的紧密程度的度量。(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管”与实体"项目”的联系属于【4】的联系。解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。(6)以下程序的运行结果是【6】o#defineMAX(a,b)(a>b?a:b)+1main(){inti=6,j=8,k;printf("%d\n”,MAX(i,j));}解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)o(7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。main(){floatx,amax,amin;scanf ;amax=x;amin=x;while([7])(if(x>amax)amax=x;elseif[8]amin=x;elsescanf &x);printf("\namax=%f\namin=%f\n”,amax,amin);}解析:本题先从键盘接受数值,并分别赋给amax(用于保存最高成绩)和amin(用干保存最低成绩),然后通过while循环控制是否结束输入,并且通过if语句来给amax和amin赋值和进行下一次的输入。(8)在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是[9]o答案;rewind()(9)在计算机中,字符的比较是对它们的[10]进行比较。解析:C语言中,字符也可以进行比较运算,且是按照ASCII码值进行的。(10)在内存中,存储字符'X,要占用1个字节,存储字符串"X"要占用[11]个字节。解析:计算机存储一个字符用1个字节,存储字符串时,每个字符用占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符。所以存储字符串“X”要占用2个字节,存储字符'x'只要1个字节。(11)下列程序的输出结果是16.00,请填空。main(){inta=9,b=2;floatx=[12],y=l.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);解析:本题最后一条语句,表示以浮点格式输出z的值,宽度为5,其中所含2位小数,应该注意的是,两个整型运算结果仍为整型,如1/2的结果为0,对本题可逐步求解:16.00=9/2+2*x/l.1+1/216.00=4+2*x/l.1+000=2*x/l.1所以,x的值为6.6»(12)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部[13]„要求形参名为b。main(){doubles[10][22];intn;;*।fun(s);।t}解析:本题中,为了明确表示“不带回值”,可以用“void”定义“无类型”(或称“空类型”)。这系统就保证不使函数带回任何值,二维数组的第一维可以省略。(13)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。main(){inti,x,y=l;scanf &x);for(i=2;i<=x/2;i++)if[14]{y=0;break;}printf(绘d\n",y);)解析:为判数x是否是素数,预置变量y的值为1(x可能是素数),然后用循环,用2至x/2的整数i测试对x的整除性,若能被其中的某个整数整除,则x是合数,置y的值为0(x不是素数),结束测试循环。若都不能整除,则x为素数。i能否整除x,可用求余运算x%i等于0来判定。所以程序中的空框可填x%i=0。测试x为素数的代码可写成:y=I;for(i=2;i<=x/2;i++)if(x%i==0){y=0;break;}(14)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#include<string.h>main(){inti,j,[15];charstr[]={"1234567"};for(i=0,j=strlen(str)[16];i<j;i++,j―){k=str[i];str[i]=str[j];str[j]=k;}printf(*%s\n*,str);}解析:颠倒一个字符串中的字符,就是首尾对应的元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[刃。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1).每次交换后,i增1,j减1。继续交换的条件是str[i]还位于str[j]的前面,即i<j.字符串末元素的下标是它的长度减1,所以在第二个空框处应填入T。程序为了交换str[i]和str[j],使用了变量k,该变量应在程序的变量定义部分中一起定义,所以在第一个空框处应填入ko(15)以下程序可把输入的十进制数以十六进制数的形式输出,请填空。main(){charb[17]={"0123456789ABCDEF"};intc[64],d,i=0,base=16;longn;printf("Enteranumber:\n^);scanf ;do{c[i]=[17];i++;n=n/base;}while(n!=0);printf("Transmitenewbase:\n");for(-i;i>=0;-i){d=c[i]jprintf(*%c*,b[18]);}printf("\n");}解析:程序中,字符数组b存储上六进制的16个数字符,整型数组c存储译出的十六进制数的各位数值。从整数n译出它的各位十六进制数值,需采用除16取余的方法,即求n除16的余,得到它的十六进制的个位数,接着将n除以16„在n不等于0的情况下循环,能顺序求出n的十六进制的个位数、十位数、百位数等等。程序中变量base已预置16,所以在第1个空框处可填代码n%base。当n的十六进制数的个位、十位、百位等依次存放于数组c中后,就从最高位至最低位,参照数组c[i]的内容d(以其内容为下标),取十六进制数字符表中的字符b[d]输出。所以在第2个空框处可填入代码[d]。(16)若给fun函数的形参s传送字符串:“]]6354abec"(其中]表示空格字符),则函数的返回值是[19]o#include<ctype.h>longfun(chars[]){longn;intsign;for(;isspace(*s);s++);sign=(*s=' )?-l:l;if(*s==/+'||*s==,-')s++;for(n=0;isdigit(*s);s++)n=10*n+(*s-zO');returnsign*n;}解析:函数fun的第一个for循环跳过字符串的前导空白符,接着判断第一个非空白符是否是负号,若是则置变量sign为-1;否则,置变量sign为1。接着的if语句在第一个非空白字符是负号或正号时,跳过该字符。以后的for循环将后面的数字符当作十进制数的各位数字译出一个长整数n。遇字符a时,结束循环。最后,函数返回sign与n的乘积。所以若调用函数时提供的实参是“UU6354abc",函数返回值是6354。(17)设有定义"struct{inta;floatb;charc;}abc,*p_abc=&abc;99,则对结构体成员a的引用方法可以是abc.a和p_abc[20]a。解析:若有结构变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->ao选择题06-10DD11-15DD16-20CC21-2526-30DCDDB31-3536-40BCBCC41-4546-50计算机等级考试二级C语言模拟试卷⑶-、选择题(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间(2)用链表表示线性表的优点是A)便于随机存取B)花费的存储空间较顺序存储少C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同(3)数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构O逻辑结构D)物理和存储结构(4)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程(6)检杳软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是A)控制流B)加工C)数据存储D)源和潭(8)应用数据库的主要目的是A)解决数据保密问题B)解决数据完整性问题C)解决数据共享问题D)解决数据量大的问题(9)在数据库设计中,将E-R图转换成关系数据模型的过程属于A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是A)数据库系统B)文件系统C)人工管理D)数据项管理(11)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另•个函数main()函数必须放在其他函数之前C函数定义的格式是K&R格式(12)结构化程序所规定的三种最基本控制结构是A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环D)主程序、子程序、函数(13)一个C语言程序是由一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成(14)请选出可用作C语言用户标识符的是void,define,WORDa3_b3,_123,IFFOR,-abc,Case2a,Do,Sizeof(15)下列各数据类型不属于构造类型的是A)枚举型B)共用型C)结构型D)数组型(16)在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是A)a=20000+20000;a=4000*10;a=30000+10000;a=4000L*10L(17)以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值sizeof(float)是一个双精度型表达式一个整型表达式一种函数调用D)一个不合法的表达式(19)若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为4163252(20)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。#include<stdio.h>main(){inti=0,j,k;do{i++;k=316-13*i;}while();printf(*316=13*%d+ll*%d\i,j);}k/11k%llk/ll==Ok%ll=O(21)设有定义:intn=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是p-1;*q=2;q二p;*p=5;(22)下面程序的运行结果是#include<stdio.h>main()inty=10;do{y一;}while(-y);printf("%d'n”,y—);)-11(23)下面程序的输出结果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10),*p=a;printf (p+2));}3412(24)有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10);int*p=&a[3],b;b=p[5];则b的值是5698(25)设有intx=ll;则表达式(x++*l/3)的值是341112(26)请选出以下语句的输出结果printf(*%d\n*,strlen("\t\"\065\xff'n"))C)8D)输出项不合法,无正常输出(27)下列程序的输出结果是main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf('d\n”,d*y);I33.203.07(28)下列程序的输出结果是intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf(*%d\n/z,res);I46(29)下面能正确进行字符串赋值操作的是chars[5]={"ABCDE"};chars[5]={'K',,B',(C,,D',,E'};char*s;s="ABCDE”;char*s;chara;scanf&s);(30)执行以下程序后,a,b的值分别为main(){inta,b,k=4,m=6,*pl=&k,*p2=&m;a=pl==&m;b=(*pl)/(*p2)+7;printf("a=%d'n”,a);printf(*b=%d\n*,b);}-1,51,60,74,10(31)设有数组定义:chararray口—China”;则数组array所占的空间为4个字节5个字节6个字节7个字节(32)若已定义:inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;其中0WiW9,则对a数组元素不正确的引用是a[p-a]*(&a[i])Op[i]D)a[10](33)以下不正确的定义语句是doublex[5]=(2.0,4.0,6.0,8.0,10.0};inty[5]={0,1,3,5,7,9};charcl□={'1','2,,'3','4','5'};charc2[]={z\xlOz,r\xa','\x8,};(34)若有以下程序#include<stdio.h>inta[]={2,4,6,8);main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf(*%d\n*,a[2]);I上面程序输出结果是6842(35)卜面程序段的运行结果是char*format=*%s,a=%d,b=%d\n”;inta=ll,b=10;a+=b;printf(format,,za+=b^,a,b);for,"a+二b",abformat,"a+二b”a+=b,a=21,b=10D)以上结果都不对(36)C语言允许函数类型缺省定义,此时函数值隐含的类型是floatintlongdouble(37)以下程序有语法错误,有关错误原因的正确说法是main(){intG=5,k;voidprt_char();k-prt_char(G);A)语句voidprt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线(38)以下叙述中不正确的是A)在不同的函数中可以使用相同的名字的变量B)函数中的形式参数是局部变量O在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效(39)有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=O;printf("%d\n",a.i);}程序的输出结果是1314208209(40)在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是711(41)下面程序的运行结果是^include<stdio.h>main(){inta=l,b=10;do{b-=a;a++;}while(b—<0);printf(*a=%d,b=%d\n*,a,b);)a=3,b=lla=2,b=8a=l,b=-la=4,b=9(42)以下程序的输出结果是voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n”,s);A)22103430(43)有如下程序:longfib(intn){if(n>2)return(fib(n-l)+fib(n-2));elsereturn(2);)main(){printf("%d\n”,fib(3));}该程序的输出结果是2468(44)假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL〈回车),则输出结果为main(intargc,char*argv[]){while(—argc>0)printf('/s”,argv[argc]);ABCDEFGIJHLABCDEFGHIJKLIJKLABCDEFGH(45)以下程序有错,错误原因是main(){int*p,i;char*q,ch;P=&i;q=&ch;♦p=40;*p=*q;p和q的类型不一致,不能执行*p=*q;语句*p中存放的是地址值,因此不能执行*p=40;语句q没有指向具体的存储单元,所以*q没有实际意义q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*P二*q;没有意义,可能会影响后面语句的执行结果(46)函数rewind的作用是A)使文件位置指针重新返回文件的开始位置B)将文件位置指针指向文件中所要求的特定位置C)使文件位置指针指向文件的末尾D)使文件位置指针自动移至下一个字符位置(47)设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是struct结构体类型的关键字example是结构体类型名x,y,z都是结构体成员名structex是结构体类型名(48)设有以下语句:charx=3,y=6,z;z=xy«2;则z的二进制值是00010100000110110001110000011000(49)阅读以下程序及对程序功能的描述,其中正确的描述是^include<stdio.h>main()(FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf infile);printf("Entertheoutfilename:\nzz);scanf outfile);if((in=fopen(infile,"r"))==NULL)printf("cannotopeninfile'n");exit(0);}if((out=fopen(outfile,"w"))==NULL)(printf("cannotopenoutfile'n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A)程序完成将磁盘文件的信息在屏幕上显示的功能B)程序完成将两个磁盘文件合二为一的功能C)程序完成将一个磁盘文件复制到另一个磁盘文件中D)程序完成将两个磁盘文件合并并在肝幕上输出(50)C语言中,能识别处理的文件为A)文本文件和数据块文件B)文本文件和二进制文件C)流文件和文本文件D)数据文件和二进制文件二、填空题(1)数据的逻辑结构有线性结构和【1】两大类。解析:数据的逻辑结构有线性结构和非线性结构两大类。(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置【2】的存储单元中。解析:常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。(3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的[3]。解析:本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。(4)软件工程研究的内容主要包括:【4】技术和软件工程管理。解析:基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学,以及软件心理学等内容。(5)关系操作的特点是[5]操作。解析:在关系操作中,所有操作对象与操作结果都是关系。而关系定义为元数相同的元组的集合。因此,关系操作的特点是集合操作。(6)下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。^include<stdio.h>main(){inti;chars[21],*p;for(i=0;i<20;i++)s[i]=getchar();s[i]=[6];p=[7]while(*p)putchar([8]);}解析:本题选通过for循环从键盘读入20个字符,然后在最后赋一定值'\0'后为结束标志,再使指针P指向字符串的首地址。最后通过while循环对字符串进行扫描并输出。(7)以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。^include<stdio.h>main(){FILE*fp;chara[4]="1234",b[6]="abcedf”;if((fp=fopen(“【9】","wb"))=NULL)exit(0);fwrite(a,sizeof(char),4,fp);fwrite(b,[10],1,fp);fclose(fp);}解析:本题主要考查函数fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size个字节输出到fp所指定的文件中。(8)在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为[11]o解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。(9)以下程序输出的结果是[12].main(){inta=5,b=4,c=3,d;d=(a>b>c);printf d);}解析:本题的关键在于对变量c的赋值运算:d=(a>b>c)d=(5>4>3)先算5>3,为真,得1,即:d=(1>3),此时1>3,为假,得0。(10)以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15e请按题意,完成填空。试题程序:#include<conio.h>#include<stdio.h>voidfun(intx,intpp[],int*n){inti,j=0;[13]if(x%i==O)pp[j++]=i;[14];)main(){intx,aa[1000],n,i;clrscr();printf(〃\nPleaseenteranintegernumber:'n");scanf("%d",&x);fun(x,aa,&n);for(i=0;i<n;i++)printf("刎",aa[i]);printf("\n");}解析:本题题干信息是能整除且不是偶数的所有整数之和。循环语句中i从1开始且每次增2,所以i始终是奇数,*n=j;语句是记录能够符合题意的各个整数的各数。^include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;[15]if(s[*k]<s[i])*k=i;return[16];main()inta[10]={876,675,896,101,301,401,980,431,451,777},k:clrscr();fun(a,10,&k);printf(*%d,%d\n”,k,a[k]);}解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认*k的值为数组中的某一下标值,即*k=0。(12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){inti;for(i=0;[17]!='\0z;i++);return(i);}解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+l,继续取下一个元素进行判断,直到*(str+i)的值为''0'为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]o(13)以下程序的输出结果为[18]。#defineJFT(x)x*xmain(){inta,k=3;a=++JFT(k+1);printfa);)解析:宏替换的原则是按原样替换,本题中遇到形参x则以实参k+1替换,其他字符不变。所以JFT(k+1)经替换后为k+l*k+l,所以a=++k+l*k+L若k+1,若k的值为3,则经过运算为a=4+l*4+l=9o(14)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。structnode{intinfo;link;};解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。(15)设有以下结构体类型:structst{charname[8];intnum;floats[4];}student[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以Ffwrite语句补充完整:fwrite(student,[20],1,fp)解析:fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp),其中:buffer:是一个指针变量,是要输出数据的起始地址size:要写的字节数count:要进行写多少个size字节的数据项fp:文件型指针选择题01-0506-1011-1516-2021-2526-3031-3536-4041-4546-50ABBCB计算机等级考试二级c语言模拟试卷(4)一、选择题(1)在深度为5的满二叉树中,叶子结点的个数为32311615(2)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是b

温馨提示

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

评论

0/150

提交评论