|
C語(yǔ)言練習(xí)題精選 1. 從鍵盤上輸入兩個(gè)整數(shù),求出它們的和 #include "stdio.h" void main() { int x,y,s; scanf("%d",&x); scanf("%d",&y); s=x+y; printf("\\n s=%d",s); } 2. 已知三角形的底和高,求出三角形的面積。 #include "stdio.h" void main() { int x,y; float s; x=4; y=5; s=x*y/2.0; printf("\\n s=%f",s); } 3. 從鍵盤上輸入三角形的底和高,求出三角形的面積。 #include "stdio.h" void main() { int x,y; float s; scanf("%d",&x); scanf("%d",&y); s=x*y/2.0; printf("\\n s=%f",s); } 4. 已知三角形的三邊長(zhǎng),求出三角形的面積。 #include "stdio.h" #include "math.h"
void main() { int a,b,c; float p,s; a=3; b=4; c=5; p=(a+b+c)/2.0; s=sqrt(p*(p-a) *(p-b) *(p-c)); printf("\\n s=%f",s); } 5. 已知二元一次方程的三個(gè)系數(shù),求方程的一個(gè)根。 #include "stdio.h" #include "math.h" void main() { int a,b,c; float root; a=3; b=4; c=5; root=(-b-sqrt(pow(b,2)-4*a*c))/(2.0*a); printf("\\n root=%f",root); }
6. 編程實(shí)現(xiàn)符號(hào)函數(shù)。當(dāng)x <0 ,則sgn(x)=-1, 當(dāng)x >0 ,則sgn(x)=+1, 當(dāng)x =0 ,則sgn(x)=0 #include "stdio.h" void main() { float x; int y; scanf("%f",&x); if (x>0); y=1; if (x==0); y=0; if (x<0); y=-1; printf("\\n x=%f ,sgn(x)=%d",x,y); }
或者:
#include "stdio.h"
void main() { float x; int y; scanf("%f",&x); if (x>0); y=1; else if (x==0); y=0; else; y=-1; printf("\\n x=%f ,sgn(x)=%d",x,y); }
或者:
#include "stdio.h"
void main() { float x; int y; scanf("%f",&x); y=(x>0) ? 1: (x==0) ? 0 : -1; printf("\\n x=%f ,sgn(x)=%d",x,y); } 7. 從鍵盤上輸入數(shù)字星期,在屏幕上顯示英文星期。
#include "stdio.h"
void main() { float x; scanf("%f",&x); switch( x ) { case 0?。?/span>printf("Sunday.\\n");break; case 1?。?/span>printf("Monday.\\n");break; case 2?。?/span>printf("Tuesday.\\n");break; case 3?。?/span>printf("Wednesday.\\n");break; case 4?。?/span>printf("Thursday.\\n");break; case 5?。?/span>printf("Friday.\\n");break; case 6?。?/span>printf("Saturday.\\n");break; default?。?/span>printf("不存在這個(gè)星期!\\n"); } } 8. 從鍵盤輸入三角形的三邊長(zhǎng),判斷出這三邊能否構(gòu)成三角形 #include "stdio.h"
void main() { int a,b,c; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if ((a+b>c) && (a+c)>b) && (b+c)>a ) printf("這三邊能構(gòu)成三角形!"); else printf("這三邊不能構(gòu)成三角形!"); } 9. 從鍵盤輸入三個(gè)整數(shù),將這三個(gè)數(shù)按從大到小的順序排列起來(lái) #include "stdio.h" void main() { int a,b,c,temp; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if ((a>b) && (a>c) && (b>c)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",a,b,c); if ((a>b) && (a>c) && (b<c)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",a,c,b); if ((b>a) && (b>c) && (a>c)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",b,a,c); if ((b>a) && (b>c) && (c>a)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",b,c,a); if ((c>b) && (c>a) && (a>b)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",c,a,b); if ((c>b) && (c>a) && (b>a)) printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",c,b,a); }
或者這樣寫: #include "stdio.h" void main() { int a,b,c,temp; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if (a<b) { temp=a; a=b; b=temp; }
if (a<c) { temp=a; a=c; c=temp; } if (b<c) { temp=b; b=c; c=temp; } printf("這三數(shù)從大到小的順序?yàn)椋?/span>%d,%d,%d",a,b,c); } 10. 從鍵盤輸入二個(gè)整數(shù),求出最大值。
#include "stdio.h"
void main() { int a,b,temp; scanf("%d",&a); scanf("%d",&b); if (a>b) temp=a; else temp=b; printf("這二個(gè)整數(shù)最大值為%d",temp); }
11. 從鍵盤輸入三個(gè)實(shí)數(shù),求出最大值。
#include "stdio.h"
void main() { float a,b,c,temp; scanf("%f",&a); scanf("%f",&b); scanf("%f",&c); if (a>b) temp=a; else temp=b; if (temp<c) temp=c; printf("這三數(shù)最大值為%f",temp); } 12. 從鍵盤輸入三個(gè)整數(shù),在一個(gè)程序中既要求出最大值,還要求出最小值。
#include "stdio.h"
void main() { int a,b,c,max,min; scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); if (a>b) {max=a; min=b;} else {max=b;min=a;} if (max<c) max=c; if (min>c) min=c; printf("這三個(gè)整數(shù)最大值為:%d,最小值為:%d.",max,min); }
13. 使用for循環(huán)編程求出1到100的和
#include "stdio.h" void main() { int i,s=0; for (i=1;i<=100;i++) s=s+i; printf("\\ns= %d",s); }
14. 使用當(dāng)循環(huán)編程求出1到100的和
#include "stdio.h" void main() { int i=1,s=0; while (i<=100) { s=s+i; i++; } printf("\\ns= %d",s); }
15. 使用當(dāng)循環(huán)編程求出1到100的和
#include "stdio.h" void main() { int i=1,s=0; do { s=s+i; i++; } while (i<=100); printf("\\ns= %d",s); }
16. 從鍵盤輸入10個(gè)實(shí)數(shù),求出最大值
#include "stdio.h" void main() { int i; float x,max; scanf("%f",&x); max=x; for (i=0;i<9;i++) { scanf("%f",&x); if (max<x) max=x; } printf("這十?dāng)?shù)中的最大值為:%f",max); }
15. 從鍵盤輸入10個(gè)整數(shù),求出最小值
#include "stdio.h"
void main() { int i x,min; scanf("%d",&x); min=x; for (i=0;i<9;i++) { scanf("%d",&x); if (min>x) min=x; } printf("這十整數(shù)中的最小值為:%d",min); }
16. 從鍵盤輸入10個(gè)整數(shù),求出它們的平均值
#include "stdio.h"
void main() { int i a[10],s=0; float aver=0.0; for (i=0;i<10;i++) { scanf("%d",&a[i]); s=s+i; } aver=s/10.0; printf("這十整數(shù)中的平均值為:%f",aver); }
17. 編程在屏幕上輸出具有7行的正三角形
?。?/span> *** ?。?/span> ?。?/span> ?。?/span> *********** ?。?/span> #include "stdio.h" void main() { int i , j; for (i=0;i<7;i++) { for (j=0; j<6-i; j++) printf(" "); for (j=0; j<=2*i+1; j++) printf("*"); printf("\\n"); } }
18. 求出8的階乘。
#include "stdio.h" void main() { int i ; long p=1; for (i=1;i<9;i++) p=p*i; printf("\\n8的階乘值為:%ld",p); }
從鍵盤輸入20個(gè)整數(shù),求出不大于90所有數(shù)的和
#include "stdio.h"
void main() { int i ,s=0,x; for (i=0;i<20;i++) { scanf("%d",&x); if (x<=90) s=s+x; } printf("\\n不大于90所有數(shù)的和:%d",s); }
從鍵盤輸入一個(gè)整數(shù),判斷這個(gè)數(shù)是否為素?cái)?shù)
#include "stdio.h"
void main() { int i ,x,flag=1; scanf("%d",&x); for (i=2;i<x;i++) { if ( x % i ==0) { flag=0; break; } } if (flag==1) printf("\\n該數(shù)是素?cái)?shù)"); else printf("\\n該數(shù)不是素?cái)?shù)"); }
從鍵盤輸入20個(gè)整數(shù),求出它們的和
#include "stdio.h"
void main() { int i ,s=0,x[20]; for (i=0;i<20;i++) { scanf("%d",&x[i]); s=s+x[i]; } printf("\\n所有數(shù)的和:%d",s); }
從鍵盤輸入20個(gè)整數(shù),求出它們的平均值及比平均值大的數(shù)
#include "stdio.h" void main() { int i ,s=0,x[20]; float aver=0.0; for (i=0;i<20;i++) { scanf("%d",&x[i]); s=s+x[i]; } aver=s/20.0; printf("平均為:%f\\n",aver); for (i=0;i<20;i++) { if (x[i]>aver) printf("比平均大的數(shù)為:[%d]=%d\\n",i,x[i]); } }
已知五個(gè)整數(shù)3,-5,8,2,9,求出最大值
#include "stdio.h"
void main() { int i ,x[5]={ 3,-5,8,2,9},max; max=x[0]; for (i=0;i<20;i++) if (x[i]>max) max=x[i]; printf("最大值為:%d\\n",max); }
從鍵盤輸入20個(gè)整數(shù),求出它們的最小值,并求最小值所在位置
#include "stdio.h"
void main() { int i ,min,x[20],pos=0; for (i=0;i<20;i++) scanf("%d",&x[i]); min=x[0]; pos=0; for (i=1;i<20;i++) if (x[i]>min) { min=x[i]; pos=i; } printf("最小值為:%d,最小值位置為:%d\\n",min,pos); }
已知五個(gè)整數(shù)3,-5,8,2,9,按從大到小的順序排列起來(lái)
#include "stdio.h" void main() { int j ,k, t , b[5]={ 3,-5,8,2,9}; for (j=0; j<4; j++) for (k=j-1; k<5; k++) if (b[j]<b[k]) { t= b[j]; b[j]= b[k]; b[k]=t; } for (j=0; j<5; j++) printf("\\n %d,",b[j]); }
從鍵盤輸入10個(gè)實(shí)數(shù),按從大到小的順序排列起來(lái)
#include "stdio.h" void main() { int i, j ,k; float b[10],t; for (i=0;i<20;i++) scanf("%d",&b[i]); for (j=0; j<9; j++) for (k=j-1; k<10; k++) if (b[j]<b[k]) { t= b[j]; b[j]= b[k]; b[k]=t; } for (j=0; j<9; j++) printf("\\n %f,",b[j]); }
某班有43名學(xué)生,某門考試結(jié)束后,請(qǐng)按10段統(tǒng)計(jì)出各分?jǐn)?shù)段的人數(shù)
#include "stdio.h"
void main() { int j , x[43],fragment[12]; for (j=0; j<43; j++) scanf("%d",&x[j]); for (j=0; j<43; j++) fragment[x[j]/10]= fragment[x[j]/10]+1; for (j=0; j<11; j++) printf("\\n各分?jǐn)?shù)段人數(shù)為 %d", fragment[j]); }
或者寫成: #include "stdio.h"
void main() { int j , x[43],t ,fragment[12]; for (j=0; j<43; j++) scanf("%d",&x[j]); for (j=0; j<43; j++) ?。?/span> t= x[j]/10; fragment[t]= fragment[t]+1; ?。?/span> for (j=0; j<11; j++) printf("\\n各分?jǐn)?shù)段人數(shù)為 %d", fragment[j]); }
從鍵盤上輸入兩個(gè)字符串,并將它們交換后輸出
#include "stdio.h" #include "string.h"
void main() { int j ,k; char ch1[81],ch2[81],t[81]; scanf("%s",ch1); scanf("%s",ch2); strcpy(t , ch1); strcpy(ch1 , ch2); strcpy( ch2 ,t); printf("\\n %s,%s\\n,",ch1,ch2); }
已知五個(gè)字符串"China","American","Japan","France","Australia",編程將它們按從小到大的順序排列起來(lái)
#include "stdio.h" #include "string.h"
void main() { int j ,k; char t[81], b[5][81]= {"China","American","Japan","France","Australia"}; for (j=0; j<4; j++) for (k=j-1; k<5; k++) if ( strcmp(b[j]>b[k]) ) { strcpy(t , b[j]); strcpy(b[j] , b[k]); strcpy( b[k] ,t); } for (j=0; j<9; j++) printf("\\n %s,",b[j]); }
|
|
|