C语言上机练习参考答案 下载本文

内容发布更新时间 : 2024/11/15 20:37:32星期一 下面是文章的全部内容请认真阅读。

=04。哪个正确?为什么?*/ 6-45 6-46 6-47

根据下列公式计算从n个不同元素中抽取m个元素(m?n)的组合数。

mCn?n!

m!(n?m)!编写程序,输入2个正整数m和n(m?n),计算并输出组合数。(注意变量

的数据类型)

Program #include <> main() { int m, n, i; long f, c; printf(\ scanf(\ for(i=2, f=1; i<=n; i++) f *= i; c=f; for(i=2, f=1; i<=m; i++) f *= i; c=c/f; for(i=2, f=1; i<=n-m; i++) f *= i; c=c/f; printf(\ } Output

Please input n and m (m <= n): 5 3? input */

The result is: 10 6-48

输出21世纪所有的闰年。

/* Blue is

Program #include <> main() { int year, n; for(year=2000, n=0; year<3000; year++) if ( (year%4==0&&year0!=0)||(year@0==0) ) { printf ( \ n++; /*如果把n++放到for中year++后面,会如何?*/ if (n==0) printf(\ } 6-49

} 用一张一元票换1分、2分和5分的硬币(至少各一枚),问有几种换法?

每种换法中1分、2分和5分的硬币各有多少?

Program #include <> main() { int f1, f2, f5, n, m=0; for(f1=1, n=0; f1<=100; f1++) { for(f2=1; f2<=(100-f1)/2; f2++) { if((100-f1-2*f2)%5==0 && f1!=0 && f2!=0 && 100-f1-2*f2!=0) { n++; f5=(100-f1-2*f2)/5; printf(\Fen.\\n\ m++; if(m$==0) /*这个if语句是什么用途?没有它会怎样?*/ { printf(\ getchar(); } } } } } 6-50

两个乒乓球队进行比赛,各出3个人。甲队为a、b、c三个人,乙队为x、

y、z三个人。已经抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和x比,c说他不和x、z比。编写程序找出3对比赛选手的名单。 Program #include <> main() { char x, y, z; for(x='a'; x<='c'; x++) for(y='a'; y<='c'; y++) for(z='a'; z<='c'; z++) { if(x==y || x==z || y==z || x=='a' || x=='c' || z=='c') continue; printf(\ } } Output

x-b, y-c, z-a 6-51

编写程序,显示如下的二维平方根表(即给出~之间的任意数的平方根)。

例如,x为的平方根,而y为的平方根。

数学 …… …… x y Program #include <> #include <> main() { int i, j; printf(\ for(j=0; j<=9; j++) printf(\ for(i=0; i<=9; i++) { printf(\ for(j=0; j<=9; j++) printf(\ } /*在哪里换行的?*/ } Output

6-52 6-53 6-54 6-55 6-56 6-57 6-58 6-59 6-60 6-61 6-62 6-63 6-64 6-65 6-66 6-67

弗洛伊德三角形如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ……

… … … … … … ……

91

(1)编写程序,显示如上形式的弗洛伊德三角形; (2)修改该程序,显示如下形式的弗洛伊德三角形: 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 ……

Program (1) #include <> main() { int n, i, j; for(n=1, i=1; ; i++) { if (n>91) break; for(j=1; j<=i; j++) { printf(\ if (n>91) break; } printf(\ } } Program (2) #include <> main() { int n, i, j; for(n=1, i=1; ; i++) { if (n>91) break; for(j=1; j<=i; j++) { printf(\ /*输出什么?*/ n++; if (n>91) break; } printf(\ } } /*这两个程序在哪个地方有所不同?*/ 6-68

查询自动售货机中商品的价格。假设自动售货机出售4种商品:薯片

(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别为元、元、元和元。在屏幕上显示以下菜单(编号和选项): 6-69 6-70 6-71 6-72 6-73 6-74

[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit

用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;

不到5次时,用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留2位小数);输入0,退出查询;输入其他编号,显示价格为0。 Program #include <> main() { float crisps=, popcorn=, chocolate=, cola=; int i=0, n; printf(\ printf(\ printf(\ printf(\ printf(\ while(i<5) { printf(\ scanf(\