{ int i,j,k;
for (i=0;i<= (1) ;i++)
{ for (j=0;j<=2-i;j++) printf(\ for (k=0;k<= (2) ;k++) printf(\ (3) }
for (i=0;i<=2;i++)
{ for (j=0;j<= (4) ;j++) printf(\
for (k=0;k<= (5) ;k++) printf(\ printf(\ }
}
7. 准备客票。某铁路线上共10个车站,问需要准备几种车票? main()
{ int i,j,station,total=0; printf(\输入车站数:\ scanf(\ for (i=1;i< (1) ;i++)
for (j= (2) ;j<=station;j++) total= (3) ; printf(\车票种类=%d \\n\
} 四、 编程
1. 计算n的阶乘
2. 求 1到 100之间的奇数之和、偶数之积。
3. 输入一行字符,统计其中的英文字母、数字、空格和其他字符个数。
0123634. 用循环语句编写求2?2?2?2?...?2的程序。
5. 求
?n!(即求1!+2!+3!+...+20!) 。
n?120235813216. 有一分数序列,,,,,,......,求出这个数列的前20项之和。
12358137. 任意十个数,打印出它们中的最大数、最小数。
20
测试数据:① 1,-12,20,30,-5,-23,33,125,200,-100 ② 0,10,3,1,5,6,-10,90,9,-4
③ 12,13,14,15,10,-10,-11,-12,-9,9
8. 判断一个数是否是素数 9. 打印1-100之间所有素数 10. 求1-100之间所有非素数的和
11. 输入两个正整数 m和 n,求其最大公约数和最小公倍数。
提示:求 m,n的最大公约数:首先将 m除以 n(m>n)得余数 R,再用余数 R 去除原来的除数,得新的余数,重复此过程直到余数为 0 时停止,此时的除数就是m 和 n的最大公约数。求 m和 n的最小公倍数: m和 n的积除以 m和 n 的最大公约数。 测试数据: m=12, n=24 m=100, n=300
12. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数, 其各位数字立方
333和等于该数本身。例如 153是一个水仙花数,因为 153=1?5?3(要求分别用一
重循环和三重循环实现)。
13. 一个数恰好等于它的平方数的右端,这个数称为同构数。如 5 的平方是25, 5是
25中的右端的数, 5就是同构数。找出1~1000之间的全部同构数。
14. 3025这个数具有一种独特的性质:将它平分为两段,即30和25,使之相加后求平
方,即(30+25),恰好等于3025本身。请求出具有这样性质的全部四位数。 15. 两位数13和62具有很有趣的性质:把它们个位数字和十位数字对调,其乘积不变,
即13*62=31*26。 编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11、22,重复出现的不在此列,如 13*62与62*13)。
16. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6 的因子为1、
2、3,而6=1+2+3,因此6 是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3
17. 有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,
第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
18. 给出一个不多于4位的正整数,要求:① 求出它是几位数 ② 分别打印出每一
位数字 ③ 按逆序打印出各位数字。
19. 在一个程序中计算出给定误差小于0.1,0.01,0.001,0.0001,0.00001 时,下式的值: (?)?(?)?(?)?...?(2433465568772n2n?2?) 2n?12n?121
提示:本题中误差指前 n+1项之积与前 n项积之差。
20. 用泰勒展开式求sinx的近似值
(2n?1)xx3x5x7n?1x sinx=? ???...?(?1)1!3!5!7!(2n?1)! 测试数据:① x=0.3 , n=8 ② x=0.5 , n=20
21. 验证歌德巴赫猜想。一个充分大的偶数(大于或等于6)可以分解为两个素数之和。
试编程序,将 6至50之间全部偶数表示为两个素数之和。 22. 用牛顿迭代法求方程在 1.5附近的根(精度为10)。
32 2x?4x?3x?6?0
?523. 两个乒乓球队进行比赛,各出三人,甲队为A、B、C三人,乙队为X、Y 、Z三人,
已知抽签决定比赛名单。有人向队员打听比赛的名单, A说他不和 X比,C说他不和 X、Z比,请编程序找出三对赛手的名单。
22
第一单元 程序设计和C语言 一、 选择题
1. A 2. B 3. C 4. C 5. D 6. A 7. C 8. D 9. A 10. D 11. A 12. D 13. BC 14.. B 15. B 二、 填空
1. 函数首部、函数体 2. 主函数、main函数 3. 0
4. 赋值、逗号、18、18、18、3 5. 浮点型、指数型 6. 逗号
第二单元 顺序程序设计 一、 选择题 1. C 2. A 3. A 4. D 5. C 6. C 7. C 二、 读程序写结果
1. 17 2. 2080
3. X=3.600000,i=3 4. 2,0
5. X=2,y=%d 6. 6,0,6,102 7. 2,1
2,2
三、 填空
1. 字符 整数 2. 左 右
3. 格式说明 普通字符 4. (1) float area,girth;
(2) l*w (3) 2*(l+w)
(4) printf(“area=%f,girth=%f\\n”,area,girth); 5. (1) #include “stdio.h”
23
(2) int n (3) getchar()
(4) c-‘0’ 或者c-48 (5) “%c,%d\\n”
第三单元 分支程序设计 一、 选择题 1. C 2. EB 3. D 4. C 5. D 6. C 7. D 8. C 二、 读程序写结果
1. 1,0,3 2. 200 3. 01 4. 1 7 0
5. It is B. It is C.other. 6. a=2,b=1 三、 填空
1. 0 2. 1
3. (1) y=2*x+3
(2)else if(x==0) (3)else
4. (1) #include “math.h”
(2) float a,b,c,s,s1
(3) (a+b>c)&&(b+c>a)&&(c+a>b) (4) sqrt(s1) (5) else 5. (1) b!=0
(2) c!=0 (3) d>=0 (4) (2*a) (5) (2*a)
(6) pi=sqrt(-d)/(2*a) 6. (1) switch(c)
(2) break (3) break
24