C語言課后答案_第1頁
C語言課后答案_第2頁
C語言課后答案_第3頁
C語言課后答案_第4頁
免費預覽已結束,剩余17頁可下載查看

付費下載

VIP免費下載

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

文檔簡介

1、第 3 章三、編程題1 編寫程序,輸入一個非負數,輸出以此數為半徑的圓周長以及面積。#include "stdio.h"#define PI 3.1415void main()float r,area,circumference;scanf("%f",&r);area=PI*r*r;circumference=2*r*PI;printf("area=%6.2fncircumference=%6.2fn",area,circumference);2 編寫程序,輸出下面結果,注意,雙引號也要輸出:“I'm a studen

2、t!”#include <stdio.h>void main()printf(""I'm a student!"n");3 編寫程序,輸入一個小寫字母,將其轉換為大寫字母輸出。例如輸入b,則輸出 B。提示:小寫字母和對應的大寫字母的ASCII 碼值相差 32。void main()char ch;ch=getchar();ch-=32;putchar(ch);/printf("%c",ch);4 編寫程序,輸入一個華氏溫度f ,輸出其相應的攝氏溫度c。華氏溫度和攝氏溫度的轉換公式為:5c (f 32)9#inclu

3、de <stdio.h>void main()float f,c;scanf(“%f”,&f);c=5.0*(f-32)/9;printf(“華氏溫度 %5.2f 轉換為攝氏溫度為:%5.2fn ”,f,c);第 4 章三、編程題1 輸入一個整數,判斷這個整數是奇數還是偶數(提示:整數的奇偶性可以利用取余運算符 %判定)。 #include <stdio.h>void main()int a;scanf("%d",&a);if(a%2)printf("奇數 n");elseprintf("偶數 n&quo

4、t;);2 編寫程序,輸入一個24 小時制的時間,轉換為12 小時制時間后進行輸出。以13 點 15 分為例,輸入:13:15 ,則輸出:下午1:15 。#include <stdio.h>void main()int hour,minute;scanf("%d:%d",&hour,&minute);if (hour>12) hour=hour-12;printf("%d:%dn",hour,minute);3 輸入年號,判斷它是否是閏年(如果年號能被400 整除,或能被4 整除,而不能被100 整除,則是閏年,否則不是

5、)。void main()int year;scanf("%d",&year);if (year%400=0|(year%4=0&&year%100=0)printf("%d是閏年 n",year);elseprintf("%d不是閏年 n",year);4 輸入一個字符,如果是大寫字母則輸出對應的小寫字母,如果是小寫字母則輸出相應的大寫字母,如果都不是則原樣輸出。#include <stdio.h>void main()char ch;scanf("%c",&ch);i

6、f(ch>='a'&&ch<='z')ch-=32;elseif(ch>='A'&&ch<='Z')ch+=32;printf("n%cn",ch);5 設計一個簡單的計算器程序,能輸入整型運算數和基本運算符(+,- ,* ,/ ),輸出計算結果。例如:輸入 2+6,輸出 2+6=8。#include<stdio.h>main()float a,b,result;char op;scanf("%f%c%f",&a,&

7、amp;op,&b);switch(op)case'+': result=a+b; printf("=%f",result); break;case'-': result=a-b; printf("=%f",result); break;case'*': result=a*b; printf("%f",result); break;case'/': if(b=0.0) printf("error!n");result=a/b;printf(&q

8、uot;=%f",result);default: printf("error due to the illegal input!n");第 5 章三、編程題1 編寫程序,顯示100 200 之間能被 7 除余 2 的所有整數。#include "stdio.h"main() int i; for(i=100;i<=200;i+) if(i%7=2)printf("t%dt",i);2 輸入 n 個整數,求這n 個整數中的最大數、最小數和偶數平均數,并輸出。#include <stdio.h>void ma

9、in()int i,n,data,max=0,min=0,even=0,evennumber=0;printf("Please input the number of data:");scanf("%d",&n);printf("Please input the data:n");scanf("%d",&data);max=data;min=data;if (data%2=0)even=even+data;evennumber+;for(i=1;i<n;i+)scanf("%d&qu

10、ot;,&data);if (data>max)max=data;elseif (data<min)min=data;if (data%2=0)even=even+data;evennumber+;printf("Themaxis%dnTheminis%dnTheaverageofevenis %5.2fn",max,min,(float)(even)/evennumber);3 輸入一串字符, 以回車作為結束標志。統計并輸出這串字符中大寫字母、小寫字母和數字字符的個數。#include <stdio.h>void main()int upp

11、er=0,lower=0,number=0;char letter;while(letter=getchar()!='n')if (letter>='a'&&letter<='z') lower+;else if (letter>='A'&&letter<='Z') upper+;else if (letter>='0'&&letter<='9') number+;printf("the n

12、umber of uppercase is:%dn",upper);printf("the number of lowercase is:%dn",lower);printf("the number of number is:%dn",number);4 輸出九九乘法表。#include <stdio.h>void main()int i,j;for(i=1;i<=9;i+)for(j=1;j<=i;j+)printf("%d*%d=%-3d ",i,j,i*j);printf("n&quo

13、t;);5 編寫程序,輸出3 1000 之間全部素數。#include <stdio.h>#include "math.h"void main()int k,data,tag;for(data=3;data<=1000;data+) /外層循環,用來產生2 1000 之間的整數tag=0;/tag用于表示數i 是否是素數,沒有判斷前先假定是素數for(k=2;k<=sqrt(data)&&!tag;k+) /內層循環用來判斷data是否有約數if (data%k=0)tag=1;if (tag=1) printf("%4d&

14、quot;,data); /如果 i 是素數,則輸出6 輸入一個三位數,判斷其是否是“水仙花數”。水仙花數是指3 位數中的各位數字的立方和等于這3位數本身。如153=1*1*1+5*5*5+3*3*3。#include"stdio.h"void main()int S, a, b, c;printf("請輸入一個3 位數: ");scanf("%d",&S);a=S/100; b=S%100/10; c=S%10;if(a*a*a+b*b*b+c*c*c=S)printf("%d是水仙花數。 ",S);el

15、seprintf("%d不是水仙花數。n",S);7 編程求 Fibonacci數列的前 40 個數。該數列的生成方法是:F1 =1,F 2=1,F n=Fn-1 +Fn-2 (n>=3) (即從第三個數起,每個數等于前2 個數之和)。#include "stdio.h"void main()int f40,n;f0=1;f1=1;printf("Fibonacci數列的前40 個數是: %dt%dt",f0,f1);for(n=2;n<40;n+)fn=fn-1+fn-2;printf("%dt",f

16、n);8 一個窮人找到一個百萬富翁,給他商討一個換錢計劃如下:我每天給你十萬元,而你第一天只需給我一元錢,第二天給我二元錢,第三天給我四元錢,即我每天都給你十萬元,你每天給我的錢都是前一天的兩倍,直到滿一個月( 30 天)。百萬富翁很高興地接受了這個換錢計劃。請編寫程序計算滿一個月時,窮人給了富翁多少錢,而富翁又給了窮人多少錢。#include <stdio.h>void main()long poor=100000,rich=1,i;for(i=2;i<=30;i+)poor=poor+100000;rich=rich*2;printf("Money of poo

17、r giving rich is %ldnMoney of rich giving poor is %ldn",poor,rich);9 猴子吃桃問題。猴子第一天摘下若干桃子,立即吃了一半,不過癮又多吃了一個。第二天早上又將剩下的桃子吃了一半,又多吃了一個。 以后的每天早上都是吃了前一天剩下的一半加一個。到第 10 天早上時只剩下一個桃子了。編寫程序,求猴子第一天共摘了多少桃子。/*/*有一群猴子摘了一堆桃子,他們每天都吃當前桃子的一半且再多吃一個*/*到了第10 天就只余下一個桃子。(C 語言實現)*/*用多種方法實現求出原來這群猴子共摘了多少個桃子。*/*/* 運行環境: VC+

18、6.0*/*/#include "stdio.h"main()int i,j,k;/*jj = 1;for(i=9;i>0;i-)是最后的桃子數,k 是中間變量,也是桃子總數*/k = (j + 1) * 2;j = k;printf("%total=%dn",k);第 6 章三 1. #include <stdio.h>#define n 10void main() int an,i,count1=0,count2=0,sum=0;float ave; for (i=0;i<n;i+)scanf("%d",&

19、amp;ai);sum+=ai;if (ai>80)count1+=1;elseif(ai<60)count2+=1;ave=sum/n;printf("%d個優秀 , %d 個不及格 , 平均分 :%f 。 ",count1,count2,ave);2. #include <stdio.h>#define n 10void main() int an,i,j,k,max,min;for (i=0;i<n;i+)scanf("%d",&ai);if (!i)max=min=ai;j=k=i;elseif (max&l

20、t;ai)max=ai;j=i;elseif (min>ai)min=ai;k=i;printf("最大值 %d在第 %d位 , 最小值 %d在第 %d位。 ",max,j+1,min,k+1);3. #include <stdio.h> #include <string.h> void main() char s20,ch; int i,n;printf("請輸入字符串:");gets(s);n=strlen(s);for(i=0;i<n/2;i+)ch=si;si=sn-1-i;sn-1-i=ch;printf(&

21、quot;逆序存放的字符串:");puts(s);4. #include <stdio.h>#define N 10void main() int i,j,n,aN+1;printf("請輸入 %d個由小到大排列的整數:",N);for(i=0;i<N;i+)scanf("%d",&ai);printf("請輸入要插入的數:");scanf("%d",&n);for(i=0;i<N;i+)if(ai>n)j=i;break;if (i=N)j=i;for(i=

22、N-1;i>=j;i-)ai+1=ai;aj=n;printf("插入后的排列:");for(i=0;i<=N;i+)printf("%d ",ai);5. #include <stdio.h> #define N 3void main() int i,j,aNN,sum=0;printf("請輸入 %d*%d矩陣的元素: ",N,N);for(i=0;i<N;i+)for(j=0;j<N;j+)scanf("%d",&aij);if(i=j)sum+=aij;print

23、f("主對角線元素之和:%d。",sum);6. #include <stdio.h> #include<math.h> void main() int i,j, n,k=0, b300; for (i=1;i<300;i+)n=int(sqrt(i);for(j=2;j<=n;j+)if(i%j=0)break;if (j>n)bk=i;k+;for(i=0;i<k;i+)printf("%5d",bi);7. #include <stdio.h>#define N 7void main()

24、int i,j,k,aN,temp;printf("請輸入 %d個整數: ",N);for(i=0;i<N;i+)scanf("%d",&ai);for(i=0;i<N-1;i+) k=i; temp=ai; for(j=i+1;j<N;j+)if(temp>aj)k=j;temp=aj;if (k!=i)ak=ai;ai=temp;printf("排序后的數列:");for(i=0;i<N;i+)printf("%3d",ai);8. #include <stdio.h

25、> void main() int i=0,count1=0,count2=0,count3=0; char s20;printf("請輸入字符串:");gets(s);while(si!='0') if(si>='a'&&si<='z'|si>='A'&&si<='Z') count1+;elseif(si>='0'&&si<='9')count2+;else count3

26、+;i+;printf("字符 %d個,數字 %d個,其他 %d個。 ",count1,count2,count3);9. #include <stdio.h>#include <string.h>void main()char s20,ch;int i=0;printf("請輸入字符串:");gets(s);while(si!='0')si+=3;if (si>'z')si-=26;i+;printf("加密后: ");puts(s);10. #include <s

27、tdio.h> #include <string.h> void main()char s120,s220;int i=0,j=0;printf("請輸入字符串1: ");gets(s1);printf("請輸入字符串2: ");gets(s2);while (s1i!='0')i+;s1i=s2j;doi+;j+;s1i=s2j;while (s2j!='0');printf("連接后: ");puts(s1);11. #include <stdio.h> #includ

28、e <string.h> void main()char s120,s220,s340;int i=0,j=0,k=0;printf("請輸入按字母序排列的字符串1: ");gets(s1);printf("請輸入按字母序排列的字符串2: ");gets(s2);while(s1i!='0'&&s2j!='0')if (s1i<s2j) s3k=s1i; k+;i+;else s3k=s2j; k+;j+;while(s1i!='0') s3k=s1i;k+;i+;whil

29、e(s2j!='0') s3k=s2j; k+;j+;s3k='0'printf("合并后的字符串:");puts(s3);12. #include <stdio.h> void main() int i,j,a55; for(i=0;i<5;i+)for(j=4;j>=0;j-) if(j>=i)aij=1; elseaij=aij+1+1;for(i=0;i<5;i+) for(j=0;j<5;j+) printf("%3d",aij);printf("n"

30、);13. #include <stdio.h>void main()int i,j,a88;for(i=0;i<8;i+)for(j=0;j<8;j+)if(j=i|(i+j)=7)aij=1;elseaij=0;for(i=0;i<8;i+) for(j=0;j<8;j+) printf("%3d",aij);printf("n");14. #include <stdio.h> void main()inti,j,sum,a53=20,30,26,30,20,25,25,50,20,46,15,10,3

31、5,15,12;for(i=0;i<5;i+)sum=0;for(j=0;j<3;j+)sum+=aij;switch (i)case 0:printf("第一個 ");break;case 1:printf("第二個 ");break;case 2:printf("第三個 ");break;case 3:printf("第四個 ");break;case 4:printf("第五個 ");break;printf("企業的總產值是:%d萬元。n",sum);fo

32、r(j=0;j<3;j+) sum=0;for(i=0;i<5;i+)sum+=aij;switch (j)case 0:printf("A");break;case 1:printf("B");break;case 2:printf("C");break;printf("產品的總產值是:%d萬元。 n",sum);15. #include <stdio.h> #define N 5 void main()int i,j,aNN,bN;printf("請輸入 %d個數: "

33、;,N);for(i=0;i<N;i+)scanf("%d",&bi);for(i=0;i<N;i+)for(j=i;j<N;j+)aij=bj-i;for(j=0;j<i;j+)aij=aji;for(i=0;i<N;i+)for(j=0;j<N;j+)printf("%3d",aij);printf("n");16. #include <stdio.h> void main()int i=0,j=0,m,n,a20,b20;printf(" 請輸入數組 a 中的數據

34、,以 0 結束: "); scanf("%d",&ai);while(ai!=0) i+;scanf("%d",&ai);printf("請輸入數組b 中的數據 , 以 0 結束: ");scanf("%d",&bj);while(bj!=0)j+;scanf("%d",&bj);for(m=0;m<i;m+)for(n=0;n<j;n+) if(am=bn)printf("%3d在 a 中下標為 %d,在 b 中下標為 %d。&q

35、uot;,am,m,n);17. #include <stdio.h> void main()inta2020,b2020,flag12020,flag22020,i,j,s,t,k,l,m,n;printf("請輸入數組a 的一維長度:");scanf("%d",&k);printf("請輸入數組a 的二維長度:");scanf("%d",&l);printf("請輸入數組a 中的數據: ");for(i=0;i<k;i+)for(j=0;j<l;j+)

36、scanf("%d",&aij);for(i=0;i<k;i+) for(j=0;j<l;j+) printf("%3d",aij); flag1ij=1;printf("n");printf("請輸入數組b 的一維長度:");scanf("%d",&m);printf("請輸入數組b 的二維長度:");scanf("%d",&n);printf("請輸入數組b 中的數據: ");for(i=0;i&

37、lt;m;i+)for(j=0;j<n;j+)scanf("%d",&bij);for(i=0;i<m;i+) for(j=0;j<n;j+) printf("%3d",bij);flag2ij=1;printf("n");for(i=0;i<k;i+)for(j=0;j<l;j+)for(s=0;s<m;s+)for(t=0;t<n;t+)if(aij=bst)flag1ij=0;flag2st=0;printf("只在一個數組中存在的有:");for(i=0;i

38、<k;i+)for(j=0;j<l;j+)if(flag1ij)printf("%3d",aij);for(i=0;i<m;i+)for(j=0;j<n;j+)if(flag2ij)printf("%3d",bij);18. #include <stdio.h> void main()int a101,i,j,count=0;for(i=1;i<=100;i+)ai=1;for(i=2;i<=100;i+)for(j=i;j<=100;j+)if(j % i =0)aj*=-1;for(i=1;i&l

39、t;=100;i+)if(ai=1)count+;printf("第 %d張正面朝上。n",i);printf("共有 %d張正面朝上。n",count);19. #include <stdio.h> void main() intn,i,j,k,top,bottom,left,right,goup,godown,goleft,goright,a2020; i=0;j=0;goright=1;goup=0;godown=0;goleft=0;printf("請輸入方陣的維數:");scanf("%d",

40、&n);top=-1;bottom=n;left=-1;right=n;for(k=1;k<=n*n;k+) aij=k; if(goright) if(j<right-1) j+;elsegoright=0;godown=1;top+;i+;continue;if(godown) if(i<bottom-1)i+;elsegodown=0;goleft=1;right-;j-;continue;if(goleft)if(j>left+1)j-;elsegoleft=0;goup=1;bottom-;i-;continue;if(goup) if(i>to

41、p+1)i-;elsegoup=0;goright=1;left+;j+;continue;for(i=0;i<n;i+) for(j=0;j<n;j+) printf("%5d",aij);printf("n");第 7 章第 8 章三、編程題1.#include "stdio.h"#define N 10void main()int i_valN;int *p;int i,j,val,k;for (i = 0 ; i < N ; i+)scanf("%d",i_val+i);p = &

42、i_val0;printf("排序前結果如下 :n");for(i = 0 ; i < N; i+)printf("%dn",*(p+i);printf("n");for( i = 0 ; i < N-1; i+)k=i;for(j = i+1 ; j < N ; j+)if (pj < pk)k=j;if (k!=i)val=pi;pi=pk;pk=val;printf("排序后結果如下 n");for(i = 0 ; i < N; i+)printf("%dn",*(p+i);printf("n");2#include "stdio.h"#define N 3void main()int i_valNN=11,12,13,21,22,23,31,32,33;int *p;int nSum=0;int i;p = i_val0

溫馨提示

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

評論

0/150

提交評論