C语言必背的典型程序设计题目-选择循环-答案 联系客服

发布时间 : 星期五 文章C语言必背的典型程序设计题目-选择循环-答案更新完毕开始阅读0b91f3da0a1c59eef8c75fbfc77da26924c59624

#include \void main() {

char c;

int letters=0,space=0,digit=0,others=0; printf(\ while((c=getchar())!='\\n') {

if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; else if(c==' ') space++;

else if(c>='0'&&c<='9') digit++; else

others++;

}

printf(\}

5、计算下面的公式,并输出结果。

#include void main( ) { double sum,t; int i,k; sum=0.0;t=1.0;k=1; for(i=1;i<10;i++) { k*=i; sum+=t/k; t=-t; } printf(\/2!+1/3!-...+1/9!=%.5f\\n\}

6、输入两个整数,求这两个数的最大公约数和最小公倍数。(例如,48和36,最大公约数为12,最小公倍数为144)

算法提示:最大公约数可使用辗转相除法,计算方式如下: m n=0 gcd(m,n)=

gcd(n,m%n) n≠0

最小公倍数等于两个数之积除以最大公约数。

#include void main() { int a,b,num1,num2,temp; printf(\ scanf(\ if(num1

b=temp; } printf(\最大公约数:%d\\n\ printf(\最小公倍数:%d\\n\/a); }

7、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include #include \void main() { int m,i,k,h=0,leap=1; printf(\ for(m=101;m<=200;m++) { k=(int)sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) { leap=0; break; } if(leap) /*内循环结束后,leap依然为1,则m是素数*/ { printf(\ h++; if(h==0)printf(\ } leap=1; } printf(\}

8、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。*/ #include void main() {

static int k[10]; int i,j,n,s;

for(j=2;j<1000;j++) {

n=-1; s=j;

for(i=1;i

{printf(\ \ for(i=0;i

printf(\ printf(\ } }

}

9、打印以下图案(n=4时)

*

*** *****

******* ***** *** *

#include void main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(\ for(k=0;k<=2*i;k++) printf(\ printf(\ } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(\ for(k=0;k<=4-2*i;k++) printf(\ printf(\ } }

10、输入年月日,判断该天是该年的第多少天? #include void main() {

int day,month,year,sum,leap;

printf(\ scanf(\

switch(month) /*先计算某月以前月份的总天数*/ {

case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break;

default:printf(\ }

sum=sum+day; /*再加上某天的天数*/

if(year@0==0||(year%4==0&&year0!=0))/*判断是不是闰年*/ leap=1; else leap=0;

if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf(\}

11、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 2.程序源代码:

/* zheng int is divided yinshu*/ main() {

int n,i;

printf(\scanf(\printf(\for(i=2;i<=n;i++) {

while(n!=i) {

if(n%i==0)

{ printf(\ n=n/i; } else break; }