2013級 C復習題(補充31題)答案
《2013級 C復習題(補充31題)答案》由會員分享,可在線閱讀,更多相關《2013級 C復習題(補充31題)答案(20頁珍藏版)》請在裝配圖網上搜索。
1、
C語言期末復習題(補充31題)
簡單程序設計
1、給定一圓的半徑,寫程序計算和打印圓的面積。請使用符號常量表示圓周率和適當的變量表示半徑。
/*
#include
2、是16.75元,一公斤的糖是15元,寫程序讓用戶輸入這些數據,并打印如下:
***LIST OF ITEM***
Item Price
Rice RMB16.75
Sugar RMB15.00
#include
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
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
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 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 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 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 15、
{
printf("%3d",a+1);
}
printf("\n");
}
return 0;
}
(b)
#include 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 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 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 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;i 27、:\n");
for(i=0;i 28、i=0;i 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 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 35、+)
scanf("%d",&a[i]);
for (i=0;i<9;i++)
for (j=i+1;j<10;j++)
if (a[i]
#include 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 37、
int i;
for(i=2;i 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 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 43、指向字符串s2,要求當s1==s2時,返回值為0;若s1>s2,則返回值是一個正整數;若s1 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 45、");
scanf("%d",&n);
printf("你要循環(huán)移動多少位: ");
scanf("%d",&m);
printf("請輸入%d個數:\n",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 47、scanf("%d",&m);
while((m%2==0)||(m>=6))
{
for(a=2;a
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。