c语言程序案例DOC.docx
- 文档编号:26890801
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:34
- 大小:25.28KB
c语言程序案例DOC.docx
《c语言程序案例DOC.docx》由会员分享,可在线阅读,更多相关《c语言程序案例DOC.docx(34页珍藏版)》请在冰豆网上搜索。
c语言程序案例DOC
上机注意:
1、请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(executeprogram)后,输入题目中的例子输入,在输出与题目中的例子输出一致后再提交到编程网格上。
2、建立VC6.0工程(project)时,请建立Win32ConsoleApplication。
3、下面是练习2中的两个习题讲解
/*
*练习2、习题(4-1)计算邮资
*习题讲解
*/
#include
intmain()
{
doubleweight;
charexp;
doubled;
/*
*scanf里面的数字/字符变量(例如下面的weight),要用&
*%c是字符型变量的输入输出格式
*/
/*
*如果输入之间有其他内容(例如空格,逗号等),scanf的输入格式(即双引号中的内容)要与之匹配
*例如,本题的输入为“1y”,之间有空格,scanf的输入格式应该写成"%lf%c"
*例如“练习2、习题(4-2)点和正方形的关系”中的输入为“0.5,0.5”,之间有逗号,scanf的输入格式应该写成"%lf,%lf"
*/
scanf("%lf%c",&weight,&exp);
if(weight<=1)
d=0.8;
else
d=(weight-1)*0.5+0.8;
/*
*if语句里的条件,如果是判断是不是相等,应该用两个等号
*字符常量(例如下面的字符y)要用单引号
*/
if(exp=='y')
d=d+2;
/*
*printf里面的变量(例如下面的d)不要用&
*%lf是双精度浮点数的输入输出格式,.1表示小数点后保留一位(保留两位用.2)
*/
printf("%.1lf\n",d);
return0;
}
/*
*练习2、习题(4-3)判断一个数能否同时被3和5整除
*习题讲解
*/
#include
intmain()
{
inti;
scanf("%d",&i);
/*
*下面i%3中的%表示取余数,余数为0,也就是i能被3整除了
*如果if语句中有多个条件,要使用逻辑运算符(讲义C语言编程基础
(2)第63页-66页)
*/
if(i%3==0&&i%5==0)
/*
*printf双引号中内容除了像%d这样的变量输出格式,其他内容(像contains3and5)会全部输出
*其中,%d所在的位置为变量i要输出的位置。
*如果要求输出为“变量15contains3and5”,那么应该写成printf("变量%dcontains3and5",i)
*/
printf("%dcontains3and5\n",i);
else
printf("%ddoesn'tcontain3and5\n",i);
return0;
}
1.
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。
输出浮点数时使用格式“%f”。
关于输入
共有四行:
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
关于输出
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
#include
intmain()
{
chara;
intb;
floatc;
doubled;
scanf("%c",&a);
scanf("%d",&b);
scanf("%f",&c);
scanf("%lf",&d);
printf("%c",a);
printf("%d",b);
printf("%f",c);
printf("%lf",d);
return0;
}
2.
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
关于输入
只有一个字符。
关于输出
该字符构成的等腰三角形,底边长5个字符,高3个字符。
例子输入
*
例子输出
*
***
*****
#include
intmain()
{
chara;
scanf("%c",&a);
printf("%c\n",a);
printf("%c",a);
printf("%c",a);
printf("%c\n",a);
printf("%c",a);
printf("%c",a);
printf("%c",a);
printf("%c",a);
printf("%c\n",a);
return0;
}
3.
输入三个正整数表示三条边的长度,判断这三条边能否构成一个三角形,如果能,则输出“yes”,否则输出“no”。
关于输入
输入是三个正整型数,分别表示三条边的长度。
关于输出
yes或者no
#include
intmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("yes");
else
printf("no");
return0;
}
4.甲流死亡率
甲流并不可怕,在中国,它的死亡率并不是很高。
请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
关于输入
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
关于输出
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
#include
intmain()
{
inta,b;
doublec;
scanf("%d%d",&a,&b);
c=100.0*b/a;
printf("%.3lf%%",c);
return0;
}
5.鸡兔同笼
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼子里面鸡和兔子的总数a和脚的总数b,问笼子里面有多少只鸡,有多少只兔子
关于输入
输入仅一行,包括两个整数a和b,我们保证输入的合法性
关于输出
输出也是一行,输出鸡的个数和兔子的个数,中间用空格隔开
#include
intmain()
{
inta,b,c,d;
scanf("%d%d",&a,&b);
c=2*a-b/2;
d=b/2-a;
printf("%d%d",c,d);
return0;
}
6.奇数和
计算正整数m到n(包括m和n)之间的所有奇数的和,其中,m不大于n,且n不大于300。
例如m=3,n=12,其和则为:
3+5+7+9+11=35
关于输入
两个数m和n,两个数以空格间隔,其中m 关于输出 奇数之和 #include intmain() { inta,b,i,m; m=0; scanf("%d%d",&a,&b); for(i=a;i<=b;i++) { if(i%2==1) m=m+i; } printf("%d",m); return0; } 7.与7无关数之和 一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和. 关于输入 输入为一行,正整数n,(n<100) 关于输出 输出小于等于n的与7无关的正整数的平方和 #include intmain() { inti,n,m,n1,n2,n3; scanf("%d\n",&n); m=0; for(i=1;i<=n;i++){ n1=i%7; n2=i/10; n3=i%10; if(n1! =0&&n2! =7&&n3! =7) m=m+i*i; } printf("%d\n",m); return0; } 8.球落地 一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。 求它在第n次落地时,共经过多少米,第n次反弹多高。 关于输入 高度h(双精度浮点数),落地次数n(大于0整数)。 关于输出 输出它在第n次落地时,共经过的米数s和第n次反弹的高度h。 (精确到小数点后四位) #include intmain() { doublei,h,y,h2; intn; y=1; scanf("%lf",&h); scanf("%d",&n); for(i=1;i<=n;i++) { y=y*2; } h2=h/y; y=3*h-4*h/y; printf("%.4lf%.4lf",y,h2); return0; } 9.人民币面额 从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。 关于输入 一个小于1000的正整数。 关于输出 输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数 #include intmain() { intx,a,b,c,d,e,f; scanf("%d",&x); a=x/100; b=(x-100*a)/50; c=(x-100*a-50*b)/20; d=(x-100*a-50*b-c*20)/10; e=(x-100*a-50*b-c*20-d*10)/5; f=x-100*a-50*b-c*20-d*10-5*e; printf("%d\n%d\n%d\n%d\n%d\n%d\n",a,b,c,d,e,f); return0; } 10.最大两个数 写一个程序,它读入一系列的整数,最后输出其中最大的两个数。 关于输入 第一行输入一个大于1且小于100的整数,表示数列的长度。 此后每行输出数列的一项。 关于输出 输出应有两行,第一行输出最大的数,第二行输出次大的数。 #include intmain() { inti,n,m,max1,max2; scanf("%d\n",&n); for(i=1;i<=n;i++){ scanf("%d",&m); if(i==1) max2=m; if(i==2){ if(m>max2) max1=m; else max1=max2; } if(i>=3){ if(m>=max1) { max2=max1; max1=m; } elseif(m>=max2) max2=m; } } printf("%d\n",max1); printf("%d\n",max2); return0; } 11.计算邮资 计算邮资: 用户输入: 邮件的重量,以及是否加快 计算规则: 重量在1克以内(包括1克),基本费0.8元。 超过1克的部分,按照0.5元/克的比例加收超重费。 如果用户选择加快,多收2元。 关于输入 重量doubleweight 是否加快charexp(可以取'y'or'n') 关于输出 邮资(注: 只需要输出数字,不需要加单位。 例如1.3元,只需要输出1.3) #include intmain() { doubleweight,m; charexp; scanf("%lf",&weight); scanf("%c",&exp); if(weight<=1) m=0.8; else m=0.3+weight*0.5; if(exp=='y') m=m+2; printf("%.1lf",m); return0; } 12.点是否在正方形内 有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,1),(-1,-1),x是横轴,y是纵轴。 写一个程序,判断一个给定的点是否在这个正方形内。 关于输入 输入坐标x,y 关于输出 点在正方形内,输出yes;点在正方形外,输出no #include intmain() { doublex,y; scanf("%lf,%lf",&x,&y); if((x>=-1)&&(x<=1)&&(y>=-1)&&(y<=1)) printf("yes"); else printf("no"); return0; } 13. 判断一个数n能否同时被3和5整除 关于输入 任意一个整数 关于输出 是否能同时被3和5整除 例子输入 15 20 例子输出 15contains3and5 20doesn'tcontain3and5 #include intmain() { intx; scanf("%d",&x); if(x%3==0&&x%5==0){ printf("%dcontains3and5",x); }else{ printf("%ddoesn'tcontain3and5",x); } return0; } 14.能否被3,5,7整除 输入一个整数,判断它能否被3,5,7整除,并输出以下信息: (1)能同时被3,5,7整除(直接输出357,每个数中间一个空格); (2)能被其中两个数整除(输出两个数,小的在前,大的在后。 例如: 35或者37或者57,中间用空格分隔) (3)能被其中一个数整除(输出这个除数) (4)不能被任何数整除;(输出小写字符n) 关于输入 一个整数 关于输出 实现题目的要求 #include intmain() { inta3,a5,a7,x; scanf("%d",&x); a3=x%3; a5=x%5; a7=x%7; if((a3==0)&&(a5==0)&&(a7==0)) printf("357"); if((a3==0)&&(a5==0)&&(a7! =0)) printf("35"); if((a3==0)&&(a5! =0)&&(a7==0)) printf("37"); if((a3! =0)&&(a5==0)&&(a7==0)) printf("57"); if((a3==0)&&(a5! =0)&&(a7! =0)) printf("3"); if((a3! =0)&&(a5==0)&&(a7! =0)) printf("5"); if((a3! =0)&&(a5! =0)&&(a7==0)) printf("7"); if((a3! =0)&&(a5! =0)&&(a7! =0)) printf("n"); return0; } 15.输出最大数 输入三个整数,输出最大的数。 关于输入 输入为一行,共三个整数。 关于输出 输出为最大的整数。 例子输入 102056 例子输出 56 #include intmain() { inta,b,c; scanf("%d%d%d",&a,&b,&c); if((a>b)&&(a>c)) printf("%d",a); if((b>a)&&(b>c)) printf("%d",b); if((c>b)&&(c>b)) printf("%d",c); return0; } 16.计算器 一个最简单的计算器,支持+,-,*,/四种运算。 仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。 关于输入 输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。 关于输出 输出只有一行,一个整数,为运算结果。 然而: 1.如果出现除数为0的情况,则输出: Dividedbyzero! 2.如果出现无效的操作符(即不为+,-,*,/之一),则输出: Invalidoperator! 例子输入 12+ 例子输出 3 #include intmain() { inta,b,c; charx; scanf("%d%d",&a,&b); scanf("%c",&x); switch(x) { case'+': c=a+b; printf("%d",c); break; case'-': c=a-b; printf("%d",c); break; case'*': c=a*b; printf("%d",c); break; case'/': if(b==0) printf("Dividedbyzero! "); else{ c=a/b; printf("%d",c); } break; default: printf("Invalidoperator! "); } return0; } 17.财务管理 阿华今年毕业并找到一份工作。 他挣的钱很多,但却总不够花。 阿华决定看紧自己的钱包以解决他的财务问题。 他要做的第一步是先弄清自己的钱的情况。 阿华拿出银行结帐单想算一算他都有多少钱。 请写一个程序处理过去十二个月月末帐户余额,帮助阿华计算出平均帐户余额。 关于输入 输入共12行,每行一个数字,代表相应月份月末帐户余额,每个数字都是正数,并且小数点后精确到分。 金额数字前没有货币符号。 关于输出 输出是一个金额数,即这十二个月的平均帐户余额。 请按四舍五入近似到分。 金额前带一个美元符号($),金额后紧跟一个回车符号(\n)。 输出中不应包含空白符号或其他任何符号。 例子输入 100.00 489.12 12454.12 1234.10 823.05 109.20 5.27 1542.25 839.18 83.99 1295.01 1.75 例子输出 $1581.42 #include intmain() { floatx,y,sum; sum=0; inti; for(i=1;i<=12;i++) { scanf("%f",&x); sum+=x; } y=sum/12; printf("$%.2f\n",y); return0; } 18.满足条件的数 编写程序,读入若干个四位数(小于30),求出其中满足以下条件的数的个数: 个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。 关于输入 输入为两行,第一行为四位数的个数,第二行为要读入的四位数 关于输出 输出为一行,即满足条件的四位数的个数 #include intmain() { intn,m,i,x1,x2,x3,x4,p,j; j=0; scanf("%d/n",&n); for(i=1;i<=n;i++) { scanf("%d",&m); x4=m/1000; x3=(m-1000*x4)/100; x2=(m-1000*x4-100*x3)/10; x1=m-1000*x4-100*x3-10*x2; p=x1-x2-x3-x4; if(p>0){ j++; } } printf("%d",j); return0; } 19.求最大公约数 #include intmain(){ inta,b,result; scanf("%d%d",&a,&b); result=a; while (1){ if((a%result==0)&&(b%result==0)){ break; } result--; } printf("%d\n",result); return0; } 20.最小公倍数 #include intmain(){ inta,b,result; scanf("%d%d",&a,&b); result=a; while (1){ if((result%a==0)&&(result%b==0)){ break; } result++; } printf("%d\n",result); return0; } 21.编写一个完整的C程序,求一个正整数中各个数位(个位、十位、百位、…)上数字的和。 输入: 一个正整数; 输出: 一个整数,即输入的正整数中各个数位上数字的和。 例子输入: 123456例子输出: 21 intmain(){ inta,result=0; scanf(“%d”,&a); for(inti=a;i>0;i/=10){ result+=i%10; } printf(“%d”,result); return0; } 22.输出一个double型数的小数部分. #include intmain(){ doublea; scanf("%lf",&a); a-=(int)(a); printf("%lf\n",a); return0; } 23.接受从控制台输入的三个整数,并按照绝对值的大小进行从大 到小输出到控制台 #include intmain(){ inta,b,c,t; scanf("%d%d%d",&a,&b,&c); if((a<0? -a: a)<(b<0? -b: b)){ t=a; a=b; b=t; } if((a<0?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 案例 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)