资源描述:
《等级考试二级C语言_笔试+上机题库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
.全国计算机等级考试二级C语言辔•试+上初题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为BA)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是DA)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求BA)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强D(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指AA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-l)/2的排序方法是DA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为el,e2,e3,e4,则可能的出栈序列是BA)e3,el,e4,e2B)e2,e4,e3,elC)e3,e4,el,e2D)任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成BA)属性B)关系C)键D)域(9)有三个关系R、S和T如下:DRBCDa0klb1nl
1BCDf3h2a0kln2xlTBCDa0kl由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是CA)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是BA)void,define,WORDB)a3_3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof(13)以下选项中可作为C语言合法常量的是AA)-80B)-080C)-8el.OD)-80.0e(14)若有语句:char*line[5];,以下叙述中正确的是AA)定义line是一个数组,每个数组元素是一个基类型为char为指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是BA)inta=b=O;B)charA=65+hb=C)floata=l,*b=&a,*c=&b;D)doublea=00;b=l.l;
2(16)有以下程序段Dcharch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d
3",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序Dmain(){inti,s=l;for(i=l;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d
4",s);}程序的输出结果是A)409B)277C)1D)91(18)当变量c的值不为2、4、6时,值也为"真”的表达式是BA)(c==2)II(c==4)II(c==6)B)(c>=2&&c<=6)ll(c!=3)ll(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段Binta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d
5",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有以下程序D#includemain(){intx=l,y=O,a=O,b=O;switch(x){case1:switch(y){caseO:a++;break;casel:b++;break;
6)case2:a++;b++;break;case3:a++;b++;)printf("a=%d,b=%d
7",a,b);}程序的运行结果是A)a=l,b=OB)a=2,b=2C)a=l,b=lD)a=2,b=l(21)下列程序的输出结果是B#include"stdio.h"main(){inti,a=0,b=0;for(i=l;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#intt=0;while(t=l){…}则以下叙述正确的是BA)循环控制表达式的值为。B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是Amain(){inta[10]={1,2,34,5,6,7,8,9,10},*p=a;printf("%d
8",*(p+2));}A)3B)4C)1D)2(24)以下错误的定义语句是CA)intx[][3]={{0},{1},{1,2,3}};B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)int
9x[][3]={l,2,3,4);(25)有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[100]="abcddfeftibd",c4i,;ss(str1,c);printf("%s
10",str1);}程序运行后的输出结果是BA)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=O;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>^r;j+=2)s=10*s+p[i][j]-,0,;printf("%d
11",s);}该程序的输出结果是CA)69825B)63825C)6385D)693825(27)有定义语句:char普要从终端给s输入5个字符,错误的输入语句是DA)gets(&s[0]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[l]);(28)以下叙述中错误的是DA)在程序中凡是以“#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是BA)PER是结构体变量名B)PER是结构体类型名C)typedefstruct是结构体类型D)struct是结构体类型名(30)以下叙述中错误的是BA)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是BA)inta[5]={0,l,2,3,4,5};B)chafO%U兑','3?4?5?\0'};
12C)chara={;D)inta[5]="0123";(32)有以下程序#includemain(){charp[]=k',七','c'},q[10]={'a',七','c'};printf("%d%d
13",strlen(p),strlen(q));}以下叙述中正确的是AA)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include#includevoidfun(char*sQ,intn){char*t;inti,j;for(i=0;istrlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;})main(){char*ssLI=tbcc,bbcc,xy,aaaacc,aabcc);fun(ss,5);printf(n%s,%s
14n,ss[0],ss[4]);}程序的运行结果是AA)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序C#includeintf(intx){inty;if(x==Ollx==l)retum(3);y=x*x-f(x-2);returny;)main(){intz;z=f(3);printf("%d
15",z);}程序的运行结果是A)0B)9C)6D)8(35)下面程序段的运行结果是Bcharstr[]="ABC",*p=str;printf("%d
16",*(p+3));A)67B)0C)字符C的地址D)字符C
17(36)若有以下定义:Dstructlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量Co则能够把c插入到a和b之间并形成新的链表的语句组是:A)a.next=c;c.next=b;B)p.next=q;q.next=p.next;C)p->next=&c;q->next=p->next;D)(*p).next=q;(*q).next=&b;(37)对于下述程序,在方式串分别采用“wt“和“wb”运行时,两次生成的文件TEST的长度分别是B#includevoidmain(){FILE*fp=fdpen("TEST",);sutc('A',m);mutc(、n',m);fputc(B,fp);&utc(
18,向;fputc(C,fp,;fclose(fp);}A)7字节、7字节B)7字节、5字节C)5字节、7字节D)5-++•ut±y-+4-子下、5子TI(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是AA)aAbB)albC)a&bD)a«4(39)下面的程序段运行后,输出结果是Cinti,j,x=O;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i皿=2*i+j;for(i=0;i<8;i++)x+=a[i]Ul;printf("%d",x);A)9B)不确定值C)0D)18(40)下列程序执行后的输出结果是Avoidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;
19func(&a,b);printf("%d
20",b[OJ);}A)6B)7C)8D)9二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)测试的目的是暴露错误,评价程序的可靠性;而【调试】的目的是发现错误的位置并改正错误。(2)某二叉树中度为2的结点有18个,则该二叉树中有[19]个叶子结点。(3)当循环队列非空且队尾指针等于队头指针时说明循环队列已满,不能进行入队运算。这种情况称为【上溢】。(4)在关系模型中,把数据看成一个二维表,每一个二维表称为一个【关系】。(5)在计算机软件系统的体系结构中,数据库管理系统位于用户和【操作系统或。s】之间。(6)以下程序的输出结果是[a]omain(){charc='z';printf("%c",c-25);}(7)阅读下面语句,则程序的执行结果是【1,0】。#include"stdio.h"main(){inta=-l,b=l,k;if((++a<0)&&!(b—<=0))printf("%d,%d\",a,b);elseprintf("%d,%d
21",b,a);}(8)下列程序的输出结果是[135]main(){inti;fbr(i=l;i+l;i++){if(i>4){printf("%d
22",i);break;}printf("%d
23",i++);}}(9)以下程序的定义语句中风1]的初值是[2],程序运行后输出的内容是【468】。#includemain(){intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p⑷,i;fdr(i=0;i<4;i++){p[ij=&x[2*i+l];
24printf("%d",p[i][0]);}printf("
25");))(10)以下程序的输出结果是【35】。#includevoidswap(int*a,int*b){int*t;t=a;a=b;b=t;)main(){inti=3,j=5,*p=&.i,*q=&j;sw叩(p,q);printf("%d%d\N,*p,*q))(11)以下程序的输出结果是【BCDCDD】。main(){chars[]="ABCD",*p;fbr(p=s+1;p26",p);}(12)以下程序的输出结果是[9]floatfun(intx,inty){retum(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f
27",fun((int)fun(a+c,b),a-c));}(13)有如下图所示的双链表结构,请根据图示完成结构体的定义:Iheaddatarchildstructaa{intdata;[structaa*lhead,*rchild;l}node;(14)fseek函数的正确调用形长是【(fseek文件指针,位移量,起始点),一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中带有箭头的线段表示的是CA)图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则的是CA)抽象B)模块化C)自底向上D)信息隐蔽
28(3)下列选项中,不属于模块间耦合的是CA)数据耦合B)标记耦合C)异构耦合D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是DA)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(5)算法的时间复杂度是指CA)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是BA)堆排序B)直接插入排序C)快速排序D)B)和C)(7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是BA)ABCEDB)DCBEAC)DBCEAD)CDABE(8)数据库设计包括两个方面的设计内容,它们是AA)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计(9)关系表中的每一横行称为一个AA)元组B)字段C)属性D)码(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为CA)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下不正确的叙述是DA)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
29D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言用户标识符的是BA)void,define,WORDB)a3_b3,_123,IFC)FOR,-abc,CaseD)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是BA)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(14)在C语言中,运算对象必须是整型数的运算符是AA)%B)\C)%和'D)**(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是AA)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;(16)有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d
30",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值DC)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是BA)kk>='A'&&kk<=,Z,B)!(kk>='A'||kk<='Z')C)(kk+32)>=R&&(kk+32)<=2,D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为"真”的表达式是BA)(c==2)II(c=4)II(c==6)B)(c>=2&&c<=6)II(c!=3)II(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若有条件表达式(exp)?a++:b,则以下表达式中能完全等价于表达式(exp)的是BA)(exp==O)B)(exp!=O)C)(exp==l)D)(exp!=l)(20)以下不正确的定义语句是BA)doublex[5]={2.0,4,0,6,0,8.0,10.0};B)inty[5]={0,l,3,5,7,9);C)charcl[]={T,'2','3','475'};D)charc2[]={^10;M8'};(21)下列程序执行后的输出结果是B
31main(){inta[3J[3],*p,i;p=&a[0][0];fbr(i=l;i<9;i++)p[i]=i+l;printf("%d
32",a[l][2];)A)3B)6C)9D)随机数(22)设有以下程序段Bintx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次(23)(23)下面程序段的运行结果是Cchar*s="abcde";s+=2;printf("%d",s);A)cdeB)字符dC)字符d的地址D)无确定的输出结果(24)阅读下列程序,则执行后的结果为A#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56);printf("%x,%x
33",c[2][2],*(*(c+l)+1));}A)3e,6B)62,5C)56,5D)3E,6(25)下面判断正确的是CA)char*a="china";等价于char*a;*a="china";B)charstr[5]={"china"};等价于charstrL]={"china"};C)char*s="china";等价于char*s;s="china";D)charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";(26)若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是DA)a[2][!l]B)a[2][3]C)a[0][3]D)a[l>2][!l](27)有定义语句:char若要从终端给s输入5个字符,错误的输入语句是DA)gets(&s[O]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[l]);(28)有以下程序B
34#include#defineN5#defineMN+l#definef(x)(x*M)main(){intil,i2;il=f(2);i2=f(l+l);printf("%d%d
35",il,i2);)程序的运行结果是A)1212B)ll7C)ll11D)127(29)若有以下说明和定义Duniondt{inta;charb;doublec;}data;以下叙述中错误的是A)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f
36",data.c);输出结果为5.000000D)data可以作为函数的实参(30)有以下程序#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d
37",a[O],a[1],a[2]);fprintf(fp,"%d%d%d
38",a[3],a[4],a[5J);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d
39",k,n);fclose(fp);}程序运行后的输出结果是DA)12B)14C)1234D)123456(31)若已定义Dinta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中则对a数组元素不正确的引用是A)a[p-a]B)*(&a[i])C)p[i]D)a[10](32)有以下程序C#include
40voidfiin(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i41");)程序的运行结果是A)0987654321B)4321098765C)5678901234D)0987651234(33)阅读下列程序,当运行函数时,输入asdafaaz67,则输出为A#include#include#includeintfun(char*str){inti,j=0;fbr(i=O;str[i]!=r\Or;i++)if(str[i]!=zz)str[j++]=str[i];str[j]='O';)main()(charstr[81];intn;printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s
42",str);}A)asdafaaz67B)asdafaaz67C)asdD)z67(34)有以下程序Aintfun(intn){if(n==l)retum1;elsereturn(n+fun(n-1));)main(){intx;scanf("%d",&x);x=fun(x);printf("%d
43",x)}执行程序时,给变量x输入10,程序的输出结果是A)55B)54C)65D)45(35)下面程序段中,输出*的个数是Cchar*s="\ta\018bc";fbr(;*s!=\0';s++)printf("*");
44A)9B)5C)6D)7(36)C语言结构体类型变量在程序运行期间BA)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B)所有的成员一直驻留在内存中C)只有最开始的成员驻留在内存中D)部分成员驻留在内存中(37)已知函数的调用形式为fread(buf,size,count,fp)惨数buf的含义是CA)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项(38)设有以下语句Bcharx=3,y=6,z;z=xAy«2;则z的二进制值是A)00010100B)00011011C)00011100D)00011000(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是AA)auto和registerB)extern和registerC)auto和staticD)static/口register(40)设有定义语句int(则以下叙述正确的是CA)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)测试用例包括输入值集和【输出】值集。(2)在树形结构中,树根结点没有【前件】。(3)数据结构分为逻辑结构与存储结构,线性链表属于【存储结构】。(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【一对多】的联系。(5)数据库设计分为以下6个设计阶段:需求分析阶段、【概念设计阶段】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6)阅读下面程序段,则执行后输出的结果是【N】。#include"stdio.h"main(){charfun(char,int);
45chara='A';intb=13;a=fun(a,b);putchar(a);}charfun(chara,intb){chark;k=a+b;returnk;}(7)函数fun的返回值是【字符串a和b的长度之和】fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')mm++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}(8)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2223445666677899101010删除后,数组中的内容应该是:2345678910o请填空。#include#defineN80intfun(inta[],intn){inti,j=l;fbr(i=l;i46");for(i=0;i47Thedataafterdeleted:
48");fdr(i=O;i49
50");}
51(9)以下程序的运行结果是[a=2,b=Uo#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;)printf("a=%d,b=%d
52",a,b);}(10)以下程序的输出结果是【31】。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(6,3,a)printf("%d",a))(11)函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s53{intb[10J={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
54",s);)(13)以下说明语句中,【RER】是结构体类型名。typedefstruct{intn;charch[8J;}PER;(14)以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。#includemain(){FILE*小;charch;fp=fopen(【"fnea.dat","r"]);ch=fgetc(fp);while(!feof(fip)){putchar(ch);ch=fgetc(fp);}putcharC
55);fcIose(fp);一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)软件是指DA)程序B)程序和文档C)算法加数据结构D)程序、数据与相关文档的完整集合(2)检查软件产品是否符合需求定义的过程称为AA)确认测试B)集成测试C)验证测试D)验收测试(3)以下不属于对象的基本特点的是CA)分类性B)多态性C)继承性D)封装性(4)在设计程序时应采纳的原则之一是DA)不限制goto语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解(5)下列叙述中正确的是AA)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)数据结构中,与所使用的计算机无关的是数据的CA)存储结构B)物理结构C)逻辑结构D)物理和存储结构
56(7)线性表的顺序存储结构和线性表的链式存储结构分别是BA)顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构(8)树是结点的集合,它的根结点数目是CA)有且只有1B)1或多于1C)0或1D)至少2(9)下列有关数据库的描述,正确的是CA)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)数据库、数据库系统和数据库管理系统之间的关系是BA)数据库包括数据库系统和数据库管理系统B)数据库系统包括数据库和数据库管理系统C)数据库管理系统包括数据库和数据库系统D)三者没有明显的包含关系(11)以下4个选项中,不能看作一条语句的是DA);B)a=5,b=2.5,c=3.6;C)if(a<5);D)if(b!=5)x=2;y=6;(12)下面四个选项中,均是不合法的用户标识符的选项是CA)AP_0doB)floatlaO_AC)b-agotointD)_123tempint(13)以下选项中不属于字符常量的是BA)CB)〃C"C)\xCC'D)\072,(14)设变量已正确定义并赋值,以下正确的表达式是CA)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5,0(15)若变量已正确定义并赋值,以下符合C语言语法的表达式是BA)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(16)以下程序的运行结果是Bintk=0;voidfun(intm){m+=k;k+=m;printf("m=%dk=%d",m,k++);)main(){inti=4;fun(i++);printf("i=%dk=%d
57",i,k);}A)m=4k=5i=5k=5B)m=4k=4i=5k=5C)m=4k=4i=4k=5D)m=4k=5i=4k=5
58(17)已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是BA)isupper(c)B)'A'<=c<='Z'C)'A'<=c&&c<='Z'D)c<=('z'-32)&&('a'-32)<=c(18)设有:inta=l,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值是BA)1B)2C)3D)4(19)若变量已正确定义,有以下程序段Binta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d
59",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)若有定义:floatx=l.5;inta=l,b=3,c=2;,则正确的switch语句是CA)switch(x){case1.0:printf("*
60");case2.0:printf("**
61");}B)switch((int)x);{casel:printf("*
62");case2:printf("**
63");}C)switch(a+b){casel:printf("*
64");case2+l:printf("**
65");}D)switch(a+b){casel:printf(**
66);}casec:printf(**
67);}(21)有以下程序#includemainO{inty=9;for(;y>O;y-)if(y%3==0)printf("%d",—y);)程序的运行结果是C
68A)741B)963C)852D)875421(22)以下描述中正确的是DA)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略while(23)有以下程序D#includemain(){inta[]={l,2,3,4},y,*p=&a[3];—p;y=*p;printf("y=%d
69",y);程序的运行结果是A)y=OB)y=lC)y=2D)y=3(24)以下数组定义中错误的是BA)intx0[3]={0};B)intx⑵[3]={{1,2},{3,4},{5,6}};C)intx[][3]={{1,2,3},{4,5,6}};D)intx[2][3]={l,2,3,4,5,6);(25)下面说明不正确的是DA)chara[10]="china";B)chara[10],*p=a;p="china"C)char*a;a="china"D)chara[10],*p;p=a="china"(26)若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是DA)a[2][!l]B)a[2][3]C)a[0][3]D)a[l>2][!l](27)若要求从键盘读入含有空格字符的字符串,应使用函数BA)getc()B)gets()C)getchar()D)scanf()(28)阅读下列程序段,则程序的输出结果为A#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d
70",k);A)3B)5C)6D)8(29)在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是D
71A)1B)2C)7D)ll(30)有以下程序#includemain(){FILE*fp;inti,a[6]={l,2,3,4,5,6};fjp=fopen("d3.dat","w+b");fwrite(a,sizeof(int),6,fjp);fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);)程序运行后的输出结果是AA)4,5,6,4,5,6,B)1,2,345,6,C)4,5,6,l,2,3,D)6,5,4,3,2,l,(31)有以下程序#includemain(){ints[12]={l,2,3,4,4,3,2,l,l,l,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("
72");}程序的运行结果是CA)1234B)2344C)4332D)1123(32)有以下程序#includevoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=O;i73");)程序的运行结果是D
74A)l,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,00,9,8,7,6,5,4,3,2,1,D)l,2,3,4,9,8,7,6,5,0,(33)下面程序的输出结果是C#include#includemain(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s
75",str);)A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABC(34)以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=O,p;P=j;fbr(i=j;ivoidabc(char*str){inta,b;for(a=b=0;str[a]!='0';a++)if(str[a]!='c')str[b++]=str[a];str[b]=\O';}voidmain(){charstr[]="abcdef;abc(str);printf("str[]=%s",str);}A)str[]=abdefB)str[]=abcdefC)str[J=aD)str[]=ab(36)有以下程序A#include#includetypedefstruct{charname[9J;charsex;floatscore[2];}STU;voidf(STUa){STUb={"Zhad",m:850,900);inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];
76}main(){STUc={"Qiarif,95.0,92.0};f(c);printf("%s,%c,%2.0f,%2.0f
77",c.name,c.sex,c.score[0],c.score[l]);程序的运行结果是C)Zhao,f,95,92A)Qian,f,95,92B)Qian,m,85,90D)Zhao,m,85,90(37)有以下程序B#includemain(){FILE*3;inta[10]={1,2,3},i,n;fp=fopen("dl.dat","w");fbr(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"
78");fclose(fp);fjp=fopen("dl.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d
79",n);)程序的运行结果是A)12300B)123C)1D)321(38)已知inta=l,b=3则a”的值为CA)3B)1C)2D)4(39)阅读下列程序,则运行结果为D#include"stdio.h"fun(){staticintx=5;x++;returnx;}main(){inti,x;for(i=0;i<3;i++)x=fun();printf("%d
80",x);}A)5B)6C)7D)8(40)有以下程序D#includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);)main(){charss[10]="acc",aa[10]="bbxxyy";fun(ss,aa);printf("%s,%s
81",ss,aa);)程序的运行结果是A)accxyy,bbxxyyB)acc,bbxxyyC)accxxyy,bbxxyyD)accbbxxyy,bbxxyy二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)需求分析的最终结果是产生【需求规格书】。(2)为了便于对照检查,测试用例应由输入数据和预期的【输出结果】
82两部分组成。(3)数据结构分为逻辑结构与存储结构,线性链表属于【存储结构】。(4)某二叉树中度为2的结点有18个,则该二叉树中有[19]个叶子结点。(5)【数据模型】是数据库设计的核心。(6)已有定义:charc±f;inta=l,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【1】o(7)设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为[3]0(8)下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。#includemain(){inta,b,c,I;a=c=0;for(I=0;I<=10;I+=2){a+=I;[b=I+l];c+=b;}printf("偶数之和=%d
83",a);printf("奇数之和=%d
84",c-l1);}(9)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4voidrotade(inta[J[N],intb[][N]){intI,j;for(I=0;Ivoidswap(int*a,int*b){int*t;t=a;a=b;b=t;)main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d
85",*p,*q);}‘(11)下面程序的运行结果是[abcdefglkjlh]0#include
86#defineSIZE12main(){chars[SIZE];intI;for(I=0;I87");}sub(char*a,inttl,intt2){charch;while(tlmain(){inta[5]={2,4,6,8,10),*p;p=a;p++;printf("%d",*p);}(13)设有定义"struct{inta;floatb;charc;}abc,*p_abc=&abc;",则对结构体成员a的引用方法可以是abc.a和p_abc[->]a。(14)以下程序的运行结果是[1,2,3,0,0,1,2,3,0,0,]o#includemain(){FILE*fp;inta[10]={l,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d",a[i]);一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)软件生命周期中花费费用最多的阶段是DA)详细设计B)软件编码C)软件测试D)软件维护(2)为了提高测试的效率,应该DA)随机选取测试数据B)取一切可能的输入数据作为测试数据
88C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(3)以下不是面向对象思想中的主要特征的是DA)多态B)继承C)封装D)垃圾回收(4)下列叙述中,不符合良好程序设计风格要求的是AA)程序的效率第一,清晰第二B)程序的可读性好C)程序中要有必要的注释D)输入数据前要有提示信息(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指BA)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程(6)数据处理的最小单位是CA)数据B)数据元素C)数据项D)数据结构(7)假设线性表的长度为n,则在最坏情况下眉泡排序需要的比较次数为DA)log2nB)n2C)0(nl..5)D)n(n-l)/2(8)在深度为5的满二叉树中,叶子结点的个数为CA)32B)31C)16D)15(9)数据库系统的核心是BA)数据库B)数据库管理系统C)模拟模型D)软件工程(10)一个关系中属性个数为1时,称此关系为CA)对应关系B)单一关系C)一元关系D)二元关系(11)下面各选项中,均是C语言合法标识符的选项组是BA)33weautoB)_23me_3ewC)_433e_elseD)ER-DF32(12)可在C程序中用作用户标识符的一组标识符是AA)andB)DateC)HiD)case_2007y-m-dDr.lbmBigl(13)以下对C语言函数的有关描述中,正确的是BA)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)函数必须有返回值,返回值类型不定(14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中
89正确的是DA)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(15)现有定义inta;doubleb;floatc;chark;,则表达式a/b+c-k值的类型为:BA)intB)doubleC)floatD)char(16)以下关于long、int和short亲型数据占用而存大小的叙述中正确的是DA)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(17)有以下程序段Bintj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为A)55566.0B)566.0C)7777.0D)566777.0(18)若变量已正确定义,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d
90",i);其输出结果是BA)0,0B)0,lC)l,lD)程序进入无限循环(19)下列程序的运行结果是D#include"stdio.h"main(){intx=-9,y=5,z=8;if(x91",z);}A)6B)7C)8D)9(20)若程序执行时的输入数据是“2473”,则下述程序的输出结果是A#includevoidmain(){intcs;while((cs=getchar())!=;
92'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;
93case1:putchar(cs+3);default:putchar(cs+2);}}}A)668977B)668966C)6677877D)6688766(21)以下程序的输出结果是Amain(){inta,i;a=0;fbr(i=l;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;defau!t:a+=5;}}printf("%d
94",a);}A)31B)13C)10D)20(22)现有如下程序段D#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0llk[i]%5==0)count++;i++;}printf("%d,%d
95",count,i);}则程序段的输出结果为A)7,8B)8,8C)7,10D)8,10(23)若有以下程序#includeinta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d
96",a[2]);}上面程序的输出结果是DA)6B)8C)4D)2(24)有以下程序B#includemain(){inti,j,m=55;for(i=l;i<=3;i++)fbr(j=3;j<=i;j++)m=m%j;
97printf("%d
98",m);)程序的运行结果是A)0B)1C)2D)3(25)已知字符女的ASCII码值是65,字符变量cl的值是W,c2的值是执行语句printf("%d,%d”,cl,c2-2);后,输出结果是CA)A,BB)A,68C)65,66D)65,68(26)下列程序是用来判断数组中特定元素的位置所在的。#include#includeintfun(int*s,intt,int*k){inti;*k=0;fbr(i=O;i99",k,a[k]);}如果输入如下整数:876675896101301401980431451777则输出结果为DA)7,431B)6C)980D)6,980(27)下面程序的文件名为t.exe,在DOS下输入的命令行参数为:ttomeetme<回车>则程序输出的结果是B#include"stdio.h"main(argc,argv)intargc;char*argv[J;{inti;printf("%d
100",argc);}A)3B)4C)2D)以上答案都不正确(28)有如下程序Cinta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];则b的值是A)5B)6C)9D)8(29)以下叙述中错误的是CA)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值
101C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL(30)下面程序的输出结果是C#includemain(){inta[]={l,2,3,4,5,6,7,8,9,0),*p;P=a;printf("%d
102",*p+9);}A)0B)1C)10D)9(31)有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"},{"isa"},{"bigcountry!"}};chark[100]={0},*p=k;inti;for(i=0;i<3;i++){p=strcat(p,a[i]);)i=strlen(p);printf("%d
103",i);}则程序段的输出结果是BA)18B)19C)20D)21(32)若有定义:char*st="howareyou,下列程序段中正确的是AA)chara[ll],*p;strcpy(p=a+1,&st[4]);B)chara[l1];strcpy(++a,st);C)chara[l1];strcpy(a,st);D)chara[],*p;strcpy(p=&a[1],st+2);(33)有以下程序#includeintfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-,0,;s++;}retum(n);}main(){charprintf("%d
104",fun(s));)程序的运行结果是CA)9B)61490C)61D)5(34)设有定义:charp[]={T,'273,},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])(35)看以下函数Aintaaa(char*s){char*t=s;while(*t++);retum(t-s);
105)以下关于aaa函数的功能的叙述正确的是A)求字符串s的长度B)比较两个串的大小C)将串s复制到串tD)求字符串s所占字节数(36)当用户要求输入的字符串中含有空格时,应使用的输入函数是CA)scanf()B)getchar()C)gets()D)getc()(37)下列选项中错误的说明语团是DA)chara[]={'t','o','y','o','u,A(r};B)chara[]={"toyou\0"};C)chara[J="toyou\0";D)chara[J=rtoyou\Of;(38)以下程序的输出结果是Dintf(){staticinti=0;ints=l;s+=i;i++;returns;}main(){inti,a=O;for(i=0;i<5;i++)a+=f();printf("%d
106",a);}A)20B)24C)25D)15(39)下列程序的输出结果是C#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d
107",a-);}A)2B)3C)4D)5(40)假定当前盘符下有两个如下文本文件:A文件名al.txta2.txt内容123#321#则下面程序段执行后的结果为#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!=#,)putchar(c);}main(){FILE*fp;fp=fopen("al.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");
108fc(fp);fclose(fp);putchar(
109');!A)123321B)123C)321D)以上答案都不正确二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)软件定义时期主要包括【可行性研究】和需求分析两个阶段。(2)软件维护活动包括以下几类:改正性维护、适应性维护、【完善性】维护和预防性维护。(3)数据的逻辑结构有线性结构和【非线性结构】两大类。(4)某二叉树中度为2的结点有n个,则该二叉树中有(n+!l个叶子结点。(5)在ER图中,矩形表示【实体】。(6)阅读下面程序,则执行后的输出结果是[3]o#include"stdio.h"main(){intx,y,z;x=l;y=2;z=3;if(x>y)if(x>z)printf("%d",x);elseprintf("%d",y);printf("%d
110",z);}(7)以下程序的输出结果是【852】。main(){inty=9;for(;y>0;y-)if(y%3==0){printf("%d",—y);continue;}}(8)有以下程序段,且变量已正确定义和赋值for(s=l.0,k=l;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f
111
112",s);请填空,使下面程序段的功能与之完全相同s=1.0;k=l;while([k<=n]){s=s+1.0/(k*(k+l));[k++];}printf("s=%f
113
114",s);(9)设有以下定义和语句,则*(*(p+2)+l)的值为【60】。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;(10)以下程序的输出结果是【ACE】o#include
115main(){inti;for(i=,a,;i116");)(ID以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#includevoidf(intx[],intn){intpO,pl,i,j,t,m;i=j=x[O];pO=pl=O;fbr(m=0;mi){i=x[m];p0=m;}elseif(x[m]117");)(12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){intI;for(1=0;【*(str+D或str[I]]!='n';I++);return(I);}(13)阅读下列程序,则程序的输出结果为[30X]o#include"stdio.h"structty{intdata;charc;};main(){structtya={JS*};fun(a);
118printf("%d%c",a.data,a.c);}fun(structtyb){b.data=20;b.c=y;}一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)算法的空间复杂度是指DA)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行算法需要的内存空间(2)在结构化程序设计中,模块划分的原则是DA)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中,不属于测试的特征的是CA)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)测试的经济性(4)下面关于对象概念的描述中,错误的是AA)对象就是C语言中的结构体变量B)对象代表着正在创建的系统中的一个实体C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的(5)下列关于队列的叙述中正确的是CA)在队列中只能插入数据B)在队列中只能删除数据C)队列是先进先出的线性表D)队列是先进后出的线性表(6)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是DA)acbedB)decabC)deabcD)cedba(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为AA)n+1B)n-1C)2nD)n/2(8)设有如下三个关系表RSTABCABCm13m13nn13下列操作中正确的是CA)T=RASB)T=RUSC)T=RxSD)T=R/S
119(9)下列叙述中,正确的是AA)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B)用E-R图只能表示实体集之间一对一的联系C)用E-R图只能表示实体集之间一对多的联系D)用E-R图表示的概念数据模型只能转换为关系数据模型(10)下列有关数据库的描述,正确的是DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)C语言规定,在一个源程序中,main函数的位置CA)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后(12)以下叙述中错误的是DA)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)下列选项可以正确表示字符型常量的是AA)V,B)"a"C)"\897"D)296(14)以下叙述中正确的是AA)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)C函数定义的格式是K&R格式(15)设变量均已正确定义,若要通过scanf("%d%c%d%c",&al,&cl,&a2,&c2);语句为变量al和a2赋数值10和20,为变量cl和c2赋字符X和丫。以下所示的输入形式中正确的是(注:口代表空格字符)DA)10以口20口丫<回车>B)10X2OnY<回车>C)lfiX<回车>20口丫<回车〉D)10X<回车〉20Y<回车〉(16)若有说明:int*p,m=5,n;,以下正确的程序段是DA)p=&n;scanf("%d",&p);B)p=&n;scanf("%d",*p)C)scanf("%d",&n);*p=n;D)p=&n;*p=m;(17)在执行下述程序时若从键盘输入6和8,则结果为B
120main(){inta,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对(18)若执行下面的程序时,从键盘输入5和2,则输出结果是Cmain(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d
121",k);}A)5B)3C)2D)0(19)在C语言中,函数返回值的类型最终取决于AA)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主调函数所传递的实参类型D)函数定义时形参的类型(20)已知大写字母A的ASCII码是65,小写字母a的ASCII码是970以下不能将变量c中的大写字母转换为对应小写字母的语句是DA)c=(c-'A')%26+'a,B)c=c+32C)c=c-'A'+'a'D)c=('A'+c)%26-'a,(21)以下选项中,当x为大于1的奇数时,值为0的表达式是DA)x%2==1B)x/2C)x%2!=0D)x%2==0(22)有以下程序Amain(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k-;break;default:n=O;k--;case2:case4:n+=2;k—;break;)printf("%d",n);}while(k>0&&n<5);}
122程序运行后的输出结果是A)235B)0235C)02356D)2356(23)有如下程序Bmain(){intn=9;while(n>6){n-;printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876(24)有以下程序A#includemain(){intc;while((c=getchar())!=
123){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("
124")}从第一列开始输入以下数据代表一个回车符。2743程序的输出结果是A)66877B)668966C)6677877D)6688766(25)有以下程序Amain(){intx=O,y=O,i;for(i=l;;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是A)2,lB)2,2C)2,5D)5,2(26)有以下程序Amain(){inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,l}},i,j,k,t;fbr(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+l;k<4;k++)if(a[j][i]>a[kHi]){t=aU][i];a[j][i]=a[k][i];a[kHi]=t;}/*按列排序*/
125for(i=0;i<4;i++)printf("%d,",a[i][i]);)程序运行后的输出结果是A)l,6,5,7,B)8,7,3,l,C)4,7,5,2,D)l,6,2,l,(27)有以下程序Bintf(intn){if(n==l)retum1;elsereturnf(n-l)+l;}main(){inti,j=O;for(i=l;i<3;i++)j+=f(i);printf("%d
126",j);}程序运行后的输出结果是A)4B)3C)2D)1(28)当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果是A#includemain(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='{if(s[i]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;)puts(s);}A)ahaMaB)AbAMaC)AhAMa[空格]ahAD)ahAMa[空格]ahA(29)下面程序输出的结果是Bmain(){inti;inta[3][3]={1,2,3,4,5,67,8,9);for(i=0;i<3;i++)printf("%d",a[2-i][i]);}A)159B)753C)357D)591(30)现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,
12721,1};inti=0,j=5;printf("%d
128",*(&a[0][0]+2*i+j-2));}则程序的输出结果为AA)21B)78C)23D)28(31)请选出正确的程序段CA)int*p;scanf("%d",p);B)int*s,k;*s=100;C)int*s,k;char*p,c;s=&k;p=&c;*p='a';D)int*s,k;char*p,e;s=&k;p=&c;s=p;*s=l;(32)下面程序段的运行结果是Cchara[]="lanuage",*p;p=a;while(*p!=,u,){printf("%c",*p-32);p++;)A)LANGUAGEB)languageC)LAND)langUAGE(33)以下程序的输出结果是D#includeinta[3][3]={l,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d
129",*p);free(p);}f(int*s,intp[][3]){*s=p[l][l];)A)1B)4C)7D)5(34)有以下程序B
130voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={l,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[i]);)程序运行后的输出结果是A)2,2,3,4,5,B)6,2,3,4,5,C)l,2,3,4,5,D)2,3,4,5,6,(35)以下合法的字符型常量是AA)、xl3'B)''081'C)'65'D)"
131"(36)有以下语句,则对a数组元素的引用不正确的是Dinta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))(37)有以下程序B#includemain(){charp[20]={'a',b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d
132",strlen(p));)程序运行后的输出结果是A)9B)6C)llD)7(38)在C语言中,变量的隐含存储类别是AA)autoB)staticC)externD)无存储类别(39)以下程序的输出结果是Cmain(){intc=35;printf("%d
133",c&c);}A)0B)70C)35D)1(40)有以下程序A#includemain(){FILE*fp;inti=20,j=30,k,n;fp=fopen("dl.dat","w");fprintf(fp,"%d
134",i);fprintf(fp,"%d
135",j);
136fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d
137",k,n);fclose(fp);}程序运行后的输出结果是A)2030B)2050C)3050D)3020二、填空题请您套一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)设一棵完全二叉树共有700个结点,则在该二叉树中有[350]个叶子结点。(2)常用的黑箱测试有等价类划分法、【边界值分写法】和错误推测法3种。(3)数据库管理系统常见的数据模型有层次模型、网状模型和【关系模型13种。(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【软件生命周期】。(5)数据库保护分为:安全性控制、【完整性控制】、并发性控制和数据的恢复。(6)执行以下程序后的输出结果是【a=14】。main(){inta=10;a=(3*5,a+4);printf("a=%d
138",a);)(7)以下程序的输出结果是[9]o#includemain(){printf("%d
139",strlen("IBM
140O12\l\\"));}(8)已定义charch='$';int执行j!=ch&&i++以后,i的值为[1】。(9)以下程序的运行结果是[k=51o'#includelongfib(intg){switch(g){case0:retum0;case1:case2:return1;}retum(fib(g-1)+fib(g-2));}main()
141{longk;k=fib(5);printf("k=%51d
142",k);}(10)下面程序的功能是输出数组s中最大元素的下标,请填空。main(){intk,p,s[]={l,-9,7,2,-10,3};for(p=O,k=p;p<6;p++)if(s[p]>s[k])[k=p;]printf("%d
143",k);}(ID以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。main(){intx[10],a[9],I;fbr(I=O;I<10;I++)scanf("%d,&x[ID;for([1=1];I<10;I++)a[M]=x[Il+[X[I-1]]fbr(I=O;I<9;I++)printf("%d",a[I]);printf("");)(12)设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)[#include]main(){printf("
144");try_me();printf("
145");}(13)以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。#includestructlist{intdata;structlist*next;};structlist*creatlist(){structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));p=q=ph;printf("Inputanintegernumber;entre-1toend:
146");scanf("%d",&a);while(a!=-l){p=(structlist*)malloc(sizeof(structlist));
147【p->data]=a;q->next=p;[q]=p;scanf("%d",&a);}p->next=r\O;retum(ph);}main(){structlist*head;head=creatlist();}(一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中带有箭头的线段表示的是CA)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括AA)多态性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是BA)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是BA)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划(5)算法的有穷性是指AA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-l)/2的排序方法是DA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)下列关于栈的叙述正确的是BA)栈按"先进先出"组织数据B)栈按"先进后出"组织数据C)只能在栈底插入数据D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于DA)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S和T如下:BRBCDa0klb1nl
148SBCDf3h2a0kln2xlBCDa0kl由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为CA)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)以下叙述中正确的是CA)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是CA)printB)FORC)&aD)_00(13)以下选项中不属于字符常量的是BA)'C'B)"C"C)'xCC'D)、072'(14)设变量已正确定义并赋值,以下正确的表达式是DA)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5,0(15)以下定义语句中正确的是BA)inta=b=0;B)charbA=65+l,b=C)floata=l,*b=&a,*c=&b;D)doublea=0.0;b=l.l;(16)有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d
149",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是DA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是BA)kk>=,A,&&kk<=,Z,B)!(kk>=,Ar||kk<=,Z,)
150C)(kk+32)>=W&&(kk+32)<=ZD)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为"真"的表达式是BA)(c==2)II(c==4)II(c==6)B)(c>=2&&c<=6)II(c!=3)II(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段Binta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d
151",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d
152",a,b);}程序的运行结果是DA)a=l,b=0B)a=2,b=2C)a=l,b=lD)a=2,b=l(21)有以下程序D#includemain(){intx=8;fdr(;x>0;x—){if(x%3){printf("%d,",x—);continue;}printf("%d,",-x);程序的运行结果是A)7,4,2,B)8,7,5,2,C)9,7,6,4,D)8,5,4,2,(22)以下不构成无限循环的语句或语句组是AA)n=0;do{++n;}while(n<=O);B)n=0;while(l){n++;}C)n=10;while(n);{n—;}D)for(n=O,i=l;;i++)n+=i;
153(23)有以下程序#includemain(){inta[]={l,2,3,4},y,*p=&a[3];-P;y=*pprintf("y=%d
154",y);)程序的运行结果是CA)y=OB)y=lC)y=2D)y=3(24)以下错误的定义语句是DA)intx[][3]={{0},{1},{1,2,3}};B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)intx[][3]={l,2,3,4};(25)设有如下程序段Achars[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s[0]B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相同(26)若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是DA)a[2][!l]B)a[2][3]C)a[0][3]D)a[l>2][!l](27)看定义语句:char若要从终端给s输入5个字符,错误的输入语句是DA)gets(&s[O]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[l]);(28)以下叙述中错误的是DA)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是AA)tupedefstrct{intn;charc;}REC;RECtl,t2;B)tupedefstrct{intn;charc;};RECtl,t2;C)tupedefstrctREC;{intn=0;charc='A';}tl,t2;D)strct{intn;charc;}REC;
155RECtl,t2;(30)以下叙述中错误的是BA)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("
156");}程序的运行结果是CA)1234B)2344C)4332D)1123(32)有以下程序C#includevoidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i157");}程序的运行结果是A)0987654321B)4321098765C)5678901234D)0987651234(33)有以下程序A#include#includevoidfiin(char*s口,intn){char*t;iitij;for(i=0;istrlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s
158",ss[O],ss⑷);)程序的运行结果是
159A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序C#includeintf(intx){inty;if(x==0llx==l)retum(3);y=x*x-f(x-2);returny;)main(){intz;z=f(3);printf("%d
160",z);}程序的运行结果是A)0B)9C)6D)8(35)有以下程序C#includevoidfun(char*a,char*b){while(*a=¥')a++;while(*b=*a)jb++;a++;}}main(){char*s="*****a*b****",t[8O];fun(s,t);puts(t);)程序的运行结果是y^)*****a*bB)a*bC)a*b****D)ab(36)有以下程序#include#includetypedefstruct}charname[9];charsex;floatscore[2];}STU;voidf(STUa){STUb={"ZhadV,85.0,90.0};inti;strcpy(a.name,b.name);a.sex=b.sex;fbr(i=0;i<2;i++)a.score[i]=b.score[i];}main(){STUc={"Qiarif,95.0,92.0};f(c);printf("%s,%c,%2,0f,%2,0f
161",c.name,c.sex,c.score[0],c.score[1]);
162)程序的运行结果是AA)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,90(37)有以下程序B#includemain(){FILE*币;inta[10]={l,2,3},i,n:fp=fopen("dl.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"
163");fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d
164",n);)程序的运行结果是A)12300B)123C)1D)321(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是AA)aAbB)albC)a&bD)a«4(39)在C语言中,只有在使用时才占用内存单元的变量,其存储类型是AA)auto和registerB)extern和registerC)auto和staticD)static和register(40)设有定义语句int(*0(in0;,则以下叙述正确的是BA)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形参C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int类型的地址二、填空题请、每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)测试用例包括输入值集和【预期输出】值集。(2)深度为5的满二叉树有[16]个叶子结点。(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【24】个元素。
165(4)在关系数据库中,用来表示实体之间联系的是【关系】。(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【数据定义语言】负责数据的模式定义与数据的物理存取构建。(6)已有定义:charc士f;inta=l,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【1】o(7)设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为[3]0(8)若有定义:intk;,以下程序段的输出结果是[1##2##4]0for(k=2;k<6;k++,k++)printf("##%d",k);(9)以下程序的定义语句中风1]的初值是[2],程序运行后输出的内容是【2468】。#includemain(){intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),*p[4],i;fbr(i=0;i<4;i++){p[i]=&x[2*i+l];printf("%d",p[i][0]);}printf("
166");)(10)以下程序的输出结果是【35】。#includevoidswap(int*a,int*b){int*t;t=a;a=b;b=t;)main(){inti=3,j=5,*p=&i,*q=&j;sw叩(p,q);printf("%d%d
167",*p,*q);(11)以下程序的输出结果是[4]o#includemain(){inta[5]={2,4,6,8,10),*p;p=a;p++;printf("%d",*p);}(12)以下程序的输出结果是【13】。#includevoidfiin(intx){if(x/2>0)fun(x/2);printf("%d",x);}main(){fun(3);printf("
168");}(13)以下程序中函数fun的功能是:统计-person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。请填空。#include#defineN3typedefstruct{intnum;charnam[10];charsex;}SS;intfun(SSperson[]){intI,n=0;fdr(I=0;I169)main(){SSW[N]={{1/'AA'T1},{2,"BB"/Mr},{3,"CC"/Mr}};intn;n=fun(W);printf("n=%d
170",n);)(14)以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。#includemain(){FILE*币;charch;fp=fopen(["filea.dat","r"]);ch=fgetc(fp);while(!feof(fp)){putchar(ch);ch=fgetc(fp);}putchar(,
171,);fclose(fp);2012年3月全国计算机等级考试二级C语言上机题库第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。第一处structstudentt;第二处for(i=0;i0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学
172生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。intfun(STREC*a,STREC*b,intl,inth){inti,j=O;for(i=0;i=l&&a[i].s<=h)b[j++]=a[i];returnj;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。第一处free(q);第二处q=p->next;第三处q=q->next;2.程序修改给定程序M0DI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。/**found**/P=j;/**found**/p=i;3.程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。voidfiin(intm,int*a,int*n)inti;*n=0;fbr(i=7;i<=m;i++)if((i%7==0)ll(i%ll==0))a[(*n)++]=i;)第三套1.程序填空函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。
173第一处for(i=0;i;3.程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)oSTRECfun(STREC*a,char*b){STRECc;Inti;c.num[O]=,\O,;c.s=-l;for(i=O;idata==ch)returnn;第三处k=fun(head,ch);2.程序修改
174给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#'结束输入。/**found**/for(i=0,t=0;p[i];i++)/**found**/c[t]=,\0\1.程序设计请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。voidfun(char*ss){inti;for(i=l;i='a,&&ss[i]<=,z,)ss[i]-=32;第五套1.程序填空给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10的时,函数返回:9.6125588o第一处s=0;第二处for(i=l;i<=n;i++)第三处s=s+(2.0*i-l)*(2.0*i+l)/(t*t);2.程序修改给定程序M0DI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。/**found**/for(i=0;str[i];i++)/**found**/if(substr[k+1]==,\0,)3.程序设计请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度00005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为00005,则程序输出为3.14…。doublefun(doubleeps){doubles=l,t=l,/3;intn=l;
175while(t>=eps){s+=t;n++;t=t*n/(2.0*n+l);}retum(s*2.0);)第六套1.程序填空给定程序市,函数fiin的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。第一处t[j]=s[i];j++;第二处for(i=0;i176第二处for(i=0;i<3;i++)a->score[i]+=l;第三处returna;1.程序修改给定程序M0DI1.C中函数ftin的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。/**found**/char*fun(char(*sq)[M])/**found**/returnsp;2.程序设计函数fun的功能是:将a^b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。#includevoidfiin(inta,intb,long*c){*c=(b%10)*1000+(a/l0)*100+(b/10)*10+a%10;)第八套1.程序填空函数fiin的功能是:将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。第一处p=(n%2==0)?n/2:n/2+l;第二处a[i]=a[p+i];第三处a[p+i]=t;2.程序修改给定程序M0DI1.C中函数fun的功能是:把主函数中输入的三个数,最大的放在a中,最小的放在c中,中间的放在b中。/**found**/floatk;/**found**/if(*a<*c)3.程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中
177放入结构体数组s中,请编写了函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。intfun(STREC*a,STREC*b)inti,max=a[0].s,n=0;for(i=l;i178for(i=1;ia[i].s){j=0;b[j++]=a[i];min=a[i].s;}elseif(min==afi].s)b[j++]=a[i];
179)returnj;)第十一套1.程序填空给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大于平均值的数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。第一处av=s/N;第二处yU++]=x[i];x[i]=-l;}第三处if(x[i]!=-l)y[j++]=x[ij;2.程序修改给定程序M0DI1.C中函数ftin的功能是:读入一行英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这里的“单词”是指由空格隔开的字符串)。/**found**/#include/**found**/upfst(char*p)3.程序设计程序定义了NXN的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值饭给主函数中的s。doublefun(intw[][N]){inti,j,n=0;doublesum=0;for(i=0;i1801.程序填空给定程序中,函数fun的功能是:将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。第一处fprintf(fp,,,%d%f
181,,,i,sqrt((double)i));第二处fclose(fp);第三处if((fp=fbpen(fname,,,r,,))==NULL)2.程序修改给定程序M0DI1.C中函数fun的功能是:将n个无序整数从小到大排序。/**found**/fbr(i=j+l;ivoidfun(inta,intb,long*c)(*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/l0);}第十三套1.程序填空给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。第一处b[i]=a[0][i];第二处if(b[i]182#include#defineMAX100intfun(intlim,intaa[MAXJ){inti,j,k=O;for(i=2;i<=lim;i++){for(j=2;j<=(i/2);j++)if(i%j==O)break;if(j>(i/2))aa[k++]=i;}returnk;}第十四套1.程序填空函数fun的功能是进行字母转换。若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。第一处if((ch>='a')&&(ch<='z'))第二处returnch+'a'-'A'第三处returnch;2.程序修改给定程序M0DI1.C中函数fun的功能是:给一维数组a输入任意四个整数并按下列的规律输出。例如输出1、2、3、4,程序输出一下方阵。a)123341243411234/**found**/voidfiin(int*a)/**found**/aU]=aU-l];3.程序设计请编写函数fun,函数的功能是:计算并输出给定整数n的所有因子(不包过1和n本身)之和。规定n的值不大于1000.intfun(intn)(ints=0,i;for(i=2;i183所指的字符串为:abcdefgh,执行结果为:ahcbedg。第一处if(n%2==0)k=n-l;第二处c=s[k];第三处s[l]=c;1.程序修改给定程序M0DI1.C中函数fun的功能是:求s=aa…aa—…一aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。/**found**/longs=O,t=O;/**found**/t=t/10;2.程序设计请编写一个函数voidfun(char*tt,intpp[]),统计在tt所指字符串中‘a'至'z'26个小写字母各自出现在的次数,并依次放在pp数组中。voidfiin(char*tt,intpp[J)(char*p=tt;inti;for(i=0;i<26;i++)PP(i]=O;while(*p){if(*p>='a'&&*p<='z')pp[*p-'a']+=l;P++;第十六套1.程序填空人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中编号为空串。第1处STUfun(STU*std,char*num)第2处if(strcmp(std[i].num,num)==0)第3处return(std[i]);2.程序修改给定程序MODILC中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。
184/**found**/r++;p++;/**found**/if(*r==0)1.程序设计函数ftin的功能是:将s所指字符串中ASCH值为偶数的字符删除,串中剩余字符形成一个新串放在t所指数组中。#include#includevoidfun(char*s,chart[]){inti,j=0;for(i=0;i=>0,&&s[i]<=,9,)n++;第3处*t=n;2.程序修改给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8./**found**/t=*x;*x=y;/**found**/return(t);3.程序设计请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
185#includeviodfun(int*a,int*n){inti;*n=0;fdr(i=7;i<1000;i++)if(((i%7)==0||(i%ll)==0&&(i%77)!=0)a[(*n)++]=i;}第十八套1.程序填空给定程序中,函数fun的功能是:有NXN矩阵,根据给定的m(m<=n)值,将每行元素中的值均右移m个位置,左边值为0.第1处for(i=0;i0,000001);returnxl;)第十九套1.程序填空给定程序中,函数fun的功能是:将a所指的3X5矩阵中第k列的元素左移到第0歹山第k列以后的每列元素行依次左移,原来左边的各列依
186次绕到右边。第1处for(p=l;p<=k;p++)第2处for(j=0;j=num)
187/**found**/t=s/n1.程序设计请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串放在b所指的n中存入指定的下标。viodftin(chara[],charb[],intn)(stmcpy(b,a,n);b[n]=0;strcat(b,a+n+l);}第二十一套1.程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串小于M。第一处voidfun(char(*ss)[M],intk)第二处while(in)
188{i—n・i-V*for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;})第二十二套1.程序填空给定程序中,函数fun的功能是:a所指4X3矩阵中第k行的元素与第0行元素交换。例如:有下列矩阵123456789101112若k为2,程序执行结果为789456123101112第一处voidfun(int(*a)[N],intk)第二处for(i=0;itU+ll)3.程序设计请编写函数fiin,函数的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。voidfun(charc=(a%10)*1000+(b/10)*100+(a/l0)*10+(b%10);ss)(char*p=ss;inri=0;
189while(*p){if((i%2)&&(*p>=,a,&&*p<='z'))*p-=32;P++;i++;第二十三套1.程序填空给定程序而功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回值是0.在复制的过程中,把复制的内容输出到终端屏幕。主函数源文件名放在变量sfname中,目标文件放在变量tfname中。第一处if((fs=fopen(source,,,r,,))==NULL)第二处while(!feof(fs))第三处fputc(ch,ft);2.程序修改给定程序M0DI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。/**found**/if(d%2==0)/**found**/s/=10;3.程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。voidfun(inta,intb,long*c)第二十四套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。第一处b=a;第二处strcpy(b.name,^^LiSi^^)第三处for(i=0;i<3;i++)printf(u%6.2f,,b.score[i]);2.程序修改给定程序M0DI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母
190c。请改正程序中的错误,使它能计算出正确的结果。/**found**/s[j++]=s[i];/**found**/s[j]=,\O,;1.程序设计假定输入的字符串中只包含字母和*号。请编写函数ftm,它的功能是:将字符串的前导*号全部移到字符串的尾部。函数fun中给出的函数仅供参考。voidfun(char*a){char*p,*q;intn=0;P=a;while(*p=='*'){n++;p++;}q=a;while(*p){*q=*p;p++;q++;)for(;n>0;n—)*q++=,*';*q='\0';}第二十五套1.程序填空用筛选法可得到2—n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非。数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2、3、5、7、11、13、17、19、23函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。第一处for(j=a[i]*2;j<=n;j+=a[i])第二处while(a[i]==0)第三处if(a[i]!=0)2.程序修改给定程序MODI1.C中函数fiin的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。/**fbund**/
191y=i;/**fbune**/d=a-i;1.程序设计请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。doublefun(intn)(inti;doublesum=0.0;fbr(i=l;i192指针max传回该串地址。(注意:主函数中用给定程序M0DI1.C中函数fun的功能是:从三个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在没组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是作为结束输入的标志,函数fun中给出的语句仅供参考)。fun(char(max=a[k];}第二十七套1.程序填空函数fun的功能是计算f(x)=l+x-2/2!+3/3!-4/4!+的前n项和。若x=2.5,n=15时,函数值为1.917914。第一处f=l;a)[81],intnum,char**max)(inti,k=O,maxlen;maxlen=strlen(a[k]);fbr(i=l;imaxlen){maxlen=strlen(a[i]);k=i;15.程序中i的值代表红球数,j代表白球数,k代表黑球数。/**found**/for(i=l;i<=3;i++)/**found**/if(k>=0&&k<=6)3.程序设计请编写函数fun,它的功能是:计算并输出下列多项式的值:SF1+1/1!+1/2!+1/3!+1/4!+……l/n!o例如:在主函数中从键盘给n输入15,则输出为:s=2.718282o注意:要求n的值大于1但不大于100。doublefun(intn){doubles=rlongt=l;inti;for(i=l;i<=n;i++){t=t*i;s+=l.0/t;}
193returns;}第二十八套1.程序填空给定程序中,函数fim的功能是:由算N*N矩阵的主对角线元素和方向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反响对角线元素的值。第一处sum=0;第二处sum+=t[i][i];第三处sum+=t[i][n-i-1];2.程序修改给定程序MODI1.C中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。/**found**/doubler;/**found**/while(fabs(n-m)>0.001)3.程序设计假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中的第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。voidfun(char*a,char*h,char*p)(intj=0;char*q=a;while(*q&&q194第二十九套1.程序填空给定程序中,函数ftin的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。操作的顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为第一行,临时数组中和元素成为最后一列。第一处t[0][N-j-l]=t[j][0];第二处for(j=N-l;j>=0;j—)第三处t[j][N-l]=r[j];2.程序修改给定程序MODI1.C中函数fun的功能是:计算s=f(-n)+f(-n+1)++f(0)+f(1)+f(2)+……f(n)的值。例如,当n为5时,函数值应该是:10.407143。/**found**/doublef(doublex)/**found**/returns;3.程序设计编写一个函数fun,它的功能是计算:s=根号下(In(1)+ln(2)+ln(3)+In(m))S作为函数返回,在C语言中可以调用log(n)求In(n)。log函数引用说明是:Doublelog(doublex)例如,若m的值为:20,fun函数值为:60506583cdoublefun(intm){doubles=0.0;inti;for(i=0;i<=m;i++)s+=log(l.0*i);s=sqrt(s);returns;}第三十套1.程序填空函数fun的功能是:反形参a所指数组中的奇数按原顺序依次存放到a[0]>a[l]>a⑵……中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。第一处if(a[i]%2=l)第二处j++;
195第三处returnj;1.程序修改给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。/**found**/t=a;a=b;b=t;/**found**/return(b);2.程序设计假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。voidfun(char*a)intj=0;char*p=a;while(*p){if(*p!='*')a[j++]=*p;p++;}a[j]=O;}第三十一套1.程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。Ss所指字符串数组中共有N个字符串,且串长小于M。第一处for(i=0;i1961.程序设计假定输入的字符串中只包含字母和*号。请编写函数fiin,它的功能是:除了字符串前导*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。voidfun(char*a)inti=0,k;while(a[i]!==,*,)i++;k=i;while(a[i]!='\0'){if(a[i]!=*)a[k++]=a[i];i++;}a[k]=,\O,;}第三十二套1.程序填空给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。第一处s->data=x;第二处q=p;第三处q->next=s;2.程序修改给定程序M0DI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。/**found**/longk=l;/**found**/num/=103.程序设计请编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数返回。floatfun(float*a,intn){inti;floatave=0.0;for(i=0;i197给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到输出相应信息。Ss所指字符串数组中共有N个字符,且串长小于M。程序中库函数strstr(si、s2)的功能是早si串中查找s2子串,若没有,函数值为0,若有,为非0。第一处for(i=0;i198第二处if(strcmpss[i],t)~0returni;第三处if(n==T)printfCAnDon'tfound!
199");1.程序修改给定程序MODI1.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些事,并且把这些数放在b所指的数组中,这些数作为函数值返回。规定,函数中al放个位数,a2放十位数。/**found**/a2=k/10;/**found**/returni;2.程序设计假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。voidfun(char*a)(char*p=a;while(*p)p++;p一;while(*p==,*0p-;p++;*p=0;)第三十五套1.程序填空给定程序市,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。第一处*n=0;第二处p=p->next;第三处fun(head,&num);2.程序修改给定程序M0DI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。/**found**/a=NULL;
200/**found**/if(*r==*p)1.程序设计函数fiin的功能是:将s所指字符串中除了下标为偶数,同时ASCH指也为偶数的字符外,其余的全部都删除:串中剩余字符所形成的一个新串放在t所指的数组中。voidfun(char*s,chart[]){inti,j=0;for(i=0;inext;doubleav=0.0;
201intn=o;while(p!=NULL)(av=av+p->s;p=p->next;n++;}av/=n;returnav;}第三十七套1.程序填空函数fiin的功能是:把形参a所指数组中的偶数按原顺序依次存放a[0]、a[l]、a[2]……中,把奇数从数组中删除,偶数个数通过函数值返回。第一处if(a[i]%2=0){第二处a[j]=a[i];j++;第三处returnj;2.程序修改给定程序M0DI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14./**found**/fun(intn)/**found**/if(n==l)3.程序设计假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。voidfun(char*a,intn){char*p=a;intj=0;while(*p)p++;p一;while(*p=='*')p-;p++;while(j202)*p=0;)第三十八套1.程序填空给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排列,并输入排序结果。ss所指定字符串数组中共有N个字符串,且串长小于M。第一处k=i第二if(strlen(ps[k])203第三十九套1.程序填空给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。第一"处*av=s/N;第二处d=*av-x[i];j=i;}第三处returnx[j];2.程序修改给定程序MODI1.C中函数fun的功能是:根据整型形参n计算如下公式的值。例如:若n=10,则应输出:0.617977./**found**/floatfun(intn)/**found**/for(i=2;i<=n;i++)3.程序设计程序定义了NXN的二维数组,并在主函数中自动赋值,请编写函数fun,它的功能是:使数组右上三角元素中的值乘以m。intfun(inta[][N],intm){inti,j;for(i=0;i204/**found**/for(j=i+l;j<6;j++)/**found**/*(pstr+i)=*(pstr+j);1.程序设计请编写函数fun,它的功能是:求出ss所指字符串中指定字符个数,并返回次值。intfun(char*ss,charc)(intcnt-0;char*p=ss;while(*p){if(*p==c)cnt++;p++;)returnent;)第四十一套1.程序填空给定程序中,函数fun的功能是:将形参s所指定字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。第1处if(isdigit(*s))sum+=*s-48;第2处s++;第3处returnsum;2.程序修改给定程序M0DI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500.则主函数为4622o/**found**/if((k%13==0||(k%17==0))/**found**/)3.程序设计请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所
205有自然数之和的平方根,并作函数的返回值。doublefun(intn)(doublesum=0.0;inti;for(i=21;i<=n;i++)if((i%3==0)&&(i%7==0))sum+=i;returnsqrt(sum);)第四十二套1程序填空给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表节点数据域从头到位的数据为10、4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8>10.第1处q=p->next;第2处while(q)第3处p=p->next;2程序修改给定程序M0DH.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。/**found**/while(*s)/**found**/s++;3程序设计voidfun(int*w,intp,intn)(inti,j=O,b[N];fbr(i=p+l;i2060.“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。第1处row=colum=0;第2处if((row!=colum)||(row!=ml))retum0;第3处return1;2程序修改给定程序M0DI1.C中函数ftin的功能是:根据整型形参m计算如下公式的值。/**found**/t=t-1.0/i;/**found**/returnt;3程序设计请编写一个函数,函数的功能是:删除字符串中所有的空格。intfun(char*str)(char*p=str;inti=0;while(*p){if(*p!=,,)str[i++]=*p;P++;str[i]=O;)第四十四套1程序填空给定程序中,函数fun的功能是:将N乘以N矩阵中元素的值按列右移一个位置,右边被移出矩阵的元素绕回左边。第1处for(i=0;i207returnt;3程序编写编写函数fun,它的功能是:求Fibonacci数列中大于t的最小一个数,结果由函数返回。其中Fibonacci数列F(n)栽为F(0)=0,F(l)=l,F(n)o□ointfun(intt)(intfO=O,fl=l,f;do{f=ro+fi;fD=fl;fi=f;}while(fnext;第2处if(p==0)return;第3处p=q;q=r;2程序修改给定MODH.Cfun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。/**found**/r=t;/**found**/if(*r==0)3程序设计请编写函数fiin,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串,函数fun中给出的语句提供参考。voidfun(chara[M][N]),char*b){inti;*b=0;for(i=0;i2081程序填空给定程序中,函数fun的功能是:将形参s所指字符串所有ASCII码小于97的字符存入形第1处*(t+n)=*s;n++;}第2处s++;第3处returnn;2程序修改给定程序MODH.C中函数fun的功能是:由形参给定n个实数,输出平均值以上(含平均值)的实数个数。/**found**/intj,c=0;floatxa=0.0;/**found**/if(x[j]>=xa)3程序设计编写函数fun,其功能是:根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>nop=m!/(n!*(m-n)!)floatfun(intm,intn)floatp;p=l.O*jc(m)/jc(n)/jc(m-n);returnp;}'第四十七套1程序填空函数fun的功能是:计算f(x)=l+x-x?/2!+x3/3!-X74!直到Ix7n!|(0-6若x=2.5,函数值为:1.917915。第1处t=x第2处t*=(-1.0)*x/n;第3处while(fabs(t)>=1e-6)2程序修改给定程序M0DI1.C中函数ftin的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。/**found**/fbr(i=l;i<=y;i++)/**found**/t=t%1000;3程序设计
209请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值,直到Sn-Sn-l<0.000001为止。doublefun(doublex)(intn=l;doublesn=l;doublexn=l,xnl=0;while(fabs(xn-xnl)>=0.000001)(xn=xn*x*(0.5-n+l)/n;n+=l;sn+=xn;)return(sn);)第四十八套1程序填空给定程序中,函数fun的功能是:计算出带有头节点的单向链表中各节点数据域中值之和作为函数值带回。第1处s+=p->data;第2处p=p->next;第3处printf(<4
210sum=%d
211,,,fun(head));2程序修改给定程序M0DI1.C中函数fun的功能是:将s所指字符串中出现的与tl所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w
212所指的数组中。在此处,要求tl和t2所指字符串的长度相同。/**found**/while(*r)/**fbund**/*a=*r;a++;r++;3程序设计函数fiin的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。voidfun(char*s,chart[])(inti,j=0;for(i=l;i=len)strcpy(t,s);第2处t[j++]=s[i];第3处t[j]=O;2程序修改给定程序M0DI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值带回。/**found**/if(i%k==0)/**found**/if(k>=i)3程序设计编写函数fun,它的功能是:求出能整除形参x切不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。voidfun(intx,intpp[J,int*n)(
213inti;*n=0;fbr(i=l;i<=x;i++)if((x%i==0)&&(i%2))ppl(*n)++J=i;}第五十套1程序填空给定程序中,函数fun的功能是:将形参s所知字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。第1处plj]=s[i];j++;)第2处for(i=0;i214第2处i++;第3处x=(2.0*i-l)/((2.0*i)*(2.0*i));2程序修改给定程序MODH.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。/**fbund**/voidfun(char*s,char*t)/**fbund**/t[2*d]=,\O,;3程序设计函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。viodfun(char*s,chatt[])(inti,j=0;fbr(i=l;i215m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。intfun(intscore[J,intm,intbelow[J)(floatav=0.0;inti,j=0;for(i=0;iscore[i])below[j++]=score[i];returnj;)第五十三套1程序填空给定程序中,函数ftin的功能是将形参指针所指结构体数组中的三个元素按num成员进行升序排列。第1处voidfun(PERSON*std)第2处PERSONtemp;第3处fun(std);2程序修改给定程序MODH.C中函数ftin的功能是:将m(1三mW10)个字符串连接起来,组成一个新串,放入pt所指存储区中。/**found**/intk,q,i;/**found**/pt[i]=str[k][i];3程序设计程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。intfun(inta[][N])(inti,j;for(i=0;i216第五十四套1程序填空给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参丫所指数组中,在主函数中输出。第1处av=0;第2处av=av+x[i]/N;第3处y[j++]=x[i];2程序修改给定程序M0DI1.C中函数fiin的功能是:根据整形形参m,计算如下公式的值。/**found**/doublefun(intm)/**found**/for(i=l00;i<=m;i+=100)3程序设计已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中,轻便鞋函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)fun(STUa[],STU*s)(inti,min=a[0],s,j=0;for(i=l;ia[i].s){j=i;min=a[i].s;*s=a[j];)第五十五套1程序填空给定程序中,函数fiin的功能是:判断形参s所指字符串是否是“回去”(Palindrome)若是,函数返回值为1;不是,函数返回值为0,“回文”是正读和反读都是一样的字母串(不区分大小写字母)。第1处lp=s;第2处lp++;rp-;}第3处if(1p