華中科技大學標準C語言程序設計及應用習題答案_第1頁
華中科技大學標準C語言程序設計及應用習題答案_第2頁
華中科技大學標準C語言程序設計及應用習題答案_第3頁
華中科技大學標準C語言程序設計及應用習題答案_第4頁
華中科技大學標準C語言程序設計及應用習題答案_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

年4月19日華中科技大學標準C語言程序設計及應用習題答案文檔僅供參考,不當之處,請聯(lián)系改正。第二章一.選擇題1.C2.BD3.A4.A5.D6.C7.D8.C9.A10.D11.B12.D13.C14.D15.A16.B17.A18.B100011001111二.判斷題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第三章一.填空題1.s=62.963.(1)scanf("%c",&c);(2)c-32更好的答案:c-('a'-'A')2.1main(){inta,b;printf("pleaseinputa&b:");scanf("%d%d",&a,&b);printf("\nmaxis%d\n",(a>b)?a:b);}2.2intmax(intx,inty);main(){inta,b,c,max;printf("pleaseinputa&b&c:");scanf("%d%d%d",&a,&b,&c);max=a>b?a:b;max=c>max?c:max;printf("\nmaxis%d\n",max);}2.3main(){inti=0,sum=0;while(i<=100){sum+=i;i++;}printf("1+2+3++100=%d\n",sum);}2.4main(){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");}2.5main(){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);}}2.6#include<stdio.h>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);}2.7#include<stdio.h>main(){floatx,y;printf("pleaseinputx:");scanf("%f",&x);if(x<1.0)y=x;elseif(x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}2.8#include<stdio.h>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);}}2.9#include<stdio.h>#include<time.h>#include<stdlib.h>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!");}2.10#include<stdio.h>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");}2.11#include<stdio.h>main(){inti;inta,b;printf("pleaseinputa,b:");scanf("%d%d",&a,&b);for(i=a<b?a:b;i>0;i--){if(a%i==0&&b%i==0){printf("Themax=%d",i);break;}}for(i=a>b?a:b;i>0;i++){if(i%a==0&&i%b==0){printf("\nThemin=%d",i);break;}}2.12#include<stdio.h>main(){inta,k=0;printf("pleaseinputdata:");scanf("%d",&a);while(a%2==0){a=a/2;k++;}printf("\nthenumberoffactor(2)is%d",k);}2.13main(){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);}2.14#include<stdio.h>voidmain(){inti,x=0;for(i=9;i>=1;i--){x=2*(x+1);}printf("Thefirstday:%d",x);}2.15#include<stdio.h>#definePI3.141593main(){floatr,h;floatv;printf("pleaseinputr,h:");scanf("%f%f",&r,&h);v=1.0/3*PI*r*r*h;printf("V=%.2f",v);}2.16#include<stdio.h>#include<math.h>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);}2.17#include<stdio.h>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;}}2.18#include<stdio.h>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);}2.19#include<stdio.h>#include<math.h>main(){floata,x1,x2;printf("inputa:");scanf("%f",&a);x1=1.0;while(1){x2=1.0/2*(x1+a/x1);if(fabs(x2-x1)<1e-5)break;x1=x2;}printf("sqrt(a)=%f",x2);}第四章寫出下列程序輸出結果1.no1a=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第五章1.D 2.D 3.C 4.6 5.CDABC6.(1)j+=2(2)a[i]<a[j]7.(1)s[i++]!='\0'(2)s[i-1]8.D9.B10.6(同題4)11.s[i]>='0'&&s[i]<='9'12.(1)'\0'(2)str1[i]-str2[i]5.1#include<stdio.h>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();}5.2#include<stdio.h>voidmain(void){floatNum[10];floatInput,GetNum[11];inti,j;floata=6;for(i=0;i<10;i++){Num[i]=a;a=a+7.5;}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("%3.3f",GetNum[j]);}5.3#include"stdio.h"#include"stdlib.h"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; } } }}5.4#include<stdio.h>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);}5.5#include<stdio.h>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);}5.6#include<stdio.h>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);}5.7#include<stdio.h>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");}5.8#include<stdio.h>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]);}}5.9#include<stdio.h>#include<math.h>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);}5.10#include<stdio.h>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);}第六章選擇題1.D :p中記錄的是a的地址,*p訪問地址a的值2.D :指針數(shù)組3.D:指針能夠進行是否相等判斷,空指針能夠進行指針變量初始化,指針能夠偏移;4.C:5.C、D:a[5]不存在,若*&a[4]則正確;C,D正確;6.D:7.B:8.B:填空題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);}2.3#include<stdio.h>#include<string.h>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);}4.1#include<stdio.h>#include<string.h>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);}4.2#include<stdio.h>#include<string.h>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");}4.3#include<stdio.h>#include<string.h>#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);}4.4#include<stdio.h>#include<string.h>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]);}4.5#include<stdio.h>#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);}4.6#include<stdio.h>#include<string.h>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]);}4.7#include<stdio.h>#include<string.h>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.A 2.D 3.B 4.D 5.C 6.A 7.B二.程序填空題1.(1)a[k](2)a[k](3)a[k]2.(1)a[i](2)j(3)i+1或6三.改錯題1.#include<stdio.h>#include<string.h>voidswap(char*,char*); /*此處有錯誤,函數(shù)聲明時要加分號*/main(){chara[80],b[80],c[80];scanf("%s%s%s",a,b,c); /*此處有錯誤,a,b,c分別為數(shù)組a[80],b[8],c[80]的首地址*/if(strcmp(a,b)>0)swap(a,b); /*此處有錯誤,字符串比較應該使用strcmp函數(shù)*/if(strcmp(b,c)>0)swap(b,c); /*此處有錯誤,原因同上*/if(strcmp(a,b)>0)swap(a,b); /*原算法不能實現(xiàn)排序,需要添加此語句*/printf("%s\n%s\n%s\n",a,b,c);}7.3.1#include<stdio.h>#include<string.h>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);}7.4.1#include<stdio.h>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;}7.4.2#include<stdio.h>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;}7.4.4#include<stdio.h>#include<string.h>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++;}}7.4.5#include<stdio.h>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);elseprintf("%disnotashushu\n",a);}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論