1、C语言程序设计(第三版)习题库
1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。
#include
2、l=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,Cl,Sa,Sb,Va,Vb);
}
2、输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9
输出要求有文字说明,取位2小数。
#include
3、 printf("输入x:"); scanf("%d",&x); if(x<1) { /* x<1 */ y=x; printf("x=%3d, y=x=%d\n",x,y); } else if (____x<10_______){ /* 1≤x-10 */ _____y=2*x-1_______; printf("x=%3d, y=2*x-1=%d\n",x,y); } else{ /* x≥10 */ y=3*x-11; printf("x=%3d,
4、 y=3*x-11=%d\n",x# include "stdio.h" main() { int x,y; scanf("%d",&x); if(x<1) { y=x;} else if(x>=1 && x<10) { y=2*x-1;} else { y=3*x-11;} printf("%d",y); }# include "stdio.h" main() { int x,y; scanf("%d",&x); if(x<1) { y=x;} else if(x>=1 && x<10) { y=2*x-1;} els
5、e { y=3*x-11;} printf("%d\n",y); }# include "stdio.h" main() { int x,y; scanf("%d",&x); if(x<1) { y=x;} else if(x>=1 && x<10) { y=2*x-1;} else { y=3*x-11;} printf("%d",y); }scanf("%d",&x); if(x<1) { y=x;} else if(x>=1 && x<10) { y=2*x-1;} else { y=3*x-11;} # inc
6、lude "stdio.h"
main()
{
int x,y;
scanf("%d",&x);
if(x<1)
y=x;
else if(x>=1 && x<10)
y=2*x-1;
else
y=3*x-11;
printf("%d",y);
},y);
}
}
4、给定一个不多于5位的正整数,要求:① 求它是几位数;②按逆序打印出各位数字。例如原数为321,应输出123。
#include
7、
scanf("%ld",&num);
while(num>0){
i++; /*统计长度*/
m=m*10+num%10;
num =num/10;
}
printf("数字长度为:%d",i);
printf("逆序数字为:%d\n",m);
}
5、以下程序实现的功能:求三个数的最大值
#include
8、
else max=c;
} else{
if(b>c) max=b;
else
max=c;
}
printf("max= %d",max);
}
#include
9、z;z=y;y=t;}
printf("%d\n",z);
}
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
/*枚举法*/
#include
10、
}
#include
11、ain(){
int m,n,k,j,p,r=1;
scanf("%d,%d",&m,&n);
k= m>n?m:n;
j= m>n? n:m;
do{
r=k%j;
k=j;
j=r;
}while(r!=0);
printf("%d,%d",k,m*n/k);
}
/*反复减法*/
#include
12、 else k=p; }while(p!=0); printf("%d,%d",k,m*n/k); } 7、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include"stdio.h" main(){ char c;int i=0,j=0,k=0,l=0; while((c=getchar())!=’\n’) { if(c>=’A’&&c<=’Z’||c>=’a’&&c<=’z’) i++; //英文字母统计 else if(c>=’0’&&c<=’9’) j++; //数字统计 else if(c==’ ’
13、)
k++; //空格统计
else l++;
}
printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);
}
8、求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。
#include
14、
sum =sum+b;
}
printf (“%ld”,sum);
}
9、打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。
【程序1】
#include
15、"%5d",i);
}
}
【程序2】
#include
16、1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1、2、3
#include
17、)。
#__include
18、
#include
19、ouble h=100,s=100;
for(i=2;i<=n;i++){
h*=__0.5__;
s=__s+h*2__;
}
printf("s=%f,h=%f\n",s,h);
}
13、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
#include
20、
while(i++
21、1);
}
15、用牛顿迭代法求方程在1.5附近的根。
#include
22、e
23、anf("__%d__",&score); switch(__score/10__){ case 1:case 2:case 3:case 4:case 5: printf(“grade E\n”); ___break__; case 6: printf(“grade D\n”);break; case 7: printf(“grade C\n”);break; case 8: printf(“grade B\n”);break; case 9: printf(“grade A\n”);break; __default__:printf("E
24、rror input!\n");
}
}
18、该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include 25、程序功能:输入整数a和b的值,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
#include 26、y,x1,x2;
day=0;x1=1020;
while(__x1>0__){
x2=__x1/2-2__; x1=x2; day++}
printf(“day=%d”,day);
}
21、找出整数的所有因子
#include 27、stdio.h>
main(){
int n=0,i,j,k;
for (i = 1;i <= 9;i++)
for (k = 0;k <= 8; __k+=2__)
if (k != i)
for (j = 0;j <= 9;j++)
if (__j!=i&&j!=k__) n++;
printf(“n=%d\n”,n);
}
23、用100元换成1、2、5元的所有兑换方案。
#include 28、20;i++)
for (j =0; j<=50; j++) {
k= __(100-i-2*j)/5__;
if (__i+j*2+k*5==100__){
printf(“%2d %2d %2d”,i,j,k);
l = l + 1;
if (l%5==0) printf(“\n”);
}
}
}
24、输出1-100之间满足每位数的乘积大于每位数的和的数
#include 29、1,s=0,m;
for (n=1; n<=100; n++) {
k=1; s=0;
__m=n__;
while (__m>0__) {
k *=m%10;
s+=m%10;
___m/=10__;
}
if (k>s) printf(“%d”,n);
}
25、从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。
#include 30、)
for (__j=1__; j<=5;j++) {
k = 8 – i – j;
if (__k>=0__)
printf(“%3d %3d %3d\n”,i,j,k);
}
}
26、以下程序的功能是:判断一个四位数是否满足这样的条件:它的9倍刚好是它的反序数。反序数是指整数各个位上的数字逆序所形成的整数。请完成程序的填空。
#include 31、10__;
b=i/10%10;
c=i/100%10;
d=i/1000;
m=__a*1000+b*100+c*10+d__;
if(___m==i*9__) __break__;
}
printf("i=%d",i);
}
27、以下程序完成两整数的交换。
#include 32、 __b=a-b__;
__a=a-b__;
printf(“交换后:a=%d,b=%d”,a,b);
}
28、以下程序的功能是判断输入的年份是否为闰年,若是则输出”yes”,否则输出”No”。
#include 33、include 34、[i+1]=t;
}
printf(″the sorted numbers :\n″);
for(i=0;i 35、)/2) // 奇数的个数
void main( ) {
int i,j,a[N];
a[0] = 2;
for(i=1;i 36、 a[j]=0;
printf("\nThe primer are [2-%d]:\n",M);
for(i=0,j=0;i 37、
}
31、用选择法对10个整数从小到大排序。
#include 38、
for(i=0;i 39、j__) s1+=a[i][j]; //主对角线
if(__i+j==N-1__) s2+=a[i][j]; //次对角线
}
printf("s1=%d,s2=%d\n",s1,s2);
}
33、已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。
#define N 10
#include






