c语言程序案例解析Word格式文档下载.docx
《c语言程序案例解析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言程序案例解析Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
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)
%dcontains3and5\n"
i);
%ddoesn'
tcontain3and5\n"
}
1.
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。
输出浮点数时使用格式“%f”。
关于输入
共有四行:
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
关于输出
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
#include<
stdio.h>
intmain()
{
chara;
intb;
floatc;
doubled;
scanf("
%c"
&
a);
b);
%f"
c);
%lf"
d);
printf("
a);
%d"
b);
%f"
c);
%lf"
d);
return0;
2.
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
只有一个字符。
该字符构成的等腰三角形,底边长5个字符,高3个字符。
例子输入
*
例子输出
***
*****
%c\n"
%c"
%c\n"
3.
输入三个正整数表示三条边的长度,判断这三条边能否构成一个三角形,如果能,则输出“yes”,否则输出“no”。
输入是三个正整型数,分别表示三条边的长度。
yes或者no
inta,b,c;
%d%d%d"
a,&
b,&
if(a+b>
c&
a+c>
b&
b+c>
a)
printf("
yes"
);
else
no"
4.甲流死亡率
甲流并不可怕,在中国,它的死亡率并不是很高。
请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
inta,b;
doublec;
%d%d"
c=100.0*b/a;
%.3lf%%"
5.鸡兔同笼
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼子里面鸡和兔子的总数a和脚的总数b,问笼子里面有多少只鸡,有多少只兔子
输入仅一行,包括两个整数a和b,我们保证输入的合法性
输出也是一行,输出鸡的个数和兔子的个数,中间用空格隔开
inta,b,c,d;
c=2*a-b/2;
d=b/2-a;
%d%d"
c,d);
6.奇数和
计算正整数m到n(包括m和n)之间的所有奇数的和,其中,m不大于n,且n不大于300。
例如m=3,n=12,其和则为:
3+5+7+9+11=35
两个数m和n,两个数以空格间隔,其中m<
n<
300。
奇数之和
inta,b,i,m;
m=0;
for(i=a;
i<
=b;
i++)
{
if(i%2==1)
m=m+i;
}
m);
7.与7无关数之和
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<
100)的与7无关的正整数的平方和.
输入为一行,正整数n,(n<
100)
输出小于等于n的与7无关的正整数的平方和
inti,n,m,n1,n2,n3;
%d\n"
n);
m=0;
for(i=1;
=n;
i++){
n1=i%7;
n2=i/10;
n3=i%10;
if(n1!
=0&
n2!
=7&
n3!
=7)
m=m+i*i;
8.球落地
一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。
求它在第n次落地时,共经过多少米,第n次反弹多高。
高度h(双精度浮点数),落地次数n(大于0整数)。
输出它在第n次落地时,共经过的米数s和第n次反弹的高度h。
(精确到小数点后四位)
doublei,h,y,h2;
intn;
y=1;
h);
for(i=1;
y=y*2;
h2=h/y;
y=3*h-4*h/y;
%.4lf%.4lf"
y,h2);
9.人民币面额
从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。
一个小于1000的正整数。
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
intx,a,b,c,d,e,f;
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;
%d\n%d\n%d\n%d\n%d\n%d\n"
a,b,c,d,e,f);
10.最大两个数
写一个程序,它读入一系列的整数,最后输出其中最大的两个数。
第一行输入一个大于1且小于100的整数,表示数列的长度。
此后每行输出数列的一项。
输出应有两行,第一行输出最大的数,第二行输出次大的数。
inti,n,m,max1,max2;
m);
if(i==1)
max2=m;
if(i==2){
if(m>
max2)
max1=m;
else
max1=max2;
}
if(i>
=3){
=max1)
{
max2=max1;
elseif(m>
=max2)
max2=m;
max1);
max2);
11.计算邮资
计算邮资:
用户输入:
邮件的重量,以及是否加快
计算规则:
重量在1克以内(包括1克),基本费0.8元。
超过1克的部分,按照0.5元/克的比例加收超重费。
如果用户选择加快,多收2元。
重量doubleweight
是否加快charexp(可以取'
or'
n'
)
邮资(注:
只需要输出数字,不需要加单位。
例如1.3元,只需要输出1.3)
doubleweight,m;
weight);
if(weight<
=1)
m=0.8;
else
m=0.3+weight*0.5;
if(exp=='
m=m+2;
%.1lf"
12.点是否在正方形内
有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,1),(-1,-1),x是横轴,y是纵轴。
写一个程序,判断一个给定的点是否在这个正方形内。
输入坐标x,y
点在正方形内,输出yes;
点在正方形外,输出no
doublex,y;
x,&
y);
if((x>
=-1)&
(x<
=1)&
(y>
(y<
=1))
13.
判断一个数n能否同时被3和5整除
任意一个整数
是否能同时被3和5整除
15
20
15contains3and5
20doesn'
tcontain3and5
intx;
if(x%3==0&
x%5==0){
%dcontains3and5"
x);
}else{
tcontain3and5"
14.能否被3,5,7整除
输入一个整数,判断它能否被3,5,7整除,并输出以下信息:
(1)能同时被3,5,7整除(直接输出357,每个数中间一个空格);
(2)能被其中两个数整除(输出两个数,小的在前,大的在后。
例如:
35或者37或者57,中间用空格分隔)
(3)能被其中一个数整除(输出这个除数)
(4)不能被任何数整除;
(输出小写字符n)
一个整数
实现题目的要求
inta3,a5,a7,x;
a3=x%3;
a5=x%5;
a7=x%7;
if((a3==0)&
(a5==0)&
(a7==0))
357"
(a7!
=0))
35"
(a5!
=0)&
37"
if((a3!
57"
3"
5"
7"
n"
15.输出最大数
输入三个整数,输出最大的数。
输入为一行,共三个整数。
输出为最大的整数。
102056
56
inta,b,c;
if((a>
b)&
(a>
c))
if((b>
a)&
(b>
if((c>
(c>
b))
16.计算器
一个最简单的计算器,支持+,-,*,/四种运算。
仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。
输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
输出只有一行,一个整数,为运算结果。
然而:
1.如果出现除数为0的情况,则输出:
Dividedbyzero!
2.如果出现无效的操作符(即不为+,-,*,/之一),则输出:
Invalidoperator!
12+
3
charx;
switch(x)
case'
+'
:
c=a+b;
break;
-'
c=a-b;
*'
c=a*b;
/'
if(b==0)
"
else{
c=a/b;
default:
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
floatx,y,sum;
sum=0;
=12;
sum+=x;
y=sum/12;
$%.2f\n"
y);
18.满足条件的数
编写程序,读入若干个四位数(小于30),求出其中满足以下条件的数的个数:
个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。
输入为两行,第一行为四位数的个数,第二行为要读入的四位数
输出为一行,即满足条件的四位数的个数
intn,m,i,x1,x2,x3,x4,p,j;
j=0;
%d/n"
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++;
j);
19.求最大公约数
#include<
intmain(){
inta,b,result;
a,&
result=a;
while
(1){
if((a%result==0)&
(b%result==0)){
break;
result--;
result);
20.最小公倍数
if((result%a==0)&
(result%b==0)){
result++;
21.编写一个完整的C程序,求一个正整数中各个数位(个位、十位、百位、…)上数字的和。
输入:
一个正整数;
输出:
一个整数,即输入的正整数中各个数位上数字的和。
例子输入:
123456例子输出:
21
intmain(){
inta,result=0;
scanf(“%d”,&
for(inti=a;
i>
0;
i/=10){
result+=i%10;
}
printf(“%d”,result);
22.输出一个double型数的小数部分.
#include<
intmain(){
doublea;
scanf("
a-=(int)(a);
%lf\n"
a);
return0;
23.接受从控制台输入的三个整数,并按照绝对值的大小进行从大
到小输出到控制台
intmain(){
inta,b,c,t;
%d%d%d"
if((a<
0?
-a:
a)<
(b<
-b:
b)){
t=a;
a=b;
b=t;
if((a<