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

下載本文檔

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

文檔簡介

1、.第二章一.選擇題1.c 2.b d 3.a 4.a 5. d 6.c 7.d 8.c 9.a 10.d11.b 12.d 13.c 14.d 15.a16.b 17.a 18.b 100011 001111二.判斷題1.錯2.錯3.錯4.錯三.填空題1. b 662. n1=%dnn2=%dn3. 0四.計算1(1) x|y = 0x002f(2) xy = 0x0026(3) x&y = 0x0009;(4) x+y = 0xffc6(5) x=4 0x00022(1) 6(2) 50(3) 1(4) 16(5) 1(6) 203(1) 0(2) 1(3) 1(4) 4(5) 8(6) 1

2、4(1) 12(2) 0(3) 1(4) 27精品.(5) 1(6) 6(7) 24(8) 27(9) 295(1) 0(2) 1(3) 1(4) 3(5) 2五.程序分析題程序1b=20 a=3600 程序2第三章一.填空題1.s=62.963.(1) scanf(%c,&c); (2) c-32 更好的答案:c-(a-a)2.1 main()int a,b;printf(please input a & b:);scanf(%d%d,&a,&b);printf(nmax is %dn,(ab)?a:b);2.2int max(int x,int y);main()int a,b,c,max

3、;printf(please input a & b & c:);scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=cmax?c:max;printf(nmax is %dn,max);精品.2.3main() int i=0,sum=0; while(i=100) sum+=i; i+; printf(1+2+3+.+100=%dn,sum);2.4main() int i; int a=10,b=-3; int c; printf(%6d%6d,a,b); for(i=2;i10;i+) c=3*b+a; printf(%6d,c); a=b; b=c; prin

4、tf(n);2.5main() int i; while(1) printf(please input a data(0:exit):); scanf(%d,&i); if(i=0) break; if(i%2=0) printf(the data %d is a even number.n,i); else printf(the data %d is a odd number.n,i); 2.6精品.#include main() int i; int a=8,b=1; int sum=0; for(i=0;i10;i+) b+=3; sum += a; a+=b; printf(a%8d

5、b:%8dn,a,b); printf(the sum of is:%dn,sum);2.7#include main() float x,y; printf(please input x:); scanf(%f,&x); if(x1.0) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(y=%fn,y);2.8#include main() long a,i,b,a1; while(1) printf(please input data(1-99999):); scanf(%ld,&a); printf(a:%ldn,a); if(a=100

6、000) break; i=0;精品. a1=0; while(a!=0) b=a%10; printf(%8d,b); a/=10; i+; a1=a1*10+b; printf(n i:%ld a1:%ldn,i,a1); 2.9#include #include #include main() int a,b,i,k=0; randomize(); a=random(1001);/*create a random data(0-1000)*/ for(i=0;ib) k+; printf(n%d:smaller,guess again!n,k); else if(ab) k+; prin

7、tf(n%d:bigger,guess again!n,k); else printf(nyou guess right,congraturation!) ; printf(nyou have guessed %d times,k); break; 精品. if(k=20) printf(nsorry,you failed!);2.10#include main() int a,b,c; int num; for(a=0;a10;a+) for(b=0;b10;b+) for(c=1;c10;c+) num=a*100+b*10+c;if(num%3=0)&(a=5|b=5|c=5) prin

8、tf(%8d,num); printf(nnn);2.11#include main() int i; int a,b; printf(please input a,b:); scanf(%d%d,&a,&b); for(i=a0;i-) if(a%i=0&b%i=0) printf(the max=%d,i); break; for(i=ab?a:b;i0;i+) if(i%a=0&i%b=0)精品. printf(nthe min=%d,i); break; 2.12#include main() int a,k=0; printf(please input data:); scanf(%

9、d,&a); while(a%2=0) a=a/2; k+; printf(nthe number of factor(2) is %d,k);2.13main() long i,t=1; long sum=0; for(i=1;i=10;i+) t*=i; sum+=t; printf(%ld!=%ldn,i,t); printf(sum:%ldn,sum); 2.14#include void main() int i,x=0; for(i=9;i=1;i-) x=2*(x+1); 精品. printf(the first day:%d,x);2.15#include #define pi

10、 3.141593main() float r,h; float v; printf(please input r,h:); scanf(%f%f,&r,&h); v=1.0/3*pi*r*r*h; printf(v=%.2f,v);2.16#include#includemain() long int sn=0; long int m=0,t=0; int a,n,i; printf(please input a n:); scanf(%d%d,&a,&n); for(i=0;in;i+) m=m*10+a; sn+=m; printf(a+aa+aaa+.+aa.a=%ldnn,sn);2

11、.17#include main() int k; printf(please input k:); do scanf(%d,&k); if(k=0&k=6)精品. break; while(1); switch(k) case 0:printf(sunday.n);break; case 1:printf(monday.n);break; case 2:printf(tuesday.n);break; case 3:printf(wednesday.n);break; case 4:printf(thursday.n);break; case 5:printf(friday.n);break

12、; case 6:printf(saturday.n);break; 2.18#include main() int i; double x,a,b=1,sum=1; printf(please input x:); 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 #include main() float a,x1,x2; printf(input a:); scanf(%f,&a); x1=1.0; while(1) 精品. x

13、2=1.0/2*(x1+a/x1); if(fabs(x2-x1)1e-5) break; x1=x2; printf(sqrt(a)=%f,x2);第四章寫出下列程序輸出結果1.no 1 a=1no 1 a=0no 1 a=1no 1 a=02.a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=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.d2.d3.c4.65.cdabc6.(1)j+=2 (2)ai=0&si=912. (1)0 (2)str1i-str2i5.1#i

14、ncludeint fun();int fun()精品. int a33,sum; int i,j; sum=0;/*error*/ for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij);/*error*/ for(i=0;i3;i+) sum=sum+aii; printf(sum=%dn,sum);void main() fun();5.2#include void main( void ) float num10; float input,getnum11; int i,j; float a=6;for(i=0; i10; i+) numi=a; a=

15、a+7.5;loop1: printf(please input a number(0-80) input=); scanf(%f,&input);if(input70)=1)goto loop1;for(i=0; i10; i+ )精品.if(inputnumi)goto loop2;loop2: for(j=0; ji; j+ ) getnumj=numj;getnumj=input;for(j=i; j=10; j+,i+)getnumj+1=numi;for(j=0; j11; j+ )printf(%3.3f ,getnumj);5.3#include stdio.h#include

16、 stdlib.hmain()int a1,a2,a3,a4,a5,a6,a7,a8,a9;int a3;int i;for(;)for (i=0;i3;i+)ai=rand()%3;while(a0!=a1) & (a0!=a2) & (a1!=a2)/*get three different numbers 0,1,2*/a1=a0+1;/*divide 19 into three groups,a1a3,a4a6,a7a9*/a2=a1+1;a3=a2+1;a4=a1+3;a5=a2+3;a6=a3+3;a7=a1+6;a8=a2+6;a9=a3+6;/* make sure that

17、each line and each row is made up with three members in different group.*/精品./* such as: a9 a1 a5 a2 a6 a7 a4 a8 a3 */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 %dn%d %d %dn%d %d %dn,a9,a1,a5,a2,a6,a7,a4,a8,a3);return;5.4#includ

18、e void main(void)char input1100,input2100,input3100;int i,eng=0,eng=0,num=0,blank=0,other=0;printf(input 3 rows of character,each row dont exceed 80 characters:n);gets(input1); printf(the second row:n); gets(input2); printf(the third row:n); gets(input3);/*test the first row*/for(i=0; i100; i+) if(i

19、nput1i=0) goto loop1; else if(a=input1i)&(input1i=z)=1)eng+; else if(a=input1i)&(input1i=z)=1) eng+; else if(0=input1i)&(input1i=9)=1)num+; else if(input1i=32)精品.blank+; else other+;/*test the second row*/loop1:for(i=0; i100; i+) if(input2i=0) goto loop2; else if(a=input2i)&(input2i=z)=1)eng+; else

20、if(a=input2i)&(input2i=z)=1) eng+; else if(0=input2i)&(input2i=9)=1)num+; else if(input2i=32)blank+; else other+;/*test the third row*/loop2:for(i=0; i100; i+) if(input3i=0) goto loop3; else if(a=input3i)&(input3i=z)=1)eng+; else if(a=input3i)&(input3i=z)=1) eng+; else if(0=input3i)&(input3i=9)=1)nu

21、m+; else if(input3i=32)blank+; else other+;loop3: printf(upper english character:%dnlower english character:%dnnumber:%dnblank:%dnother characters:%dn,eng,eng,num,blank,other);5.5#include 精品.void main(void)char str180,str240;int i,j,k;/*input two string*/printf(please input the first stringn str1=);

22、gets(str1);printf(please input the second stringn str2=);gets(str2);/*get the end of str1*/for(i=0; i80; i+)if(str1i=0) break;/*copy str2 to str1*/ for(j=i,k=0; str2k!=0;k+,j+) str1j=str2k; str1i+k=0; puts(str1);5.6#include struct student char name20; int score;stu5,stu1;void main(void) int i,j;prin

23、tf(input students score and name(5),seperate using the character of , :n);for(i=0; i5; i+) scanf(%d,%s,&stui.score,&);/*sorting*/for(i=0; i5; i+) for(j=0; jstuj+1.score)精品. stu1=stuj;stuj=stuj+1;stuj+1=stu1;printf(after sotred,score and name:n); for(i=0; i5; i+)printf(%d,%sn,stui.score,stui

24、.name);5.7#includemain() int a33,i,j,m,n,o,p; printf(please input a 3*3 shuzu:n); for (i=0;i=2;i+) for (j=0;j=2;j+) scanf(%d,&aij); for (i=0;iai1)? ai0:ai1; n=(mai2)? m: ai2; for (j=0;j=2;j+) o=(a0ja1j)? a0j:a1j; p=(oa2j)? o: a2j; 精品. if (n=p) printf(andian is %dn,p); else printf(there is no andian.

25、n);5.8#include void main(void) int a43,b34,i,j; for(i=0; i4; i+) for(j=0; j3; j+) scanf(%d,&aij); for(i=0; i4; i+) printf(n); for(j=0; j3; j+) printf(%5d ,aij); for(i=0; i4; i+) for(j=0; j3; j+) bji=aij; printf(n);for(i=0; i3; i+) printf(n); for(j=0; j4; j+) printf(%5d ,bij); 精品.5.9#include #include

26、void main(void) char str6; int i,j=0,m=0,n=0; gets(str); while(strj!=0) j+; for(i=j-1;i=0;i-) m=(stri-0)*(pow(8,j-i-1); n+=m; printf(shijinzhi %d,n);5.10#include void main(void)char input1100;int i,num=0,blank=0;printf(please input a row character:n);gets(input1);/*test the first row*/for(i=0; i100;

27、 i+) if(input1i=0) goto loop;精品. else if(a=input1i)&(input1i=z)=1)num+; else if(a=input1i)&(input1i=z)=1) num+; else if (input1i=32)blank+;loop: printf(character:%dnblank:%dn,num,blank);第六章一、 選擇題1.d:p中記錄的是a的地址,*p訪問地址a的值2.d :指針數組3.d:指針可以進行是否相等判斷,空指針可以進行指針變量初始化,指針可以偏移;4.c:5.c、d:a5不存在,若*&a4則正確;c,d正確;6.

28、d:7.b:8.b:二、 填空題1*(p+3)2222 cdefgbcdefgabcdefg73 6385三、 程序分析題1p = s0 ; 錯誤,應改為:p = s; 或 p = &s0;2int x , *p;錯誤,應改為:double x, *p;3*p = x ;錯誤,應改為:p = &x ;4 聲明順序錯誤;應該改為:void main(void) int a; int *p = &a; a = 10; printf(“%dn”,*p);精品.2.3 #include #include main() char ch25 = 6937,8254,*p2; int i,j,s=0; fo

29、r(i=0;i2;i+) pi = chi; for(i=0;i0;j+=2) s = 10*s + pij - 0; printf(%dn,s);4.1#include #include main() int count = 0; char str1100,str2100; char *p1,*p2; printf(please enter string 1:); gets(str1); printf(please enter string 2:); gets(str2); printf(str1:%sn,str1); printf(str2:%sn,str2); p1 = str1; p2

30、 = str2; while(*p1!=0&*p2!=0) if(*p1+=*p2+) count+; printf(count:%dn,count);4.2#include #include 精品.main() int i,j,k; int a3; int temp; printf(please enter array a3:); scanf(%d%d%d,&a0,&a1,&a2); for(i=0;i2;i+) k = i; for(j= i+1;j3;j+) if(ajai)k = j; if(k!=i) temp = ai; ai = ak; ak = temp; for(i=0;i3

31、;i+) printf(%dt,ai); printf(n);4.3#include #include #define n 100main() char s1n, s2n,*p; int m; printf(please enter string1:); gets(s1); p = s1; printf(enter m:); scanf(%d,&m); strcpy(s2,p+m);精品. printf(string2:%sn,s2);4.4#include #include main() char s100=iuiui012asdd90k890y098kkkk1234,*p; char da

32、ta100100=0; int count=0; int i; p = s;/* printf(please enter a string:); gets(p);*/ printf(sssss:%sn,s); while(*p!=0) i=0; while(*p=0&*p=9) datacounti = *p; i+; p+; if(i!=0) count+; p+; printf(count:%dn,count); for(i=0;icount;i+) printf(%sn,datai);4.5#include #define size 4精品.main() int datasizesize

33、,i,j,d; int max,m=0,n=0; for(i=0;isize;i+) for(j=0;jsize;j+) scanf(%d,&dataij); for(i=0;isize;i+) for(j=i+1;jsize;j+) d = dataij; dataij = dataji; dataji = d; max = data00; for(i=0;isize;i+) printf(n); for(j=0;j=max) max = dataij;m = i;n = j; printf(nmax:%4d m:%d n:%dn,max,m,n);4.6#include 精品.#inclu

34、de main() char *p = test,capital,index,large,small; char *pstr = p; int a,b,n = 5; char *temp; for(a=0;an-1;a+) for(b=a+1;b0) temp = pstra;pstra = pstrb;pstrb = temp; for(a=0;an;a+) printf(%sn,pstra);4.7#include #include main() char s100,temp; char *p = s; int i,length; printf(please enter a string:

35、 ); gets(s); while(*p+!=0); length = p - s -1; printf(string length:%dn,length); for(i=0;ilength/2;i+)精品. temp = si; si = slength-i-1; slength-i-1 = temp; printf(%sn,s);第七章一,選擇題1.a2.d3.b4.d5.c6.a7.b二.程序填空題1. (1) ak (2) ak (3) ak2. (1) ai (2) j (3) i+1或6三.改錯題1.#include#includevoid swap(char *,char *)

36、;/*此處有錯誤,函數聲明時要加分號*/main() char a80,b80,c80; scanf(%s%s%s,a,b,c);/*此處有錯誤,a,b,c分別為數組a80,b8,c80的首地址*/ 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(%sn%sn%sn,a,b,c);7.3.1#include #include void sw

37、ap(char *pstr1,char *pstr2) char p80;精品. strcpy(p,pstr1); strcpy(pstr1,pstr2); strcpy(pstr2,p);main() char a80=ccc,b80=bbb,c80=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(%sn%sn%snnn,a,b,c);7.4.1#include int squsum(int,int);main() int a,b; int c; printf(enter 2 integer:); scanf(%d%d,&a,&b); c = squsum(a,b); printf(a=%d b:%d a2+b2=%dn,a,b,c);int squsum(int x,int y) int z; z = x*x+y*y;

溫馨提示

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

評論

0/150

提交評論