《C++程序设计教程 第2版》教学素材习题08答案
《C++程序设计》(第2版)课后习题答案

第2部分习题解答 (2)第1章面向对象程序设计概述 (2)第2章C++基础知识 (12)第3章类和对象 (14)第4章继承与组合 (18)第5章多态性与虚函数 (21)第6章面向对象的妥协 (25)第7章运算符重载 (29)第8章模板 (33)第9章输入/输出流 (36)第10章异常处理 (38)I第2部分习题解答第1章面向对象程序设计概述一、简答题简述面向过程程序设计和面向对象程序设计的编程思想,体会面向对象程序设计的优点。
【答案要点】面向过程程序设计的编程思想:功能分解、逐步求精、模块化、结构化。
当要设计一个目标系统时,首先从整体上概括出整个系统需要实现的功能,然后对系统的每项功能进行逐层分解,直到每项子功能都足够简单,不需要再分解为止。
具体实现系统时,每项子功能对应一个模块,模块间尽量相对独立,通过模块间的调用关系或全局变量而有机地联系起来。
面向对象程序设计的编程思想:(1)客观世界中的事物都是对象(object),对象之间存在一定的关系。
(2)用对象的属性(attribute)描述事物的静态特征,用对象的操作(operation)描述事物的行为(动态特征)。
(3)对象的属性和操作结合为一体,形成一个相对独立、不可分的实体。
对象对外屏蔽其内部细节,只留下少量接口,以便与外界联系。
(4)通过抽象对对象进行分类,把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是其所属类的一个实例。
(5)复杂的对象可以用简单的对象作为其构成部分。
(6)通过在不同程度上运用抽象的原则,可以得到一般类和特殊类。
特殊类继承一般类的属性与操作,从而简化系统的构造过程。
(7)对象之间通过传递消息进行通信,以实现对象之间的动态联系。
(8)通过关联表达类之间的静态关系。
与传统的面向过程程序设计相比,面向对象程序设计的优点如下:(1)从认识论的角度看,面向对象程序设计改变了软件开发的方式。
软件开发人员能够利用人类认识事物所采用的一般思维方式来进行软件开发。
C语言程序设计:现代方法(第2版)第二章全部习题答案

C语⾔程序设计:现代⽅法(第2版)第⼆章全部习题答案前⾔本⼈在通过《C语⾔程序设计:现代⽅法(第2版)》⾃学C语⾔时,发现国内并没有该书完整的课后习题答案,所以就想把⾃⼰在学习过程中所做出的答案分享出来,以供⼤家参考。
这些答案是本⼈⾃⼰解答,并参考GitHub上相关的分享和相关资料。
因为并没有权威的答案来源,所以可能会存在错误的地⽅,如有错误还希望⼤家能够帮助指出。
第⼆章练习题和编程题答案练习题2.2节1.建⽴并运⾏由Kernighan和Ritchie编写的著名的“hello world”程序:1 #include <stdio.h>2 int main(void)3 {4 printf("hello world!\n");5 }在编译时是否有警告信息?如果有,需要如何改进呢?答:如果使⽤部分⽐较⽼的编译器如turbo C等,会⽣成警告信息,指出main函数并没有返回任何值。
这是因为在声明main函数时使⽤了int,表明函数会返回⼀个整型数值,这个数值为任意(因为main后⾯是void)。
但是上⾯的代码中并没有return语句,所以并不会返回任何值。
加⼊return语句后便可消除警告。
1 /* 加⼊return语句后的版本 */2 #include <stdio.h>3 int main(void)4 {5 printf("Hello world!\n");6 return 0;7 }如果是使⽤IDE中的编译器,且IDE版本⽐较新(如本⼈⽬前使⽤的Code:Blocks)即使没有return语句,编译器也不会⽣成警告信息。
2.思考下⾯的程序:1 #include <stdio.h>2int main(void)3 {4 printf("Parkinson's Law:\nWork expands so as to ");5 printf("fill the time\n");6 printf("available for its completion.\n");7return0;8 }(a)请指出程序中的指令和语句。
C语言程序设计实例教程第2版习题答案作者李红第4章选择结构程序设计

4.3 课后习题4.3.1 项目练习一.练习目的1.进一步巩固选择结构程序设计语句的使用2.进一步巩固break语句的使用方法3.提高编程和调试程序的能力二.练习内容1.接受用户输入的三种商品的价格。
如果购买的三种商品中至少有一种商品的价格大于50 或者三种商品的总额大于100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。
#include "stdio.h"main(){float a,b,c,price;scanf("%f%f%f",&a,&b,&c);price=a+b+c;if((a>50)||(b>50)||(c>50)||(price>100))price=price*0.85;printf("%.2f",price);getch();}2.判断所输入的一个年份是否为闰年。
#include "stdio.h"main(){int year,flag=0;scanf("%d",&year);if((year%4==0)&&(year%100!=0)||(year%400==0))flag=1;if(flag==1)printf("%d年是闰年!",year);elseprintf("%d年不是闰年!",year);getch();}3.利用if结构编写程序,输入x值,求解以下分段函数的y值。
当x<1时,y=x+1;当1≤x<10,y=2x+5;当x≥10时,y=x2+8。
#include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1) y=x+1;else if(x>=10) y=x*x+8;else y=2*x+5;printf("%d",y);getch();}4.编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。
C#程序设计及应用教程(第2版)课后答案__人民邮电出版社(马骏、邓居英)

} } }
9、错误和异常有什么区别,为什么要进行异常处理,用于异常处理的语句有哪些? 【解答】
错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。 当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的 代码),以帮助程序恢复流程。换句话说,错误是一个事件,而异常是该事件创建的对象。
Console.WriteLine("你输入的字符个数不是 5 个,请重新输入。"); } else {
ok = true; for (int i = 0; i < 5; i++) {
char c = str[i]; if (c < 'A' || c > 'Z') {
Console.WriteLine("第{0}个字符“{1}”不是大写字母,请重新 输入。", i + 1, c);
12.34--1,234.00%good 0--good 456--00456good 5、编写一个控制台应用程序,输出 1 到 5 的平方值,要求:
1) 用 for 语句实现。 2) 用 while 语句实现。 3) 用 do-while 语句实现。 【解答】
using System; using System.Collections.Generic; using System.Text; namespace outputSquareValue {
【解答】
using System; using System.Collections.Generic; using System.Text; namespace testOutput {
C语言程序设计教程第2版 课后答案_人民邮电出版社_宗大华_陈吉人_百度

本文由airalex1982贡献 pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
《C 语言程序设计教程(第 2 版) 》习题解答 第 1 章习题解答 一、填空 1.机器语言即是指计算机本身自带的 指令系统 。
完成这个翻译工作 2. 将汇编语言编写的程序翻译成机器语言程序的过程称为 汇编 , 的程序称为 汇编程序 。
3.在C语言程序中,写“\110”和写“\x68” ,分别代表字母 H 和字母 h 。
4.在用New命令创建新的C源程序时,文件名默认为是 NOMANE.C 。
5.C语言程序都是从名为 main 的函数它开始执行的。
二、选择 1.下面给出的命令中, (C)不能保存源程序对应的“.OBJ”文件。
A.Make EXE File B.Run C.Save D.Compile to OBJ 分析:Compile to OBJ 是文件的编译命令;Make EXE File 是一次完成编译和连接的命 令;在没有编译、连接的前提下,直接使用 Run 命令,就会先完成编译,再进行连接,最 后运行。
所以,这三个命令都会保存由源程序产生出的“.OBJ”文件。
而 Save 命令用于编 辑完源程序后,对源程序的保存,即保存“.C”文件。
因此,本题的答案应该是选择 C。
2.下面给出的编辑命令中, (B)是用来定义块首标记的。
A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 3.下面给出的编辑命令中, (A)是用来定义块尾标记的。
A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 4.以下的(C)是不正确的转义字符。
A.’\\’ B.’\’’ C.’\81’ D.’\0’ 5.转义字符\x65 对应的字母是(C) 。
A.A B.a C.e D.E 三、是非判断(√,×) 1.Turbo C 中,只有命令 New 才能创建新的源程序文件。
C#程序设计教程(第2版)课后习题 完全版

C#复习较完全版第一章.Net与C#一、选择题1.CLR是一种运行环境2.C#语言源代码文件的后缀名为CS3.构建桌面应用程序需要.NET提供的类库是Windows Form4.与C++等语言相比,C#中增加的一个类成员访问修饰符是internal5.C#中导入某一命名空间的关键字using6.C#中程序的入口方法名是Main……二、简答题1.简述C#、CLR和.NET之间的关系答:.NET是一个运行时平台,CLR是.NET框架的底层。
C#是.NET的核心开发语言2.简述C#语言的主要特性答:简单性(无指针);现代性(异常处理跨语言);面向对象(封装,继承和多态);类型安全性;版本处理技术;兼容性;灵活性3.什么是.NET框架?简述.NET框架的结构P3 图1-14.简述.NET应用程序的编译过程。
答:各种.NET应用程序,通过被编译成中间语言(IL),经过JIT(Just In Time)编译器再次将IL编译形成机器码。
5.常用的命令按钮、标签、文本框等控件在哪个工具箱中?答:“所有Windows窗体”。
6.C#可以开发哪些类型的应用程序?……7.简述控制台方式和Windows应用程序方式调试程序的优缺点,各自适合的场合答:一般来说控制台方式用于在dos状态下打印输出程序结果的,优点是程序执行效率较高,而windows应用程序一般用于开发窗体应用程序或者系统的,优点是功能比较强大,代码执行效率相对来说较慢。
第二章 C#编程基础一、选择题1.C#中的值类型包括三种,它们是简单类型、枚举类型、结构类型。
(C)2.枚举类型是一组命名的常量集合,所有整型都可以作为枚举类型的基本类型,如果类型省略,则约定为int 。
(C)3.C#的引用类型包括类、接口、数组、委托、object和string。
其中object(是所有值类型和引用类型的)根类。
(D)4.浮点常量有三种格式,0.618034,0.618034D,6.1834E-1浮点常数都属于double类型。
c语言程序设计教程第二版课后答案
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(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)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
《C语言程序设计案例教程》(第2版)习题答案 北邮
模块1习题答案一、选择题1.D2.A3.B4.C5.C6.C二、模仿编程1.参考程序:#inc1ude"stdio.h"main()(f1oatarea,r=2.5,pi=3.1415926;area=pi*r*r;Printf("area=%f∖n",area);)2.略。
模块2习题答案一、选择题1.B2.A3.D4.A5.D6.A7.B8.A9.C10.D二、编程题1.参考程序:#inc1ude"stdio.h"main()(f1oatarea,s z r=2.5,pi=3.1415926;area=pi*r*r;s=2*pi*r;printf("area=%Λns=%f∖n",area,s);)2.参考程序:#inc1ude<std1ib.h>#inc1ude<stdio.h>main()(inta;intb;intc,d;a=1500z b=350;c=a∕b;〃商数d=a%b;〃余数Printf("商数为:%d∖n",c);Printf("余数为:%d∖n",d);return0;)3.参考程序:#inc1ude<stdio.h>#inc1ude<math.h>main()(f1oata,b z x,½z;a=2;b=3;x=3.5;y=2.6;z=(a+b)∕2+sqrt(a)-(y-x);printf("%f",z);)4.略。
模块3习题答案一、选择题1.A2.C3.B4.D5.A6.C7.B8.D9.B10.D二、编程题1参考程序:#inc1ude<stdio.h>intmain()(inthours;f1oatwage;f1oatsa1ary;SCanf("%d%f",&hours,&wage);sa1ary=hours*wage*(1-0.1);printf("thesa1aryshou1dbe%f∖n",sa1ary);)2.参考程序:#inc1ude<stdio.h>intmain()(f1oatf,c;Primf("输入华氏温度:∖n");scanf('"%f"Λf);c=5*(f-32)∕9;Printf("对应的摄氏温度是:%5.2f∖n"z c);)3.参考程序:#inc1ude<stdio.h>#inc1ude<std1ib.h>intmain()intnum,a,b z c;〃输入三位数Printf("请输入一个三位整数:\n”);SCanf("%d",&num);〃输出各位数a=num∕100;b=(num-a*100)∕10;c=(num-a*100-b*10);Printf("千位:%d,十位:%d,个位:%d∖n",a,b,c);return0;)模块4习题答案一、选择题1.B2.B3.D4.C5.A6.C7.C8.C9.A10.A二、编程题1参考程序:#inc1ude<stdio.h>intmain()(charc;c=getchar();〃读入一个字符,存储在c中。
《C++程序设计教程(第2版)》课后习题
第1章 C++语言简介1. 修改例1-1的Hello World!程序,使其能够在计算机屏幕上显示:I am a student, and I like programming!2. 修改例1-3的加法计算器程序,编写一个乘法计算器程序。
3. 修改例1-4的生日卡程序,使其能够输入和显示日期。
4. 参考例1-5,使用梯形法计算下式定积分的值。
⎰-+11)(sin dx e x x其中积分区域等分数可取为200,并将计算结果和手算结果相比较.提示:e x 用标准数学函数库cmath 中的库函数exp (x )表示。
5. 仿照例1-6,编写一个计算矩形面积的程序。
第2章 基本数据类型1. 为例2-2添加数据检验部分。
给出三边长,检验其是否能构成一个三角形的方法是检查是否任意两边和均大于第三边。
如果检验不合格,输出信息“Error Data!"2. 输入两个角度值x 、y,计算如下式子的值。
|)cos(||)||sin(|y x y x ++3. 编写一个程序,要求完成以下要求:1)提示用户输入任意的3个小数; 2)显示这三个小数; 3)将这三个小数相加,并显示其结果; 4) 将结果按四舍五入方法转换成整数并显示。
4. 从键盘输入任意三个整数,然后输出这三个数并计算其平均值。
5. 编写一个程序,将字符串“Love ”译成密码,译码方法采用替换加密法,其加密规则是:将原来的字母用字母表中其后面的第3个字母的来替换,如字母c 就用f 来替换,字母y 用b 来替换。
提示:分别用4个字符变量来存储'L'、'o'、'v'和'e ’,利用ASCII 表中字母的排列关系,按照译码方法对各个变量进行运算后输出即可.第3章 控制结构1. 编写计算阶乘 n!的程序。
2. 计算1!+2!+3!+4!+。
...。
+10!,即∑=101!i i3. 编写程序求斐波那契数列的第n 项和前n 项之和。
第5章-C语言程序设计(第2版)教材习题答案
【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。
2011年10月第二版。
ISBN:978-7-302-26972-4。
售价:35元。
【答案版本】本习题答案为2012年2月修订版本。
一、选择题1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。
A. while循环执行10次B. 循环是无限循环C. 循环体语句执行一次D. 循环体语句一次也不执行2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。
A. 运行程序段后输出1B. 程序段执行无限次C. 运行程序段后输出0D. 程序段中的控制表达式是非法的3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。
A. int a=1,b=2; while(b--);B. int a=1,b=2; do a++; while(a==b);C. int a=1,b=2; while(a=3);D. int a=1,b=2; do b-- while(b==0);4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。
do{ printf(“%d\n”,i--); } while(i!=0);A. 0B. 1C. 5D. 无限5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。
A. 0B. 5C. 10D. 无限6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。
A. break语句用于循环体内,它将结束该循环B. break语句用于开关语句,它结束该开关语句C. break语句用于if语句的内嵌语句内,它结束该if语句D. break语句在一个循环体内可使用多次7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题8答案1.参考答案#include <iostream.h>#include <iomanip.h>#include <string.h>#define N 4struct student{char num[10];char name[20];int sc;};void main(){void Input(student studs[],int n);void Output(student studs[],int n);int Max(student studs[],int n);int i;student studs[N];Input(studs,N);i=Max(studs,N);Output(studs,N);cout<<"×î¸ß·ÖѧÉúµÄѧÉúÐÅϢΪ£º"<<endl;cout<<setw(10)<<studs[i].num<<setw(10);cout<<studs[i].name<<setw(10);cout<<studs[i].sc<<setw(10)<<endl;}void Input(student studs[],int n){int i;for(i=0;i<n;i++){cout<<"ÇëÊäÈëµÚ"<<i+1<<"¸öѧÉúµÄѧºÅ:";cin>>studs[i].num;cout<<"ÇëÊäÈëµÚ"<<i+1<<"¸öѧÉúµÄÐÕÃû:";cin>>studs[i].name;cout<<"ÇëÊäÈëµÚ"<<i+1<<"¸öѧÉúµÄ³É¼¨:";cin>>studs[i].sc;}}void Output(student studs[],int n)//×¢Ò⺯Êý¶¨ÒåµÄ·½·¨,Êä³ö½á¹ûÒªÕûÆë»®Ò»{int i;cout<<setw(10)<<"ѧºÅ"<<setw(10)<<"ÐÕÃû"<<setw(10)<<"³É¼¨"<<en dl;for(i=0;i<n;i++){cout<<setw(10)<<studs[i].num<<setw(10);cout<<studs[i].name<<setw(10);cout<<studs[i].sc<<setw(10)<<endl;}}int Max(student studs[],int n){int i,k;k=0;for(i=1;i<n-1;i++)if(studs[k].sc<studs[i].sc)k=i;return k;}2.参考答案#include <iostream.h>#include <ctype.h>int daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};struct data{int year,month,day;}dt;int day_of_year(int year,int month,int day){int i,leap;leap=((year%4==0&&year%100!=0)||year%400==0);for(i=1;i<month;i++)day+=daytab[leap][i];return day;}void inver(char s[],int &year,int &month,int &day){int i=0;while(isdigit(s[i])){year=year*10+s[i]-'0';i++;}i++;while(isdigit(s[i])){month=month*10+s[i]-'0';i++;}i++;while(isdigit(s[i])&&s[i]){day=day*10+s[i]-'0';i++;}}void main(){char s[20];cout<<"输入日期(年-月-日):";cin>>s;dt.year=0;dt.month=0;dt.day=0;inver(s,dt.year,dt.month,dt.day);cout<<s<<"是"<<dt.year<<"年的第"<<day_of_year(dt.year,dt.month,dt.day)<<"天"<<endl;}3.参考答案#include <iostream.h>#include <iomanip.h>#include <string.h>#define N 4struct student{char num[10];char name[20];int sc[5];int aver;};void main(){void Input(student studs[],int n);void Output(student studs[],int n);student studs[N];Input(studs,N);Output(studs,N);}void Input(student studs[],int n){int i,j;for(i=0;i<n;i++){cout<<"请输入第"<<i+1<<"个学生的学号:";cin>>studs[i].num;cout<<"请输入第"<<i+1<<"个学生的姓名:";cin>>studs[i].name;cout<<"请输入第"<<i+1<<"个学生的五门成绩:";for(j=0;j<5;j++)cin>>studs[i].sc[j];}}void Output(student studs[],int n){int i,j;cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"课程1";cout<<setw(10)<<"课程2"<<setw(10)<<"课程3"<<setw(10)<<"课程4"<<setw(10)<<"课程5"<<endl;for(i=0;i<n;i++){cout<<setw(10)<<studs[i].num<<setw(10);cout<<studs[i].name<<setw(10);for(j=0;j<5;j++)cout<<studs[i].sc[j]<<setw(10);cout<<endl;}}4.#include <iostream.h>#include <iomanip.h>#include <string.h>#define N 4struct address_list{char num[10];char name[20];char addr[80];int phonenum;char mobilenum[10];char email[30];};void main(){void Input(address_list studs[],int n);void Output(address_list studs[],int n);address_list studs[N];Input(studs,N);Output(studs,N);}void Input(address_list studs[],int n){int i;for(i=0;i<n;i++){cout<<"请输入第"<<i+1<<"个学生的学号:";cin>>studs[i].num;cout<<"请输入第"<<i+1<<"个学生的姓名:";cin>>studs[i].name;cout<<"请输入第"<<i+1<<"个学生的地址:";cin>>studs[i].addr;cout<<"请输入第"<<i+1<<"个学生的电话号码:";cin>>studs[i].phonenum;cout<<"请输入第"<<i+1<<"个学生的手机号码:";cin>>studs[i].mobilenum;cout<<"请输入第"<<i+1<<"个学生的E-mail地址:";cin>>studs[i].email;}}void Output(address_list studs[],int n){int i;cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"地址";cout<<setw(10)<<"电话号码"<<setw(10)<<"手机号码"<<setw(10)<<"E-mail地址"<<endl;for(i=0;i<n;i++){cout<<setw(10)<<studs[i].num<<setw(10)<<studs[i].name<<setw(10);cout<<studs[i].addr<<setw(10)<<studs[i].phonenum<<setw(10);cout<<studs[i].mobilenum<<setw(10)<<studs[i].email;cout<<endl;}}5.#include <iostream.h>#include <math.h>struct coordinate{double x;double y;double z;};void main(){void Print(coordinate x);coordinate Input();double distance(coordinate x,coordinate y);coordinate a,b;double dist;cout<<"请输入第1个点的坐标:"<<endl;a=Input();cout<<"请输入第2个点的坐标:"<<endl;b=Input();dist=distance(a, b);cout<<"第1个点的坐标:";Print(a);cout<<"第2个点的坐标:";Print(b);cout<<"这两点的距离为:"<<dist<<endl;}coordinate Input(){coordinate a;cout<<"请输入该坐标的x点:";cin>>a.x;cout<<"请输入该坐标的y点:";cin>>a.y;cout<<"请输入该坐标的z点:";cin>>a.z;return a;}void Print(coordinate a){cout<<"("<<a.x<<","<<a.y<<","<<a.z<<")"<<endl;}double distance(coordinate a,coordinate b){double dist;dist=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));return dist;}6.参考答案#include <iostream.h>#include <iostream.h>struct complex{double real;double imag;};void main(){void Print(complex& x);void Input(complex& x);complex add(complex x,complex y);complex sub(complex x,complex y);complex x,y,z;cout<<"请输入第1个复数:"<<endl;Input(x);cout<<"请输入第2个复数:"<<endl;Input(y);cout<<"第1个复数为:";Print(x);cout<<"第2个复数为:";Print(y);z=add(x, y);cout<<"相加后的复数为:";Print(z);z=sub(x, y);cout<<"相减后的复数为:";Print(z);}void Input(complex& x){cout<<"请输入复数的实部:";cin>>x.real;cout<<"请输入复数的虚部:";cin>>x.imag;}void Print(complex& x){cout<<x.real;if (x.imag>0) cout<<'+';cout<<x.imag<<'i'<<endl;}complex add(complex x,complex y){complex z;z.real=x.real+y.real;z.imag=x.imag+y.imag;return z;}complex sub(complex x,complex y){complex z;z.real=x.real-y.real;z.imag=x.imag-y.imag;return z;}7.参考答案#include <iostream.h>void main(){int n;enum {sun,mon,tue,wed,thu,fri,sat}day;char weekday[7][7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};cout<<"输入间隔天数:";cin>>n;day=sun;cout<<"今天是"<<weekday[day]<<","<<n<<"天后是"<<weekday[(day+n)%7];}8.#include <iostream.h>#include <iomanip.h>void main(){enum color {Red,Blue,Green};color i,j,k,pri;int n,loop;n=0;for(i=Red;i<=Green;i=color(int(i)+1))for(j=Red;j<=Green;j=color(int(j)+1))if(i!=j){for (k=Red;k<=Green;k=color(int(k)+1))if((k!=i)&&(k!=j)){n=n+1;cout<<setw(4)<<n;for(loop=1;loop<=3;loop++){switch(loop){case 1 : pri=i;break;case 2 : pri=j;break;case 3 : pri=k;break;default:break;}switch (pri){case Red: cout<<setw(10)<<"Red";break;case Blue: cout<<setw(10)<<"Blue";break;case Green: cout<<setw(10)<<"Green";break;default:break;}}cout<<endl;}}cout<<setw(5)<<n;}。