2013級 C復習題(補充31題)答案
《2013級 C復習題(補充31題)答案》由會員分享,可在線閱讀,更多相關《2013級 C復習題(補充31題)答案(20頁珍藏版)》請在裝配圖網上搜索。
1、C語言期末復習題(補充31題)簡單程序設計1、給定一圓的半徑,寫程序計算和打印圓的面積。請使用符號常量表示圓周率和適當?shù)淖兞勘硎景霃健?*#include#define PI 3.1415926int main()float r,s,l;printf(請輸入圓的半徑:);scanf(%f,&r);s=PI*r*r;l=2*PI*r;printf(圓的面積s = %fn,s);printf(圓的半徑l = %fn,l);return 0;*/2、一公斤大米價格是16.75元,一公斤的糖是15元,寫程序讓用戶輸入這些數(shù)據,并打印如下:*LIST OF ITEM*ItemPriceRiceRMB16
2、.75SugarRMB15.00#includeint main()printf(*LIST OF ITEM*n);printf(ItemPricen);printf(RiceRMB16.75n);printf(SugarRMB15.00n);return 0;36、用C賦值語句表示以下計算式并輸出計算結果(變量的值可自行輸入):Area=pr2+2prhTorque=Side=Energy=massacceleration*height+選擇程序設計1、二元x1,x2的一次方程組為:ax1+bx2=mcx1+dx2=n設其有唯一解:x1=x1=且分母ad-cb不為0. 寫程序輸入常量a,b,
3、c,d,m,n,計算x1,x2. 如果出現(xiàn)ad-cb為0,要有適當?shù)奶崾拘畔ⅰ?include stdafx.h#includeint _tmain(int argc, _TCHAR* argv)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
4、(%f,&d);printf(n = );scanf(%f,&n);if(a*d-c*b=0)printf(Errorn);elsex1=(m*d-b*n)/(a*d-c*b);x2=(n*a-m*c)/(a*d-c*b);printf( x1 = %fn x2 = %fn,x1,x2);return 0;2、給定一組學生分數(shù),介于0100,編程統(tǒng)計打印以下各分數(shù)段的學生數(shù):(a)超過80分(b)超過60分(c)超過40分(d)不高于40分(e)6180的(f)4060的要求用最少的if語句。#includeint main()int n,score1000;int i,j;int a,b,c
5、,d,e,f;a=b=c=d=e=f=0;printf(你要輸入多少個學生的成績:);scanf(%d,&n);for(i=0;in;i+)printf(%d號學生的成績?yōu)椋?i+1);scanf(%d,&scorei);if(scorei100)printf(你她媽,輸錯了,重輸,艸艸艸艸艸n);i=i-1;continue;for(i=0;i=61&scorei=40&scorei=60)f+;printf(超過80分人數(shù)為:%dn,a);printf(超過60分人數(shù)為:%dn,a+b);printf(超過40分人數(shù)為:%dn,a+b+c);printf(不高于40分人數(shù)為:%dn,d);
6、printf(6180的人數(shù)為:%dn,e);printf(4060的人數(shù)為:%dn,f);return 0;循環(huán)程序設計1、編程求m階乘(用循環(huán)實現(xiàn))。#includeint main()int n,i,s;printf(請輸入階乘n:);scanf(%d,&n);for(i=1,s=1;i=n;i+)s=s*i;printf(階乘為:%dn,s);23、分別編寫求以下式子的程序,精度到0.000001為止:第2題: cos(x)=#include#include#define PI 3.1415926int factorial(int n)int i,s;for(i=1,s=1;i=1e-
7、6;i=i+2)s=s+t;sign=-sign;t=sign*pow(X,i)/factorial(i);printf(cos(%.2f) = %fn,x,s);return 0;第3題: SUM1+(1/2)2+(1/3)3+(1/4)4+#include#includeint 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 = %fn,sum);return 0;4、用二維表形式輸出0到9.9的平方根表:Square Root of X-x
8、0.10.20.30.40.50.60.70.80.90.01.02.03.04.05.06.07.08.09.0-#include#includeint main()/i代表行,j代表列,s代表平方根,a代表被開方數(shù)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;s=pow(a,0.5);printf(%7.3f,s);printf(n);return 0;5、用for語句打?。?a)12 23 3 34 4 4 45
9、 5 5 5 5(b)* * * * * * * * * * * * * * *(a)#includeint main()int a,b;int n;for(a=0;a=4;a+)for(b=0;b=a;b+)printf(%3d,a+1);printf(n);return 0;(b)#includeint main()int a,b,c;int n;for(a=4;a=0;a-)for(c=0;c4-a;c+)printf( );for(b=0;b=a;b+)printf( *);printf(n);return 0;6、打印如下的y=exp(-x)的函數(shù)值對照表,x從0.0增到10.0,步
10、長0.1:Table for Y=EXP(-X)-x0.10.20.30.40.50.60.70.80.90.01.02.03.04.05.06.07.08.09.0-#include#includeint main()/i代表行,j代表列,s代表平方根,a代表被開方數(shù)float x,n,i,j;printf(x );for(n=0.1;n1;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;j1;j=j+0.1)x=i+j;printf(%8.4f,exp(-x);printf(n);
11、return 0;7、 有蘋果若干,按以下方法分給五個大人和一位小孩.先由第一人將蘋果均分為5堆,多余的一個給小孩,自己取其中的一堆.第二人又將剩下的蘋果均分為5堆,多余一個給小孩,自己取其中的一堆.第三、四、五人同樣均分,多余一個給小孩,每人各取其中一堆。問原先最少有多少蘋果?五個大人各得多少蘋果? #include stdafx.hint main()/n代表所有的蘋果int a5,i,n,m,j;for(m=1000;m10000;m+)n=m;for(i=0;i5;i+)if(n%5=1)ai=(n-1)/5;n=ai*4;elsebreak;if(i=5)break;printf(原
12、先最少%d個蘋果n,m);for(i=0;i5;i+)printf(大人%d分得%3d個蘋果n,i+1,ai);return 0;8、計算機輔助教育:幫助小學生學習加法,用rand函數(shù)產生一對1位數(shù)的整數(shù),如下形式顯示:How much is 5 plus 4?學生輸入答案,程序判斷答案正誤,若正確則打印“GOOD”,再出下一題;若不正確,打印“No.Try Agin.”,讓學生再給答案,直到答案正確。寫出程序。#include#include#includeint main()int a,b,c,n;srand(time(NULL);flag:a=rand()%10;b=rand()%10;
13、c=a+b;printf(How much is %d plus %d? ,a,b);scanf(%d,&n);if(n=c)printf(GOODn);elseprintf(No.Try Agin.n);goto flag;return 0;9、新完全平方數(shù): 在三位整數(shù)(100999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中,條件為它既是一個整數(shù)的平方數(shù),又有兩位數(shù)字相同,例如:144、676等。要求輸出所有滿足該條件的三位數(shù)整數(shù),并輸出滿足該條件的整數(shù)的個數(shù)。#includeint main()/a代表百位數(shù),b代表十位數(shù),c代表個位數(shù)int i,n,s;int a,b,c;for(
14、i=10;i=100&s=1000&(a=b|a=c|b=c)printf(%dn,s);return 0;一、二維維數(shù)組1、 用rand函數(shù)模擬投一對骰子,從數(shù)學意義上講,因每骰子投出的值在16,所投出的兩個值之和為2和12的頻率最小,兩個值之和為7的頻率最大。試投5000次,分別計算兩個值之和為2、7、12的頻率。#include#include#includeint main()int a3,i,t1,t2,n;float p3;for(i=0;i3;i+)ai=0;srand(time(0);for(i=0;i=5000;i+)t1=rand()%6+1;t2=rand()%6+1;i
15、f(t1+t2=2)a0+;if(t1+t2=7)a1+;if(t1+t2=12)a2+;for(i=0;i3;i+)pi=ai*1.0/5000;printf(兩個值之和為2頻率為:%fn,p0);printf(兩個值之和為7頻率為:%fn,p1);printf(兩個值之和為12頻率為:%fn,p2);return 0;2、合并兩個有序數(shù)組成為一個有序數(shù)組。int main()/i用來計數(shù)a,j用來計數(shù)bint a100,b100,c100,n,m;int i,j,t;i=0,j=0;printf(輸入數(shù)組a個數(shù)n = );scanf(%d,&n);printf(請輸入%d個數(shù)的數(shù)組a:,n
16、);for(i=0;in;i+)scanf(%d,&ai);printf(輸入數(shù)組b個數(shù)m = );scanf(%d,&m);printf(請輸入%d個數(shù)的數(shù)組b:,m);for(i=0;im;i+)scanf(%d,&bi);for(j=0;jn-1;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;printf(數(shù)組a為:n);for(i=0;in;i+)printf(%d ,ai);printf(n);for(j=0;jm-1;j+)for(i=0;ibi+1)t=bi;bi=bi+1;bi+1=t;printf(數(shù)組b為:n);for(i=0;im;i+)pri
17、ntf(%d ,bi);printf(n);for(i=0;in;i+)ci=ai;for(i=n,j=0;im+n,jm;i+,j+)ci=bj;for(j=0;jn+m-1;j+)for(i=0;ici+1)t=ci;ci=ci+1;ci+1=t;printf(有序數(shù)組為:n);for(i=0;im+n;i+)for(j=0;ji;j+) if(cj=ci)break;if(j=i)printf(%d ,ci);printf(n);return 0;3、編寫一個程序,將用戶輸入的十進制正整數(shù)轉換成任意K進制(K取值216)的數(shù)(將結果存儲在一維數(shù)組中,最后顯示結果) #includeint
18、 main()int a,b;int arr100;int i,j,n,t;for(i=0;i+)printf(請輸入一個十進制整數(shù):);scanf(%d,&a);if(a=-1)printf(-n);break;printf(請輸入要轉化成的進制:);scanf(%d,&b);for(j=0;a!=0;j+)arrj=a%b;a=a/b;printf(轉化的結果為:);for(n=j-1;n=0;n-)if(arr100=10)switch(arr100)case 10:printf(a);break;case 11:printf(b);break;case 12:printf(c);bre
19、ak;case 13:printf(d);break;case 14:printf(e);break;case 15:printf(f);break;elseprintf(%d,arrn);printf(n);printf(-n);return 0;4、 輸出數(shù)組中的元素(重復的元素只輸出一次):例如數(shù)組int a=1,1,2,3,26,3,4,5,8,7,7,4; 則應輸出 1 2 3 26 4 5 8 7#includeint main()int i,j;int a12;printf(請輸入一組數(shù) : n);for(i=0;i12;i+)scanf(%d,&ai);for(i=0;i12;
20、i+)for(j=0;jn+26)printf(%c,chi);printf(n);return 0;6、對N個元素的數(shù)組排序: (1)用冒泡排序法(2)用選擇排序法#includeint main()int a10;int i,j,t;printf(請輸入10個數(shù):n);for (i= 0;i10;i+)scanf(%d,&ai);for (i=0;i9;i+)for (j=i+1;j10;j+)if (aiaj)t=ai;ai=aj;aj=t;for(i=0;i10;i+)printf(%4d,ai);return 0;7、隨機產生一個4*5的矩陣。#include stdafx.h#in
21、clude#includeint _tmain(int argc, _TCHAR* argv)int i,j;int a45;srand(time(0);for(i=0;i4;i+)for(j=0;j5;j+)aij=rand()/10;printf(%6d,aij);printf(n);return 0;函 數(shù)1、寫函數(shù)判定整數(shù)是否素數(shù),是則返回1,否則返回0#include#includeint prime(int x)int i;for(i=2;ipow(x,0.5);i+)if(x%i=0)return 0;return 1;int main()int x;scanf(%d,&x);p
22、rintf(%d,prime(x);return 0;2、寫一個函數(shù)求n個數(shù)的最大值、最小值和平均值。#includeint max(int a,int n)int max=a0;int i;for(i=0;i=max)max=ai;return max;int min(int a,int n)int min=a0;int i;for(i=0;in;i+)if(ai=min)min=ai;return min;float average(int a,int n)int i;float s=0;for(i=0;in;i+)s=s+ai;s=s/n;return s;int main()/x代表最
23、大值,y代表最小值,aver代表品均值int a100;int n,i;int x,y;float aver;printf(你要輸入幾個數(shù):);scanf(%d,&n);printf(請輸入%d個數(shù):n,n);for(i=0;in;i+)scanf(%d,&ai);x=max(a,n);y=min(a,n);aver=average(a,n);printf(max = %dn,x);printf(min = %dn,y);printf(average = %fn,aver);return 0;3、 利用遞歸函數(shù)調用形式,將用戶輸入的字符串,以相反的順序打印出來。方法1、#include#inc
24、ludevoid reverse(char a,int n)if(n=0)return ;reverse(a+1,n-1);putchar(*a);int main()char arr100;printf(Enter a string:n);gets(arr);printf(After being reversedn);reverse(arr,strlen(arr);printf(n);return 0;方法2、void reverse()char ch;ch=getchar();if(ch=n)printf(After being reversedn);return ;reverse();p
25、utchar(ch);int main()printf(Enter a string:n);reverse();printf(n);return 0;4、 利用遞歸求一個整數(shù)的各位數(shù)字之和。#include int sum(int n)if(n=0)return 0;elsereturn n%10+sum(n/10);void main()int n;scanf(%d,&n);printf(%dn,sum(n);5、編程模擬實現(xiàn)比較兩個字符串大小的函數(shù)strcmp()。已知strcmp函數(shù)的原型如下:int strcmp(char *p1, char *p2) ,設p1指向字符串s1,p2指向
26、字符串s2,要求當s1=s2時,返回值為0;若s1s2,則返回值是一個正整數(shù);若s1s2,則返回值是一個負整數(shù)。#includeint company(char a,char b)int i;for(i=0;ai!=0|bi!=0;i+)if(ai=bi)continue;if(aibi)return 1;if(aibi)return -1;int main()char a100,b100;int t;printf(輸入字符串A:);gets(a);printf(輸入字符串B:);gets(b);t=company(a,b);printf(t = %d,t);return 0;6. 、Arr是
27、一個包含n個整數(shù)的一維數(shù)組?,F(xiàn)將數(shù)組中的每個元素向后移m個位置,使最后m個數(shù)變成最前面的m個數(shù)。#includeint main()int arr100,temp,k,i,j,n,m;int *p;p=arr;printf(你要輸入多少個數(shù)組: );scanf(%d,&n);printf(你要循環(huán)移動多少位: );scanf(%d,&m);printf(請輸入%d個數(shù):n,n);for(i=0;in;i+)scanf(%d,&arri);for(i=n-m,k=0;i=k;j-)*(p+j+1)=*(p+j);arrk=temp;printf(輸出結果為:n);for(i=0;i=6的偶數(shù)都可
28、以表示成兩個素數(shù)之和。要求:(1)屏幕提示用戶一個=6的偶數(shù),(2)輸出這個偶數(shù)等于2個素數(shù)之和的表達式(3)當輸入數(shù)據6或者不是偶數(shù)時,停止輸入和驗證。 #include#includeint prime(int a);int main()int m,a,b;printf(請輸入一個=6的數(shù):);scanf(%d,&m);while(m%2=0)|(m=6)for(a=2;am;a+)b=m-a;if(prime(a)&prime(b)&a=6的數(shù):);scanf(%d,&m);return 0;int prime(int a)int i;for(i=2;ia;i+)if(a%i=0)return 0;return 1;19
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。