C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:B输出格式:26#include<stdio.h>int main(void){char ch;int sum;ch=getchar();sum=ch-'A'+10+15;printf("%d\n",sum);return 0;}3.12输入三个整数,求其平均值。
输入格式:3 5 7输出格式:5#include <stdio.h>int main(void){int a,b,c,aver;scanf("%d %d %d",&a,&b,&c);aver=(a+b+c)/3;printf("%d\n",aver);return 0;}3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。
输入格式:80.0输出格式:26.67#include<stdio.h>int main(void){float f,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f\n",c);return 0;}3.14输入一个四位正整数,求其各位数字之和。
例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。
输入格式:1357输出格式:16#include<stdio.h>int main(void){int num;int a,b,c,d,total;scanf("%d",&num);a=num/1000;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("%d\n",total);return 0;}3.15输入一大写字母,输出对应的小写字母。
输入格式:A输出格式:a#include<stdio.h>int main(void){char c1,c2;scanf("%c",&c1);c2=c1+32;printf("%c",c2);}3.16输入两个整数分别赋值给变量a和b,将a和b 的值互换,输出a、b的值。
输入格式:3 5输出格式:5 3#include <stdio.h>int main(void){int a,b,temp;scanf("%d%d",&a,&b);temp=a;a=b;b=temp;printf("%d %d",a,b);return 0;}3.21输入一小写字母,输出对应的大写字母。
输入格式:b输出格式:B#include<stdio.h>int main(void){char ch;ch=getchar();putchar(ch-32);putchar('\n');}3.22输入任意四位整数,以反序的方式输出该整数。
例如:输入1234,输出4321输入格式:1357输出格式:7531#include<stdio.h>int main(void){char c1,c2,c3,c4;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);printf("%c%c%c%c\n",c4,c3,c2,c1);}3.23输入两个电阻值,求它们并联和串联的电阻值,结果保留两位小数。
并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2) 串联电阻:RS=R1+R2输入格式:3 5输出格式:1.88 8.00#include <stdio.h>int main(void){double r1, r2, pr, rs;scanf("%lf%lf", &r1, &r2);pr =(r1 * r2)/ (r1 + r2) ;rs = r1 + r2;printf("%.2f %.2f\n", pr, rs);return 0;}3.24使用getchar函数分别输入两个字符变量c1和c2,要求c1、c2均是字符'0'到'9'中的一个字符。
将c1、c2中的值转换成相应的数字,如将字符'1'转换为数字1,并输出这两个数相加的结果。
输入格式:26输出格式:8#include<stdio.h>int main(void){char c1,c2;c1=getchar();c2=getchar();c1=c1-48;c2=c2-48;printf("%d\n",c1+c2);return 0;}3.25输入梯形的上下底边长度和高,计算梯形的面积,保留一位小数。
计算梯形面积的公式如下:S=h*(a+b)/2输入格式:3 5 4输出格式:16.0#include<stdio.h>int main(void){int a,b,h;float S;scanf("%d%d%d",&a,&b,&h);S=h*(a+b)/2.0;printf("%.1f",S);return 0;}3.26输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。
已知圆周率为3.14159。
输入格式:5.0输出格式:31.42 78.54#include <stdio.h>void main(){ double r,l,s;scanf("%lf",&r);l=2*3.14159*r;s=3.14159*r*r;printf("%.2f %.2f\n",l,s);}4.1输入整数a和b,如果a^2 + b^2 大于100,则输出a + b的值;否则,输出a - b的值。
输入格式:3 5输出格式:-2#include<stdio.h>void main(){int a,b;scanf("%d%d",&a,&b);if (a*a+b*b>100)printf("%d\n",a+b);elseprintf("%d\n",a-b);}4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输出yes;否则输出no。
输入格式:35输出格式:Yes#include <stdio.h>void main(){int n;scanf("%d",&n);if(n%5 == 0 && n%7 == 0)printf("yes\n");elseprintf("no\n");}4.3商场为促销实行打折销售商品,假定商品价格为p元,编程计算某顾客购买x件商品的应付金额,保留一位小数。
先输入价格p,再输入购买的件数x。
计算公式sum = p * x * (1 - d) 其中,sum为应付金额,d为折扣(x<5时:d=0;5<=x<10时:d=1%;10<=x<21时:d=2%;21<=x<30时:d=4%;30<=x时:d=6%;)。
输入格式:9.9 15输出格式:145.5#include<stdio.h>void main(){int x;float p,sum,d;scanf ("%f%d",&p,&x);if(x<5)d=0;else if(x<10)d=0.01;else if(x<21)d=0.02;else if(x<30)d=0.04;else d=0.06;sum=p*x*(1-d);printf("%.1f",sum);}4.4输入'0'~'9'或'a'~'f'或'A'~'F'中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:6输出格式:21#include<stdio.h>void main(){char ch;ch=getchar();if(ch>='0'&&ch<='9')printf("%d\n",ch-'0'+15);else if(ch>='A'&&ch<='F')printf("%d\n",ch-'A'+10+15);else if(ch>='a'&&ch<='f')printf("%d\n",ch-'a'+10+15);elseprintf("Iaput Error!!\n");}4.5已知一张如下所示的时间表:***************Time***************1 morning2 afternoon3 night**********************************Please input your choice:根据输入的序号显示相应的问候信息:输入1时,输出Good morning;输入2时,输出Good afternoon;输入3时,输出Good night;对于其他的输入,则输出error。
输入格式:2输出格式:Good afternoon#include<stdio.h>int main(void){int choice;scanf("%d",&choice);switch(choice){case 1:printf("Good morning\n");break;case 2:printf("Good afternoon\n");break;case 3:printf("Good night\n");break;default:printf("error\n");}}4.6输入3个整数,要求按从小到大的顺序输出。