《程序阅读填空(共9页).doc》由会员分享,可在线阅读,更多相关《程序阅读填空(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上程序填空题一(已查) 1. 下面C语言程序将两个递增有序的数值a和b合并一个数组c,并保持递增次序,最后输出数组c.#define M 6#define N 5main( ) int aM=1,3,5,7,9,11, bN=2,4,6,8,10; int cM+N; int i ,j, k; i=j=k=0; while( 1 )/* 答案iM&jN */ if(aibj) ck+=ai+; else ck+=bj+; while( 2 ) /* 答案iM */ ck+=ai+; while(jN) ck+=( 3 ) /* 答案bj+; */ for(k=0;k(
2、M+N );k+) /* 答案M+N */printf(“%dt”,ck);2下面程序的作用是将以下给出的字符按其格式读入数组ss中,然后输出行、列号之和为3的数组元素,请在_处填入正确内容。AafcBdebCgfDmain()static char ss43A,a,f,c,B,d,e,b,C,g,f,D; int x,y,z; for(x0;【1】;x)/*答案 x4*/ for(y0;【2】;y)/*答案 y3*/ zxy;if(【3】)printf(cn,ssxy);/*答案 z=3*/ 程序填空题二(已查)1下面程序的功能是不用第三个变量,实现两个数的对调操作。main() inta,
3、b; scanf(%d%d,&a,&b); printf(a=%d,b=%dn,a,b); a=;/* 答案a+b或者 ab */ b=;/* 答案a-b或者 ba */ a=; /* 答案a-b或者 ab */printf(a=%d,b=%dn,a,b);2下面程序的功能是根据近似公式:/61/12+1/22+1/32+1/n2,求值。#include/*数学函数数包含在头函数math.h中*/doublepi(longn) doubles=0.0; longi; for(i=1;i=n;i+) s=s+;/* 答案1.0/(float)(i*i) */ return();/* 答案sqrt
4、(6*s) */3下面程序的功能是计算1-3+5-7+-99+101的值。main() inti,t=1,s=0; for(i=1;i0?-1:1 */ printf(%dn,s);4下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。main() floatx,amax,amin; scanf(%f,&x); amax=x; amin=x; while() /* 答案x=0 */ if(xamax)amax=x; if()amin=x;/* 答案xamin */ scanf(%f,&x); printf(namax=%fnamin=%fn,a
5、max,amin);5下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。fun(intx,intb) intk=0,r; do r=x%;/* 答案2 */ bk+=r; x/=;/* 答案2 */ while(x);6下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。main() inti,j; for(i=0;i+)/*答案 i=9 */ j=i*10+6; if()countinue;/*答案 j%3!=0 */ printf(%d,j); 7下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。
6、int hcf(intm,intn) intr; if(mn) r=m; ;/* 答案m=n*/ n=r; r=m%n; while() /* 答案r!=0 */ m=n; n=r; r=m%n; ;/* 答案return(n) */8下面程序的功能是使用冒泡法对输入的10个浮点数从小到大进行排序。排好序的10个数分两行输出。程序如下:main() ;/* 答案floata10 */ inti,j; printf(Input10numberspleasen); for(i=0;i+)/* 答案i=9 */ scanf(%f,&ai); printf(n); for(i=2;i+)/* 答案i=
7、8 */ for(j=0;j+) /* 答案jaj+1 */ x=aj; ;/* 答案aj=aj+1 */ aj+1=x; printf(Thesorted10numbers;n); for(i=0;i+)/* 答案i=9 */ if()/* 答案i%5=0 */ printf(n); printf(%ft,ai); printf(n);9下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。main() inti,a20,s,count; s=count=0; for(i=0;i20;i+) scanf(%d,);/* 答案&ai */ for(i=0;i20;i+) if(ai
8、0) ;/* 答案continue */ s+=ai; count+; printf(s=%dtcount=%dn,s,count);10下面程序的功能是删除字符串s中的空格。main() char*s=Beijingligongdaxue; inti,j; for(i=j=0;si!=0;i+) if(si!=);/* 答案sj+=si */ else;/* 答案sj=si */ sj=0; printf(%s,s);11下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#includemain()chars80; inti,j; gets(s); for(i=j=0;si!=0;i
9、+) if(si!=c);/* 答案sj+=si */ sj=0; puts(s);12下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#includecharx=programming;chary=Fortran;main() inti=0; while(xi!=0&yi!=0) if(xi=yi) printf(%c,);/* 答案xi+ */ else i+;13下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中,字符串a已排好序。#includemain() chara20=cehiknqtw; chars=fbla; inti,k,j; for(k=0;sk!
10、=0;k+) j=0; while(sk=aj&aj!=0) j+; for()/* 答案 i=strlen(a);i=j;i- */ ;/* 答案 ai+1=ai */ aj=sk; puts(a);14下面的函数index(chars,chart)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。index(chars,chart) inti,j,k; for(i=0;si!=0;i+) for(j=i,k=0;&sj=tk;j+,k+);/* 答案tk!=0 */ if()/* 答案tk=0 */ return(i); return(-1);15下
11、面程序的功能是计算S=1!+2!+n!。longfun(intn) inti; longs=1; for(i=1;i;i+)/* 答案=n */ s*=i; return();/* 答案s */main() intk,n; longs; scanf(%d,&n); s=;/*答案0 */ for(k=0;k=n;k+) s+=;/* 答案fun(k) */ printf(%ldn,s);16以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。age(intn) intc; if(n=1)c=10; elsec=;/* 答案2+age(
12、n-1) */ return(c);main()intn=5;printf(age:%dn,);/* 答案age(5) */17下面的函数是一个求阶乘的递归调用函数。facto(intn)if(n=1);/* 答案return(1) */elsereturn();/* 答案n*facto(n-1) */18下列函数是求一个字符串str的长度。intstrlen(char*str) if()return(0);/* 答案str=0 */elsereturn();/* 答案1+strlen(str+1) */19函数revstr(s)将字符串s置逆,如输入的实参s为字符串abcde,则返回时s为字
13、符串edcba。递归程序如下:revstr(char*s) char*p=s,c; while(*p)p+; ;/* 答案p-*/ if(sp) c=*s; *s=*p; ;/* 答案*p=0*/ revstr(s+1); ;/* 答案*p=c */ 如下是由非递归实现的revstr(s)函数:revstr(char*s ) char*p=s,c; while(*p)p+; ;/* 答案p- */ while(s2)invent(,n-2);/* 答案str+1 */else;/* 答案return */21下面程序的功能是实现数组元素中值的逆转。main() inti,n=10,a10=1,
14、2,3,4,5,6,7,8,9,10; invert(a,n-1); for(i=0;i10;i+) printf(%4d,ai); printf(n);invert(int*s,intnum) int*t,k; t=s+num; while()/* 答案swp);/*答案 p+*/ for(i=*n;i=p;i-);/*答案 wi+1=wi*/ wp=x; +*n;23下面程序的功能是输入学生的姓名和成绩,然后输出。#includestructstuinf charname20;/*学生姓名*/ intscore;/*学生成绩*/stu,*p;main() p=&stu; printf(En
15、tername:); gets();/*答案 stu.name */ printf(Enterscore:); scanf(%d,);/*答案 &stu.score */ printf(Output:%s,%dn,);/*答案 p-name */ /*答案 p-score */:24下面程序的功能是按学生的姓名查询其成绩排名和平均成绩。查询时可连续进行,直到输入0时才结束。#include#defineNUM4structstudent intrank; char*name; floatscore;stu=3,liming,89.3,4,zhanghua,78.2,1,anli,95.1,2,
16、wangqi,90.6 ;/*答案 structstudent */main() charstr10;inti;do printf(Enteraname);scanf(%s,str);for(i=0;i=NUM)printf(Notfoundn);while(strcmp(str,0)!=0);25下面函数将指针p2所指向的线性链表,串接到p1所指向的链表的末端。假定p1所指向的链表非空。#defineNULL 0structlink floata; structlink*next;concatenate(structlist*p1,structlist*p2) if(p1-next=NULL
17、) p1-next=p2; else concatenate(,p2);/*答案 p1-next */26下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。structstudent longnum; intscore; structstudent*next;structstudent*creat() structstudent*head=NULL,*tail; longnum;inta; tail=malloc(LEN);/*答案 (structstudent*)*/ do scanf(%ld,%d,&num,&a
18、); if(num!=0) if(head=NULL)head=tail; else;/*答案 tail=tail-next */ tail-num=num;tail-score=a; tail-next=(structstudent*)malloc(LEN); elsetail-next=NULL; while(num!=0); return();/*答案 head */27下面程序的功能是统计文件中的字符的个数。#includemain() longnum=0; *fp;/*答案 FILE */ if(fp=fopen(fname.dat,r)=NULL) printf(Cantopenthefile!); exit(0); while()/*答案 !feof(fp)*/ fgetc(fp); num+; printf(num=%dn,num); fclose(fp);专心-专注-专业