c++课后部分习题答案
c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
C语言教材第三章课后部分习题答案

C语言教材第三章课后部分习题答案( 第三版谭浩强)3.6写出以下程序运行的结果。
main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。
因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
解:#include <stdio.h>main(){ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); }运行结果:密码是Glmre3.9求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.53.10写出程序运行的结果。
main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}解:9,11,9,103.12写出下面表达式运算后a的值,设原来a=12。
昆明理工大学C语言程序设计课后习题答案

昆明理工大学C语言程序设计课后习题答案第1章认识C语言(一)、是非题1.程序是指挥计算机进行各种信息处理任务的一组指令序列。
A.对B.错2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。
A.对B.错3.编译型高级语言明显优于解释型高级语言。
A.对B.错4.C语言把高级语言的基本结构和低级语言的实用性紧密结合起来,不仅适合编写应用软件,而且适于编写系统软件。
A.对B.错5.面向对象的程序设计方法明显优于面向过程的程序设计方法。
A.对B.错6.计算机算法要有一个明确的起点和确定的步骤序列。
A.对B.错7.main函数是C程序的入口,由计算机系统负责调用。
A.对B.错8.在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。
A.对B.错9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。
A.对B.错10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。
A.对B.错11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。
A.对B.错12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。
A.对B.错13.符号常量提高了程序的可读性,但降低了程序维护的方便性。
A.对B.错14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。
A.对B.错15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。
A.对B.错16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。
A.对B.错17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不同,甚至能够参与的运算种类也不相同。
A.对B.错18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。
若最高位解释为数据位,则为signed类型;若最高位解释为符号位,则为unsigned类型。
C语言程序设计现代方法第2版课后习题答案

C语⾔程序设计现代⽅法第2版课后习题答案C语⾔程序设计:现代⽅法[美]K. N. King 著课后习题答案C语⾔的经典之作“近10年来*好的⼀部C语⾔著作”讨论了标准C和C标准库的全部特性强调扫⼀扫⽂末在⾥⾯回复答案+C语⾔程序设计:现代⽅法⽴即得到答案软件⼯程和现代编程理念突出⼯业界的**实践、实际经验和编程风格已被包括哈佛⼤学、⿇省理⼯学院、斯坦福⼤学等全球200多所学校采⽤为教材时⾄今⽇,C语⾔仍然是计算机领域的通⽤语⾔之⼀,但今天的C语⾔已经和初的时候⼤不相同了。
本书主要的⼀个⽬的就是通过⼀种“现代⽅法”来介绍C语⾔,书中强调标准C,强调软件⼯程,不再强调“⼿⼯优化”。
这⼀版中紧密结合了C99标准,并与C89标准进⾏对照,补充了C99中的*特性。
本书分为C语⾔的基础特性、C语⾔的⾼级特性、C语⾔标准库和参考资料4个部分。
每章末尾都有⼀个“问与答”⼩节给出⼀系列与该章内容相关的问题及答案,此外还包含适量的习题。
本书是为⼤学本科阶段的C语⾔课程编写的教材,同时也⾮常适合作为其他课程的辅助⽤书。
K. N. King 世界知名的计算机程序设计教育家,现为佐治亚州⽴⼤学数学与计算机科学系副教授。
他拥有耶鲁⼤学计算机科学硕⼠学位,加州⼤学伯克利分校计算机科学博⼠学位,曾任教于佐治亚理⼯学院。
除本书外,他还撰写了⼴受欢迎的著作Modula-2: A Complete Guide 和Java Programming: From the Beginning,并在Dr.Dobb's Journal等权威杂志上发表了许多⽂章。
业余时间,King教授还在多部电影中扮演过⾓⾊。
⽬ 录第1章 C语⾔概述 11.1 C语⾔的历史 11.1.1 起源 11.1.2 标准化 11.1.3 基于C的语⾔ 21.2 C语⾔的优缺点 31.2.1 C语⾔的优点 31.2.2 C语⾔的缺点 31.2.3 ⾼效地使⽤C语⾔ 4问与答 5第2章 C语⾔基本概念 7显⽰全部信息“我完全沉浸在阅读的过程中,我迫切地想⽤这本书作为授课教材。
C++程序设计(第2版)课后习题答案

C++程序设计(第2版)课后习题答案第一章c++基础知识习题1.1判断以下标识符的合法性。
sinbook5arry_nameexample2.1main$1class_cppa3x*ymyname回答:法律:sinbook_uNameMainClass_uuCPPA3非法的:5arryexample2.1$1x*ymyname1.2假定有下列变量:inta=3,b=5,c=0;浮动X=2.5,y=8.2,z=1.4;charch1=?a?,ch2=?5?,ch3=?0?,ch4;查找以下表达式的值以及运算后表达式中涉及的每个变量的值。
x+(int)y%ax=z*b++,b=b*x,b++ch4=ch3-ch2+ch1int(y/z)+(int)y/(int)z!(a>b)&&c&&(x*=y)&&b++ch3||(b+=a*c)||c++z=(a<<2)/ (b>>1)回答:x+(int)y%a值:4.5x=z*b++,b=b*x,b++值为:42,x为7,b为43ch4=ch3-ch2+ch1值为:?\\\\?int(y/z)+(int)y/(int)z值为:13! (a>b)&&C&&(x*=y)&&b++值:0,b是5注:只要有一个false,右边的那一个就不会执行。
CH3 |(B+=a*c)| c++值为:1,c为0注意:只要出现true,就不会在右侧执行。
Z=(a<<2)/(b>>1)值:61.3判断下列哪些是常量,哪些是变量。
\n=10;intm=5;'a'charch='a'intarray[5]={1,2,3,4,5};chars[]=\答:\文字常量constintn=10;常变量intm=5;变量'a'文字常量charch='a'变量intarray[5]={1,2,3,4,5};变量字符[]=\Variable1.4将下列算式或叙述用c++表达式描述。
《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
数据结构(C语言版)(第2版)课后习题答案
数据结构(C语言版)(第2版)课后习题答案数据结构课后习题答案李冬梅目录第第第第第第第第1章绪论 ................................................ ................................................... ............... 1 2章线性表 ................................................ ................................................... ........... 5 3章栈和队列................................................. ................................................... ..... 14 4章串、数组和广义表 ................................................ ......................................... 27 5章树和二叉树 ................................................ ................................................... .. 34 6章图 ................................................ ................................................... ................... 44 7章查找 ................................................ ................................................... ............. 55 8章排序 ................................................ ................................................... . (66)II第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
数据结构C语言版第2版课后习题答案
数据结构(C语言版)(第2版)课后习题答案李冬梅2015.3目录第1章绪论 0第2章线性表 (4)第3章栈和队列 (12)第4章串、数组和广义表 (25)第5章树和二叉树 (32)第6章图 (41)第7章查找 (53)第8章排序 (64)第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
c语言程序设计教程第二版课后习题答案
c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
《C语言程序设计》 课后习题答案 高等教育出版社
《C语言程序设计》课后习题答案高等教育出版社《C语言程序设计》课后习题答案高等教育出版社第一章:C语言概述1. C语言的特点C语言是一种以处理底层任务和系统编程为目标的高级编程语言。
其特点包括语法简洁、执行效率高、可移植性强等。
第二章:C语言基本数据类型1. C语言中的基本数据类型C语言中的基本数据类型包括整型、字符型、浮点型等。
整型可以进一步细分为有符号整型和无符号整型。
第三章:C语言运算符1. C语言中的运算符C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。
这些运算符用于执行各种数学和逻辑操作。
第四章:C语言控制语句1. C语言中的条件语句C语言提供了if语句和switch语句来实现条件判断。
if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。
第五章:C语言函数1. C语言中的函数定义和调用函数是C语言中的基本模块,用于封装可重用的代码。
函数定义包括函数返回类型、函数名、参数列表和函数体等部分。
第六章:C语言数组1. C语言中的数组定义和使用数组是一组相同类型的数据元素的集合。
C语言中可以使用数组来存储和操作大量数据。
第七章:C语言指针1. C语言中的指针概念指针是一种变量,它存储了内存地址。
通过指针,可以直接访问和修改对应内存地址中的数据。
第八章:C语言字符串1. C语言中的字符串操作字符串是由一系列字符组成的数据类型。
C语言通过字符数组来表示和操作字符串。
第九章:C语言结构体1. C语言中的结构体定义和使用结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。
第十章:C语言文件操作1. C语言中的文件读写操作文件操作是一种重要的数据输入和输出方式。
C语言提供了一系列函数来实现文件的读写操作。
总结:通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。
希望本文对读者有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.☆口令验证:#include<iostream>using namespace std;int main(){char n[10];cout<<"请输入口令:"<<endl;cin>>n;for(int i=0;i<3;i++){if(strcmp(n,"welcome")==0){cout<<"口令输入正确!"<<endl;break;}else{if(i<2){cout<<"密码错误,请再输入口令:"<<endl;cin>>n;}elsecout<<"你是非法用户!"<<endl;}}return 0;}2.#include<iostream>using namespace std;int main(){int m[30];double sum=0;double average;int count=-1;cout<<"请输入要统计的正实数,负数表示结束:";do{count++;cin>>m[count]; 边输入边统计}while(m[count]>=0);for(int i=0;i<30;i++){if(m[i]>=0)sum=sum+m[i];}average=sum/count;cout<<"你输入了"<<count<<"个数"<<endl;cout<<"他们的平均值为:"<<average<<endl;return 0;}3.插入数组:#include<iostream>using namespace std;int main(){int m[5]={1,3,5,7,9};int a,j,i;cout<<"插入前的数组为:";for(i=0;i<5;i++)cout<<m[i]<<"\t";cout<<endl;cout<<"请输入要插入的数:";cin>>a;for(i=0;i<5;i++){if((a>m[i])&&(a<m[i+1])){for(j=4;j>=i;j--)m[j+1]=m[j];m[i+1]=a;}if(a<m[0]){for(j=4;j>=0;j--)m[j+1]=m[j];m[0]=a;}if(a>m[4]){m[5]=a;}}cout<<"插入a后的数组为:";for(i=0;i<6;i++)cout<<m[i]<<"\t";return 0;}4.删除数组#include<iostream>using namespace std;int main(){int m[5]={1,3,5,7,9};int a,j,i;cout<<"插入前的数组为:";for(i=0;i<5;i++)cout<<m[i]<<"\t";cout<<endl;cout<<"请输入要删除的数:";cin>>a;for(i=0;i<5;i++){if(m[i]==a){for(j=i;j<5;j++)m[j]=m[j+1];}}if(i>=5){cout<<"查无此数!"<<endl;cout<<"删除a后的数组为:";for(i=0;i<5;i++)cout<<m[i]<<"\t";}else{cout<<"删除a后的数组为:";for(i=0;i<4;i++)cout<<m[i]<<"\t";}return 0;}5.字符串复制:1.#include<iostream> #include<cstring> #include<cstring>using namespace std;int main(){int m=0;int i=0;char ch[61]="we are the best!";char a[61];cout<<"复制后字符串为:";while(ch[i]!='\0') 不可忘{a[i]=ch[i];i++;}a[i]='\0';cout<<a;return 0;}2.#include<iostream>#include<cstring>using namespace std;int main(){int m=0;char ch[61]="we are the best!";char a[61];cout<<"复制后字符串为:";for(int i=0;i<strlen(ch);i++){a[i]=ch[i];}return 0;}6.进制转化:#include<iostream>#include<cmath>using namespace std;int main(){int a;int b[10];cout<<"请输入一个整数:";cin>>a;int i=0;while(a!=0){b[i]=a%2;a=a/2;i++;}cout<<"转化为二进制输出为:";for(i--;i>=0;i--)cout<<b[i];cout<<endl;return 0;}6.打印金字塔#include<iostream>using namespace std;void draw(int n){int i,j;for(i=0;i<n;i++){for(j=0;j<2*n-1;j++){if((j<n+i)&&(j>=n-i-1)){cout<<char('A'+i+j-5);}elsecout<<' ';}}}int main(){int n;cout<<"请输入n:";cin>>n;draw(n);return 0;}7.计算多项式值:#include<iostream>using namespace std;int power(int i,int k){int j;int result=1;for(j=1;j<=k;j++){result=result*i;return result;}int sumfac(int k,int i){int j;int result=1;for(j=1;j<=i;j++)result=result*k;return result;}int sum(int k,int n){int i;int sum=0;for(i=1;i<=n;i++)sum=sum+power(i,k)+sumfac(k,i);return sum;}int main(){int k,n;cout<<"请输入k,n的值:";cin>>k>>n;cout<<"多项式结果:"<<sum(k,n)<<endl;return 0;}8.置零:#include<iostream>using namespace std;int main(){int m[9]={10,20,30,40,50,60,70,80,90};int i,j;cout<<"请输入n:";cin>>i;int *ptr=m;for(j=0;j<i;j++)m[j]=0;cout<<"置零后的数组为:";for(j=0;j<9;j++){cout<<*(ptr+j)<<"\t";}return 0;}9.字符串反转:#include<iostream>#include<cstring>using namespace std;void mystrrev(char*string){int i;char n[20];int len=strlen(string);for(i=0;i<=len;i++)n[len-i]=*(string+i);for(i=0;i<=len;i++)cout<<n[i];}int main(){char m[20];cout<<"请输入待反转的字符串:";cin>>m;char*ptr=m;cout<<"反转后的字符串为:";mystrrev(m);return 0;}10.比较字符串:#include<iostream>#include<cstring>using namespace std;int mystrnicmp(char*str1,char*str2,int n){int i,j;for(i=0;i<n;i++){if(strcmp(str1,str2)<0)j=-1;if(strcmp(str1,str2)==0)j=0;if(strcmp(str1,str2)>0)j=1;}return j;}int main(){char m[]="competition";char a[]="cooperation";int n;char*str1=m;char*str2=a;cout<<"请输入n:";cin>>n;cout<<"比较结果为:"<<mystrnicmp(str1,str2,n)<<endl;return 0;}☆☆☆11.去处空格:#include<iostream>#include<cstring>using namespace std;char*mytrim(char*string){char*p=string;int len=strlen(string);char*ptr=string+len-1;int i=0;while(*ptr==' '){*ptr='\0';ptr--;}while(*ptr!=*p)ptr--;return ptr;}int main(){char str[]="who is buddha? ";cout<<"截取前字符串为:["<<str<<']'<<endl;cout<<"截取后的字符串为:["<<mytrim(str)<<']'<<endl;return 0;}7.查找字符串:#include<iostream>using namespace std;char*mystrchr(char*string,char c){int i;int len=strlen(string);for(i=0;i<len;i++){if(*(string+i)==c)return string+i;}if(i>=len)return NULL;}int main(){char m[]="hello world!";char*string=m;char c;cout<<"请输入要查找的字符串:";cin>>c;cout<<"该字符位置为:"<<mystrchr(string,c)<<endl;return 0;}13.电话本:#include<iostream>#include<cstring>using namespace std;struct P erson{char name[10];int number;};int main(){int i;const int count=5;Person person[count];char name;int number;cout<<"请输入5个人的信息:"<<endl;for(i=0;i<5;i++){cin>>person[i].name;cin>>person[i].number;}Person tmp;for(i=0;i<5;i++){for(int j=4;j>i;j--) /必须有/{if(strcmp(person[j].name,person[j-1].name)<0){tmp=person[j];person[j]=person[j-1]; /不可加name,注意[]/person[j-1]=tmp;}}}cout<<"按字典顺序排序:"<<endl;for(i=0;i<5;i++){cout<<person[i].name<<"\t"<<person[i].number<<endl;}char m[10];cout<<"请输入待查找的名字:";cin>>m;for(i=0;i<5;i++){if(strcmp(person[i].name,m)==0){cout<<person[i].name<<"\t"<<person[i].number<<endl;break;elsecout<<"查无此人!"<<endl;}return 0;}14.查找数组最值:#include<iostream>using namespace std;void result(int a[],int i,int&max_r,int&min_r){int j;max_r=a[0];min_r=a[0]; /不可缺少,否则无法正确输出最小值for(j=0;j<i;j++){if(max_r<a[j]) 注意引用max_r=a[j];}for(j=0;j<i;j++){if(min_r>a[j])min_r=a[j];}}int main(){int a[10];int max,min;cout<<"请输入一组数:";for(int i=0;i<5;i++) 输入一组数cin>>a[i];result(a,5,max,min);cout<<"该组元素最大值和最小值为:";cout<<max<<" "<<min<<endl;return 0;}15.构造猫类:#include<iostream>using namespace std;class cat{char Name[20];char Sex[20];int Weight;public:cat(char*name,char*sex,int age,int weight){strcpy(Name,name);strcpy(Sex,sex);Age=age;Weight=weight;cout<<"构造函数被调用!"<<endl; 易疏漏}~cat(){cout<<"析构函数被调用!"<<endl;}void display(){cout<<Name<<"\t"<<Sex<<"\t"<<Age<<"\t"<<Weight<<endl; 用大写字母}};int main(){cout<<"第一只猫:"<<endl;cat cat1("mimi","female",5,10);cat1.display(); 调用函数时注意cout<<"第二只猫:"<<endl;cat cat2("huahua","male",6,14);cat2.display();return 0;}16.地址类:#include<iostream>using namespace std;class address{char Name[20];char Street[20];char City[20];int Postcode;public:void set(char*name1,char*street,char*city,int postcode){strcpy(Name,name1);strcpy(Street,street);strcpy(City,city);Postcode=postcode;}void changename(char*name2){strcpy(Name,name2);}void display(){cout<<Name<<'\t'<<Street<<'\t'<<City<<'\t'<<Postcode<<endl;}};int main(){char name1[20],street[20],city[20],name2[20];int postcode;address address1;cout<<"please input the first address:";cin>>name1>>street>>city>>postcode;address1.set(name1,street,city,postcode); 不可少address1.display();cout<<"please input the changename:";cin>>name2;address1.changename(name2);address1.display();return 0;}17.圆类:#include<iostream>using namespace std;class point{int x;int y;public:void set(int a,int b){x=a; set不可忘y=b;}int getx(){return x;}int gety(){return y;}void display(){cout<<'['<<x<<","<<y<<']'<<endl;}};class circle{point center;double radius;public:void setcenter(point p){ 必须这样输,不可center=p; void setcenter(int a,int b) } x=a;y=b;void setradius(double r){radius=r;}double getradius(){return radius;}point getcenter(){ set后再get;get目的是取返回值return center;}double area(){return 3.14159*radius*radius;}double circumference(){return 2*3.14159*radius;}void display(){cout<<"center=";center.display();cout<<";radius="<<radius<<endl;}};int main(){int a,b,r;point center;circle c1;cout<<"请输入圆心点:";cin>>a>>b;center.set(a,b); 先调用point类cout<<"请输入半径:";cin>>r;c1.setcenter(center); 再调用circle类c1.setradius(r);c1.display();cout<<"该圆的面积为:"<<c1.area()<<endl;cout<<"该圆的周长为:"<<c1.circumference()<<endl;return 0;}18.汽车类:#include<iostream>using namespace std;class vehicle{public:int Speed; 必须全部设置为public,否则派生类无法调用double Weight;void set(int speed,double weight){Speed=speed;Weight=weight;}void display(){cout<<"最大时速:"<<Speed<<"\t"<<"车体重量:"<<Weight<<endl;}};class truck:public vehicle …:‟注意{double Load;double weight;public:void settru(int speed,double weight,double load){set(speed,weight);Load=load;}double ratio(){return Load/(Load+Weight);}void displaytru(){cout<<"最大载重:"<<Load;display();}};int main(){int speed;double weight,load;cout<<"请输入最高时速,车重,载重:";cin>>speed>>weight>>load;truck tru1;tru1.settru(speed,weight,load);tru1.displaytru();cout<<"载重效率为:"<<tru1.ratio()<<endl;return 0;}当机器提示出现无法访问私有函数时,可以将私有函数公有化.19.数据总分和平均分:#include<iostream>using namespace std;class total_ave{int array[5],total;double ave;public:void get_array(){total=0;cout<<"请输入5个数据:"<<endl;for(int i=0;i<5;i++){cin>>array[i];total=total+array[i];}ave=total/5;}void display(){cout<<"总分为:"<<total<<endl;cout<<"平均值为:"<<ave<<endl;}};int main(){total_ave array;total_ave*p;p=&array;p->get_array(); 必须使用指针,注意“->”p->display();return 0;}20.时间类:#include<iostream>#include<cmath>using namespace std;class time{int hour,minute,second;public:time(int h=0,int m=0,int s=0);void settime(int h=0,int m=0,int s=0);void display();int seccalc();time operator+(time&); 注意格式time operator-(time&);};time::time(int h,int m,int s){settime(h,m,s);}void time::settime(int hh,int mm,int ss){hour=(hh>23||hh<0)?0:hh;minute=(mm>60||mm<0)?0:mm;second=(ss>60||ss<0)?0:ss;}void time::display(){cout<<((hour<10)?"0":"")<<hour<<":"<<((minute<10)?"0":"")<<minute<<":"<<((second<10 )?"0":"")<<second<<endl; 注意表示方法,括号不可省,hour,second,minute不可省}int time::seccalc(){return hour*3600+minute*60+second; 为计算时间差,和准备}time time::operator+(time&t) 注意格式,不要输错operator {time tmp; 注意设置tmp;int ss;ss=seccalc()+t.seccalc();tmp.hour=ss/3600%24;tmp.minute=ss%3600/60;tmp.second=ss%3600%60;注意小时,分钟,秒钟的表示return tmp; 注意返回值}time time::operator-(time&t){time tmp;int ss;ss=abs(seccalc()-t.seccalc()); 注意设置绝对值tmp.hour=ss/3600%24;tmp.minute=ss%3600/60;tmp.second=ss%3600%60;return tmp;}int main(){time t1(1,13,25),t2,t3;t2.settime(23,18,45);cout<<"t1:";t1.display();cout<<"t2:";t2.display();t3=t1-t2;cout<<"t1-t2:";t3.display();t3=t1+t2;cout<<"t1+t2:";t3.display();return 0;}**21.文件的统计:#include<iostream>#include<fstream>using namespace std;int main(){ofstream outfile("a1.txt");if(!outfile){cout<<"文件打开失败!"<<endl;return 1;}outfile<<"I like visual c++!"<<endl;outfile.close();ifstream infile("a1.txt");if(!infile){cout<<"文件打开失败!"<<endl;return 0;}char ch;int count=0;int sum=1;while(!infile.eof()){infile.get(ch);count++;if(ch==' ')sum++;}cout<<"文件总长度为:"<<count<<endl; 为什么总长度多2 cout<<"单次个数为:"<<sum<<endl;infile.close();return 0;}22.不同域宽:#include<iostream>#include<iomanip>using namespace std;int main(){int a=12345;double b=1.2345;cout<<"按不同的精度打印:"<<endl;for(int i=0;i<11;i++){cout<<setw(i)<<a<<endl;cout<<setw(i)<<b<<endl;}return 0;}23.表示字符:#include<iostream>using namespace std;int main(){for(int i=33;i<127;i++){cout<<"十进制输出为:"<<dec<<i<<endl;cout<<"八进制输出为:"<<oct<<i<<endl;cout<<"十六进制输出为:"<<hex<<i<<endl;cout<<"字符输出为:"<<char(i)<<endl;}return 0;}24.进制转化:#include<iostream>#include<fstream>using namespace std;int main(){ofstream outfile("abc.txt");int a;cout<<"请输入一个十进制数:";cin>>a;if(!outfile){cout<<"文件打开失败!"<<endl;return 1;}outfile<<"十六进制为:"<<hex<<a<<"\t";outfile<<"八进制为:"<<oct<<a<<endl;outfile.close();return 0;}25.统计非负数:#include<iostream>#include<fstream>using namespace std;int main(){ofstream outfile("sum.txt");int m[10];int sum=0;int i;cout<<"请输入十个数:"<<endl;if(!outfile){cout<<"文件打开失败!"<<endl;return 1;}for(i=0;i<10;i++){cin>>m[i];}for(i=0;i<10;i++){if(m[i]>=0){cout<<"非负数为:"<<m[i]<<" ";outfile<<"非负数为:"<<m[i]<<" ";sum=sum+m[i];}}cout<<"非负数之和为:"<<sum<<endl;outfile<<"非负数之和为:"<<sum<<endl;outfile.close();return 0;}23.打印杨辉三角:#include<iostream>#include<fstream>using namespace std;int main(){ofstream outfile("report.txt");if(!outfile){cout<<"文件打开失败!"<<endl;return 1;}int m[20][20];int i,j,n;cout<<"please input the integer:"<<endl;for(i=0;i<10;i++){m[i][0]=1;m[i][i]=1;}for(i=2;i<10;i++){for(j=1;j<i;j++)m[i][j]=m[i-1][j-1]+m[i-1][j];}for(i=0;i<10;i++){for(j=0;j<=i;j++){cout<<m[i][j]<<"\t";outfile<<m[i][j]<<"\t";}cout<<endl;outfile<<endl;}outfile.close();return 0;}27分解输出:#include<iostream>#include<cmath>using namespace std;int main(){int m,t,a;cout<<"请输入一个数:";cin>>m;for(t=0;t<5;t++){if(m/pow(1000,t)==0)break;}a=t-3;int n[20];int i=0;int *ptr=n;while(n[i]!=0){n[i]=m%1000;m=m/1000;i++;if(i>a)break;}for(int j=i-1;j>=0;j--){cout<<*(ptr+j)<<",";}return 0;}如出现数据比较高时用字符数组输出。