c语言的例子

更新时间:2024-06-15 10:04:01 阅读量: 综合文库 文档下载

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

顺序结构程序设计

1、已知三角形的底边为20,高为10,求其面积。 main() {float a,h,s; a=20;

h=10;

s=1.0/2*a*h; /*1.0/2不能写作1/2*/ printf(\}

2、从键盘输入三角形的底边及高的长度,求其面积。 main() {float a,h,s;

scanf(\

s=1.0/2*a*h; /*1.0/2不能写作1/2*/ printf(\}

3、已知圆的半径为10,求圆的面积。 解法1:

#define PI 3.14159 main() {float r,s;

r=10; s=PI*r*r;

printf(\}

解法2:

#include #define PI 3.14159 main() {float r,s; r=10;

s=PI*pow(r,2); printf(\}

4、从键盘输入圆的半径值,求圆的面积。 #define PI 3.14159 main() {float r,s;

scanf(\ s=PI*r*r;

printf(\

}

5、从键盘输入球体的半径,求其体积和表面积。 解法1:

#define PI 3.14159 main() {float r,s,v;

scanf(\ s=4*PI*r*r;

v=4.0/3*PI*r*r*r; /*4.0/3不能写作4/3*/ printf(\} 解法2:

#include #define PI 3.14159 main() {float r,s,v; scanf(\ s=4*PI*pow(r,2);

v=4.0/3*PI*pow(r,3); /*4.0/3不能写作4/3*/ printf(\}

6、从键盘输入一个小写字母,将其转化为相应的大写字母输出。 解法1: main() {char ch;

scanf(\ ch=ch-32;

printf(\}

解法2:

#include main() {char ch; ch=getchar(); ch=ch-32; putchar(ch); }

7、已知方程ax2+bx+c=0的系数值(设b2-4ac>0),求方程的根。 解法1:

#include main()

{float a,b,c,x1,x2;

scanf(\

x1=(-b+sqrt(b*b-4*a*c))/(2*a); /*不要丢失乘号和括号*/ x2=(-b-sqrt(b*b-4*a*c))/(2*a);

printf(\}

解法2:

#include main()

{float a,b,c,p,q,x1,x2;

scanf(\

p=-b/(2*a);

q=sqrt(b*b-4*a*c)/(2*a); /*不要丢失乘号和括号*/ x1=p+q; x2=p-q;

printf(\}

选择结构程序设计

1、从键盘输入两个整数,求出较大数并输出。 解法1:

main()

{int x,y,max;

scanf(\ if(x>y) max=x;

else

max=y;

printf(\} 解法2: main()

{int x,y,max;

scanf(\ max=x>y?x:y;

printf(\}

2、从键盘输入一个实数,求其绝对值并输出。 main()

{float x,y;

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

y=-x;

printf(\

}

3、从键盘输入x的值,求y的值并输出。

解法1: main() {float x,y;

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

printf(\} 解法2: main()

{float x,y;

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

else if(x==0) y=0; else

y=-1;

printf(\}

4、从键盘输入三个整数,求出最大数并输出。 解法1: main()

{int a,b,c,max;

scanf(\ if(a>b) max=a; else max=b; if(c>max)

max=c;

printf(\} 解法2: main()

{int a,b,c,max;

scanf(\ max=a>b?a:b;

max=c>max?c:max;

printf(\

}

5、从键盘输入两个数,然后按升序输出。 解法1: main() {float a,b,t;

scanf(\ if(a>b)

{t=a;a=b;b=t;}

printf(\} 解法2: main()

{float a,b;

scanf(\ if(a

printf(\ else

printf(\}

6、从键盘输入一个字符,若为小写字母,则转化为大写字母,否则保持不变。 解法1:

#include main()

{char ch1,ch2;

ch1=getchar(); /*或scanf(\

if(ch1>='a'&&ch1<='z') /*不能写作if('a'<=ch1<='z')*/ ch2=ch1-32;

else

ch2=ch1;

putchar(ch2); /*或printf(\}

解法2:

#include main()

{char ch;

ch=getchar(); /*或scanf(\

if(ch>='a'&&ch<='z') /*不能写作if('a'<=ch<='z')*/ ch=ch-32;

putchar(ch); /*或printf(\

}

7、从键盘输入一个字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母,否则保持不变。 解法1:

#include

main()

{char ch1,ch2; ch1=getchar();

if(ch1>='a'&&ch1<='z') ch2=ch1-32;

else if(ch1>='A'&&ch1<='Z') /*此处else不能缺省*/ ch2=ch1+32; else

ch2=ch1; putchar(ch2); } 解法2:

#include main() {char ch;

ch=getchar();

if(ch>='a'&&ch<='z') ch=ch-32;

else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/ ch=ch+32; putchar(ch);

}

8、从键盘输入一个字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII码表中的下一个字符。 解法1:

#include main()

{char ch1,ch2; ch1=getchar();

if(ch1>='a'&&ch1<='z') ch2=ch1-32;

else if(ch1>='A'&&ch1<='Z') ch2=ch1+32; else ch2=ch1+1; putchar(ch2); } 解法2:

#include main() {char ch;

ch=getchar();

if(ch>='a'&&ch<='z') ch=ch-32;

else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/

ch=ch+32;

else ch=ch+1; putchar(ch); }

9、从键盘输入两个整数及一个运算符,分别求出其和差积商并输出。 (其中运算符在两个整数之间输入) 解法1: main() {int a,b,s; char ch;

scanf(\ if(ch=='+') s=a+b; /*单引号不可少*/ else if(ch=='-') s=a-b; else if(ch=='*') s=a*b; else if(ch=='/') s=a/b; printf(\}

解法2: main() {int a,b,s; char ch;

scanf(\ switch(ch)

{case '+':s=a+b;break; /*case之后要有空格,单引号不可少*/ case '-':s=a-b;break; case '*':s=a*b;break; case '/':s=a/b; }

printf(\}

10、从键盘输入一个百分制分数,将其转化为等级分输出。 解法1: main() {int score;

char ch;

scanf(\if(score>=90)

ch='A';

else if(score>=80) /*此处else不能缺省*/ ch='B';

else if(score>=70) /*此处else不能缺省*/ ch='C';

else if(score>=60) /*此处else不能缺省*/ ch='D';

else

ch='E';

printf(\}

解法2:

main()

{int g; /*g为整数*/ char ch;

scanf(\ switch(g/10) {case 10:

case 9:ch='A';break; case 8:ch='B';break; case 7:ch='C';break; case 6:ch='D';break; default:ch='E';break; }

printf(\} 解法3: main()

{float g; /*g为实数*/ char ch;

scanf(\ switch((int)g/10) {case 10:

case 9:ch='A';break; case 8:ch='B';break; case 7:ch='C';break; case 6:ch='D';break; default:ch='E';break; }

printf(\}

11、已知方程ax2+bx+c=0的系数值(设a≠0),求方程的根。 #include main()

{float a,b,c,d,p,q,x1,x2;

scanf(\ d=sqrt(b*b-4*a*c); if(d>=0)

{x1=(-b+sqrt(d))/(2*a); /*求两个实根*/ x2=(-b-sqrt(d))/(2*a); printf(\

printf(\

} else

{p=-b/(2*a); /*求两个复根的实部*/

q=sqrt(-d))/(2*a); /*求两个复根的虚部*/ printf(\ /*i为虚数单位*/ printf(\ } }

循环结构程序设计 1、求1+4+7+100之和。 解法1: main() {int s,i;

s=0;

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

printf(\} 解法2: main() {int s,i; s=0; i=1;

while(i<=100) {s=s+i; i+=3; }

printf(\}

2、求1到100之间的奇数之和与偶数之和。 解法1: main() {int s1,s2,i; s1=s2=0; for(i=1;i<=100;i++) {if(i%2==1)

s1=s1+i; /*奇数之和*/ else

s2=s2+i; /*偶数之和*/ }

printf(\

}

解法2: main() {int s1,s2,i; s1=s2=0;

for(i=1;i<=99;i+=2)

s1=s1+i; /*奇数之和*/ for(i=2;i<=100;i+=2)

s2=s2+i; /*偶数之和*/ }

printf(\} 解法3: main() {int s1,s2,i; s1=s2=0;

i=1;

while(i<=99)

{s1=s1+i; /*奇数之和*/ i++;

s2=s2+i; /*偶数之和*/ i++; }

printf(\}

3、用循环程序求10的阶乘。 main()

{long p; /*int型取值范围太小*/ int i;

p=1; /*不能写作p=0;*/ for(i=1;i<=10;i++) p=p*i;

printf(\}

4、求1*3*5*...*19之积。 main() {float p; int i; p=1;

for(i=1;i<=19;i+=2) p=p*i;

printf(\}

5、从键盘输入一个正整数n,求1+2+3+...+n之和并输出。

main()

{int i,n; long s; s=0;

scanf(\ for(i=1;i<=n;i++) s=s+i;

printf(\}

6、从键盘输入一个正整数,求出其阶乘并输出。 解法1: main() {float p; int i,k; p=1;

scanf(\ for(i=1;i<=k;i++) p=p*i;

printf(\}

解法2: main() {float p; int k; p=1;

scanf(\ while(k>=1) {p=p*k; k--; }

printf(\}

6A、求1-1/3+1/5-1/7+...-1/99+1/101之和。 解法1: main()

{float s1,s2,s; int i;

s1=s2=0;

for(i=1;i<=101;i+=4)

s1=s1+1.0/i; /*正数之和*/ for(i=3;i<=99;i+=4)

s2=s2+1.0/i; /*负数之和*/ s=s1-s2;

printf(\

} 解法2: main() {int i,p; float s; s=0; p=1;

for(i=1;i<=101;i+=2)

{s=s+p*1.0/i; /*p用于控制累加项的正负*/ p=-p; /*改变正负号*/ }

printf(\

}

6B、求20+21+22+...+263之和。 解法1:

#include main() {float s; int i;

s=0;

for(i=0;i<=63;i++)

s=s+pow(2,i); /*2的i次幂*/ printf(\}

解法2: main() {float s,t; int i; s=0; t=1;

for(i=0;i<=63;i++) {s=s+t; t=t*2; }

printf(\}

7、求12+32+52+...+992之和。 main() {long s; int i; s=0;

for(i=1;i<=99;i+=2) s=s+i*i;

printf(\

}

8、求1+1/3+1/5+...+1/99之和。 main() {int i; float s;

s=0;

for(i=1;i<=99;i+=2)

s=s+1.0/i; /*不能写作1/i*/ printf(\}

9、求1+1/3+1/5+...的前20项之和。 main() {int i; float s;

s=0;

for(i=1;i<=20;i++)

s=s+1.0/(2*i-1); /*不能写作1/(2*i-1)*/ printf(\}

10、求1+1/3+1/5+...之和,直到某一项的值小于10-6时停止累加。 main()

{long n; /*不能写作int n*/ float s; s=0; n=1;

while(1.0/n>=1e-6)

{s=s+1.0/n; /*不能写作1/n*/ n+=2; }

printf(\

}

11、已知序列1/2,2/3,3/5,5/8,...,求其前20项之和。 解法1: main() {float s,a,b,t; int i; s=0; a=1; b=2;

for(i=1;i<=20;i++) {s=s+a/b;

t=a;

a=b; /*分子为前一项分母*/

b=b+t; /*分母为前一项分子分母之和*/

}

printf(\}

解法2: main() {float s,a,b; int i; s=0; a=1; b=2;

for(i=1;i<=20;i++) {s=s+a/b;

b=a+b; /*分母为前一项分子分母之和*/ a=b-a; /*分子为前一项分母*/ }

printf(\

}

12、求1!+2!+3!+...+20!之和。 解法1: main() {float s,p;

int n,k;

s=0; /*该语句必须在外循环之前*/ for(n=1;n<=20;n++)

{p=1; /*该语句必须在外循环体内部*/ for(k=1;k<=n;k++) /*求n的阶乘*/ p=p*k; s=s+p; }

printf(\}

解法2: main() {float s,p; int n; s=0;

p=1; /*该语句必须在循环之前*/ for(n=1;n<=20;n++)

{p=p*n; /*求n的阶乘*/ s=s+p; }

printf(\}

13、求1!+5!+9!+...+21!之和。

main()

{float s,p; int n,k;

s=0; /*该语句必须在外循环之前*/ for(n=1;n<=21;n+=4)

{p=1; /*该语句必须在外循环体内部*/ for(k=1;k<=n;k++) /*求n的阶乘*/ p=p*k; s=s+p; }

printf(\}

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

Top