C语言练习题精选

更新时间:2023-11-10 05:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

-- C语言练习题精选

1. 从键盘上输入两个整数,求出它们的和 #include \ void main() { int x,y,s; scanf(\ scanf(\ s=x+y;

printf(\ }

2. 已知三角形的底和高,求出三角形的面积。 #include \ void main() { int x,y; float s; x=4; y=5; s=x*y/2.0; printf(\}

3. 从键盘上输入三角形的底和高,求出三角形的面积。 #include \ void main() { int x,y; float s; scanf(\ scanf(\ s=x*y/2.0; printf(\}

4. 已知三角形的三边长,求出三角形的面积。 #include \#include \ 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(\}

5. 已知二元一次方程的三个系数,求方程的一个根。 #include \#include \ 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(\

6. 编程实现符号函数。当x <0 ,则sgn(x)=-1, 当x >0 ,则sgn(x)=+1, 当x =0 ,则sgn(x)=0 #include \void main() { float x; int y;

scanf(\ if (x>0); y=1;

if (x==0); y=0; if (x<0); y=-1;

printf(\或者:

#include \ void main() { float x; int y;

scanf(\ if (x>0); y=1; else if (x==0); y=0; else; y=-1;

printf(\} 或者:

#include \void main() { float x; int y;

scanf(\

y=(x>0) ? 1: (x==0) ? 0 : -1; printf(\}

7. 从键盘上输入数字星期,在屏幕上显示英文星期。 #include \void main() {

float x; scanf(\ switch( x ) {

case 0 :printf(\ case 1 :printf(\ case 2 :printf(\ case 3 :printf(\ case 4 :printf(\ case 5 :printf(\ case 6 :printf(\ default :printf(\不存在这个星期!\\\\n\ } }

8. 从键盘输入三角形的三边长,判断出这三边能否构成三角形 #include \void main() {

int a,b,c; scanf(\ scanf(\ scanf(\

if ((a+b>c) && (a+c)>b) && (b+c)>a } printf(\这三边能构成三角形!\ else

printf(\这三边不能构成三角形!\ }

9. 从键盘输入三个整数,将这三个数按从大到小的顺序排列起来#include \ void main() {

int a,b,c,temp; scanf(\ scanf(\ scanf(\

if ((a>b) && (a>c) && (b>c))

printf(\这三数从大到小的顺序为:%d,%d,%d\ if ((a>b) && (a>c) && (b

printf(\这三数从大到小的顺序为:%d,%d,%d\ if ((b>a) && (b>c) && (a>c))

printf(\这三数从大到小的顺序为:%d,%d,%d\ if ((b>a) && (b>c) && (c>a))

printf(\这三数从大到小的顺序为:%d,%d,%d\ if ((c>b) && (c>a) && (a>b))

printf(\这三数从大到小的顺序为:%d,%d,%d\ if ((c>b) && (c>a) && (b>a))

printf(\这三数从大到小的顺序为:%d,%d,%d\}

或者这样写: #include \ void main() { int a,b,c,temp; scanf(\ scanf(\ scanf(\ if (a

printf(\这三数从大到小的顺序为:%d,%d,%d\}

10. 从键盘输入二个整数,求出最大值。 #include \void main() {

int a,b,temp; scanf(\ scanf(\ if (a>b) temp=a; else temp=b;

printf(\这二个整数最大值为%d\ }

11. 从键盘输入三个实数,求出最大值。 #include \void main() {

float a,b,c,temp; scanf(\ scanf(\ scanf(\ if (a>b)

temp=a; else temp=b; if (temp

printf(\这三数最大值为%f\ }

12. 从键盘输入三个整数,在一个程序中既要求出最大值,还要求出最大值。 #include \void main() {

int a,b,c,max,min; scanf(\ scanf(\ scanf(\ if (a>b)

{max=a; min=b;} else

{max=b;min=a;} if (maxc) min=c;

printf(\这三个整数最大值为:%d,最小值为:%d.\ }

13. 使用for循环编程求出1到100的和 #include \ void main() {

int i,s=0;

for (i=1;i<=100;i++) s=s+i;

printf(\ }

14. 使用当循环编程求出1到100的和 #include \ void main() {

int i=1,s=0; while (i<=100) { s=s+i; i++; }

printf(\ }

15. 使用当循环编程求出1到100的和 #include \ void main() {

int i=1,s=0; do { s=s+i; i++; }

while (i<=100); printf(\ }

16. 从键盘输入10个实数,求出最大值 #include \ void main() {

int i; float x,max; scanf(\ max=x; for (i=0;i<9;i++) {

scanf(\ if (max

printf(\这十数中的最大值为:%f\ }

15. 从键盘输入10个整数,求出最小值 #include \ void main() {

int i x,min; scanf(\ min=x; for (i=0;i<9;i++) {

scanf(\ if (min>x) min=x; }

printf(\这十整数中的最小值为:%d\}

16. 从键盘输入10个整数,求出它们的平均值 #include \ void main() {

int i a[10],s=0; float aver=0.0; for (i=0;i<10;i++) {

scanf(\ s=s+i; }

aver=s/10.0;

printf(\这十整数中的平均值为:%f\}

17. 编程在屏幕上输出具有7行的正三角形 * *** ***** ******* ********* *********** ************* #include \ 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(\ } }

18. 求出8的阶乘。

#include \ void main() {

int i ; long p=1; for (i=1;i<9;i++) p=p*i;

printf(\的阶乘值为:%ld\}

19、从键盘输入20个整数,求出不大于90所有数的和 #include \ void main() {

int i ,s=0,x; for (i=0;i<20;i++) {

scanf(\ if (x<=90) s=s+x; }

printf(\不大于90所有数的和:%d\}

20、从键盘输入一个整数,判断这个数是否为素数 #include \ void main() {

int i ,x,flag=1; scanf(\ for (i=2;i

if ( x % i ==0) { flag=0; break; } }

if (flag==1)

printf(\该数是素数\ else

printf(\该数不是素数\}

21、从键盘输入20个整数,求出它们的和 #include \ void main() {

int i ,s=0,x[20]; for (i=0;i<20;i++) {

scanf(\ s=s+x[i]; }

printf(\所有数的和:%d\}

22、从键盘输入20个整数,求出它们的平均值及比平均值大的数#include \ void main() {

int i ,s=0,x[20]; float aver=0.0; for (i=0;i<20;i++) {

scanf(\ s=s+x[i];

}

aver=s/20.0;

printf(\平均为:%f\\\\n\ for (i=0;i<20;i++) {

if (x[i]>aver)

printf(\比平均大的数为:[%d]=%d\\\\n\ } }

23、已知五个整数3,-5,8,2,9,求出最大值 #include \ 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\}

24、从键盘输入20个整数,求出它们的最小值,并求最小值所在位置#include \ void main() {

int i ,min,x[20],pos=0; for (i=0;i<20;i++) scanf(\ min=x[0]; pos=0;

for (i=1;i<20;i++) if (x[i]>min) {

min=x[i]; pos=i; }

printf(\最小值为:%d,最小值位置为:%d\\\\n\}

25、已知五个整数3,-5,8,2,9,按从大到小的顺序排列起来 #include \ 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]

t= b[j]; b[j]= b[k]; b[k]=t; } for (j=0; j<5; j++) printf(\}

26、从键盘输入10个实数,按从大到小的顺序排列起来 #include \ void main() {

int i, j ,k; float b[10],t; for (i=0;i<20;i++) scanf(\ for (j=0; j<9; j++) for (k=j-1; k<10; k++)

if (b[j]

t= b[j]; b[j]= b[k]; b[k]=t; } for (j=0; j<9; j++) printf(\}

某班有43名学生,某门考试结束后,请按10段统计出各分数段的人数

#include \

void main() {

int j , x[43],fragment[12]; for (j=0; j<43; j++) scanf(\ for (j=0; j<43; j++)

fragment[x[j]/10]= fragment[x[j]/10]+1; for (j=0; j<11; j++)

printf(\各分数段人数为 %d\}

或者写成: #include \

void main() {

int j , x[43],t ,fragment[12]; for (j=0; j<43; j++) scanf(\ for (j=0; j<43; j++) {

t= x[j]/10;

fragment[t]= fragment[t]+1; }

for (j=0; j<11; j++)

printf(\各分数段人数为 %d\}

从键盘上输入两个字符串,并将它们交换后输出

#include \ #include \

void main() {

int j ,k;

char ch1[81],ch2[81],t[81]; scanf(\ scanf(\ strcpy(t , ch1); strcpy(ch1 , ch2); strcpy( ch2 ,t);

printf(\}

26、已知五个字符串\编程将它们按从小到大的顺序排列起来 #include \ #include \void main() {

int j ,k;

char t[81], b[5][81]= {\}; 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(\}

27、使用指针将x数组中的五个数依次输出 #include \void main() {

int i ,x[5]; int *p=x; for (i=0;i<5;i++) {

scanf(\ p++; } p=x;

for (i=0;i<5;i++) {

printf(\ p++; } }

或者(全指针型): #include \void main() {

int x[5]; int *p=x; for (p=x;p

28、已知一维x数组中有10个数,将每个元素加1后输出 //全指针型 #include \

void main() {

int x[10]; int *p=x;

for (p=x;p

或者(部分指针型) #include \void main() {

int i ,x[10]; int *p=x; for (i=0;i<10;i++) {

scanf(\ p++; } p=x;

for (i=0;i<10;i++) {

printf(\ p++; } }

29、在屏幕上显示文件a:\\\\abc\\\\abc.txt内容 #include void main( ) {

FILE *fp;

if((fp=fopen(\ {

printf(\ exit(1); }

while (!feof(fp) )

printf(\ fclose(fp); }

30、将五个整数3,-5,8,2,9写到C盘mydocument子目录下的aaa.txt文件中

#include void main( ) {

FILE *fp;

int x[5]={ 3,-5,8,2,9},j;

if((fp=fopen(\ {

printf(\ exit(1); }

for (j=0 ; j<5 ; j++) fputc(x[j], fp); fclose(fp); }

31、从键盘上输入10个数,将它们按从大到小的顺序排列起来,主函数中使用input(a,10),sort(a,10),output(a,10)三个函数,编程实现 #include \void input(int a[] , int n); void sort(int a[] , int n );

本文来源:https://www.bwwdw.com/article/pyzv.html

Top