C语言程序填空题.docx
- 文档编号:24118114
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:15
- 大小:32.35KB
C语言程序填空题.docx
《C语言程序填空题.docx》由会员分享,可在线阅读,更多相关《C语言程序填空题.docx(15页珍藏版)》请在冰豆网上搜索。
C语言程序填空题
导读:
在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。
这类习题的设计就是要引导读者逐步掌握编程的方法。
本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。
在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。
【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。
#include
【3.2】下面程序的功能是根据近似公式:
π2/6≈1/12+1/22+1/32+……+1/n2,求π值。
#include
findmin(int*s,intt,int*k){intp;for(p=0,*k=p;p main(){inti,t=1,s=0;for(i=1;i<=101;i+=2){①;s=s+t;②;}printf("%d\n",s);}【3.5】有以下程序段: s=1.0;for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("%f\n",s);填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0;①;k=0;do{s=s+d;②;d=1.0/(k*(k+1));}while(③);printf("%f\n",s);【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while(①){if(x>amax)amax=x;if(②)amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}【3.7】下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。 fun(intx,intb[]){intk=0,r;do{r=x%①;b[k++]=r;x/=②;}while(x);}【3.8】下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。 例如数字26,数位上数字的乘积12大于数字之和8。 main(){intn,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;①;while(②){k*=m%10;s+=m%10;③;}if(k>s)printf("%d",n);}}【3.9】下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。 main(){inti,j,k,count=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if(①)continue;elsefor(k=0;k<=9;k++)if(②)count++;printf("%d",count);}【3.10】下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。 main(){inti,j;for(i=0;①;i++){j=i*10+6;if(②)countinue;printf("%d",j);}}【3.11】下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。 hcf(intm,intn){intr;if(m 排好序的10个数分两行输出。 程序如下: #include #include"stdio.h"main(){inti,a[20],s,count;s=count=0;for(i=0;i<20;i++)scanf("%d",①);for(i=0;i<20;i++){if(a[i]<0)②;s+=a[i];count++;}printf("s=%d\tcount=%d\n",s,count);}【3.14】下面程序的功能是删除字符串s中的空格。 #include ='\0';i++)if(s[i]! ='')①;else②;s[j]='\0';printf("%s",s);}【3.15】下面程序的功能是将字符串s中所有的字符'c'删除。 请选择填空。 #include ='\0';i++)if(s[i]! ='c')①;s[j]='\0';puts(s);} 【3.16】下面程序的功能是输出两个字符串中对应相等的字符。 请选择填空。 #include ='\0'&&y[i]! ='\0')if(x[i]==y[i])printf("%c",①);elsei++;}【3.17】下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中,字符串a已排好序。 #include ='\0';k++){j=0;while(s[k]>=a[j]&&a[j]! ='\0')j++;for(①)②;a[j]=s[k];}puts(a);}【3.18】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。 例如: 输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。 #include ");gets(str1);printf("Enterstring2: ");gets(str2);i=0;while((str1[i]==str2[i]&&str1[i]! =①))i++;s=②;printf("%d\n",s);}【3.19】下面的函数expand在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符。 expand(chars[],chart[]){inti,j;for(i=j=0;s[i]! ='\0';i++)switch(s[i]){case'\n': t[①]=②;t[j++]='n';break;case'\t': t[③]=④;t[j++]='t';break;default: t[⑤]=s[i];break;}t[j]=⑥;}【3.20】下面的函数index(chars[],chart[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。 index(chars[],chart[]){inti,j,k;for(i=0;s[i]! ='\0';i++){for(j=i,k=0;①&&s[j]==t[k];j++,k++);if(②)return(i);}return(-1);}n【3.21】下面程序的功能是计算S=k! 。 k=0longfun(intn){inti;longs;for(i=1;i①;i++)s*=i;return(②);}main(){intk,n;longs;scanf("%d",&n);s=③;for(k=0;k<=n;k++)s+=④;printf("%ld\n",s);}【3.22】下面程序的功能是显示具有n个元素的数组s中的最大元素。 #defineN20main(){inti,a[N];for(i=0;i nx和ny的末3位数字相同,且x≠y,x、y、n均为自然数,并使x+y为最小。 #include 求平方根的迭代公式如下: #include ");scanf("%lf",&x);printf("Thesqrtof%lf=%lf\n",x,mysqrt(x,1.0));} 【3.25】以下程序是计算学生的年龄。 已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。 #include %d\n",②);}【3.26】下面的函数sum(intn)完成计算1~n的累加和。 sum(intn){if(n<=0)printf("dataerror\n");if(n==1)①;else②;}【3.27】下面的函数是一个求阶乘的递归调用函数。 facto(intn){if(n==1)①;elsereturn(②);}【3.28】组合问题,由组合的基本性质可知: (1)C(m,n)=C(n-m,n) (2)C(m,n+1)=C(m,n)+C(m-1,n)公式 (2)是一个递归公式,一直到满足C(1,n)=n为止。 当n<2*m时,可先用公式 (1)进行简化,填写程序中的空白,使程序可以正确运行。 #include"stdio.h"main(){intm,n;printf("Inputm,n=");scanf("%d%d",&m,&n);printf("Thecombinationnumbeersis%d\n",combin(m,n));}combin(intm,intn){intcom;if(n<2*m)m=n-m;if(m==0)com=1;elseif(m==1)①;else②;return(com);}【3.29】下列函数是求一个字符串str的长度。 intstrlen(char*str){if(①)return(0);elsereturn(②);}【3.30】用递归实现将输入小于32768的整数按逆序输出。 如输入12345,则输出54321。 #include"stdio.h"main(){intn;printf("Inputn: ");scanf("%d",①);r(n);printf("\n");}r(intm){printf("%d",②);m=③;if(④)⑤;} 【3.31】输入n值,输出高度为n的等边三角形。 例如当n=4时的图形如下: ****************#include doubley(doublex,intn){if(n==0)return(0);elsereturn(sqrt(x+(①)));}【3.33】函数revstr(s)将字符串s置逆,如输入的实参s为字符串"abcde",则返回时s为字符串"edcba"。 递归程序如下: revstr(char*s){char*p=s,c;while(*p)p++;①;if(s revstr(s)char*s;{char*p=s,c;while(*p)p++;④;while(s voidinvent(char*str,intn){chart;t=*str;*str=*(str+n-1);*(str+n-1)=t;if(n>2)invent(①,n-2);else②;}【3.35】从键盘上输入10个整数,程序按降序完成从大到小的排序。 #include \n");for(i=0;i<10;i++)scanf("%d",&array[i]);sort(⑤);printf("Output: ");for(i=0;i<10;i++)printf("%d",array[i]);}【3.36】下面函数的功能是将一个整数存放到一个数组中。 存放时按逆序存放。 例如: 483存放成"384"。 #include =0)convert(①,i);*a=②;}charstr[10]="";main(){intnumber;scanf("%d",&number);convert(str,number);puts(str);}【3.37】下面程序的功能是实现数组元素中值的逆转。 #include #include 从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。 #include voidfun(char*w,charx,int*n){inti,p=0;while(x>w[p])①;for(i=*n;i>=p;i--)②;w[p]=x;++*n;}【3.41】下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。 #include ='\0'①*b! ='\0'){t=②? *a++: *b<*a? *b++: (③);/*将*a、*b的小者存入t*/if(*w④'\0')*w=t;elseif(t⑤*w)*++w=t;/*将与*w不相同的t存入w*/}while(*a! ='\0')/*以下将a或b中剩下的字符存入w*/if(*a! =*w)*++w=*a++;elsea++;while(*b! ='\0')if(*b! =*w)*++w=*b++;elseb++;*++w=⑥;}strsort(char*s)/*将字符串s中的字符排序*/{inti,j,n;chart,*w;⑦;for(n=0;*w! ='\0';⑧)w++;for(i=0;i ");scanf("%s",s1);printf("\nPleaseInputSecondString: ");scanf("%s",s2);strsort(s1);strsort(s2);⑩='\0';strmerge(s1,s2,s3);printf("\nResult: %s",s3);}【3.42】已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下列规则生成: ①若乘积为一位数,则该乘积即为数列的后继项;②若乘积为二位数,则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。 下面的程序输出该数列的前N项及它们的和,其中,函数sum(n,pa)返回数列的前N项和,并将生成的前N项存入首指针为pa的数组中,程序中规定输入的N值必须大于2,且不超过给定的常数值MAXNUM。 例如: 若输入N的值为10,则程序输出如下内容: sum(10)=442361886424#include"stdio.h"#defineMAXNUM100intsum(n,pa)intn,*pa;{intcount,total,temp;*pa=2;①=3;total=5;count=2;while(count++ (2 ",MAXNUM+1);scanf("%d",&n);}while(⑤);printf("\nsum(%d)=%d\n",n,sum(n,num));for(p=num,q=⑥;p #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 填空
![提示](https://static.bdocx.com/images/bang_tan.gif)