1 / 5
文档名称:

《C语言程序设计》课后习题答案第八章.pdf

格式:pdf   大小:375KB   页数:5页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《C语言程序设计》课后习题答案第八章.pdf

上传人:1781111**** 2024/5/11 文件大小:375 KB

下载得到文件列表

《C语言程序设计》课后习题答案第八章.pdf

相关文档

文档介绍

文档介绍:该【《C语言程序设计》课后习题答案第八章 】是由【1781111****】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【《C语言程序设计》课后习题答案第八章 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。,分别求两个证书的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果,两个整数由键盘输入。voidmain(){intMgy(intx,inty);intMgb(intz);inta,b,mgy,mgb;请输入两个数:mgy=Mgy(a,b);mgb=Mgb(a,b,mgy);两个数的最大公约数为%d,最小公倍数为intMgy(intx,inty){intr,temp;if(x<y){temp=x;x=y;y=temp;}while(x%y!=0){r=x%y;x=y;y=r;}returny;}intMgb(intx,inty,intz){return(x*y/z);}+bx+c=0的根,用三个函数分别求当b2-4ac大于零、等于零和小于零时的根,并输出结果。从主函数输入a,b,c的值。#include<>elseif(temp==0)floattemp,k,x1,x2;{Ezero(l,m,n);voidmain(){voidLzero(floata,floatb,floatc);voidSzero(floata,floatb,floatc););}voidEzero(floata,floatb,floatc);else{Lzero(l,m,n);floatl,m,n;请输入三个数:}voidLzero(floata,floatb,floatc)方程的根为:{x1=(-b+k)/(2*a);temp=m*m-4*l*n;x2=(-b-k)/(2*a);}k=sqrt(temp);voidSzero(floata,floatb,floatc)if(temp<0){x1=-b/(2*a);{Szero(l,m,n);x2=sqrt(-temp)/(2*a);}voidEzero(floata,floatb,floatc));}{x1=(-b+k)/(2*a);},在主函数输入一个整数,输出是否是素数的信息。#include<>voidmain(){intIsprime(inta);intm,temp=0;请输入一个数:temp=Isprime(m);不是素数。是素数。intIsprime(inta){inti,k,flag;if(a==0||a==1)flag=0;else{k=sqrt(a);for(i=2;i<=k;i++)if(a%i==0)flag=0;}returnflag;},使给定的一个二维数组(3x3)转置,即行列互换。#defineN3{inta[N][N];for(j=0;j<N;j++)voidmain(){voidexchange(inta[][3]);inti,j;}请输入一个数组:}for(i=0;i<N;i++)voidexchange(inta[][3])for(j=0;j<N;j++){inti,j,temp;for(i=0;i<N;i++)原始数组:for(j=i+1;j<N;j++)for(i=0;i<N;i++){temp=a[i][j];{for(j=0;j<N;j++)a[i][j]=a[j][i];a[j][i]=temp;}exchange(a);}交换后的数组:for(i=0;i<N;i++),使输入的一个字符串按反序存放,在主函数输入和输出字符串。#include<>voidconvert(chara[])voidmain(){chartemp,c;{voidconvert(chara[]);inti,j,len;chara[100];len=strlen(a);请输入一串字符:for(i=0,j=len;i<len/2;i++,j--){temp=a[i];置换前字符串:a[i]=a[j-1];convert(a);a[j-1]=temp;}置换后字符串:},使两个字符串连接。#include<>voidconvert(chara[])voidmain(){{voidconvert(chara[]);chartemp,c;chara[100];inti,j,len;intlen;len=strlen(a);请输入一串字符:for(i=0,j=len;i<len/2;i++,j--)此语句遇到空格自{temp=a[i];动去掉后面字符*/a[i]=a[j-1];gets(a);/*包含空格的置换*/a[j-1]=temp;置换前字符串:}len=strlen(a);}convert(a);字符串长度为:置换后字符串:},将一个字符串中的元音字母复制到另一字符串,然后输出。#include<>voidvowel(charstr1[],charstr2[])voidmain(){inti,j;{voidvowel(charstr1[],charstr2[]);for(i=0,j=0;i<strlen(str1);i++)charstr1[81];if(str1[i]=='a'||str1[i]=='e'charstr2[81];||str1[i]=='i'||str1[i]=='o'inti,j,len;||str1[i]=='u'||str1[i]=='A'请输入一串字符:||str1[i]=='E'||str1[i]=='I'gets(str1);||str1[i]=='O'||str1[i]=='U')len=strlen(str1);{str2[j]=str1[i];输入字符为:j++;输入字符长度为:}vowel(str1,str2);输出字符为:}元音字母共有:,strlen(str2));},输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空格,如输入1990,应输出“1990”.#include<>voidinsert(charnum[])voidmain(){inti;{charnum[80];for(i=strlen(num);i>0;i--)//一定要从voidinsert(charnum[]);后往前{num[2*i]=num[i];请输入一个四位数:num[2*i-1]='';}insert(num);输出操作后的结果:}},由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。#include<>voidcount(charstr[])inti,let,num,spa,other;{charc;voidmain(){voidcount(charstr[]);{if((str[i]>='a'&&str[i]<='z')charstr[80];||(str[i]>='A'&&str[i]<='Z'))请输入一串字符:let++;elseif(str[i]>='0'&&str[i]<='9')gets(str);num++;输入的字符:elseif(str[i]='')let=0;num=0;spa=0;other=0;spa++;count(str);elseother++;总共有%d个字母,%d个数字},%d个空格,%d个其他字符}let,num,spa,other);},用“起泡法”对输入的十个字符按由小到大的顺序排列。#include<>voidsort(charstr[])#defineN10{inti,j,len;voidmain()chartemp;{len=strlen(str);voidsort(charstr[]);for(j=1;j<10;j++)charstr[80];请输入十个字符:{if(str[i]>str[i+1]){temp=str[i];sort(str);str[i]=str[i+1];排序后的字符序列str[i+1]=temp;为:}}}},计算该日是该年的第N天#include<>intdayofyear(intyear,intmonth,intvoidmain()day){intdayofyear(intyear,intmonth,intday);{inti,leap;intyear,month,day,date;intstr[13]={0,31,28,31,30,31请输入年,月,日:,30,31,31,30,31,30,31};for(i=0;i<month;i++)date=dayofyear(year,month,day);day+=str[i];今天是今年的第%d天:if((year%4==0&&year%100!=0)||year%400==0)leap=1;}elseleap=0;if(month>=3&&leap==1)day+=1;returnday;},输入一行字符,将此字符串中最长的单词输出。voidmain(){intword(charc);intlongest(charstr[]);inti;charstr[80];输入一行字符串gets(str);最长的单词为:for(i=longest(str);word(str[i]);i++)intword(charc){if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return1;elsereturn0;}intlongest(charstr[]){inti,flag=1,len=0,point,max_len=0,max_point;for(i=0;i<=strlen(str);i++)//遍历字符{if(word(str[i]))//判断是否为英文{if(flag==1)//单词第一个找到后改变标志{point=i;flag=0;}elselen++;//开始对这个单词长度进行累加}else//非英文字母{flag=1;//等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)if(len>max_len)//将单词长度保存下来{max_len=len;//将最长单词的第一个英文字母在字符串中的位置保存下来max_point=point;}len=0;}}return(max_point);}