




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙大春季C语言程序编程目录第2周(M2)220011求华氏温度100°F对应的摄氏温度。220012求华氏温度150ヤ对应的摄氏温度。320013求摄氏温度26。(3对应的华氏温度。320015当n为152时,分别求出n的个位数字(digiti)、卜位数字(digit2)和百位数字(digit3)的值。320026输入2个整数num!和num2,计算并输出它们的和、差、积、商与余数。4第3周(M3)520031求1+2+3+......+100(调试示例error02_5)520032求m+(m+l)+(m+2)+......+100520033求l/m+l/(m+l)+l/(m+2)+......+l/n620034求1+1/3+1/5+......的前n项和?20035求1-1/4+1/7ーレ10+ 的前n项之和720036输出华氏ー摄氏温度转换表(改错题error02_6)820038求x的n次裏920041生成3的乘方表1020044求100Ao.5+101ハ0.5+ +1000Ao.51020053计算物体自由下落的距离1120056计算分段函数1120061阶梯电价1220062求m*m+l/m+(m+l)*(m+l)+l/(m+l)+(m+2)*(m+2)+l/(m+2)+ +n*n+ 1/n1320063求1-2/3+3/5-4/7+5/9-6/11+ 1420064求2A1+2A2+2A3+ +2An15第4周(M4)1510007显示图案(复习prin氓)的字符串输出)1520042生成阶乘表1620043使用函数求n!/(m!*(n-m)!)1620054求平均值1720057求1+1/2+1/3+......+l/n1820065求0!+1!+2!+ +n!1840015求最小值!940018求a+aa+aaa+aa...a20第5周(M5)2130001求一元二次方程的根2130002求分段函数的值2330003分类统计字符2330004显示五级记分制成绩所对应的百分制成绩区间(使用switch)2430005显示水果的价格(使用switch)2530007求三角形的面积和周长2730008计算个人所得税2830051判断闰年2930052统计学生平均成绩与及格人数3030053分段计算水费(使用嵌套的i任else语句)31第6周(M6)3240011求最小公倍数和最大公约数(调试示例error04_l)3240012求1-1/4+1/7-1/10+1/13-1/16+ 3340014求整数的位数3440023换硬币3540024找出各位数字的立方和等于它本身的数3640025找完数(改错题error04_2)3840027从高位开始逐位输出ー个整数的各位数字(选作)3940052判断素数4040053逆序输出整数4140054输出斐波那契序列42第7周(M7)4250002使用函数判断数的符号4250003使用函数求奇数和4350005使用函数统计素数并求和4450006使用函数统计ー个整数中数字的个数4550007使用函数找水仙花数4650009使用函数求余弦函数的近似值4850052使用函数找最大值4950062使用函数输出指定范围内的Fibonacci数5050063使用函数找出指定范围内的完数51第8周(M8)5240013求奇数和5240062求x+x*x/2!+x*x*x/3!+x*x*x*x/4!+ 的值5350004使用函数计算两点间的距离5450061使用函数求2+22+222+22-25560002整数的十进制、ハ进制和十六进制表现形式5660003分类统计字符5760006验证歌德巴赫猜想5860007使用函数输出整数的逆序数5960009统计单词6060062简单计算器61第2周(M2)20011求华氏温度100叩对应的摄氏温度。计算公式如ド,c=5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。(源程序error02」.cpp)输入输出示例:fahr=100,celsius=37#include<stdio.h>intmain(void)intCelsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(Mfahr=%d,Celsius=%d\nM,fahr,Celsius);return0;}20012求华氏温度150°F对应的摄氏温度。计算公式:C=5*F/9-5*32/9.式中:C表示摄氏温度,F表示华氏温度。输入输出示例:fahr=150,celsius=66#include<stdio.h>intmain(void){intCelsius,fahr;fahr=150;celsius=5*fahr/9-5*32/9;printf(nfahr=%d,Celsius=%d\nn,fahr,Celsius);return0;}20013求摄氏温度26℃对应的华氏温度。计算公式如下,六9*c/5+32,式中:c表示摄氏温度,f表示华氏温度。输入输出示例:celsius=26,fahr=78#include<stdio.h>intmain(void){intCelsius,fahr;celsius=26;fahr=9*celsius/5+32;printff'celsius=%d,fahr=%d\n”,Celsius,fahr);return0;}20015当n为152时,分别求出n的个位数字(digiti)、十位数字(digit2)和百位数字(digit3)的值。输入输出示例:整数152的个位数字是2,十位数字是5,百位数字是1#includc<stdio.h>intmain(void){intn,digitI,digit2,digit3;n=152;digitl=n;digit2=(n/10);digit3=n/100;printf("整数%d的个位数字是%d,卜位数字是%d,百位数字是%d\n”,n,digiti,digit2,digit3);return0;)20026输入2个整数num!和num2,计算并输出它们的和、差、积、商与余数。输出两个整数的余数可以用printf("%d%%%d=%d\n",numl,num2,numl%num2);输入输出示例:括号内是说明输入53(numl=5,num2=3)输出5+3=85-3=25*3=155/3=15%3=2#include<stdio.h>intmain(void){intnuml,num2;scanff%d%d”,&numl,&num2);printff'%d+%d=%d\nH,num1,num2,num1+num2);printf("%d・%d=%d\nM,num1,num2,num1-num2);printff%d*%d=%d\nM,num1,num2,num1*num2);printf(n%d/%d=%d\nM,numl,num2,numl/num2);printff'%d%%%d=%d\n",num1,num2,num1%num2);return0;第3周(M3)20031求1+2+3+ +100(调试示例error02_5)计算表达式1+2+3+......+100的值。输出示例:sum=5050#include<stdio.h>intmain(void)(inti,sum;sum=0;fbr(i=l;i<=100;i++)sum=sum+i;printftnsum=%d\nM,sum);20032求m+(m+1)+(m+2)+ +100输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入ー个正整数m(0<=m<=100)»计算表达式m+(m+1)+(m+2)+ +100的值。输入输出示例:括号内为说明输入3(repeat=3)0(计算0+1+2+...+100)10(计算10+11+12+...+100)50(计算50+51+52+…+100)输出sum=5050sum=5005sum=3825#include<stdio.h>intmain(void){inti,m,sum;intrepeat,ri;scanグ%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanR"%d”,&m);sum=0;fbr(i=m;i<=100;i++)sum=sum+i;printff'sum=%d\n",sum);20033求l/m+l/(m+l)+l/(m+2)+......+l/n输入ー个正整数repeat(0<repeat<10).做repeat次下列运算:输入2个正整数m和n(m<=n).计算表达式l/m+l/(m+l)+l/(m+2)+ + 1/n的值,输出时保留3位小数。输入输出示例:括号内为说明输入3(repeat=3)515(计算1/5+1/6+1/7+...+1/15)1020(计算1/10+1/11+1/12+...+1/20)3(计算1+1/2+1/3)输出sum=1.235sum=0.769sum=1.833#include<stdio.h>intmain(void)(inti,m,n;intrepeat,ri;doublesum;scanff'%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanff'%d%d",&m,&n);sum=0;for(i=m;i<=n;i++)sum=sum+1.0/i;printff'sum=%.3f\nH,sum);20034求1+1/3+1/5+......的前n项和输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入ー个正整数n,计算表达式1+1/3+1/5+......的前n项之和,输出时保留6位小数。输入输出示例:括号内为说明输入(repeat=2)5(计算1+1/3+1/5+1/7+1/9)23(计算1+1/3+1/5+...+1/45)输出sum=1.787302sum=2.549541//include<stdio.h>intmain(void)(inti,n;intdenominator;intrepeat,ri;doublesum;scanff%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanff%d”,&n);sum=0;denominator=l;fbr(i=l;i<=n;i-H-)(sum=sum+1.0/denominator;denominator=denominator+2;}printfV'sum=%.6f\nH,sum);20035求1-1/4+1/7-1ハ0+ 的前n项之和输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:读入ー个正整数n,计算1-1/4+1/7ーレ10+……的前n项之和,输出时保留3位小数。输入输出示例:括号内是说明输入(repeat=2)10输出sum=0.893sum=0.819#include<stdio.h>intmain(void){intflag,i,n,t;intrepeat,ri;doubleitem,sum;scanfi("%d",&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanR"%d”,&n);sum=0;flag=l;t=l;fbr(i=l;i<=n;i++){item=flag*1.0/t;sum=sum+item;flag=-flag;t=t+3;}printf(Hsum=%.3f\n",sum);20036输出华氏・摄氏温度转换表(改错题error02_6)输入ー个正整数repeat(0<rcpcat<10)»做repeat次下列运算:读入2个整数lower和upper,输出ー张华氏ー摄氏温度转换表,华氏温度的取值范围是[lower,upper]»每次增加2F。计算公式:c=5*(f-32)/9,其中:c表示摄氏温度,f表示华氏温度。输出请使用语句printf("%3.0f%6.lf\n",fahr,Celsius);输入输出示例:括号内是说明输入2(repeat=2)3235(lower=32,upper=35)4030(lower=40,upper=30)输出fahrCelsius320.0341.1fahrCelsius#include<stdio.h>intmain(void)intlower,upper;intrepeat,ri;doubleCelsius,fahr;scanff'%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanfi("%d%d",&lower,&upper);printf(Mfahrcelsius\n");fbr(fahr=lower;fahr<=upper;fahr-H-,fahri-+)(celsius=5*(fahr-32)/9;printf(H%3.0f%6.1f\nM,fahr,Celsius);20038求x的n次累输入ー个正整数repeat(0<repeat〈10),做repeat次下列运算:读入1个实数x和正整数n(n<=50),计算并输出x的n次壽(保留2位小数),不允许调用pow函数求事。输入输出示例:括号内是说明输入2(repeat=2)1.52(x=1.5,n=2)7(x=2,n=7)输出2.25128.00#include<stdio.h>intmain(void)(inti,n;intrepeat,ri;doublemypow,x;scanfi("%d",&repeat);fbr(ri=1;ri<=repeat;ri++){scanf「%lf%d”,&x,&n);mypow=l;fbr(i=l;i<=n;i-H")mypow=mypow*x;printff%.2f\n“,mypow);20041生成3的乘方表输入ー个正整数n,生成一张3的乘方表,输出3ハ〇〜3八n的值,可调用基函数计算3的乘方。输出使用语句prin氓"pow(3,%d)=%.Of\n",i,mypow);输入输出示例:括号内是说明输入3(n=3)输出pow(3,0)=1pow(3,l)=3pow(3,2)=9pow(3,3)=27#include<stdio.h>#include<math.h>intmain(void)|inti,n;doublemypow;scanff%d”,&n);fbr(i=O;i<=n;i-H-){mypow=pow(3,i);printffpow(3,%d)=%.0f\n\i,mypow);20044求100ハ0.5+101ハ0.5+ +1000A0.5计算100八0.5+101八0.5+……+1000八0.5的值(保留2位小数),可调用sqi!函数计算平方根。输入输出示例:括号内是说明输出sum=20435.99#include<stdio.h>#include<math.h>intmain(void){inti;doublesum;sum=0;fbr(i=100;i<=1000;i++)sum=sum+sqrt(i);printf(Msum=%.2f\nn,sum);20053计算物体自由下落的距离ー个物体从100m的高空自由落下,编写程序,求它在前3s内下落的垂直距离(结果保留2位小数)。设重力加速度为10米/秒A2。#include<stdio.h>intmain(void){doubleheight;height=0.5*10*3*3;printf(Hheight=%.2f\nM,height);20056计算分段函数输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:编写程序,输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt()函数求平方根,调用pow()函数求暴。当x>=0时,f(x)=xA0.5,当x小于〇时,f(x)=xA5+2x+l/Xo输入输出示例:括号内是说明输入(repeat=3)10(x=10)-0.5(x=-0.5)0(x=0)输出f(10.00)=3.16£(-0.50)=-3.03RO.OO)=0.00include<stdio.h>#include<math.h>intmain(void)(intrepeat,ri;doublex,y;scanR”%d”,&rcpeat);fbr(ri=1;ri<=repeat;ri-H-){scanftM%lf',&x);ifl[x>=0)y=sqrt(x);elsey=pow(x,5)+2*x+l.0/x;printfC砥%.2f)=%.2f\n",x,y);2006I阶梯电价输入ー个正整数repeat(0<rcpcat<10)»做repeat次下列运算:为了提倡居民节约用电,某省电カ公司执行“阶梯电价”,安装ー户ー表的居民用户电价分为两个”阶梯”:月用电量50千瓦时以内的,电价为0.53元ノ千瓦时;超过50千瓦时的用电量,电价上调0.05元/千瓦时。输入用户的月用电量e(千瓦时),计算并输出该用户应支付的电费(元),结果保留2位小数。输入输出示例:括号内是说明输入(repeat=2)10(e=10)100(e=100)输出cost=5.30cost=55.50#include<stdio.h>intmain(void)Iintrepeat,ri;doublecost,e;scanfi(”%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanfi(,,%lf,,&e);if(e<=50)cost=e*0.53;elsecost=0.53*50+(e-50)*0.58;printffcost=%.2f\nn,cost);20062求m*m+l/m+(m+l)*(m+l)+l/(m+l)+(m+2)*(m+2)+l/(m+2)+ +n*n+1/n输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入两个正整数m和n(m<=n),求sum=m*m+1/m+(m+l)*(m+l)+l/(m+l)+(m+2)*(m+2)+l/(m+2) +n*n+l/n,结果保留6位小数。输入输出示例:括号内为说明输入(repeat=3)2(m=l,n=2)5(m=2,n=5)510(m=5,n=10)输出sum=6.500000sum=55.283333sum=355.845635#include<stdio.h>intmain(void){inti,m,n;intrepeat,ri;doublesum;scanグ%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanf("%d%d”,&m,&n);sum=0;fbr(i=m;i<=n;i-H-)sum=sum+i*i+l.0/i;printf(Hsum=%.6f\n",sum);20063求1-2/3+3/5—4/7+5/9641+ 输入ー个正整数repeat(0<repeat<10)»做repeat次ド列运算:输入ー个正整数n,计算1-2/3+3/5—4/7+5/9・6ハ1+……的前n项之和,输出时保留3位小数。输入输出示例:括号内是说明输入(repeat=3)1(n=l)3(n=3)5(n=5)输出sum=1.000sum=0.933sum=0.917#includc<stdio.h>intmain(void){intflag,i,n;floatdenominator;intrepeat,ri;doubleitem,sum;scanfV%d”,&rcpeat);fbr(ri=1;ri<=repeat;ri-H-){scanR"%d”,&n);sum=0;flag=l;denominator=1.0;fbr(i=l;i<=n;i卄){item=flag*i*1.0/denominator;sum=sum+item;flag=-flag;denominator=denominator+2;)printfV'sum=%.3f\nH,sum);20064求2人1+2A2+2ハ3+ +2An#include<stdio.h>#include<math.h>intmain(void){inti,n;intrepeat,ri;doublesum;scanグ%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H"){scanf(M%dM,&n);sum=0;fbr(i=l;i<=n;i-H-)sum=sum+pow(2,i);printffsum=%.0f\n”,sum);第4周(M4)10007显示图案(复习prints)的字符串输出)编写程序,在屏幕上显示如下图案。**********#include<stdio.h>intmain(void)(printf(H****\nM•***••*"*\nM);20042生成阶乘表输入ー个正整数n,生成一张阶乘表,输出l!~n!的值,要求定义和调用函数fact(n)计算n!,函数类型为double。输出使用语句prin氓"%d!=%.0f\n",i,myfact);输入输出示例:括号内是说明输入3(n=3)输出1!=12!=23!=6#include<stdio.h>intmain(void){inti,n;doublemyfact;doublefact(intn);scanfi("%d”,&n);fbr(i=l;i<=n;i-H-){myfact=fact(i);printf("%d!=%.Of\nH,i,myfact);doublefact(intn)doubleresult;intj;result=l;for(j=lij<=nij-H-)result=result*j;returnresult;20043使用函数求n!/(m!*(n-m)!)输入ー个正整数repeat(0<repcat<10)»做repeat次ド列运算:输入2个正整数m和n(m<=n),计算n!/(m!*(n-m)!)〇要求定义并调用函数fact(n)计算n的阶乘,其中n的类型是int,函数类型是double。例:括号内是说明输入:2(repeat=2)27(m=2,n=7)512(m=5,n=12)输出:result=21result=792#include"stdio.h"intmain(void){intm,n;intrepeat,ri;doubles;doublefact(intn);scanff%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanfifH%d%dn,&m,&n);fact(n);fact(m);fact(n-m);s=l;s=s*fact(n)/(fact(m)*fact(n-m));printf("result=%.0f\n",s);doublefact(intn)(doubleresult;inti;result=l;fbr(i=l;i<=n;i++)result=result*i;returnresult;20054求平均值编写程序,输入3个整数,计算并输出它们的平均值(结果保留2位小数)。输入输出示例:输入123输出average=2.00#include<stdio.h>intmain(void)(inta,b,c;doubleaverage;scanグ%d%d%d”,&a,&b,&c);average=(a+b+c)/3.0;printff'average=%.2f\nn,average);20057求!+1/2+1/3+……+l/n输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:编写程序,输入ー个正整数n,求1+1/2+1/3+……的前n项之和,输出时保留6位小数。输入输出示例:括号内为说明输入(repeat=2)6(计算1+1/2+1/3+1/4+1/5+1/6)2(计算1+1/2)输出sum=2.450000sum=1.500000#include<stdio.h>intmain(void){inti,n;intrepeat,ri;doublesum;scanff%d",&repeat);fbr(ri=1;ri<=repeat;ri++){scanff%d”,&n);sum=0;for(i=l;i<=n;i++)sum=sum+1.0/i;printff'sum=%.6f\n",sum);20065求0!+l!+2!+ +n!输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:编写ー个程序,输入ー个正整数n,计算e=0!+l!+2!+……+n!,要求定义和调用函数fhct(n)计算n!»函数类型是double〇例:括号内是说明输入(repeat=3)124输出sum=2sum=4sum=34#include<stdio.h>intmain(void)|inti,n;intrepeat,ri;doublesum;doublefact(intn);scanR"%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanf("%d”,&n);sum=1;fbr(i=1;i<=n;i-H-){fact(i);sum=sum+fact(i);}printffsum=%.Of\nH,sum);doublefact(intn)(doubleresult;intj;result=l;fbr(j=lj<=nj-H-)result=result*j;returnresult;40015求最小值输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入ー个正整数n,再输入n个整数,输出最小值。输入输出示例:括号内是说明输入3(repeat=3)4-2-12310004-9-11-83531输出min=-123min=-9min=1#include<stdio.h>intmain(void)(inti,min,n,x;intrepeat,ri;scanf("%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanグ%d”,&n);scanf("%d”,&x);min=x;fbr(i=l;i<n;i-H-){scanff%d”,&x);ifi[min>x)min=x;}printffmin=%d\nM,min);40018求a+aa+aaa+aa…a提示:第i项通项:tn=a+a*10+a*100...+a*10A(n-1)=t(n-l)+a*10A(n-l)#include<stdio.h>#include<math.h>intmain(void){inta,i,n,sn,tn;intri,repeat;scanff%d",&repeat);fbr(ri=1;ri<=repeat;ri++){scanff%ld%d”,&a,&n);sn=0;tn=O;fbr(i=0;i<n;i++){tn=tn+a*pow(10,i);sn=sn+tn;}printf("suni=%d\n",sn);第5周(M5)3000I求一元二次方程的根输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数。输出使用以下语句:printff参数都为零,方程无意义!\n");printf(Ha和b为〇,c不为0»方程不成立\n");printff'x=%0.2f\nn,-c/b);printff'xl=%0.2f\nM,(-b+sqrt(d))/(2*a));printf(Mx2=%0.2f\nM,(-b-sqrt(d))/(2*a));printf(Mxl=%0.2fF%0.2fi\nM,-b/(2*a),sqrt(-d)/(2*a));printf(Mx2=%0.2l%0.2fi\n”,・b/(2*a),sqrt(-d)/(2*a));输入输出示例:括号内为说明输入:5(repeat=5)000(a=O,b=O,c=O)001(a=O,b=O,c=l)024(a=0,b=2,c=4)2.18.93.5(a=2.1,b=8.9,c=3.5)123(a=l,b=2,c=3)输出:参数都为零,方程无意义!a和b为〇,c不为〇,方程不成立x=-2.00xl=-0.44x2=-3.80xl=-1.00+1.41ix2=-1.00-1.41i//include<stdio.h>#include<math.h>intmain(void)(intrepeat,ri;doublea,b,c,d;scanf("%d",&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanff%lf%lf%lF,&a,&b,&c);d=b*b-4*a*c;if(a=O){if(b=O){if(c=O){printff参数都为零,方程无意义!\n”);}else(printf(Ha和b为〇,c不为0,方程不成立\n");else{printffx=%0.2f\n",-c/b);else{if(d>=0){printf(Mxl=%0.2f\nM,(-b+sqrt(d))/(2*a));printf(nx2=%0.2f\nH,(-b-sqrt(d))/(2*a));}else{printf(Mxl=%0.2件%0.2fi\n”,・b/(2*a),sqrt(-d)/(2*a));printf(nx2=%0.2f-%0.2fi\nH,-b/(2*a),sqrt(-d)/(2*a));30002求分段函数的值输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入ー个整数x»计算并输出下列分段函数sign(x)的值。-1x<0y=sign(x)=0x=01x>0输入输出示例:括号内是说明输入3(repeat=3)10(x=10)0(x=0)-98(x=-98)输出sign(10)=1(x=10时y=1)sign(0)=0(x=0时y=0)sign(-98)=-1(x=-98时y=-1)#include<stdio.h>intmain(void){intrepeat,ri;intx,y;scanf("%d",&repeat);fbr(ri=1;ri<=repeat;ri++){scanf("%d”,&x);if(x==O)y=0;elseif(x>0)y=l;elsey="l;printf(Msign(%d)=%d\n",x,y);30003分类统计字符输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入输出示例:括号内是说明输入Rcold123?输出letter=5,blank=1,digit=3,other=1#include<stdio.h>intmain(void){charc;intblank,digit,i,letter,other;blank=digit=letter=other=0;for(i=l;i<=10;i++){c=getchar();if(e=='')blankelseifi[(c>=,a'&&c<=,z,)||(c>=,A'&&c<=,Z,))letter++;elseifi(c>=,0,&&c<=,9,)digit++;elseother-H-;*printff'letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);}30004显示五级记分制成绩所对应的百分制成绩区间(使用switch)输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入五级制成绩(A—E),输出相应的百分制成绩(0—100)区间,要求使用switch语句。五级制成绩对应的百分制成绩区间为:A(90・100)、B(80・89)、C(70-79)>D(60・69)和E(0・59),如果输入不正确的成绩,显示"Invalidinput"〇输出使用以下语句:printf("90-100\n");prmtf(M80-89\nM);printf(M70-79\nM);printf(H60-69\nH);printf(M0-59\nM);printf(HInvalidinput\nM);输入输出示例:括号内是说明输入6ABCDEj(repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j)输出90-10080-8970-7960-690-59Invalidinput(输入数据不合法)#include<stdio.h>intmain(void){charch;intrepeat,ri;scanff%d",&repeat);fbr(ri=1;ri<=repeat;ri++){ch=getchar();switch(ch){case'A*:printff90-100\n");break;case'B1:printff80-89\n)break;case'C1:printfT70-79\n”);break;case'D*:printf(M60-69\nM);break;case'E*:printf("0・59\n”);break;default:printff'Invalidinput\n");break;return0;}30005显示水果的价格(使用switch)查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询:不到5次时,用户可以选择退出。当用户输入编号1〜4,显示相应水果的单价(保留1位小数):输入〇,退出查询;输入其他编号,显示价格为〇。输入输出示例:括号内是说明输入3(oranges的编号)0(退出查询)输出[1]applespearsorangesgrapes[0]Exitprice=4.1applespearsorangesgrapes[0]Exit#include<stdio.h>intmain(void){intchoice,i;doubleprice;fbr(i=l;i<=5;i++){printfHl]applesW”);printf(M[2]pears\nH);printf(M[3]oranges\nM);printf(H[4]grapes");printf(M[O]Exit\n°);scanf("%d”,&choice);iRchoice=0)break;else{switch(choice){price=3.00;break;price=2.50;break;pricc=4.10;break;price=10.20;break;}printffprice=%0.1f\nH,price);30007求三角形的面积和周长输入ー个正整数repeat(0<repcat<10)»做repeat次下列运算:输入三角形的3条边a,b,c»如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出"Thesesidesdonotcorrespondtoavalidtriangle"〇在ー个三角形中,任意两边之和大于第三边。三角形面积计算公式:area=(s(s-a)(s-b)(s-c))A0.5,其中s=(a+b+e)/2输出使用以下语句:printff'area=%.21perimeter=%.2f\n",area,perimeter);printff'Thesesidesdonotcorrespondtoavalidtriangle\n");输入输出示例:括号内是说明输入2(repeat=2)553(a=5,b=5,c=3)141(a=l,b=4,c=l)输出area=7.15,perimeter=13.00Thesesidesdonotcorrespondtoavalidtriangle#include<stdio.h>#include<math.h>intmain(void)inta,b,c;intrepeat,ri;doublearea,perimeter,s;scanfi("%d",&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanf(M%d%d%d",&a,&b,&c);if((a+b>c)&&(a+c>b)&&(b+c>a)){perimeter=a+b+c;s=(a+b+c)/2.0〇;area=sqrt(s*(s-a)*(s-b)*(s-c));printff'area=%.2f,perimeter=%.2f\nH,area,perimeter);}elseprintff'Thesesidesdonotcorrespondtoavalidtriangle\nn);30008计算个人所得税输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入ー个职エ的月薪salary»输出应交的个人所得税tax(保留2位小数)。计算公式:tax=rate*(salary-850)当salary<850时,rate=0当850<salary<1350时,rate=5%当1350<salary<2850时,rate=10%当2850<salary<5850时,rate=15%当5850<salary时,rate=20%输入输出示例:括号内是说明输入5(repeat=5)1010.87(salary=1010.87)32098.76(salary=32098.76)800(salary=800)4010(salary=4010)2850(salary=2850)输出tax=8.04tax=6249.75tax=0.00tax=474.00tax=200.00intmain(){intri,repeat;doublerate,salary,tax;scanff%d",&repeat);fbr(ri=l;ri<=repeat;ri-H-){scanf(M%lf',&salary);if(salary<=850){rate=0;tax=rate*(salary-850);}elseif(salary<=1350){rate=0.05;tax=rate*(salary-850);}elseif(salary<=2850)(rate=0.10;tax=rate*(salary-850);}elseif(salary<=5850){rate=0.15;tax=rate*(salary-850);else(rate=0.20;tax=rate*(salary-850);}printfftax=%0.2f\nH,tax);30051判断闰年输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入年year,判断该年是否为闰年。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。输出使用以下语句:printfi(H%disaleapyear.\nH,year);printf(H%disn*taleapyear.\nM,year);输入输出示例:括号内是说明输入3(repeat=3)2000(year=2000)2010(year=2010)2011(year=2011)输出2000isaleapyear.2010isn*taleapyear.2011isn'taleapyea匚#includc<stdio.h>intmain(void)(intrepeat,ri;intyear;seanfT%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanグ%d”,&year);if((year%4==0&&year0!=0)||(year@0==0))printff'%disaleapyear.\n",year);elseprintff'%disn'taleapyear.\n",year);30052统计学生平均成绩与及格人数输入ー个正整数n,再输入n个学生的成绩,计算平均分(结果保留1位小数),并统计所有及格的人数。输入输出示例:括号内是说明输入5(n=5)7754927360输出average=71.2count=4intmain(void){intcount,i,n;doubleaverage,grade,total;scanf("%d”,&n);total=0;count=0;fbr(i=l;i<=n;i-H-){scanfC%lf',&grade);total=total+gradc;ifi(grade>=60){count++;}}average=1.00*total/n;printff'average=%.lf\n",average);\printff'count=%d\n",count);}30053分段计算水费(使用嵌套的iAelse语句)输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:为鼓励居民节约用水,自来水公司采取按月用水量分段计费的办法,居民应交水费y(元)与月用水量x(吨)的函数关系式如下。输入用户的月用水量x(吨),计算并输岀该用户应支付的水费y(元X保留2位小数)。要求用嵌套的if-else语句。0(x<0)y=f(x)=4x/3(0<=x<=15)2.5x-10.5(x>15)输入输出示例:括号内是说明输入3(repeat=3)-0.5(x=-0.5)9.5(x=9.5)21.3(x=21.3)输出戈•0.50)=0.00ロ9.50)=12.67f(21.30)=42.75#include<stdio.h>intmain(void)intrepeat,ri;doublex,y;scanグ%d”,&repeat);fbr(ri=l;ri<=repeat;ri++){scanf(M%lP,,&x);if(x<0)y=0;elseif<x>=0&&x<=15)y=4.0*x/3;elsey=2.5*x-10.5;printfCf(%.2f)=%.2f\n",x,y);第6周(M6)40011求最小公倍数和最大公约数(调试示例error04_l)输入ー个正整数repeat(0<r叩eat<10),做repeat次下列运算:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。输入输出示例:括号内为说明输入:3(repeat=3)37(m=3,n=7)244(m=24,n=4)2418(m=24,n=18)输出:21istheleastcommonmultipleof3and7,1isthegreatestcommondivisorof3and7.24istheleastcommonmultipleof24and4,4isthegreatestcommondivisorof24and4.72istheleastcommonmultipleof24and18,6isthegreatestcommondivisorof24and18.#include<stdio.h>intmain(void){intgcd,1cm,m,n,c;intrepeat,ri;scanf(”%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanf(”%d”,&m);scanf(M%dM,&n);ifi(m<=n)c=m;elsec=n;fbr(Icm=l;;lcm-H-){ifi(lcm%m==0&&lcm%n=0)break;fbr(gcd=c;;gcd-){if(m%gcd==O&&n%gcd=O)break;printfi(H%distheleastcommonmultipleof%dand%d,%disthegreatestcommondivisorof%dand%d.\n",1cm,m,n,gcd,m,n);}return0;}参考方法2:#include<stdio.h>intmain(void){intgcd,1cm,m,n,i;intrepeat,ri;scanf(”%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanグ%d”,&m);scanff%d”,&n);ififm<=0||n<=0)pHntf("m<=0orn<=〇");else(i=l;while(i<=(m+n)/2)(if((m%i=0)&&(n%i==0))gcd=i;i++;}lcm=m*n/gcd;printf("%distheleastcommonmultipleof%dand%d,%disthegreatestcommondivisorof%dand%d.\n",1cm,m,n,gcd,m,n);40012求1-1/4+1/7-1/10+1/13-1/16+ 输入ー个正整数repeat(0<repeat<10).做repeat次下列运算:读入I个正实数eps,计算并输出下式的值,精确到最后一项的绝对值小于eps(保留6位小数)。请使用while语句实现循环。计算:1—1/4+1/7—1/10+1/13—1/16+ 输入输出示例:括号内是说明输入2(repeat^)2E-4(eps=2E-4)0.02(eps=0.02)输出sum=0.835549sum=0.826310#include<stdio.h>#includc<math.h>intmain(void){intdenominator,flag;intrepeat,ri;doubleeps,item,sum;scanfi("%d“,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanグ%le”,&eps);sum=0;denominator1;flag=l;item=1.0;while(fabs(item)>=eps){item=flag*1.0/denominator;sum=sum+item;flag=-flag;denominator=denominator+3;}printf("sum=%.6f\n",sum);}return0;40014求整数的位数输入ー个正整数repeat(0<repeat<10).做repeat次下列运算:输入ー个整数in,求它的位数。例如123的位数是3。请使用do-while语句实现循环。输入输出示例:括号内是说明输入4(repeat=4)12345(in=12345)-100(in=-100)-1(in=-l)1290(in=1290)输出count=5(12345的位数是5)count=3(-100的位数是3)count=1(-1的位数是1)count=4(99的位数是2)#includc<stdio.h>intmain(void){intcount,in;intrepeat,ri;scanflfM%dM,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanR"%d",&in);count=0;ifi(in<0)in=-in;do(count";in=in/10;}while(in!=0);printff'count=%d\n",count);}return0;40023换硬币输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:将一笔零钱(大于8分,小于1元,精确到分)换成5分、2分和1分的硬币。输入金额,问有儿种换法?针对每利换法,每种硬币至少有一枚,请输出各种面额硬币的数量和硬币的总数量。要求:硬币面值按5分、2分、1分顺序,各类硬币数量依次从大到小的顺序,输出各种换法。输出使用语句:printfi("fen5:%d,fen2:%d,fenl:%d,total:%d\n,,,fen5,fen2,fenl,fen5+fen2+fenl);输入输出示例:括号内为说明输入:2(repeat=2)10(money=10分)13(money=13分)输出:fen5:l,fen2:2,fenl:1,total:4fen5:1,fen2:1,fen1:3,total:5count=2(10分有2种换法)fen5:2,fen2:l,fenl:1,total:4fen5:1,fen2:3,fenl:2,total:6fen5:1,fen2:2,fenl:4,total:7fen5:l,fen2:l,fenl:6,total:8count=4(13分有4种换法)#include"stdio.h"intmain(void)(intcount,fenl,fen2,fen5,money;intrepeat,ri;scanff%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanff%d”,&money);count=0;fbr(fen5=money/5;fen5>=l;fen5—)fbr(fen2=money/2;fen2>=l;fen2—)fbr(fen1=money/l;fen1>=1;fen1—)if(fen5*5+fen2*2+fenl*l==money){printf(Hfen5:%d,fen2:%d,fenl:%d,total:%d\n,,,fen5,fen2,fenl,fen5+fen2+fenl);count++;}printff'count=%d\n",count);}return0;40024找出各位数字的立方和等于它本身的数输入ー个正整数r叩eat(0<repeat<10),做repeat次下列运算:输入两个正整数m和n(lv=m,nv=1000),输出m至りn之间的所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是1人3+5ハ3+3ハ3=153,这里aハb表示a的b次方。输出使用语句:printf(',%d\nM,i);输入输出示例:括号内为说明输入:2(repeat=2)100400(m=100,n=400)1100(m=l,n=100)输出:result:153(1*1*1+5*5*5+3*3*3=153)370(3*3*3+7*7*7=370)371(3*3*3+7*7*7+1*1*1=371)result:(1*1*1=1)#includc"stdio.hnintmain(void){inti,digit,m,n,a,b,c,sum;intrepeat,ri;scanff'%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanfi("%d%d”,&m,&n);printf("result:\n");fbr(i=m;i<=n;i++){digit=i;a=digit;digit=digit/10;b=digit;digit=digit/10;c=digit;sum=a*a*a+b*b*b+c*c*c;if(sum=i)printff%d\n”,i);}}return0;}参考2:include"stdio.hMintmain(void)(inti,digit,m,n,number,sum;intrepeat,ri;scanfi(H%d,,,&repeat);fbr(ri=1;ri<=repeat;ri++){scanff%d%d”,&m,&n);printf(Mresult:\nM);fbr(i=m;i<=n;i++){number=i;sum=O;while(number>0){digit=number;sum=sum+digit*digit*digit;number=number/l0;}if(sum=i)printf(w%d\nM,i);40025找完数(改错题error04_2)输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入两个正整数m和n(l<=m,n<=1000),输出m至リn之间的所有完数,并输出其因子。ー个数如恰好等于它的因子之和,这个数称为完数,例如,6=1+2+3,其中1、2、3为因子,6为因子和。输出使用以下语句:printf(M%d=ド,number);printfT+%d”,factor);pr血ff\n”);输入输出示例:括号内为说明输入:(repeat=2)130(m=l,n=30)400500(m=400,n=500)输出result:1=16=1+2+328=1+2+4+7+14result:496=1+2+4+8+16+31+62+124+248#include<stdio.h>intmain(void){intfactor,m,n,number,sum;intrepeat,ri;scanff%d”,&repeat);fbr(ri=1;ri<=repeat;ri-H-){seanff%d%d”,&m,&n);printf("result:\n”);for(number=m;number<=n;number-H-){sum=l;for(factor=2;factor<=number/2;factor-H-)if(numberctor=0)sum=sum+factor;if(sum==number){printf(M%d=じnumber);for(factor=2;factor<number;factor++)if(numberctor==0)printfif*+%dM,factor);pr血f("\n");printf(w\nM);40027从髙位开始逐位输出一个整数的各位数字(选作)输入ー个正整数repeat(0<rcpeat<10)»做repeat次ド列运算:输入ー个整数in,从髙位开始逐位分割并输出它的各位数字。输出使用语句:printf("%-2dH,digit);输入输出示例:括号内为说明输入3(repeat=3)23456(in=23456)-600(in=-600)8(in=8)输出234566008#include<stdio.h>intmain(void)(intdigit,in,power,temp,k;intrepeat,ri;scanfi("%d”,&repeat);for(ri=1;ri<=repeat;ri-H-){scanf(M%dM,&in);ififinvO)in=-in;power=in;temp=0;k=1;while(power>0){power=power/l0;temp++;k=k*10;)power=in;while(temp>0)(temp—;k=k/10;digit=power/k;power=power%k;printff%・2d”,digit);}printf("\n");)return0;)40052判断素数输入ー个正整数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。输出使用以下语句:printf("%disaprime\n",m);printf("%dis'ntaprime\n",m);输入输出示例:括号内为说明输入4(n=4)12917输出is'ntaprimeisaprimeis'ntaprime17isaprime#include<stdio.h>#include<math.h>intmain(void)intflag,i,j,k,m,n;scanff%d”,&n);fbr(i=l;i<=n;i-H-){scanfi[M%dM,&m);if(m==l)printf(H%dis'ntaprime\nM,m);else{k=sqrt(m);fbr(j=2Jv=kj++)ifi(m%j==O){printfi(M%dis*ntaprime\n",m);break;}if(j>k)printfi("%disaprime\nM,m);}}return0;40053逆序输出整数输入ー个正整数repeat(0<repeat<10)»做repeat次下列运算:输入ー个整数in,将其逆序输出。假设正数和负数逆序输出的结果ー样。输出使用语句printf("%d”,digit);输入输出示例:括号内为说明输入2(repeat=2)200(in=200)-12345(in=-12345)输出00254321include<stdio.h>intmain(void){intdigit,x;intrepeat,ri;scanf(M%dn,&repeat);fbr(ri=1;ri<=repeat;ri-H-){scanf(H%d",&x);if(x<0)x=-x;while(x!=0){digit=x;printR"%d”,digit);x=x/10;}prin氓"\n");40054输出斐波那契序列输入ー个正整数n(l<n<20),输出菲波那契(Fibonacci)序列112358…的前n项。输出使用语句:printf("%d",x);输入输出示例:输入10输出11235813213455#include<stdio.h>intmain(void){inti,n,xl,x2,x;scanfi("%d”,&n);xl=1;x2=1;printf(”%d%dn,xl,x2);fbr(i=1;i<=n-2;i++){x=xl+x2;printf(M%dx);xl=x2;x2=x;}return0;第フ周(M7)50002使用函数判断数的符号输入ー个正整数repeat(0<repeat<10),做repeat次下列运算:输入1个整数x,若x大于〇,sign(x)=1;若x等于〇,sign(x)=0;否则,sign(x)=-l,最后输出sign(x)的值。要求定义和调用函数sign(x)实现该分段函数,函数形参x的类型是int,函数类型是into输入输出示例:括号内是说明输入3(repeat=3)10(x=10)-5(x=-5)0(x=0)输出sign(10)=1(x=10时sign(x)的值为1)sign(-5)=-l(x=-5时sign(x)的值为-1)sign(O)=0(x=0时sign(x)的值为0)①//include<stdio.h>intsign(intx);intmain(void)(intx,y;intrepeat,ri;scanff%d”,&repeat);fbr(ri=1;ri<=repeat;ri++){scanグ%d”,&x);y=sign(x);printfl["sign(%d)=%d\n",x,y);)}intsign(intx){intt=O;if(x<0)t=-l;elseif(x=O)t=O;elset=l;returnt;50003使用函数求奇数和输入ー个正整数repeat(OvrepeatvlO),做repeat次下列运算:输入ー批正整数(以零或负数为结束标志),求其中的奇数和。要求定义和调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回。,函数形参n的类型是int,函数类型是int。输入输出示例:括号内是说明输入2(repeat=2)12971831120011861721019-1输出Thesumoftheoddnumbersis30.Thesumoft
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年党章党史国史国情知识竞赛题库及答案(共200题)
- 《国际市场营销》课件-第9章 国际市场促销策略
- 《电子商务基础》课件-话题3 电子商务运用
- 橄榄球俱乐部简装合同样本
- 保险业务代理居间协议
- 电子商务平台订单管理表
- 高质量产业人才培育与发展计划实施方案研究报告
- 如何写可行性分析报告
- 肉类加工产业发展报告
- 昆明项目可行性研究报告
- 借条加担保人正规的范本
- 设计变更工作流程(附设计变更申请表)
- TCI 056-2023 LED储能道路灯具
- 妇女保健知识讲座
- Unity3D游戏开发PPT完整全套教学课件
- 执行申请书范本电子版
- 小学高年级《红楼春趣》剧本(宁波实验学校)
- 国家职业技能鉴定考试-高级机修钳工题库
- 315国际消费者权益保护日知识讲座课件
- 2023年二手房买卖合同正式版
- GB 4806.8-2022食品安全国家标准食品接触用纸和纸板材料及制品
评论
0/150
提交评论