上机注意:1、请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(execute program)后,输入题目中的例子输入,在输出与题目中的例子输出一致后再提交到编程网格上。
2、建立VC6.0工程(project)时,请建立Win32 Console Application。
3、下面是练习2中的两个习题讲解/** 练习2、习题(4-1) 计算邮资* 习题讲解*/#includeint main(){double weight;char exp;double d;/** scanf里面的数字/字符变量(例如下面的weight),要用&* %c 是字符型变量的输入输出格式*//** 如果输入之间有其他内容(例如空格,逗号等),scanf的输入格式(即双引号中的内容)要与之匹配* 例如,本题的输入为“1 y”,之间有空格,scanf的输入格式应该写成"%lf %c"* 例如“练习2、习题(4-2) 点和正方形的关系”中的输入为“0.5,0.5”,之间有逗号,scanf 的输入格式应该写成"%lf,%lf"*/scanf("%lf %c", &weight, &exp);if(weight <= 1)d = 0.8;elsed = (weight-1)*0.5 + 0.8;/** if语句里的条件,如果是判断是不是相等,应该用两个等号* 字符常量(例如下面的字符y)要用单引号*/if(exp == 'y')d = d+2;/** printf里面的变量(例如下面的d)不要用&* %lf是双精度浮点数的输入输出格式,.1 表示小数点后保留一位(保留两位用.2)*/printf("%.1lf\n", d);return 0;}/** 练习2、习题(4-3) 判断一个数能否同时被3和5整除* 习题讲解*/#includeint main(){int i;scanf("%d", &i);/** 下面i%3中的%表示取余数,余数为0,也就是i能被3整除了* 如果if语句中有多个条件,要使用逻辑运算符(讲义C语言编程基础(2)第63页-66页)*/if(i%3 == 0 && i%5 == 0)/** printf双引号中内容除了像%d这样的变量输出格式,其他内容(像contains 3 and 5)会全部输出* 其中,%d所在的位置为变量i要输出的位置。
* 如果要求输出为“变量15 contains 3 and 5”,那么应该写成printf("变量%d contains 3 and 5", i)*/printf("%d contains 3 and 5\n", i);elseprintf("%d doesn't contain 3 and 5\n", i);return 0;}1.读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。
输出浮点数时使用格式“%f”。
关于输入共有四行:第一行是一个字符;第二行是一个整数;第三行是一个单精度浮点数;第四行是一个双精度浮点数。
关于输出输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
#include<stdio.h>int main(){char a;int b;float c;double d;scanf("%c",&a);scanf("%d",&b);scanf("%f",&c);scanf("%lf",&d);printf("%c",a);printf(" %d",b);printf(" %f",c);printf(" %lf",d);return 0;}2.给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
关于输入只有一个字符。
关于输出该字符构成的等腰三角形,底边长5个字符,高3个字符。
例子输入*例子输出*********#include<stdio.h>int main(){char a;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);return 0;}3.输入三个正整数表示三条边的长度,判断这三条边能否构成一个三角形,如果能,则输出“yes”,否则输出“no”。
关于输入输入是三个正整型数,分别表示三条边的长度。
关于输出yes 或者 no#include<stdio.h>int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("yes");elseprintf("no");return 0;}4.甲流死亡率甲流并不可怕,在中国,它的死亡率并不是很高。
请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
关于输入输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
关于输出输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
#include<stdio.h>int main(){int a,b;double c;scanf("%d%d",&a,&b);c=100.0*b/a;printf("%.3lf%%",c);return 0;}5.鸡兔同笼一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼子里面鸡和兔子的总数a和脚的总数b,问笼子里面有多少只鸡,有多少只兔子关于输入输入仅一行,包括两个整数a和b,我们保证输入的合法性关于输出输出也是一行,输出鸡的个数和兔子的个数,中间用空格隔开#include<stdio.h>int main(){int a,b,c,d;scanf("%d%d",&a,&b);c=2*a-b/2;d=b/2-a;printf("%d %d",c,d);return 0;}6.奇数和计算正整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。
例如 m=3, n=12, 其和则为:3+5+7+9+11=35关于输入两个数 m 和 n,两个数以空格间隔,其中 m < n < 300 。
关于输出奇数之和#include<stdio.h>int main(){int a,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);return 0;}7.与7无关数之和一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和.关于输入输入为一行,正整数n,(n<100)关于输出输出小于等于n的与7无关的正整数的平方和#include<stdio.h>int main(){int i,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);return 0;}8.球落地一球从h米的高度自由落下,每次落地后又反跳回原高度的一半,再落下。
求它在第n 次落地时,共经过多少米,第n次反弹多高。
关于输入高度h(双精度浮点数),落地次数n(大于0整数)。
关于输出输出它在第n次落地时,共经过的米数s 和第n次反弹的高度h。
(精确到小数点后四位)#include<stdio.h>int main(){double i,h,y,h2;int n;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);return 0;}9.人民币面额从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。
关于输入一个小于1000的正整数。
关于输出输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数#include<stdio.h>int main(){int x,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);return 0;}10.最大两个数写一个程序,它读入一系列的整数,最后输出其中最大的两个数。