2013級 C復習題(補充31題)答案

上傳人:沈*** 文檔編號:156130651 上傳時間:2022-09-26 格式:DOC 頁數:20 大小:110.50KB
收藏 版權申訴 舉報 下載
2013級 C復習題(補充31題)答案_第1頁
第1頁 / 共20頁
2013級 C復習題(補充31題)答案_第2頁
第2頁 / 共20頁
2013級 C復習題(補充31題)答案_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《2013級 C復習題(補充31題)答案》由會員分享,可在線閱讀,更多相關《2013級 C復習題(補充31題)答案(20頁珍藏版)》請在裝配圖網上搜索。

1、 C語言期末復習題(補充31題) 簡單程序設計 1、給定一圓的半徑,寫程序計算和打印圓的面積。請使用符號常量表示圓周率和適當的變量表示半徑。 /* #include #define PI 3.1415926 int main() { float r,s,l; printf("請輸入圓的半徑:"); scanf("%f",&r); s=PI*r*r; l=2*PI*r; printf("圓的面積s = %f\n",s); printf("圓的半徑l = %f\n",l); return 0; }*/ 2、一公斤大米價格

2、是16.75元,一公斤的糖是15元,寫程序讓用戶輸入這些數據,并打印如下: ***LIST OF ITEM*** Item Price Rice RMB16.75 Sugar RMB15.00 #include int main() { printf("***LIST OF ITEM***\n"); printf("Item Price\n"); printf("Rice RMB16.75\n"); printf("Sugar RMB15.00\n"); return 0; } 3~6、用C賦值語句表示以下計算式并輸出計算結果(

3、變量的值可自行輸入): Area=pr2+2prh Torque= Side= Energy=mass[acceleration*height+] 選擇程序設計 1、二元x1,x2的一次方程組為: ax1+bx2=m cx1+dx2=n 設其有唯一解: x1= x1= 且分母ad-cb不為0. 寫程序輸入常量a,b,c,d,m,n,計算x1,x2. 如果出現ad-cb為0,要有適當的提示信息。 #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[])

4、{ float a,b,c,d,m,n; float x1,x2; printf(" 二元x1,x2的一次方程組為:\n ax1+bx2=m \n cx1+dx2=n \n"); printf("a = "); scanf("%f",&a); printf("b = "); scanf("%f",&b); printf("m = "); scanf("%f",&m); printf("c = "); scanf("%f",&c); printf("d = "); scanf("%f",&d); printf("n = "); scan

5、f("%f",&n); if(a*d-c*b==0) printf("Error\n"); else { x1=(m*d-b*n)/(a*d-c*b); x2=(n*a-m*c)/(a*d-c*b); printf(" x1 = %f\n x2 = %f\n",x1,x2); } return 0; } 2、給定一組學生分數,介于0~100,編程統(tǒng)計打印以下各分數段的學生數: (a)超過80分 (b)超過60分 (c)超過40分 (d)不高于40分 (e)61~80的 (f)40~60的 要求用最少的if語句。

6、#include int main() { int n,score[1000]; int i,j; int a,b,c,d,e,f; a=b=c=d=e=f=0; printf("你要輸入多少個學生的成績:"); scanf("%d",&n); for(i=0;i100) { printf("你她媽,輸錯了,重輸,艸艸艸艸艸\n"

7、); i=i-1; continue; } } for(i=0;i

8、 if(score[i]>=61&&score[i]<=80) { e++; } if(score[i]>=40&&score[i]<=60) { f++; } } printf("超過80分人數為:%d\n",a); printf("超過60分人數為:%d\n",a+b); printf("超過40分人數為:%d\n",a+b+c); printf("不高于40分人數為:%d\n",d); printf("61~80的人數為:%d\n",e); printf("40~60的人數為:%d\n",f);

9、 return 0; } 循環(huán)程序設計 1、編程求m階乘(用循環(huán)實現)。 #include int main() { int n,i,s; printf("請輸入階乘n:"); scanf("%d",&n); for(i=1,s=1;i<=n;i++) { s=s*i; } printf("階乘為:%d\n",s); } 2~3、分別編寫求以下式子的程序,精度到0.000001為止: 第2題: cos(x)= #include #include #define PI 3.1415

10、926 int factorial(int n) { int i,s; for(i=1,s=1;i<=n;i++) { s=s*i; } return(s); } int main() { int i,sign; float s,x,t,X; printf("請輸入角度:cos"); scanf("%f",&x); X=x/180*PI; s=0,t=1,sign=1; for(i=2;fabs(t)>=1e-6;i=i+2) { s=s+t; sign=-sign; t=sign*pow(X,i)/fa

11、ctorial(i); } printf("cos(%.2f) = %f\n",x,s); return 0; } 第3題: SUM=1+(1/2)2+(1/3)3+(1/4)4+…… #include #include int main() { float sum,t,n; int i; t=1,sum=0; for(i=2;fabs(t)>1e-6;i++) { sum=sum+t; n=1.0/i; t=pow(n,i); } printf("sum = %f\n",sum);

12、 return 0; } 4、用二維表形式輸出0到9.9的平方根表: Square Root of X ---------------------------------------------------------------------------------------------------- x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 ------------------------------------------

13、------------------------------------------------------------ #include #include int main() { //i代表行,j代表列,s代表平方根,a代表被開方數 int i,j,a,n; float s; for(n=0;n<=9;n++) printf("%7d",n); printf("\n"); for(i=0;i<=9;i++) { printf("%3d",i); for(j=0;j<=9;j++) { a=10*i+j;

14、s=pow(a,0.5); printf("%7.3f",s); } printf("\n"); } return 0; } 5、用for語句打?。? (a) 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 (b) * * * * * * * * * * * * * * * (a) #include int main() { int a,b; int n; for(a=0;a<=4;a++) { for(b=0;b<=a;b++)

15、 { printf("%3d",a+1); } printf("\n"); } return 0; } (b) #include int main() { int a,b,c; int n; for(a=4;a>=0;a--) { for(c=0;c<4-a;c++) printf(" "); for(b=0;b<=a;b++) { printf(" *"); } printf("\n"); } return 0; } 6、打印如下的y=exp(-x)的函數

16、值對照表,x從0.0增到10.0,步長0.1: Table for Y=EXP(-X) ---------------------------------------------------------------------------------------------------- x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 -------------------------------------------------------

17、----------------------------------------------- #include #include int main() { //i代表行,j代表列,s代表平方根,a代表被開方數 float x,n,i,j; printf("x "); for(n=0.1;n<1;n=n+0.1) printf("%-8.2f",n); printf("\n"); for(i=0;i<=9;i=i+1) { printf("%3.1f",i); for(j=0.1;j<1;j=j+0

18、.1) { x=i+j; printf("%8.4f",exp(-x)); } printf("\n"); } return 0; } 7、 有蘋果若干,按以下方法分給五個大人和一位小孩.先由第一人將蘋果均分為5堆,多余的一個給小孩,自己取其中的一堆.第二人又將剩下的蘋果均分為5堆,多余一個給小孩,自己取其中的一堆.第三、四、五人同樣均分,多余一個給小孩,每人各取其中一堆。問原先最少有多少蘋果?五個大人各得多少蘋果? #include "stdafx.h" int main() { //n代表所有的蘋果 int a[5],i

19、,n,m,j; for(m=1000;m<10000;m++) { n=m; for(i=0;i<5;i++) { if(n%5==1) { a[i]=(n-1)/5; n=a[i]*4; } else break; } if(i==5) break; } printf("原先最少%d個蘋果\n",m); for(i=0;i<5;i++) { printf("大人%d分得%3d個蘋果\n",i+1,a[i]); } return 0; } 8

20、、計算機輔助教育:幫助小學生學習加法,用rand函數產生一對1位數的整數,如下形式顯示: How much is 5 plus 4? 學生輸入答案,程序判斷答案正誤,若正確則打印“GOOD”,再出下一題;若不正確,打印“No.Try Agin.”,讓學生再給答案,直到答案正確。寫出程序。 #include #include #include int main() { int a,b,c,n; srand(time(NULL)); flag: a=rand()%10; b=rand()%10; c=a+b;

21、 printf("How much is %d plus %d? ",a,b); scanf("%d",&n); if(n==c) printf("GOOD\n"); else { printf("No.Try Agin.\n"); goto flag; } return 0; } 9、新完全平方數: 在三位整數(100~999)中尋找符合條件的整數并依次從小到大存入數組中,條件為它既是一個整數的平方數,又有兩位數字相同,例如:144、676等。要求輸出所有滿足該條件的三位數整數,并輸出滿足該條件的整數的個數。 #include

22、tdio.h> int main() { //a代表百位數,b代表十位數,c代表個位數 int i,n,s; int a,b,c; for(i=10;i<=35;i++) { s=i*i; a=s/100; b=s/100/10; c=s%10; if(s>=100&&s<=1000&&(a==b||a==c||b==c)) printf("%d\n",s); } return 0; } 一、二維維數組 1、 用rand函數模擬投一對骰子,從數學意義上講,因每骰子投出的值在1~6,所投出的兩個值之和為2和12的

23、頻率最小,兩個值之和為7的頻率最大。試投5000次,分別計算兩個值之和為2、7、12的頻率。 #include #include #include int main() { int a[3],i,t1,t2,n; float p[3]; for(i=0;i<3;i++) a[i]=0; srand(time(0)); for(i=0;i<=5000;i++) { t1=rand()%6+1; t2=rand()%6+1; if(t1+t2==2) a[0]++;

24、 if(t1+t2==7) a[1]++; if(t1+t2==12) a[2]++; } for(i=0;i<3;i++) { p[i]=a[i]*1.0/5000; } printf("兩個值之和為2頻率為:%f\n",p[0]); printf("兩個值之和為7頻率為:%f\n",p[1]); printf("兩個值之和為12頻率為:%f\n",p[2]); return 0; } 2、合并兩個有序數組成為一個有序數組。 int main() { //i用來計數a,j用來計數b int a[100],b[100]

25、,c[100],n,m; int i,j,t; i=0,j=0; printf("輸入數組a個數n = "); scanf("%d",&n); printf("請輸入%d個數的數組a:",n); for(i=0;i

26、;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("數組a為:\n"); for(i=0;ib[i+1]) { t=b[i]; b[i]=b[i+1]; b[i+1]=t; } printf("數組b為

27、:\n"); for(i=0;ic[i+1]) { t=c[i]; c[i]=c[i+1]; c[i+1]=t; } printf("有序數組為:\n"); for(

28、i=0;i int main() { int a,b; int arr[100]; int i,j,n,t; for(

29、i=0;;i++) { printf("請輸入一個十進制整數<-1結束輸入>:"); scanf("%d",&a); if(a==-1) { printf("-------------------------------------------\n"); break; } printf("請輸入要轉化成的進制:"); scanf("%d",&b); for(j=0;a!=0;j++) { arr[j]=a%b; a=a/b; } printf("轉化的結果為:"); for(n=

30、j-1;n>=0;n--) { if(arr[100]>=10) { switch(arr[100]) { case 10: printf("a"); break; case 11: printf("b"); break; case 12: printf("c"); break; case 13: printf("d"); break; case 14: printf("e"); b

31、reak; case 15: printf("f"); break; } } else printf("%d",arr[n]); } printf("\n"); printf("------------------------------------------------\n"); } return 0; } 4、 輸出數組中的元素(重復的元素只輸出一次):例如數組int a[]={1,1,2,3,26,3,4,5,8,7,7,4}; 則應輸出 1 2 3 26

32、 4 5 8 7 #include int main() { int i,j; int a[12]; printf("請輸入一組數 : \n"); for(i=0;i<12;i++) scanf("%d",&a[i]); for(i=0;i<12;i++) { for(j=0;j

33、組已賦值,從鍵盤任意輸入一個同類型的數cmp,剔除數組中與cmp的值相同的所有元素,并保持原數組元素的連續(xù)排列。(注:須通過移動數組元素) #include "stdafx.h" int main() { char ch[100],d[100]; int i,j,n; printf("請輸入一組字符:"); gets(ch); printf("請輸入你想要刪除的字符:"); n=0; while((d[n]=getchar())!='\n') { n++; } printf("結果為:"); for(i=0,n=0;ch[i]!='\0'

34、;i++) { for(j=0;d[j]!='\0';j++) { if(ch[i]==d[j]) break; } if(j>n+26) printf("%c",ch[i]); } printf("\n"); return 0; } 6、對N個元素的數組排序: (1)用冒泡排序法 (2)用選擇排序法 #include int main() { int a[10]; int i,j,t; printf("請輸入10個數:\n"); for (i= 0;i<10;i+

35、+) scanf("%d",&a[i]); for (i=0;i<9;i++) for (j=i+1;j<10;j++) if (a[i] #include int _tmain(int argc,

36、_TCHAR* argv[]) { int i,j; int a[4][5]; srand(time(0)); for(i=0;i<4;i++) { for(j=0;j<5;j++) { a[i][j]=rand()/10; printf("%6d",a[i][j]); } printf("\n"); } return 0; } 函 數 1、寫函數判定整數是否素數,是則返回1,否則返回0 #include #include int prime(int x) {

37、 int i; for(i=2;i int max(int a[],int n) { int max=a[0]; int i; for(i=0;i=max)

38、 max=a[i]; return max; } int min(int a[],int n) { int min=a[0]; int i; for(i=0;i

39、均值 int a[100]; int n,i; int x,y; float aver; printf("你要輸入幾個數:"); scanf("%d",&n); printf("請輸入%d個數:\n",n); for(i=0;i

40、rn 0; } 3、 利用遞歸函數調用形式,將用戶輸入的字符串,以相反的順序打印出來。 方法1、 #include #include void reverse(char a[],int n) { if(n==0) return ; reverse(a+1,n-1); putchar(*a); } int main() { char arr[100]; printf("Enter a string:\n"); gets(arr); printf("After being reversed\n");

41、 reverse(arr,strlen(arr)); printf("\n"); return 0; } 方法2、 void reverse() { char ch; ch=getchar(); if(ch=='\n') { printf("After being reversed\n"); return ; } reverse(); putchar(ch); } int main() { printf("Enter a string:\n"); reverse(); printf("\n"); retu

42、rn 0; } 4、 利用遞歸求一個整數的各位數字之和。 #include int sum(int n) { if(n==0) return 0; else return n%10+sum(n/10); } void main() { int n; scanf("%d",&n); printf("%d\n",sum(n)); } 5、編程模擬實現比較兩個字符串大小的函數strcmp()。已知strcmp函數的原型如下: int strcmp(char *p1, char *p2) ,設p1指向字符串s1,p2

43、指向字符串s2,要求當s1==s2時,返回值為0;若s1>s2,則返回值是一個正整數;若s1 int company(char a[],char b[]) { int i; for(i=0;a[i]!='\0'||b[i]!='\0';i++) { if(a[i]==b[i]) continue; if(a[i]>b[i]) return 1; if(a[i]

44、[100]; int t; printf("輸入字符串A:"); gets(a); printf("輸入字符串B:"); gets(b); t=company(a,b); printf("t = %d",t); return 0; } 6. 、Arr是一個包含n個整數的一維數組?,F將數組中的每個元素向后移m個位置,使最后m個數變成最前面的m個數。 #include int main() { int arr[100],temp,k,i,j,n,m; int *p; p=arr; printf("你要輸入多少個數組:

45、"); scanf("%d",&n); printf("你要循環(huán)移動多少位: "); scanf("%d",&m); printf("請輸入%d個數:\n",n); for(i=0;i=k;j--) { *(p+j+1)=*(p+j); } arr[k]=temp; } printf("輸出結果為:\n"); for(i=0;i

46、 printf("%d ",*(p+i)); printf("\n"); return 0; } 7、 (要求使用函數)驗證哥德巴赫(Goldbach)的1+1猜想-----任何一個>=6的偶數都可以表示成兩個素數之和。要求:(1)屏幕提示用戶一個>=6的偶數,(2)輸出這個偶數等于2個素數之和的表達式(3)當輸入數據<6或者不是偶數時,停止輸入和驗證。 #include #include int prime(int a); int main() { int m,a,b; printf("請輸入一個>=6的數:");

47、scanf("%d",&m); while((m%2==0)||(m>=6)) { for(a=2;a=6的數:"); scanf("%d",&m); } return 0; } int prime(int a) { int i; for(i=2;i

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!