1、1C 语言习题集3.11 输入 AF中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与 15 的和并输出。输入格式:B输出格式:26#includeint main(void)char ch;int sum;ch=getchar();sum=ch-A+10+15;printf(“%dn“,sum);return 0;3.12 输入三个整数,求其平均值。输入格式:3 5 7输出格式:5#include int main(void)int a,b,c,aver;scanf(“%d %d %d“,aver=(a+b+c)/3;printf(“%dn“,aver);return 0;3.1
2、3 根据 c=5/9*(f-32) 公式,输入华氏温度 f,求摄氏温度 c,结果精确到小数点后两位。输入格式:80.0输出格式:26.67#includeint main(void)float f,c;scanf(“%f“,c=5.0/9*(f-32);printf(“%.2fn“,c);return 0;3.14 输入一个四位正整数,求其各位数字之和。例如,1357 的各位数字之和为 1 + 3 + 5 + 7 = 16。输入格式:1357输出格式:16#includeint main(void)int num;int a,b,c,d,total;scanf(“%d“,a=num/1000;
3、b=(num-a*1000)/100;c=(num-a*1000-b*100)/10;d=num-a*1000-b*100-c*10;total=a+b+c+d;printf(“%dn“,total);return 0;3.15 输入一大写字母,输出对应的小写字母。输入格式:A输出格式:a2#includeint main(void)char c1,c2;scanf(“%c“,c2=c1+32;printf(“%c“,c2);3.16 输入两个整数分别赋值给变量 a 和 b,将 a 和b 的值互换,输出 a、b 的值。输入格式:3 5输出格式:5 3#include int main(void
4、)int a,b,temp;scanf(“%d%d“,temp=a;a=b;b=temp;printf(“%d %d“,a,b);return 0;3.21 输入一小写字母,输出对应的大写字母。输入格式:b输出格式:B#includeint main(void)char ch;ch=getchar();putchar(ch-32);putchar(n);3.22 输入任意四位整数,以反序的方式输出该整数。例如:输入 1234,输出 4321输入格式:1357输出格式:7531#includeint main(void)char c1,c2,c3,c4;scanf(“%c%c%c%c“,prin
5、tf(“%c%c%c%cn“,c4,c3,c2,c1);3.23 输入两个电阻值,求它们并联和串联的电阻值,结果保留两位小数。并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2) 串联电阻:RS=R1+R2输入格式:3 5输出格式:1.88 8.00#include int main(void)double r1, r2, pr, rs;scanf(“%lf%lf“, pr =(r1 * r2)/ (r1 + r2) ;rs = r1 + r2;printf(“%.2f %.2fn“, pr, rs);return 0;3.24 使用 getchar 函数分别输入两个
6、字符变量 c1 和c2,要求 c1、c2 均是字符0到9中的一个字符。将c1、 c2 中的值转换成相应的数字,如将字符1转换为数字 1,并输出这两个数相加的结果。输入格式:26输出格式:83#includeint main(void)char c1,c2;c1=getchar();c2=getchar();c1=c1-48;c2=c2-48;printf(“%dn“,c1+c2);return 0;3.25 输入梯形的上下底边长度和高,计算梯形的面积,保留一位小数。计算梯形面积的公式如下:S=h*(a+b)/2输入格式:3 5 4输出格式:16.0#includeint main(void)i
7、nt a,b,h;float S;scanf(“%d%d%d“,S=h*(a+b)/2.0;printf(“%.1f“,S);return 0;3.26 输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。已知圆周率为 3.14159。输入格式:5.0输出格式:31.42 78.54#include void main() double r,l,s;scanf(“%lf“,l=2*3.14159*r;s=3.14159*r*r;printf(“%.2f %.2fn“,l,s);4.1 输入整数 a 和 b,如果 a2 + b2 大于 100,则输出a + b 的值;否则,输出 a - b
8、的值。输入格式:3 5输出格式:-2#includevoid main()int a,b;scanf(“%d%d“,if (a*a+b*b100)printf(“%dn“,a+b);elseprintf(“%dn“,a-b);4.2 输入整数 n,如果 n 既是 5 的整倍数又是 7 的整倍数,则输出 yes;否则输出 no。输入格式:35输出格式:Yes#include void main()int n;scanf(“%d“,if(n%5 = 0 else printf(“non“);4.3 商场为促销实行打折销售商品,假定商品价格为 p元,编程计算某顾客购买 x 件商品的应付金额,保留一位
9、小数。先输入价格 p,再输入购买的件数 x。计算公式 sum = p * x * (1 - d) 其中,sum 为应付金额,d 为折扣(xvoid main()int x;float p,sum,d;scanf (“%f%d“,if(xvoid main()char ch;ch=getchar();if(ch=0scanf(“%d“,switch(choice)case 1:printf(“Good morningn“);break;case 2:printf(“Good afternoonn“);break;case 3:printf(“Good nightn“);break;default
10、:printf(“errorn“);4.6 输入 3 个整数,要求按从小到大的顺序输出。输入格式:5 3 1输出格式:1 3 5#includeint main(void)int a,b,c,t;scanf(“%d%d%d“,if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(“%d %d %dn“,a,b,c);return 0;54.7 输入两个实数和一个算术运算符(+ ,- ,* ,/ ) ,根据运算符执行相应的运算并输出运算结果,保留一位小数。 (提示:运算符先输入,两个实数后输入)输入格式:+ 1.5 2.1
11、输出格式:3.6#includeint main(void)double a,b;char op;scanf(“%c %lf%lf“,if (op=+) printf(“%.1fn“,a+b);else if(op=-) printf(“%.1fn“,a-b);else if(op=*) printf(“%.1fn“,a*b);else printf(“%.1fn“,a/b);return 0;4.8 输入 3 个整数,要求按从大到小的顺序输出。输入格式:1 3 5输出格式:5 3 1#includeint main(void)int a,b,c,t;scanf(“%d%d%d“,if(ain
12、t main(void)int num1,num2,t,i,sum=0;scanf(“%d%d“,if(num1num2)t=num1; num1=num2; num2=t; if(num1%2=0) num1+;for(i=num1;ivoid main() int i;double sum=0,a,max,min;scanf(“%lf“,sum=max=min=a;for(i=1;ia) min=a;sum=sum+a;sum=sum-max-min;printf(“%.1f“,sum/8);5.13 输入 n,求 1 * 2 * 3 * . * n 的值。6输入格式:10输出格式:362
13、8800#includeint main(void)int i,n,k=1;scanf(“%d“,for(i=1;ivoid main() int a,n,i,t;long int sum=0;scanf(“%d%d“,t=a;for(i=1;ivoid avg(void)int i;float sum,n,max,min,aver;scanf(“%f“,max=min=n;sum=n;for(i=2;in)?max:n;min=(minvoid main()int i,flag=1,n; double sum = 0;scanf(“%d“,for ( i=1;iint main(void)i
14、nt sum=0,i,n,s=1;scanf(“%d“,for(i=1;ivoid main(void)int a = 1, b = 2, c, i, n;double d,sum=0;scanf(“%d“,for(i = 1; i int main(void)int i, n,flag=1;double sum=0;scanf(“%d“,for(i=1;iint main(void)int a = 1, b = 2, c,n, i;scanf(“%d“,for(i = 3; iint main(void)char c;8int eng=0,dig=0,space=0,others=0;sca
15、nf(“%c“,while (c!=n) if(c=ascanf(“%d“,for(i=4;ivoid main ()int score;double sum=0,n=0,avg,max,min,b;scanf(“%d“,max=min=b=score;while(score!=-1)if(scoremax)max=score;if(scoreint main (void ) int i,m, n, temp,maxgy;scanf (“%d%d“, if(mn) temp=m;m=n;n=temp;for(i=m;i=1;i-)if(m%i=0break;printf(“%dn“,maxgy
16、);return 0;5.33 输入两个正整数,求最小公倍数。输入格式:5 15输出格式:15#include int main (void ) int i,m, n, temp,maxgy;scanf (“%d%d“, 9if(mmain(void)int n, sum = 0,k=0;scanf(“%d“, while (n)n /= 10;k+;printf(“%dn“, k);5.35 输入一个正整数 n,判断 n 是否为回文数。所谓回文数,是从左到右读这个数和从右到左读这个数是一样的。例如,98789 是回文数。如果是,输出 “yes“;如果不是,则输出“no“。输入格式:13579
17、7531输出格式:Yes#include main(void) int n,m, sum = 0,k=0;scanf(“%d“, m=n;while (m) sum = sum*10 + m%10;m /= 10;if (sum=n)printf(“yes“);elseprintf(“no“);5.36 根据输入的行数输出图案。例如,输入的行数为7,则输出如下图所示的图案(注:星号之间没有空格)。* * * * * * * * * * * * * * * * * * * * * * * *输入格式:5输出格式:*#include void main()int i,j,n;scanf(“%d“,
18、for(i=-n/2;ivoid main()10 int x10,i,min,j,k;for(i=0;ixj) min=xj;k=j;printf(“%d %dn“,min,k);6.12 输入 10 个数到数组 t 中,再输入 x,如果有与 x相等的数组元素,输出该数组元素的下标;否则,输出-1。输入格式:9 7 5 3 1 0 2 4 6 85输出格式:2#include void main() int t10,i,x,flag=0;for(i=0;iint main(void)int t10,i,j,temp;for(i=0;itj+1) temp=tj;tj=tj+1;tj+1=te
19、mp;printf(“%d“,t6);return 0;6.14 输入九个整数到数组 t 中数组长度为奇数,将数组 t 中的数组元素倒置,输出倒置以后下标为5 的数组元素。例如,数组 t 中九个数组元素依次为2、 4、6、8、9、7、5、3、1,倒置以后九个数组元素依次为 1、3 、5 、7、9、8、6 、4、2 ,下标为 5 的数组元素为 8。已知变量声明和数组声明为 “int i, tmp, t9;”,要求不再声明其他的变量或数组。输入格式:9 7 5 3 1 2 4 6 8输出格式:3#includeint main(void)int i,tmp,t9;for(i=0;i9;i+)scanf(“%d“,for(i=0;i9/2;i+)tmp=ti;ti=t8-i;t8-i=tmp;printf(“%dn“,t5);return 0; 6.15 求 3 行 5 列二维数组中每列数组元素的最小值,并输出列下标为 3 的这一列的最小值。输入格式:-3 -1 -5 -7 -9-8 -6 -4 -2 -8-2 -3 -4 -5 -6