c语言程序案例

  • 格式:doc
  • 大小:196.00 KB
  • 文档页数:29

上机注意: 1、请大家在VC6.0中建立工程,编写代码,编译(compile),链接(build),运行(execute program)后,输入题目中的例子输入,在输出与题目中的例子输出一致后再提交到编程网格上。 2、建立VC6.0工程(project)时,请建立Win32 Console Application。 3、下面是练习2中的两个习题讲解 /* * 练习2、习题(4-1) 计算邮资 * 习题讲解 */ #include int 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; 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); return 0; }

/* * 练习2、习题(4-3) 判断一个数能否同时被3和5整除 * 习题讲解 */ #include int 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); else printf("%d doesn't contain 3 and 5\n", i); return 0; }

1.

读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时使用格式“%f”。 关于输入 共有四行: 第一行是一个字符; 第二行是一个整数; 第三行是一个单精度浮点数; 第四行是一个双精度浮点数。 关于输出 输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。

#include 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 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 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"); else printf("no"); return 0; }

4. 甲流死亡率

甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。 关于输入 输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。 关于输出 输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。 #include 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 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 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 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。(精确到小数点后四