c语言程序案例.docx
《c语言程序案例.docx》由会员分享,可在线阅读,更多相关《c语言程序案例.docx(30页珍藏版)》请在冰豆网上搜索。
![c语言程序案例.docx](https://file1.bdocx.com/fileroot1/2022-10/25/353e40cc-1a71-430b-af04-71d2495b03e8/353e40cc-1a71-430b-af04-71d2495b03e81.gif)
c语言程序案例
上机注意:
1、请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(execute
program)后,输入题目中的例子输入,在输出与题目中的例子输出一致后再提交到编程网格上。
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;
}
/*
整除判断一个数能否同时被3和5*练习2、习题(4-3)
习题讲解*
*/
#include
intmain()
{
inti;
scanf(%d,&i);
/*
能被3整除了中的%表示取余数,余数为0,也就是i*下面i%3页632)第if语句中有多个条件,要使用逻辑运算符(讲义C语言编程基础(*如果-66页)*/
if(i%3==0&&i%5==0)
/*
)contains3and5这样的变量输出格式,其他内容(像%d*printf双引号中内容除了像会全部输出
所在的位置为变量i要输出的位置。
*其中,%d%dcontains变量,那么应该写成变量15contains3and5”牰湩晴尨“*如果要求输出为3and5,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.
3个字符的等腰字符三角形。
给定一个字符,用它构造一个底边长5个字符,高关于输入只有一个字符。
关于输出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”。
关于输入.
输入是三个正整型数,分别表示三条边的长度。
关于输出no
yes或者#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(
o);
return0;
}
4.甲流死亡率
日各省22年12月2009甲流并不可怕,在中国,它的死亡率并不是很高。
请根据截止报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
关于输入输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
关于输出
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
#include
intmain()
{
inta,b;
doublec;
scanf(%d%d,&a,&b);
c=100.0*b/a;
printf(%.3lf%%,c);
return0;
}
5.鸡兔同笼
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼,问笼子里面有多少只鸡,有多少只兔子b和脚的总数a子里面鸡和兔子的总数.
关于输入,我们保证输入的合法性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.无关的正整数的平方和的与77相关的数.现求所有小于等于n(n<100)其为与关于输入n,(n<100),正整数输入为一行关于输出7无关的正整数的平方和输出小于等于n的与#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_x0010_;
if(n1!
=0&&n2!
=7&&n3!
=7)
m=m+i*i;
}
printf(%d\n,m);
return0;
}
球落地8.
一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。
求它在第n次落地时,共经过多少米,第n次反弹多高。
关于输入
高度h(双精度浮点数),落地次数n(大于0整数)。
关于输出
精确到小数点后四(。
h次反弹的高度n和第s次落地时,共经过的米数n输出它在第
位)#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