华中科技大学标准C语言程序设计及应用习题答案_第1页
华中科技大学标准C语言程序设计及应用习题答案_第2页
华中科技大学标准C语言程序设计及应用习题答案_第3页
华中科技大学标准C语言程序设计及应用习题答案_第4页
华中科技大学标准C语言程序设计及应用习题答案_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学标准C语言程序设计及应用习题答案华中科技大学标准C语言程序设计及应用习题答案华中科技大学标准C语言程序设计及应用习题答案资料仅供参考文件编号:2022年4月华中科技大学标准C语言程序设计及应用习题答案版本号:A修改号:1页次:1.0审核:批准:发布日期:第二章一.选择题D5.D100011001111二.判断题1.错2.错3.错4.错三.填空题1.B662.n1=%d\nn2=%d\n3.0四.计算1x|y=0x002fx^y=0x0026x&y=0x0009;~x+~y=0xffc6x<<=30x0068y>>=40x000226501–1612030114814120127162427–295011–32五.程序分析题程序1b=20a=3600程序2第三章一.填空题=63.(1)scanf("%c",&c);(2)c-32更好的答案:c-('a'-'A')main(){inta,b;printf("pleaseinputa&b:");scanf("%d%d",&a,&b);printf("\nmaxis%d\n",(a>b)a:b);}intmax(intx,inty);main(){inta,b,c,max;printf("pleaseinputa&b&c:");scanf("%d%d%d",&a,&b,&c);max=a>ba:b;max=c>maxc:max;printf("\nmaxis%d\n",max);}main(){inti=0,sum=0;while(i<=100){sum+=i;i++;}printf("1+2+3+......+100=%d\n",sum);}main(){inti;inta=10,b=-3;intc;printf("%6d%6d",a,b);for(i=2;i<10;i++){c=3*b+a;printf("%6d",c);a=b;b=c;}printf("\n");}main(){inti;while(1){printf("pleaseinputadata(0:exit):");scanf("%d",&i);if(i==0)break;if(i%2==0)printf("thedata%disaevennumber.\n",i);elseprintf("thedata%disaoddnumber.\n",i);}}#include<>main(){inti;inta=8,b=1;intsum=0;for(i=0;i<10;i++){b+=3;sum+=a;a+=b;printf("a%8db:%8d\n",a,b);}printf("TheSumOfIs:%d\n",sum);}#include<>main(){floatx,y;printf("pleaseinputx:");scanf("%f",&x);if(x<y=x;elseif(x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}#include<>main(){longa,i,b,a1;while(1){printf("pleaseinputdata(1-99999):");scanf("%ld",&a);printf("a:%ld\n",a);if(a<=0||a>=100000)break;i=0;a1=0;while(a!=0){b=a%10;printf("%8d",b);a/=10;i++;a1=a1*10+b;}printf("\ni:%lda1:%ld\n",i,a1);}}#include<>#include<>#include<>main(){inta,b,i,k=0;randomize();a=random(1001);/*createarandomdata(0-1000)*/for(i=0;i<20;i++){printf("pleaseguessanumber:");scanf("%d",&b);if(a>b){k++;printf("\n%d:Smaller,guessagain!\n",k);}elseif(a<b){k++;printf("\n%d:Bigger,guessagain!\n",k);}else{printf("\nYouguessright,congraturation!");printf("\nYouhaveguessed%dtimes",k);break;}}if(k==20)printf("\nsorry,youfailed!");}#include<>main(){inta,b,c;intnum;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=1;c<10;c++){ num=a*100+b*10+c; if((num%3==0)&&(a==5||b==5||c==5)) printf("%8d",num);}}}printf("\n\n\n");}#include<>main(){inti;inta,b;printf("pleaseinputa,b:");scanf("%d%d",&a,&b);for(i=a<ba:b;i>0;i--){if(a%i==0&&b%i==0){printf("Themax=%d",i);break;}}for(i=a>ba:b;i>0;i++){if(i%a==0&&i%b==0){printf("\nThemin=%d",i);break;}}#include<>main(){inta,k=0;printf("pleaseinputdata:");scanf("%d",&a);while(a%2==0){a=a/2;k++;}printf("\nthenumberoffactor(2)is%d",k);}main(){longi,t=1;longsum=0;for(i=1;i<=10;i++){t*=i;sum+=t;printf("%ld!=%ld\n",i,t);}printf("sum:%ld\n",sum);}#include<>voidmain(){inti,x=0;for(i=9;i>=1;i--){x=2*(x+1);}printf("Thefirstday:%d",x);}#include<>#definePImain(){floatr,h;floatv;printf("pleaseinputr,h:");scanf("%f%f",&r,&h);v=3*PI*r*r*h;printf("V=%.2f",v);}#include<>#include<>main(){longintsn=0;longintm=0,t=0;inta,n,i;printf("pleaseinputan:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){m=m*10+a;sn+=m;}printf("a+aa+aaa+...+aa...a=%ld\n\n",sn);}#include<>main(){intk;printf("pleaseinputk:");do{scanf("%d",&k);if(k>=0&&k<=6)break;}while(1);switch(k){case0:printf("Sunday.\n");break;case1:printf("Monday.\n");break;case2:printf("Tuesday.\n");break;case3:printf("Wednesday.\n");break;case4:printf("Thursday.\n");break;case5:printf("Friday.\n");break;case6:printf("Saturday.\n");break;}}#include<>main(){inti;doublex,a,b=1,sum=1;printf("pleaseinputx:");scanf("%lf",&x);a=x;for(i=1;a/b>=1e-6;i++){sum=sum+a/b;a=a*x;b=(i+1)*b;}printf("\nsum=%lf",sum);}#include<>#include<>main(){floata,x1,x2;printf("inputa:");scanf("%f",&a);x1=;while(1){x2=2*(x1+a/x1);if(fabs(x2-x1)<1e-5)break;x1=x2;}printf("sqrt(a)=%f",x2);}第四章写出下列程序输出结果1a=1no1a=0no1a=1no1a=02.a=0b=0c=0a=1b=0c=0a=2b=0c=03.main:x=5,y=1,n=1func:x=6,y=21,n=11main:x=5,y=1,n=11func:x=8,y=31,n=21第五章 6.(1)j+=2(2)a[i]<a[j]7.(1)s[i++]!='\0'(2)s[i-1](同题4)[i]>='0'&&s[i]<='9'12.(1)'\0'(2)str1[i]-str2[i]#include<>intfun();intfun(){inta[3][3],sum;inti,j;sum=0;/*error*/for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d",&a[i][j]);/*error*/}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%d\n",sum);}voidmain(){fun();}#include<>voidmain(void){floatNum[10];floatInput,GetNum[11];inti,j;floata=6;for(i=0;i<10;i++){Num[i]=a;a=a+;}Loop1:printf("PleaseinputaNumber(0-80)Input=");scanf("%f",&Input);if((Input<0)||(Input>70)==1)gotoLoop1;for(i=0;i<10;i++){ if(Input<Num[i]) gotoLoop2;}Loop2:for(j=0;j<i;j++) GetNum[j]=Num[j];GetNum[j]=Input;for(j=i;j<=10;j++,i++)GetNum[j+1]=Num[i];for(j=0;j<11;j++)printf("%",GetNum[j]);}#include""#include""main(){ inta1,a2,a3,a4,a5,a6,a7,a8,a9; inta[3]; inti; for(;;) { for(i=0;i<3;i++) { a[i]=rand()%3; } while((a[0]!=a[1])&&(a[0]!=a[2])&&(a[1]!=a[2]))/*getthreedifferentnumbers0,1,2*/ { a1=a[0]+1;/*divide1~9intothreegroups,a1~a3,a4~a6,a7~a9*/ a2=a[1]+1; a3=a[2]+1; a4=a1+3; a5=a2+3; a6=a3+3; a7=a1+6; a8=a2+6; a9=a3+6; /*makesurethateachlineandeachrowismadeupwiththreemembersindifferentgroup.*/ /*suchas:a9a1a5 a2a6a7 a4a8a3*/ if(((a1+a5+a9)==(a2+a6+a7))&&((a1+a5+a9)==(a3+a4+a8)) &&((a1+a6+a8)==(a5+a7+a3))&&((a1+a5+a9)==(a2+a4+a9))) { printf("%d%d%d\n%d%d%d\n%d%d%d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3); return; } } }}#include<>voidmain(void){ charinput1[100],input2[100],input3[100]; inti,Eng=0,eng=0,num=0,blank=0,other=0; printf("Input3rowsofcharacter,eachrowdon'texceed80characters:\n"); gets(input1);printf("Thesecondrow:\n"); gets(input2);printf("Thethirdrow:\n"); gets(input3);/*testthefirstrow*/ for(i=0;i<100;i++) { if(input1[i]=='\0') gotoLoop1; elseif(('A'<=input1[i])&&(input1[i]<='Z')==1) Eng++; elseif(('a'<=input1[i])&&(input1[i]<='z')==1) eng++;elseif(('0'<=input1[i])&&(input1[i]<='9')==1) num++; elseif(input1[i]==32) blank++;elseother++; }/*testthesecondrow*/Loop1: for(i=0;i<100;i++) { if(input2[i]=='\0') gotoLoop2; elseif(('A'<=input2[i])&&(input2[i]<='Z')==1) Eng++; elseif(('a'<=input2[i])&&(input2[i]<='z')==1) eng++;elseif(('0'<=input2[i])&&(input2[i]<='9')==1) num++; elseif(input2[i]==32) blank++;elseother++; }/*testthethirdrow*/Loop2: for(i=0;i<100;i++) { if(input3[i]=='\0') gotoLoop3; elseif(('A'<=input3[i])&&(input3[i]<='Z')==1) Eng++; elseif(('a'<=input3[i])&&(input3[i]<='z')==1) eng++;elseif(('0'<=input3[i])&&(input3[i]<='9')==1) num++; elseif(input3[i]==32) blank++;elseother++; }Loop3:printf("Upperenglishcharacter:%d\nLowerenglishcharacter:%d\nNumber:%d\nBlank:%d\nOthercharacters:%d\n",Eng,eng,num,blank,other);}#include<>voidmain(void){ charstr1[80],str2[40]; inti,j,k;/*Inputtwostring*/ printf("Pleaseinputthefirststring\nstr1="); gets(str1); printf("Pleaseinputthesecondstring\nstr2="); gets(str2);/*Gettheendofstr1*/ for(i=0;i<80;i++) { if(str1[i]=='\0') break; }/*Copystr2tostr1*/for(j=i,k=0;str2[k]!='\0';k++,j++) str1[j]=str2[k];str1[i+k]='\0';puts(str1);}#include<>structstudent{charname[20];intscore;}stu[5],stu1;voidmain(void){inti,j; printf("Inputstudent'sscoreandname(5),seperateusingthecharacterof',':\n"); for(i=0;i<5;i++) scanf("%d,%s",&stu[i].score,&stu[i].name);/*sorting*/ for(i=0;i<5;i++) for(j=0;j<4-i;j++) if(stu[j].score>stu[j+1].score) {stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;} printf("Aftersotred,scoreandname:\n"); for(i=0;i<5;i++) printf("%d,%s\n",stu[i].score,stu[i].name);}#include<>main(){inta[3][3],i,j,m,n,o,p;printf("Pleaseinputa3*3shuzu:\n");for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);for(i=0;i<=2;i++){m=(a[i][0]>a[i][1])a[i][0]:a[i][1];n=(m>a[i][2])m:a[i][2];}for(j=0;j<=2;j++){o=(a[0][j]<a[1][j])a[0][j]:a[1][j];p=(o<a[2][j])o:a[2][j];}if(n==p)printf("Andianis%d\\n",p);elseprintf("Thereisnoandian.\\n");}#include<>voidmain(void){inta[4][3],b[3][4],i,j;for(i=0;i<4;i++) {for(j=0;j<3;j++) scanf("%d",&a[i][j]);}for(i=0;i<4;i++){ printf("\n"); for(j=0;j<3;j++) printf("%5d",a[i][j]);}for(i=0;i<4;i++) {for(j=0;j<3;j++) b[j][i]=a[i][j];}printf("\n");for(i=0;i<3;i++){ printf("\n"); for(j=0;j<4;j++) printf("%5d",b[i][j]);}}#include<>#include<>voidmain(void){charstr[6];inti,j=0,m=0,n=0;gets(str);while(str[j]!='\0')j++;for(i=j-1;i>=0;i--){m=(str[i]-'0')*(pow(8,j-i-1));n+=m;}printf("shijinzhi%d",n);}#include<>voidmain(void){ charinput1[100]; inti,num=0,blank=0; printf("Pleaseinputarowcharacter:\n"); gets(input1);/*testthefirstrow*/ for(i=0;i<100;i++) { if(input1[i]=='\0') gotoLoop; elseif(('A'<=input1[i])&&(input1[i]<='Z')==1) num++; elseif(('a'<=input1[i])&&(input1[i]<='z')==1) num++; elseif(input1[i]==32) blank++; }Loop:printf("Character:%d\nBlank:%d\n",num,blank);}第六章选择题 :p中记录的是a的地址,*p访问地址a的值 :指针数组:指针可以进行是否相等判断,空指针可以进行指针变量初始化,指针可以偏移;:、D:a[5]不存在,若*&a[4]则正确;C,D正确;:::填空题1.*(p+3) 2 22cdefgbcdefgabcdefg76385程序分析题1.p=s[0];错误,应改为:p=s;或p=&s[0];2.intx,*p;错误,应改为:doublex,*p;3.*p=x;错误,应改为:p=&x;声明顺序错误;应该改为:voidmain(void){inta;int*p=&a;a=10;printf(“%d\n”,*p);}#include<>#include<>main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}#include<>#include<>main(){intcount=0;charstr1[100],str2[100];char*p1,*p2;printf("pleaseenterstring1:");gets(str1);printf("pleaseenterstring2:");gets(str2);printf("str1:%s\n",str1);printf("str2:%s\n",str2);p1=str1;p2=str2;while(*p1!='\0'&&*p2!='\0'){if(*p1++==*p2++)count++;}printf("count:%d\n",count);}#include<>#include<>main(){inti,j,k;inta[3];inttemp;printf("pleaseenterarraya[3]:");scanf("%d%d%d",&a[0],&a[1],&a[2]);for(i=0;i<2;i++){k=i;for(j=i+1;j<3;j++){if(a[j]<a[i]) k=j;}if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}}for(i=0;i<3;i++)printf("%d\t",a[i]);printf("\n");}#include<>#include<>#defineN100main(){chars1[N],s2[N],*p;intm;printf("pleaseenterstring1:");gets(s1);p=s1;printf("enterm:");scanf("%d",&m);strcpy(s2,p+m);printf("string2:%s\n",s2);}#include<>#include<>main(){chars[100]="iuiui012asdd90k890y098kkkk1234",*p;chardata[100][100]={{0}};intcount=0;inti;p=s;/*printf("pleaseenterastring:");gets(p);*/printf("sssss:%s\n",s);while(*p!='\0'){i=0;while(*p>='0'&&*p<='9'){data[count][i]=*p;i++;p++;}if(i!=0)count++;p++;}printf("count:%d\n",count);for(i=0;i<count;i++)printf("%s\n",data[i]);}#include<>#defineSIZE4main(){intdata[SIZE][SIZE],i,j,d;intmax,m=0,n=0;for(i=0;i<SIZE;i++){for(j=0;j<SIZE;j++){scanf("%d",&data[i][j]);}}for(i=0;i<SIZE;i++){for(j=i+1;j<SIZE;j++){d=data[i][j];data[i][j]=data[j][i];data[j][i]=d;}}max=data[0][0];for(i=0;i<SIZE;i++){printf("\n");for(j=0;j<SIZE;j++){printf("%4d",data[i][j]);if(data[i][j]>=max){ max=data[i][j]; m=i; n=j;}}}printf("\nmax:%4dm:%dn:%d\n",max,m,n);}#include<>#include<>main(){char*p[]={"test","capital","index","large","small"};char**pstr=p;inta,b,n=5;char*temp;for(a=0;a<n-1;a++){for(b=a+1;b<n;b++){if(strcmp(pstr[a],pstr[b])>0){ temp=pstr[a]; pstr[a]=pstr[b]; pstr[b]=temp;}}}for(a=0;a<n;a++)printf("%s\n",pstr[a]);}#include<>#include<>main(){chars[100],temp;char*p=s;inti,length;printf("pleaseenterastring:");gets(s);while(*p++!='\0');length=p-s-1;printf("stringlength:%d\n",length);for(i=0;i<length/2;i++){temp=s[i];s[i]=s[length-i-1];s[length-i-1]=temp;}printf("%s\n",s);}第七章一,选择题 二.程序填空题1.(1)a[k](2)a[k](3)a[k]2.(1)a[i](2)j(3)i+1或6三.改错题1.#include<>#include<>voidswap(char*,char*); /*此处有错误,函数声明时要加分号*/main(){chara[80],b[80],c[80];scanf("%s%s%s",a,b,c); /*此处有错误,a,b,c分别为数组a[80],b[8],c[80]的首地址*/if(strcmp(a,b)>0)swap(a,b); /*此处有错误,字符串比较应该使用strcmp函数*/if(strcmp(b,c)>0)swap(b,c); /*此处有错误,原因同上*/if(strcmp(a,b)>0)swap(a,b); /*原算法不能实现排序,需要添加此语句*/printf("%s\n%s\n%s\n",a,b,c);}<>#include<>voidswap(char*pstr1,char*pstr2){charp[80];strcpy(p,pstr1);strcpy(pstr1,pstr2);strcpy(pstr2,p);}main(){chara[80]="ccc",b[80]="bbb",c[80]="aaa";/*scanf("%s%s%s",a,b,c);*/if(strcmp(a,b)>0)swap(a,b);if(strcmp(b,c)>0)swap(b,c);if(strcmp(a,b)>0)swap(a,b);printf("%s\n%s\n%s\n\n\n",a,b,c);}<>intSquSum(int,int);main(){inta,b;intc;printf("enter2integer:");scanf("%d%d",&a,&b);c=SquSum(a,b);printf("a=%db:%da2+b2=%d\n",a,b,c);}intSquSum(intx,inty){intz;z=x*x+y*y;returnz;}<>intGongYueShu(int,int);intGongBeiShu(int,int);main(){inta,b;intgbs,gys;printf("enter2integer:");scanf("%d%d",&a,&b);gys=GongYueShu(a,b);gbs=GongBeiShu(a,b);if(gys<0)printf("Therehasnotgongyueshu!!!!!!\n");elseprintf("maxgongyueshu:%d\n",gys);printf("mingongbeishu:%d\n",gbs);}intGongYueShu(intx,inty){inti,gys=-1,min;min=x;if(x>y)min=y;for(i=2;i<=min;i++){if((x%i==0)&&(y%i==0))gys=i;}returngys;}intGongBeiShu(intx,inty){inti,gbs,max;max=x;if(y>x)max=y;for(i=max;i<=x*y;i++){if((i%x==0)&&(i%y==0)){gbs=i;break;}}returngbs;}<>#include<>voidDelete_Ch(char*,char);main(){charstr[80],ch;printf("pleaseastring:");gets(str);printf("pleaseachar:");scanf("%c",&ch);Delete_Ch(str,ch);printf("%s\n\n",str);}voidDelete_Ch(char*p,charch){while(*p){if(*p==ch){strcpy(p,p+1);}elsep++;}}<>intIs_ShuShu(int);/*return0:shushu return-1:noshushu*/main(){inta,ret;printf("plsenterainteger:");scanf("%d",&a);ret=Is_ShuShu(a);if(ret==0)printf("%disashushu!!!\n",a);

温馨提示

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

评论

0/150

提交评论