C语言习题集及答案 1(5)

2019-01-07 19:17

5. 求

?n!(即求1!+2!+3!+...+20!) 。

n?1206. 有一分数序列,,,,23581321,,......,求出这个数列的前20项之和。

12358137. 任意十个数,打印出它们中的最大数、最小数。 测试数据:① 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倍,请找出一个这样的四位数。

20

18. 给出一个不多于4位的正整数,要求:① 求出它是几位数 ② 分别打印出每一

位数字 ③ 按逆序打印出各位数字。

19. 在一个程序中计算出给定误差小于0.1,0.01,0.001,0.0001,0.00001 时,下式的值: (?)?(?)?(?)?...?(2433465568772n2n?2?) 2n?12n?1 提示:本题中误差指前 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比,请编程序找出三对赛手的名单。

第五单元 数 组

一、 选择题

1. 以下关于数组的描述正确的是 。

A. 数组的大小是固定的,但可以有不同的类型的数组元素。 B. 数组的大小是可变的,但所有数组元素的类型必须相同。 C. 数组的大小是固定的,但所有数组元素的类型必须相同。 D. 数组的大小是可变的,但可以有不同的类型的数组元素。 2. 在定义int a[10];之后,对a的引用正确的是 。

A. a[10] B. a[6.3] C. a(6) D. a[10-10] 3. 以下能正确定义数组并正确赋初值的语句是 。

A. int n=5,b[n][n]; B. int a[1][2]={{1},{3}}; C. int c[2][]={{1,2},{3,4}} D. int a[3][2]={{1,2},{3,4}}

21

4. 以下不能正确赋值的是 。

A. char s1[10];s1=\?t?,?e?,?s?,?t?} C. char s3[20]= \?t?,?e?,?s?,?t?} 5. 下面程序段运行时输出结果是 。

char s[18]= \printf(\

A. a book! B. a book! C. a bo D. 格式描述不正确,没有确定输出 6. 下面程序段运行时输出结果是 。

char s[12]= \printf(\

A. 12 B. 8 C. 7 D. 6

7. 在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是 。 A. 4 B. 1 C. 2 D. 5

二、 读程序写结果

1. #include

void main() { }

2. #include

void main() {

float b[6]={1.1,2.2,3.3,4.4,5.5,6.6},t; int i; t=b[0];

for(i=0;i<5;i++)

b[i]=b[i+1];

22

int a[8]={1,0,1,0,1,0,1,0},i; for(i=2;i<8;i++)

a[i]+= a[i-1] + a[i-2]; printf(“]”,a[i]); for(i=0;i<8;i++)

b[5]=t;

for(i=0;i<6;i++)

printf(“%6.2f”,b[i]);

} void main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7 && p[i]%2) { k=k+p[i]; i++;} printf(\

}

4. void main()

{ int a[3][3]={1,3,5,7,9,11,13,15,17}; int sum=0,i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) { a[i][j]=i+j; if (i==j)

sum=sum+a[i][j];

}

printf(\ }

5. void main()

{ int a[4][4],i,j,k; for (i=0;i<4;i++) for (j=0;j<4;j++) a[i][j]=i-j; for (i=0;i<4;i++) { for (j=0;j<=i;j++)

printf(\ printf(\ }

23

3. #include

}

6. #include main() { int i,s;

char s1[100],s2[100];

printf(\ printf(\ i=0;

while ((s1[i]==s2[i])&&(s1[i]!='\\0')) i++;

if ((s1[i]=='\\0')&&(s2[i]=='\\0')) s=0; else s=s1[i]-s2[i]; printf(\ } 输入数据 aid

and

7. void main()

{

}

8. #inlcude

#include void main() {

char str[10][80],c[80]; int i;

for(i=0;i<10;i++)

gets(str[i]); strcpy(c,str[0]); for(i=1;i<10;i++)

if(strlen(c)

24

char ch[3][5]={ \printf(\


C语言习题集及答案 1(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:西方货币金融学读后感

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: