资源描述
东北大学机械学院C语言答案
题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
5 题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写) 6 题目:编写程序将用户输入的字母进行大小写转换.
7 题目:编程判断输入的正整数是否即是5的倍数又是7的倍数。若是则输出该数;否则输出-1。
8 题目:输入一个整数,判断它是奇数还是偶数并输出.
9 题目:从键盘输入二个整数a、b,将其按大到小排列。
10 题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等.
11 题目:输入一个整数,判断该数是否能被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除;
(2)能被其中两数(要指出哪两个)整除;
(3)被其中一个数(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。
12 题目:输入一个5位的正整数,判定该正整数是否为一个回文数.(所谓回文素数是指正读和反读都相同的数,例如12321)。
13 题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。
14 题目:输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示(例如:输入358时,显示358 is 100 to 999)。
15 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的面积.
16 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般).
17 题目:计算二次方程 的根.
18 题目:给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字.
19 题目:从键盘输入三个整数a、b、c,输出其中最大的数。
20 题目:从键盘输入三个整数a、b、c,将其按大到小排列。
21 题目:从键盘输入一个百分制成绩,将其转换为等级’A'、'B’、’C’、'D’、’E’后输出成绩。转换规则为:90分以上为'A';80~89分为’B';70~79分为'C';60~69分为'D’; 60分以下为’E'。
22 题目:某运输公司规定路程越远,每公里运费越低,对用户计算运费标准如下:1)当S<250km时,没有折扣;2)当250≤S<500时,折扣为2%;3)当500≤S<1000时,折扣为5%;4)当10000≤S<2000,折扣为8%;5)当2000≤S,折扣为10%。从键盘输入路程和货物重量,计算并输出相应的运费。
23 题目:某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7。5%;3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40 万元按前面的方法提成,高于部分按3%提成.从键盘输入利润,输出应发的提成.
24 题目:已知银行整存整取存款不同期限的月息利率分别为:0。315% 期限一年;0.330% 期限二年;月息利率 = 0。345% 期限三年;0.375% 期限五年;0。420% 期限八年。要求输入存钱的本金和期限,计算到期时能从银行得到的利息与本金的合计.
25 题目:利用switch语句完成两个浮点数的四则运算(数与运算符又键盘给入).
26 题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。
27 题目:输入年份year和月month,计算该月有多少天(提示:需要判断是否为闰年).
28 题目:利用公式π/4≈1—1/3+1/5—1/7+1/9-… 计算π的近似值,当最后一项的绝对值小于 10-6 为止.
29 题目:输出100到200之间所有的素数.
30 题目:打印出所有的“水仙花”数(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153=13+53++33)
31 题目:从键盘上输入一个不多于四位的正整数,编写一个程序,完成下列功能:求出该数是几位数;分别打印出各位数字;按逆序打印各位数字。
32 题目:计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前20项之和并输出。
33 题目:按每行6个输出 100至1000之间各位数字之和为5的数。
34 题目:输出1至100之间每位数的乘积大于每位数的和的数。
35 题目:找出1~1000之间的所有完数(提示:“完数”是指一个数恰好等于它的除自身外的所有因子之和,例如:28=1+2+4+7+14,因此28是”完数"),。要求按下面格式输出其因子:28 its factors are 1,2,4,7,14。
36 题目:计算 S=1!+2!+3!+…+20!的值并输出。
37 题目:利用公式e=1/1!+1/2!+1/3!+…+1/n!计算e的值并输出(要求:误差小于10-5)。
38 题目:计算并输出自然数1到n的平方和。
39 题目:计算并输出1至n之间的奇数之和以及偶数之和(其中n由键盘输入)。
40 题目:计算并输出用数字0~9可以组成多少个没有重复的三位偶数。
41 题目:现有数列 :1/2,2/3,3/5,5/8,8/13,13/21,…… , 计算并输出该数列的前 100 项之和。
42 题目:假设猴子第一天摘下若干桃子,并吃了一半又加一个,第二天早上又将剩下的桃子吃掉一半又加一个,以后每天早上都吃了前一天剩下的一半又加一个。到第 10 天早上时,只剩下一个桃子。计算并输出猴子第一天共摘多少桃子。
43 题目: 一个球从 100m 高度自由落下,每次落地后反跳回原来高度的一半,再落下。计算并输出它在第 10 次落地时共经过了多少 米? 第 10 次反弹高度是多少?
44 题目:利用牛顿迭代法求解方程 在 1.5 附近的根并输出.
45 题目:利用二分法求解方程 在(—10,10)之间的根并输出.
46 题目:两个乒乓球队进行比赛 , 各队出三人 , 每人与对方队的一人进行一场比赛 , 甲队出 A 、 B 、 C 三人 , 乙队出 X 、 Y 、 Z 三人.编程找出所有可能的对阵情况。抽签之后,有人向队员打听对阵情况 ,A说他不和X比 ,C说他不和X、Z 比,编程找出三对手名单。
47 题目:输入两个正整数分别赋值给m和n,求其最大公约数和最小公倍数。
48 题目:计算并输出公元1000元至2000年中所有闰年的年号。每输出3个年号换一行.
49 题目:从键盘输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
50 题目: 计算并输出Sn=a+aa+aaa+…+aa…aaa(有n个a)的结果值(其中a是一个数字.例如:3+33+333+3333(n=4),n由键盘输入)。
51 题目:计算机的打印图形的一个应用:读取7个在1~50之间的整数值,对每读取的一个值,程序打印出该值个数的连续的*星号(例如:如果程序读取数据为5,则打印*****)。
52 题目:利用迭代法计算x=(计算平方根的迭代公式为:Xn+1=(Xn+1/Xn)/2),要求前后两次求出的差的绝对值少于0。00001。
53 题目:计算并输出sinx的近似值.
54 题目:计算并输出由2、4、6、8个数字,能组成多少个互不相同且无重复数字的三位数,并输出这些三位数。
55 题目:统计从键盘输入数据的个数(输入0为止),并从其中找出最小值和最大值,输出数据的个数以及最大值和最小值。
56 题目:(百鸡问题)100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只求100元钱能买公鸡、母鸡、小鸡各多少只?
57 题目:从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
58 题目:从键盘输入的字符中统计小写字符的个数,用换行符结束循环。
59 题目:从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩并输出。
60 题目:出满足不等式1+1/2+1/3+1/4+…1/N〉15最小的N值并输出.
61 题目:从键盘输入n值,输出如下所示的图形.
*
* * *
* * * * *
* * *
*
62 题目:计算下列算式的值:
直到某一项的值小于0。000001时为止。输出最后C的值.
63 题目:计算并输出下面算式的结果值:
64 题目:编写程序,读入一个整数N;若N为非负数,则计算并输出N到2×N之间的整数和;若N为一个负数,则计算并输出2×N到N之间的整数和
65 题目: 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a.又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍.编写程序求这个自然数.
66 题目:验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和.
67 题目:利用1、2、3、4个数字,可以组成多少个互不相同且无重复数字的三位数?都是多少?输出计算结果。
68 题目:如果一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,输出该数是多少(提示在100000内判断,可利用开平方函数)。
69 题目:输出9*9口诀。
70 题目:将一个正整数分解质因数(例如输入90,打印出90=2*3*3*5)。
71 题目:输入一个星期中的英文字母以此判断是星期几,如果第一个字母一样,则继续判断第二个字母。
72 题目:计算并输出555555的约数中最大的三位数。
73 题目:从键盘输入任意的字符,按下列规则进行分类计数。
第一类 { ’0','1','2','3’,'4’,'5’,’6’,'7’,’8','9'};
第二类 {’+','—','*','/’,’%’,'='};
第三类 {其它字符};
当输入字符’\’时先计数,然后停止接收输入,输出计数的结果。
74 题目:对从键盘上输入的行、单词和字符进行计数,当输入[CTRL+D]时表示文件输入结束,停止计数(提示:单词的定义进为单词是不包含空格、制表符(\t)及换行符的字符序列.例如:”a+b+c”,认为是1个单词,它由5个字符组成。又如:"xy abc”,为2个单词,6个字符。一般用[CTRL+D]作为文件结束标记,其字符码值为—1).
75 题目:编写程序计算当x=0。5时下述级数和的近似值,使其误差小于某一指定的值epsilon(例如:epsilon=0。000001):
76 题目:计算并输出下列多项式的结果值。
要求最后一项小于0。001时、或者当N=20时尚未达到精度要求,则停止计算。
77 题目:已知求正弦sin(x)的近似值的多项式公式为:
从键盘输入x和ε,计算sin(x)的近似值,要求计算的误差小于给定的ε。
78 题目: 利用循环语句实现输入一个正整数,要求以相反的顺序输出该数(例如输入12345,输出位54321).
79 题目:求解爱因斯坦数学题)有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩.计算并输出这条阶梯共有多少阶.
80 题目:采用割圆法求出π的值,要求精确到小数点之后的第十位(提示:中国古代科学家祖冲之采用正多边形逼近的割圆法求出了π的值。即做圆的内接4边形,从圆心和4边形顶点连接形成4个三角形,可以求出每个三角形的面积(r2/2)现在我们知道三角形的面积和两个边长(均为半径a=r、b=r),可以用公式:S=s(s-a)(s—b)(s-c)求出第三边c。我们将内接4边形换为内接8边形,原来的三角形被一分为二,故c/2就是每个三角形的高,面积又是可以求出的。再将三角形一分为二,……。当三角形的面积求出时,内接多边形的面积就可求出).
81 题目:A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。计算并输出他们合伙至少捕了多少条鱼。
82 题目:一辆卡车违犯交通规则,撞人逃跑.现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,丙说:四位的车号刚好是一个整数的平方。根据以上线索分析并求解出车号。
83 题目:若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,请求解并输出共有多少种不同的颜色搭配。
84 题目:假设100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。请计算并输出大、中、小马的数目。
85 题目:输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法.
86 题目:输出200以内的完全平方数和它们的个数(提示:完全平方数是指满足体检A2+B2=C2的A、B、C)
87 题目:设N是一个四位数,它的9倍恰好是其反序数(例如123的反序数是321),计算并输出N的值.
88 题目:求解下式中各字母所代表的数字。
PEAR
-ARA
───────
PEA
89 题目:一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,计算这个三位数.
90 题目:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。计算3000以内的全部亲密数
91 题目:(猜数游戏)由计算机"想"一个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者”猜”的水平。
92 题目:计算1000!后有多少个零。
93 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1 题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
#include<stdio。h>
#include<math.h〉
main()
{ float x,y;
printf(“enter x:\n”);
scanf(“%f",&x);
if(x<=0)
y=0;
else if(x〈=10)
y=x;
else
y=0.5+sin(x);
printf(“x=%f,y=%f\n”,x,y);
}
2题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写)
#include 〈stdio。h〉
main()
{ int x;
printf(“enter x:\n”);
scanf(“%d",&x);
if(x==65)
printf(“x=%d, show %c\n”,x,x);
else if(x==66)
printf(“x=%d, show %c\n",x,x);
else if(x==67)
printf(“x=%d, show %c\n”,x,x);
else
printf(“x=%d, show END\n”,x);
}
3题目:编写程序将用户输入的字母进行大小写转换
#include<stdio.h〉
main()
{char x,y ;
printf(”enter x:\n”);
scanf(”%c”,&x);
if(x〉=’a' && x〈=’z’)
y=x—32;
else if(x〉='A’ && x<=’Z')
y=x+32;
printf("x=%c, y=%c\n”,x,y);
}
4题目:输入一个整数,判断它是奇数还是偶数并输出。
#include<stdio。h〉
main()
{
int x;
printf(”\n请输入一个整数:”);
scanf(”%d”,&x);if(x%2==0)
printf(”%d是偶数。",x);
else
printf(”%d是奇数。",x);
}
5题目:从键盘输入二个整数a、b,将其按大到小排列.
#include〈stdio。h〉
main()
{int a,b,temp;
printf(”请输入两个整数:\n”);
scanf("%d,%d",&a,&b);
if(a<b)
{temp=a;
a=b;
b=temp ;
}
printf(”%d,%d,%d\n”, a,b);
}
6题目:从键盘输入三个整数a、b、c,将其按大到小排列.
#include 〈stdio.h〉
main()
{int a,b,c,temp;
scanf(”%d,%d,%d”,&a,&b,&c);
if(a<b)
{temp=a;
a=b;
b=temp ;
}
if(a〈c)
{temp=a;
a=c;
c=temp ;
}
if(b<c)
{temp=b;
b=c;
c=temp ;
}
printf("%d,%d,%d\n", a,b,c);
}
7题目:从键盘输入三个整数a、b、c,输出其中最大的数。
#include “stdio。h”
main()
{int a,b,c,max;
scanf("%d %d %d”,&a,&b,&c);
if(a〉b)
{if(a〉c)max =a;
}
else
{if(b〉c) max =b;
else max =c;
}
printf(”%d\n”, max);
}
8题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等。
#include<stdio.h〉
main( )
{int x, a,b,c;
printf(”enter a number(<1000):\n”);
scanf("%d”,&x);
a=x/100;
b=x%100/10;
c=x%10;
if (b==1)
if (c==3||c=7)
printf(”the number is %d \n”,x);
printf(”end\n”);
}
9题目:输入一个整数,判断该数是否能被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除;
(2)能被其中两数(要指出哪两个)整除;
(3)被其中一个数(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。
#include〈stdio。h>
main()
{int a,b;
a=0;
printf(“Enter number:");
scanf(“%d",&b);
if(b%3==0) a++;
if(b%5==0) a++;
if(b%7==0) a++;
if(a==0) printf(“\n The number which can be divided exactly by none\n");
if(a==1) printf(“\n The number which can be divided exactly by one\n”);
if(a==2) printf(“\n The number which can be divided exactly by two\n”);
if(a==3) printf(“\n The number which can be divided exactly by all\n”);
getchar();
}
10题目:输入一个5位的正整数,判定该正整数是否为一个回文数。(所谓回文素数是指正读和反读都相同的数,例如12321)。
main( )
{long g,s,q,w,x;
scanf(”%ld”,&x);
w=x/10000;
q=x%10000/1000;
s=x%100/10;
g=x%10;
if (g==w&&s==q) /*个位等于万位并且十位等于千位*/
printf("%d is a huiwen \n”,x);
else
printf(”%d is not a huiwen\n");
}
11题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。
#include<stdio。h〉
main()
{int a,b,c,result;
printf(“enter x:\n”);
scanf(“%d%d%d”,&a,&b,&c);
switch(a)
{case 1:result=b+c;
Break;
case 2: result=b—c;
Break;
case 3: result=b*c;
Break;
case 4: result=b/c;
Break;
default:Break;
}
printf(“a=%d,result=%d\n”a,result);??
}
12题目:输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示(例如:输入358时,显示358 is 100 to 999).
#include〈stdio.h〉
main()
{int n ;
scanf(“%d”,&n);
if(n<10&&n〉0)
printf(“%d is 〈10\n”,n);
else if(n〉=10&&n<=99)
printf(“%d is 10 to 99\n”,n);
else if(n〉=100&&n<=999)
printf(“%d is 100 to 999\n",n);
else if(n〉=1000)
printf(“%d is 〉=1000\n”,n);
}
13题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的面积。
#include”math.h”
main()
{int flag=0;
float a,b,c,s;
printf(”Please enter a b c:”);
scanf("%f%f%f”,&a,&b,&c);
if(a>b+c&&b〉a+c&&c〉a+b)
{s=(a+b+c)/2;
s=sqrt((s—a)*(s-b)*(s—c));
printf(”area=%f\n”,s);
}
else
printf("not \n");
}
14从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般).
#include ”math。h"
main()
{int flag=0;
float a,b,c,s;
printf(”Please enter a b c:”);
scanf(”%f%f%f",&a,&b,&c);
if(a〉b+c&&b>a+c&&c>a+b)
{if(a==b&b==c)
printf(“eqal triangle ”);
else if(a==b||b==c||a==c)
printf(“eqal triangle”);
else
printf(“triangle”);
}
else
printf("not \n");
}
15题目:计算二次方程 的根。
#include<math。h〉
main()
{float a,b,c,d,disc,x1,x2,realpart,imagpart;
scanf (“%f,%f,%f",&a,&b,&c);
printf(“The equation”); ?
if (fabs(a)〈=le-6)
printf(“is not a quadratic”);
else
{disc=b*b—4*a*c;
if (fabs(disc)<=le-6)
printf(“has two equal roots:% 8。4f \n”,—b/(2*a));
else if ((fabs(disc)〉le—6 )
{x1=(—b+sqrt(disc))/2*a;
x2=(-b-sqrt(disc))/2*a;
printf(“has distinct real roots: % 8。4f and % 8。4f \n”,x1,x2);
}
else
{realpart=-b/(2*a);
imagpart=sqrt(—disc)/(2*a);
printf(“has complex roots:\n”);
printf(“% 8.4f +%8.4fi\n”,realpart,imagpart);
printf(“% 8。4f —%8.4fi\n”,realpart,imagpart);
}
}
}
16题目:给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字。
main( )
{long a,b,c,d,e,x;
scanf("%ld”,&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0)
printf(”there are 5, %ld %ld %ld %ld %ld\n”,e,d,c,b,a);
else if (b!=0)
printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0)
printf(" there are 3,%ld %ld %ld\n”,e,d,c);
else if (d!=0)
printf(”there are 2, %ld %ld\n”,e,d);
else if (e!=0)
printf(" there are 1,%ld\n”,e);
}
17题目:从键盘输入一个百分制成绩,将其转换为等级’A’、’B’、’C’、'D’、’E’后输出成绩.转换规则为:90分以上为’A’;80~89分为'B';70~79分为’C’;60~69分为’D'; 60分以下为'E'。
main()
{int number,md;
char c1;
scanf("%d”,&number);
md=number/10;
switch(md)
{case 10:
case 9: c1='A';break;
case 8: c1=’B’;break;
case 7: c1=’C’;break;
case 6: c1='D’;break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: c1='E’;break;
}
printf(”%c\n”,c1);
}
18题目:某运输公司规定路程越远,每公里运费越低,对用户计算运费标准如下:1)当S<250km时,没有折扣;2)当250≤S<500时,折扣为2%;3)当500≤S<1000时,折扣为5%;4)当10000≤S<2000,折扣为8%;5)当2000≤S,折扣为10%。从键盘输入路程和货物重量,计算并输出相应的运费.
main()
{int c,s;
float p,w,d,f;
scanf(“%f,%f,%d”,&p,&w,&s);
if (s〉=2000) c=10;
else c=s/250;
switch(c)
{ case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8: d=10;break;
}
f=p*w*s*(1-d/100。0);
printf(“freight=% 15。4f ",f);
}
19题目:某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7。5%;3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40 万元按前面的方法提成,高于部分按3%提成。从键盘输入利润,输出应发的提成.
解法一:
#include “stdio。h”
main()
{int pf; float? pr;
printf(“\n请输入利润总数(单位:万元):");
scanf(“%d",&pf);
if(pf〈=10)
pr=pf*0。10;
else if(pf<20)
pr=10*0。10+(pf-10)*0。075;
else if(pf<40)
pr=10*0。10+10*0。075+(pf—20)*0.05;
else
pr=10*0。10+10*0。075+20*0.05+(pf-40)*0。03;
printf(“\n应发的奖金是:%f万元。",pr);
}
解法二
/*用switch语句*/
#include “stdio。h”
main()
{int pf; float? pr;
printf(“\n请输入利润总数(单位:万元):”);
scanf(“%d",&pf);
switch(pf/10)
{case 0: pr=pf*0。10; break;
case1: pr=10*0。10+(pf—10)*0.075; break;
case2:
case3: pr=10*0。10+10*0。075+(pf—20)*0。05; break;
default: pr=10*0。10+10*0。075+20*0.05+(pf-40)*0。03;
}
printf(“\n应发的奖金是:%f万元。”,pr);
}
20题目:已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年;0。330% 期限二年;月息利率 = 0。345% 期限三年;0。375% 期限五年;0.420% 期限八年。要求输入存钱的本金和期限,计算到期时能从银行得到的利息与本金的合计。
#include 〈stdio.h〉
main( )
{int year;
float money,rate,total; /* money:本金 rate:月利率 total:本利合计*/
printf(”Input money and year =?");
scanf("%f%d", &money, &year); /* 输入本金和存款年限 */
if(year==1) rate=0.00315; /* 根据年限确定利率 */
else if(year==2) rate=0.00330;
else if(year==3) rate=0.00345;
else if(year==5) rate=0。00375;
else if(year==8) rate=0.00420;
else rate=0。0;
total=money + money * rate * 12 * year; /* 计算到期的本利合计 */
printf(" Total = %。2f\n", total);
}
21题目:利用switch语句完成两个浮点数的四则运算(数与运算符又键盘给入)。
#include〈stdio.h〉
main()
{float a,b;
char c;
printf(“\n please input num:\n”);
scanf(“%f%f”,&a&b);
printf(“please input ‘+’ ‘—’ ‘*’ ‘ /':");
scanf(“\n%c”,&c);
switch(c)
{case ‘+’:printf(“%。0f+%。0f=%.2f”,a,b,a+b);
break;
case ‘—’:printf(“%。0f—%.0f=%。2f”,a,b,a—b);
break;
case ‘*’:printf(“%。0f*%。0f=%。2f”,a,b, a*b);
break;
case ‘/’:if(b!=0)
printf(“%。0f/%。0f=%。2f”,a,b,a/b);
break;
default:printf(“\n????\n");
}
getchar();
}
22题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。
#include ”math.h"
#include <stdio.h〉
main( )
{ int day,month,year,sum,leap;
printf(”\nplease input year,month,day\n");
scanf(”%d,%d,%d”,&year,&month,&day);
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(”data error”);break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))
leap=1; /*闰年*/
else
leap=0;
if(leap==1&&month〉2)
sum++;/*如果是闰年且月份大于2
展开阅读全文