C语言程序设计与应用课后题答案 人民邮电出版社

上传人:pu****.1 文档编号:477578948 上传时间:2023-03-20 格式:DOC 页数:24 大小:99.50KB
返回 下载 相关 举报
C语言程序设计与应用课后题答案 人民邮电出版社_第1页
第1页 / 共24页
C语言程序设计与应用课后题答案 人民邮电出版社_第2页
第2页 / 共24页
C语言程序设计与应用课后题答案 人民邮电出版社_第3页
第3页 / 共24页
C语言程序设计与应用课后题答案 人民邮电出版社_第4页
第4页 / 共24页
C语言程序设计与应用课后题答案 人民邮电出版社_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言程序设计与应用课后题答案 人民邮电出版社》由会员分享,可在线阅读,更多相关《C语言程序设计与应用课后题答案 人民邮电出版社(24页珍藏版)》请在金锄头文库上搜索。

1、第二章1. (1)1 (2)10 20 0 (3)0 90 80 70 60 50 40 30 20 1 (4)4 55 99 (5)1 (6)67 G2. (1)C (2)B (3)A (4)C (5)B (6)C第三章(1) 没有输出结果,无限循环(2) 8 5 2(3) x0 xamin3.2 (1) D(2) D(3) C(4) B3.3(1)#include main(void) int i=1; while(i101) printf(i%5)?():(%dn),i);i+; (2)#include main(void) int i,j; for(i=0;i7;i+) if (i0;

2、j-) printf( ); for(j=0;j0;j-) printf( ); for(j=13-2*i;j0;j-) printf( *); printf(n);或者#include main(void) int i,j; for(i=0;i0;j-) printf( ); for(j=0;j0;i-) for(j=0;j(3-i)+1;j+) printf( ); for(j=0;j(2*i-1);j+) printf( *); printf(n); (3)#include main(void) int i,j,k; for(i=1;i9;i+) for(j=0;j9;j+) for(k

3、=0;k9;k+) if(i*i*i+j*j*j+k*k*k)=(i*100+j*10+k) printf(%d%d%dt,i,j,k); 或者main(void)int i,j,k,n;printf(water flowernumber is:);for(n=100;n1000;n+)i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%-5d,n);printf(n); (4)#include stdio.hint main ()int i_rows;/*

4、打印字符的行数*/char c_str;/*每次打印的字符*/for(i_rows=0;i_rows(G-7);c_str-)printf(%c,c_str);printf(n); (5)1.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.程序源代码:#include main(void)int n,i;printf(npl

5、ease input a number:n);scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+)while(n!=i)if(n%i=0)printf(%d*,i);n=n/i;elsebreak;printf(%dn,n);3.4(1)scanf函数执行时以回车符作为输入的结束标志,故回车字符已经进入输入缓冲区。当循环在此执行的时候,从输入缓冲区中读入是前次输入的回车符号,而不是当前键盘的输入符号。(2)这是由逻辑表达式i3& iFlag=(87569 != iPwd) 的运算顺序决定的,从程序的执行看,当第三次执行输入操作时,应该是循环的第四次执行,即此时i

6、=4,故i3的条件为假,由于“与”运算符的性质,这时整个表达式i3& iFlag=(87569 != iPwd) 的值为假,因此iFlag=(87569 != iPwd)表达式没有被执行到,故iFlag的值为1,所以输出结果为“over the times and the password you input is error!”。第四章4.1 选择题。1、D 2、C 3、B 4、A 5、A4.2 阅读下面的程序,写出程序运行结果。1、 32、 x=933、 274、 715255、 s=204.3 编程题。(1)亲密数)若正整数A的所有因子(包括1但不包括自身)之和为B,而B的因子(包括1但

7、不包括自身)之和为A,则称A和B为一对亲密数。编写一个函数求n以内的所有亲密数。#include void funfind(int p);void main()int n;printf(请输入n(100n1000):);scanf(%d,&n);funfind(n);void funfind(int p)int a,i,b,n;for(a=1;ap;a+)for(i=1,b=0;ia;i+)/计算a的因子之和bif(!(a%i)b+=i;for(i=1,n=0;ib;i+)/计算b的因子之和nif(!(b%i)n+=i;if(n=a&ab) /若n=a,则a,b是一对亲密数printf(%6d

8、-%-6d,a,b);(2)(回文素数)所谓一个回文素数是指对一个整数n从左向右和从右向左读其结果值相同且是素数。求不超过1000的回文素数。要求用函数调用实现。#include int isprime(int n);void main()int i,j,k,t,s;printf(不超过1000的回文素数有:n);for(i=0;i10;i+)for(j=0;j10;j+)for(k=0;k10&s=t&isprime(s)printf(%dt,s);int isprime(int n)/判断n是否为素数int i;for(i=2;i(n-1)/2;i+)if(n%i=0)return (0)

9、;return(1);(3)(哥德巴赫猜想)验证:1000以内的正偶数都能够分解为两个素数之和(即验证哥德巴赫猜想对1000以内的正偶数都成立)。#include #include #define N 1000int isprime(int n);void main()int i,n;for(i=4;iN;i=i+2)for(n=2;ni;n+)if(isprime(n)&isprime(i-n)printf(%d=%d+%dt,i,n,i-n);break;int isprime(int n)/判断n是否为素数int i;if(n=1) return (0);if(n=2)return (1

10、);if(n%2=0)return (0);for(i=3;i(int)(sqrt(n)+1);i=i+2)if(n%i=0)return (0);return(1);(4)(抓交通肇事犯)一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索定义一个函数求出车号。#include void f(void)int i,j,k,c;for(i=1;i=9;i+) /*i:车号前二位的取值*/for(j=0;j=9

11、;j+) /*j:车号后二位的取值*/if(i!=j) /*判断二位数字是否相异*/k=i*1000+i*100+j*10+j; /*计算出可能的整数*/for(c=31;c*ck;c+); /*判断该数是否为另一整数的平方*/if(c*c=k) printf(Lorry-No. is %d.n,k); /*若是,打印结果*/void main()f();(5)(海伦公式)编写程序计算下列公式中的V的值,用带参数的宏来编程。area= 其中s=, a、b、c为三角形的三边。#include #include #define s (a+b+c)/2#define area(s) s*(s-a)*(s-b)*(s-c)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号