编程序
1. 编写程序,判断输入字符的种类,即区分空格、数字字符、英文字母和其他字符。 #include
printf(\ c=getchar(); if(c==' ')
printf(\ else if(c>='0'&&c<='9')
printf(\
else if(c>='A'&&c<='Z'||c>='a'&&c<='z') printf(\
else printf(\ }
2. 编写程序,输入一批正整数,遇0或负数则输入结束,要求统计并输出其中奇数和偶
数个数。
#include
{ int x,a=0,b=0;
printf(“Enter data:”); scanf(“%d”,&x); while(x>0)
{ if(x%2!=0) a++; else b++;
scanf(“%d”,&x); }
printf(“奇数:%d\\n偶数:%d\\n”,a,b); }
3. 输入入一个职工的月薪salary,计算并输出应交的个人所得税tax = rate * (salary-850)。
其中rate的计算方式如下: 当 salary ≤850 时,rate = 0;
当 850 < salary ≤ 1350 时,rate = 5%; 当 1350 < salary≤ 2850 时,rate = 10%; 当 2850 < salary ≤ 5850 时,rate = 15%; 当 5850 < salary 时,rate = 20%。 #include
{ double salary,rate,tax;
printf(“Please input salary:\\n”); scanf(“%lf”, &salary); if(salary<=850) rate=0;
else if(salary>850&& salary<=1350) rate=5;
else if(salary>1350&& salary<=2850) rate=10;
else if(salary>2850&& salary<=5850) rate=15; else rate=20; tax=rate*(salary-850)/100; printf(“tax=%.2f\\n”,tax);
}
4. 编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。 #include
{ int a,b,sum=0; for(a=1;a<=10;a++) for(b=1;b<=a;b++) sum+=b;
printf(\?+(1+2+...+10)=%d\\n\
} 或
#include
{ int a,b=0,sum=0; for(a=1;a<=10;a++) { b+=a; sum+=b; }
printf(\?+(1+2+...+10)=%d\\n\
}
5. 输出一张平方根表(如下表所示),x的取值范围是[5, 1000],请调用库函数sqrt()计算
平方根。
x sqrt(x) 5 2.24 6 2.45 … … 999 31.61 1000 31.62
#include
printf(\ for(x=5;x<=1000;x++) { y=sqrt(x);
printf(\ } }
6. 输入一个实数a,判断是 “正数”、“负数”或“零”,并输出“正数”、“负数”或“零”
的判断结果。
#include
{ float a;
scanf(\
if(a>0) printf(\正数\\n\
else if (a==0) printf(\零\\n\
else printf(\负数\\n\
}
7. 输入被除数和除数x,y,如果除数y不等于0,计算x除以y的商,如果除数y等于
0,输出“数据错误”。 #include
{ double x,y,s;
printf(“Input x y:\\n”); scanf(\ if(y!=0){
s=x/y;
printf(\}
else printf(\数据错误\\n\
}
8. 输入一个小时、分、秒的时间,将输入的时间加1秒后,输出新的时间。要求输入输出
时间格式为小时:分:秒(例如输入5:45:9,则输出5:45:10,若输入23:59:59,则输出0:0:0)。 #include
scanf(“%d:%d:%d”,&h,&m,&s); s++;
if(s==60) // 加1秒后为60,向分进位 { s=0; m++;
if(m==60) // 60分时向时进位 { m=0; h++;
if(h==24) h=0; } }
printf(“%d:%d:%d\\n”,h,m,s); }
9. 输入年份、月份,判定是否为闰年,并输出该年该月的天数。 #include
{ int y,m,days,leap=0; printf(“输入年 月\\n”); scanf(“%d%d”,&y,&m);
if(m%2==1&&m<8||m>=8&&m%2==0) days=31; else if(m==4||m==6||m==9||m==11) days=30; else if(m==2)
if(y%4==0&&y0!=0||y@0==0)
{ days=29;
leap=1; }
else days=28; if(leap==1)
printf(“%d年是闰年,”,y); else
printf(“%d年不是闰年,”,y);
printf(“%d月有%d天\\n”,m,days);
}
10. 计算表达式1+2!+3!+...+10!+11!+12!的值,并将计算结果以格式\输出。 #include
void main( ) { int s=1,k=1,i;
for(i=2;i<=12;i++)
{ k*=i;
s+=k; }
printf(\
} 或
#include
void main( ) { int s=0,k,i,j;
for(i=1;i<=12;i++)
{ k=1;
for(j=1;j<=i;j++)
k*=j; s+=k; }
printf(\
}
11. 计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累加),将
求和的结果保留4位小数输出。 #include
void main( ) { float s=1,t=1,i=3; do {
t= -t* (i-1)*i; s=s+1/t;
i+=2;
}while(fabs(1/t) >= 1e-5); printf(\ }
12. 编写一个程序求出300~500之间满足如下条件的数:它们三个数字之积为42,三个数
字之和为12。
#include
void main( ) { int x,a,b,c;
for(x=300;x<=500;x++){ a=x/100; b=x0/10; c=x;
if(a*b*c==42&&a+b+c==12) printf(\ } }
13. 输入一个实数x,一个整数n,输出xn的值(不使用pow函数)。
#include
{ double x,t=1; int i,n;
printf(“Input x n:\\n”); scanf(\for(i=1;i<=n;i++)
t*=x;
printf(\
}
14. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们中偶数的和。
#include
{ int i,n,x,sum=0;
printf(“Input n:\\n”); scanf(\for(i=1;i<=n;i++){
scanf(“%d”,&x); if(x%2==0) sum+=x; }
printf(\ }
15. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们中偶数的平均值。
#include