C++程序设计实验5-8

double mWidth;
};
3.构造一个类countstr,要求用构造函数设置计数器count的初始值为0,成员函数countchar()不返回任何值,它要求用户输入一段文字,按Enter键后结束计算,用count记录输入的字符数,成员函数getchar()返回count的整数值。
三、实验步骤
1.运用学过的知识,实验前在纸上写出程序。
2.理解继承与派生的概念,掌握单继承和多继承的定义方法。
3.熟悉公有派生和私有派生的访问特性。
4.掌握继承中基类和派生类的构造函数定义和调用过程。
5.了解虚基类的作用和用法,会使用虚基类,学习虚基类在解决二义性问题中的作用。
二、实验内容
1.有以下程序,请完成下面的工作:
1)阅读程序,写出运行后的输出结果;
实验五构造函数与析构函数的编程
一、验目的
1.进一步加深对类和对象的理解。
2.掌握类的构造函数和析构函数的概念、意义和使用方法。
3.掌握重载构造函数的含义和使用。
4.编写一个较为复杂的类和对象的应用程序。
二、实验内容
1.设计一个程序,定义一个矩形类,包括数据成员和函数成员。要求有构造函数、析构函数,还有一个成员函数area( )用来计算并显示矩形的面积,并编写main函数进行测试。
{num=n;name=nam;score=s;}
void Student::display()
{cout<<״num:״<<num<<״\nname:״<<name<<״\nscore:״<<score<<endl<<endl;}
class Graduate:public Student //声明公有派生类
};
int A::Set(③)
{ return x=b.x;}
void main()
{ A a(10);
B b(20);
cout<<a.Get()<<endl;
a.Set(b);
cout<<a.Get()<<endl;
}
三、实验步骤
1.运用学过的知识,实验前在纸上写出程序。
2.根据程序要求,先定义类,包括其数据成员和成员函数。
1.有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法运算。
2.定义一个由y=ax+b确定的直线类Line,该类的构造函数初始化直线,成员函数Print显示该直线方程,友元函数SetPoint()求解两条直线的交点。
3.下列程序是有关友元类的,程序中将A类声明为B类的友元类,A类中所有的成员函数都是B类的友元函数,请给程序填空。
3.分析使用的是友元类还是友元函数,通过友元要处理哪些问题。
4.在主函数中完成相应的功能。
5.上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1.写出实验目的。
2.写出实验内容和程序清单。
3.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
实验七继承与派生的编程
一、实验目的
1.了解继承在面向对象程序设计中的重要作用。
2.根据程序要求,先设计类,设计此类的数据成员及成员函数。
3.注意数据成员的类型,成员函数完成的功能,构造函数与析构函数完成的功能。
4.在主函数中创建对象,通过对象调用哪些成员函数。注意:创建对象时,构造函数是怎样执行的
程序结束时,释放对象时,析构函数是怎样执行的。
5.上机编辑、编译、调试和运行,并修改错误。
2.事先编写一个程序,计算正方体、球体和圆柱体的表面积和体积。(提示:声明一个抽象基类container,派生类cube、sphere和cylinder,基类中求表面积和体积的成员函数声明为纯虚函数。)
3.定义一个类Student记录学生计算机课程的成绩,要求使用静态成员变量或静态成员函数计算全班计算机课程的总成绩和平均成绩。
#inlcude <iostream.h>
class B;
class A
{
private:
int x;
public:
A(int xx){x=xx;}
int Set(B&);
int Get(){return x;}
};
class B
{
private:
int x;
public:
B(int xx){①}
friend②
5.上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1.写出实验目的。
2.写出实验内容和程序清单。
3.写出编程思路和类层次图,体会基类与派生类的关系。
4.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
实验八利用虚函数编程
一、实验目的
1.了解多态性的概念和虚函数的作用及使用方法。
2.了解静态关联和动态关联的概念和用法。
三、实验步骤
1.运用学过的知识,实验前在纸上写出程序。
2.根据程序要求,分析用到几个类,哪些是基类,哪些是派生类,采用何种继承方式。
3.先设计基类,再设计派生类,派生类成员函数应该处理哪些数据。
4.在主函数中创建对象,创建基类对象还是派生类对象时,通过对象调用哪些成员函数。注意:基类和派生类的构造函数和析构函数的执行顺序。
Class Rect
{public:
int Area_int();
Rect(int l, int w);
~Rect();
private:
int nLength;
int nWidth;
};
2.重载构造函数。修改上题,一种构造函数用整型变量记录矩形的长和宽,另一种构造函数用double型记录矩形的长和宽,然后完成成员函数及主函数。
三、实验步骤
1.运用学过的知识,实验前在纸上写出程序。
2.根据程序要求,先定义基类,然后定义其派生类。
3.分析使用那些成员函数,哪些需要用虚函数或者纯虚函数。
4.在主函数中完成相应的功能,可以是用基类指针来操作。
5.上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1.写出实验目的。
2.写出实验内容和程序清单。
~C(){cout<<“destructing C”<<endl;}
};
void main()
{ C c1;
}
2.定义一个Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。编写一个完整程序进行测试。
3. 定义并描述一个人员类Person,它派生出学生类Student和教师类Teacher, 学生类和教师类共同派生出在职读书的教师类Stu_Tech。人员类有姓名、性别、身份证号、出生年月等信息;学生类有学号、成绩等信息;教师类有职务、职称等信息。编写一个完整程序进行测试。
四、实验报告
1.写出实验目的。
2.写出实验内容和程序清单。
3.在实验报告中写出实验内容第1题答案。
4.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
实验六利用友元编程
一、实验目的
1.掌握友元函数和友元类的概念、定义和作用。
2.会使用友元编程。
3.进一步学习内存空间动态分配和释放的方法。
二、实验内容
void Graduate::display()
{cout<<<״num:״<<num<<״\nname:״<<name<<״\nscore:״<<score<<״\npay=:״<<pay<<endl;}
void main()
{ Student stud(1001,״Li״,87.5);
Graduate grad(2001,״Wang״,98.5,563.5);
Class Rect
{public:
int Area_int();
double Area_double();
Rect(double l, double w);
Rect(int l, int w);
~Rect();
private:
int nLength;
int nWidth;
double mLength;
Student *pt=& stud;
pt->display();
pt=&grad;
pt->display();
}
1)分析结果,并验证之。
2)利用虚函数,对程序作一点修改, 在Student类中声明display函数时,在其前面加上关键字virtual,即virtual void display();,再编译运行,注意分析运行结果。
3.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
};
class B:public A
{public:
B(){cout<<“constructing B”<<endl;}
~B(){cout<<“destructing B”<<endl;}
};
class C:public B
{public:
C(){cout<<“constructing C”<<endl;}
3.了解纯虚函数和抽象类的概念和用法。
4.学习使用虚函数的继承实现动态关联。
5.学习理解静态数据成员和静态成员函数的使用。
二、实验内容
1.事先阅读程序,给出其运行结果,上机验证虚函数的作用。
合集下载

c程序设计实验参考答案

c程序设计实验参考答案
编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

C语言程序设计实验指导书【范本模板】

C语言程序设计实验指导书【范本模板】

青岛科技大学信息科学技术学院C语言程序设计实验指导书目录实验1 C语言入门及选择结构 0实验1.1 Visual C++6。

0开发环境 0实验1.2 C程序快速入门 (7)实验1.3算术运算与赋值运算 (11)实验1。

4逻辑运算及if语句 (17)实验1.5 switch选择结构 (23)实验2循环结构及数组(共8学时) (27)实验2.1 循环结构(2学时) (27)循环结构程序设计补充 (32)实验2.2数组一:一维数组 (36)实验2。

3数组二:二维数组 (43)实验2.4数组三:字符数组 (45)实验3:函数与自定义数据类型 (49)实验3。

1函数一:函数的定义、调用和声明 (49)实验3。

2函数二:函数的参数传递2 (55)实验3。

3函数三:函数的嵌套和递归2 (57)实验3.4 自定义数据类型(2学时) (59)实验4:指针(共6学时) (61)实验4。

1指针一:指针的定义及运算 (61)实验4。

2指针二:指向数组的指针 (67)实验4.3指针三:用指针操作字符串2 (71)实验1 C 语言入门及选择结构实验1.1 Visual C++6.0开发环境一、实验目的1。

熟悉C 语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C 语言程序的方法。

2. 掌握C 语言源程序的结构特点与书写规范. 二、实验学时数2学时三、实验步骤及任务(一) VC++6。

0集成环境(1)运行VC++6。

0a.双击桌面上的VC++6。

0快捷方式,运行VC++6。

0。

b 。

双击"C :\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV 。

EXE",运行VC++6.0. (2)认识VC++6。

0标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。

菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。

工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。

高级语言程序设计实验报告 c语言程序设计实验报告 大一 南邮

高级语言程序设计实验报告 c语言程序设计实验报告 大一 南邮
int zhishu(int x)
{
int i;
for (i=2;i<x;i++)
{
if(x%i==0)
{
return 0;
}
if(i>=x)
{
return 1;
}
}
}
void main()
{ int x;
int i;
int j=0;
printf("请输入一正整数:\n");
scanf("%d",&x);
printf("您输入的内容中数字有%d个;\n",j);
}
7:
#include<stdio.h>
int sum(int n)
{ int r=0;
if (n==1)
{
return 1;
}Байду номын сангаас
else
{
r=n+sum(n-1);
return r;
}
}
int fac(int n)
{
int r=1;
if(n==1)
分析:程序运行正常,这里要注意有关细节,比如符号的使用,中英字符的混淆,和连接时文件的问题。
签名:
日期:年月日
4:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

C语言程序设计-第三版-部分习题-(谭浩强-著)-清华大学出版社-课后答案

C语言程序设计-第三版-部分习题-(谭浩强-著)-清华大学出版社-课后答案

C语言程序设计第三版部分习题 (谭浩强著)清华大学出版社课后答案。

txtcopy(复制)别人的个性签名,不叫抄袭,不叫没主见,只不过是感觉对了。

遇到过的事一样罢了。

【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1。

3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1。

5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头.错误:main函数可以放在程序的任何位置.并不限定在程序的开头。

1。

8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现.错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1。

9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d”,&x,&y);的正确输入格式:3,4<回车〉.正确1。

11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中.1.12 所有的数学公式可以直接出现在源程序中.错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音.提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%。

2f1。

15 输入两个整数,输出其中最大者。

提示:模仿例1。

31.16 输入三个整数,输出其中最小者.提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2。

《C语言程序设计实践教程》答案-完整版

《C语言程序设计实践教程》答案-完整版

4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。

2010级用高级语言程序设计实验报告quan

2010级用高级语言程序设计实验报告quan《高级语言程序设计》实验报告实验室名称:班级:学生姓名:学号:指导教师:学期:2009-2010学年上学期实验1 C 程序设计入门一、实验目的1、熟悉C 编程环境2、掌握简单C 程序的编辑、编译和运行方法二、知识要点1、用printf 函数输出指定字符串(转义字符的使用)2、计算并输出表达式的值3、程序书写风格三、实验预习(要求做实验前完成)1、若要在屏幕输出信息,需要用到库函数:2、输出的信息若需换行,需要用到换行符:3、按C 语言语法规则写出下列算法的表达式(1)26乘以49,再除以17:(2)求29除以6的余数:四、实验内容 (要求提供:① 算法描述或流程图② 源程序 )1、编程输出“我的信息”,包括姓名、性别、专业名称和课程名称,格式为:姓名:性别:专业名称:课程名称:2、编程求以下表达式的值:1491516232+-+ 3、编程计算并输出16.8与27.5两个数的和、差、积、商,要求输出界面为:和是:差是:积是:商是:五、实验结果要求写出运行界面并输出运行结果实验2─3 数据类型、常量变量及顺序结构程序设计一、实验目的1、掌握常量和变量的概念以及使用1、掌握变量的定义、赋值与引用2、掌握顺序结构相关语句的使用3、掌握scanf和printf输入、输出数据的方法二、知识要点1、变量与常量概念2、数据输入、输出的格式控制3、标准库函数与头文件的使用4、算术运算与赋值运算5、数据类型转换三、实验预习(要求做实验前完成)1、假如要定义两个整型变量x和y,语句int x y;错在哪里?2、把a的值赋给b,其语句是:3、如果使用语句scanf(“%d%d”,&x,&y);输入8和9两个整数,其输入格式应该是:4、如果使用语句scanf(“%d,%d”,&x,&y);输入8和9两个整数,其输入格式应该是:5、程序中如果要用到库函数sin,则应包含头文件:6、假设x是一个实型变量,语句printf(“%d”,x);错在哪里?7、语句x=10; y=20; printf(“y=%d, x= %d”,x,y); 能否交换x和y的值?四、实验内容(要求提供:①算法描述或流程图②源程序)1、输入两个人的身高,计算并输出他们的平均身高。

C语言程序设计习题库

34-计算函数 (2)612-程序设计C 实验一题目一最简单的C程序 (3)80-程序设计C 实验二题目二计算n! (4)288-程序设计C 实验三题目八统计出现最多次的字母 (5)277-程序设计C 实验二题目五统计二进制数中的1的个数 (6)276-程序设计C 实验二题目四简单的计算器 (7)35-成绩的等级 (8)26-翻转数的和 (9)33-三个数的最大值 (10)37-利润提成 (11)39-字符个数 (11)42-平方和与倒数和 (13)46-自由落体 (14)56-Hamming Distance (15)77-程序设计C 实验二题目一计算员工周工资 (16)189-素数判定 (17)318-进制变换 (18)489-平方和与立方和 (19)563-平方和与立方和 (20)606-Sum (21)190-游程编码 (22)160-C++测试一 (23)320-鸡兔同笼 (24)203-Jack's problem (25)619-蟠桃记 (26)279-程序设计C 实验二题目七人数统计 (27)278-程序设计C 实验二题目六计分规则 (28)148-陶陶摘苹果 (29)171-字符串的倒序 (30)86-杨辉三角形 (31)34-计算函数Description有一个函数y={ x x<1| 2x-1 1<=x<10\ 3x-11 x>=10写一段程序,输入x,输出yInput一个整数xOutput一个整数ySample Input14Sample Output31Hint使用函数Source612-程序设计C 实验一题目一最简单的C程序Description请使用C编写一个程序输出下面这个话"Welcome to the OnlineJudge of Southwest University of Science and Technology!"Loco提示: 请养成输出完后换行的习惯,否则视为Presentation Error,不清楚如何换行的同学可以询问同学或者老师Input没有输入Output输出题目中要求的语句.Sample InputSample OutputWelcome to the OnlineJudge of Southwest University of Science and Technology! Hint这个题目非常简单,是让大家熟悉C编译器和本平台的.1、按照1.2.4、1.2.5节操作步骤创建第一个应用:(1)编辑你的第一个C源程序(2)保存你的源文件(3)编译、连接得到可执行程序(4)改正源程序中的错误(5)运行你的第一个程序2、你可以有三种方式运行你的程序:(1)在VC++6.0开发环境中运行程序选择Build|Execute hello.exe(或者Ctrl+F5),在开发环境中执行你的程序。

c++语言程序设计实践教程参考答案

附录1.2.2编程实验(2学时)参考答案1、程序提示:#include<iostream>using namespace std;int main(){int n,i;cout<<"n=?"<<endl;cin>>n;for(i=0;i<n;i++)cout<<"Hello World!\n";return0;}2、程序提示:int main(){int n,i,min,max;cout<<"n=?"<<endl;cin>>n;//输入整数ncout<<"input n number:"<<endl;int*p=new int[n];//动态创建n个元素的数组cin>>p[0];min=max=p[0];//为sum,min,max赋初始值为数组第0个元素for(i=1;i<n;i++){cin>>p[i];sum+=p[i];if(p[i]>max)max=p[i];if(p[i]<min)min=p[i];}cout<<"result:"<<"sun="<<sum<<";max="<<max<<";min="<<min<<endl;delete*p[];return0;}3、程序运行结果:a=6;b=1a=7;b=2a=8;b=3a=9;b=4a=10;b=51.3习题参考答案一、选择题1、ABCD2、ABD3、ABCD二、分析程序,改错sum=i+j;//该语句后面缺分号2.2.2编程实验(2学时)参考答案1、程序运行结果:0m=0n=00m=0n=0112、程序运行结果:3012-23、程序运行结果:50233114、修改语句:b=(Color)a;//类型转换5、程序提示:#include<iostream>using namespace std;struct time//定义结构体类型{int year,month,day,hour,minute,second;}a;int main(){cin>>a.year>>a.month>>a.day>>a.hour>>a.minute>>a.second;//输入语句cout<<a.year<<"年"<<a.month<<"月"<<a.day<<"日"<<a.hour<<"时"<<a.minute<<"分"<<a.second<<"秒"<<endl;//输出语句return0;}程序输出样例:6、程序提示:#include<iostream>using namespace std;struct complex{//定义结构体复数float real;float image;};int add(int a,int b)//两整数相加{return a+b;}double add(double x,double y)//两实数相加{return x+y;}complex add(complex m,complex n)//两复数相加{complex c;c.real=m.real+n.real;c.image=m.image+n.image;return c;}int main(){char g;cout<<"功能选择:"<<endl;cout<<"A.整数相加 B.实数相加 C.复数相加"<<endl;cin>>g;if(g=='A'){int c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='B'){double c,v;cin>>c>>v;cout<<add(c,v)<<endl;}if(g=='C'){float c,v;cin>>c>>v;complex a={c,v};//定义复数对象a并赋值cin>>c>>v;complex b={c,v};//定义复数对象b并赋值cout<<add(a,b).real<<","<<add(a,b).image<<endl;}return0;}程序输出样例:7、程序提示:#include<iostream>using namespace std;void swap(int&p1,int&p2){int t;t=p1;p1=p2;p2=t;}void main(){int a,b;cout<<"please input the two num:\n";cin>>a>>b;swap(a,b);cout<<"交换后:"<<a<<","<<b<<endl;}程序输出样例:8、程序提示:#include<iostream>#include<cmath>using namespace std;int main(){float x,y;cout<<"please input the two num:\n";cin>>x>>y;cout<<"pow(x,y)="<<pow(x,y);return0;}程序输出样例:2.3习题参考答一、选择题1、ADF2、ABC3、BC4、B5、A6、A7、BCD8、C9、BCD10、C11、C12、C13、A二、填空题1、关系,条件,逻辑,位运算,逗号2、1012151800,101200,100003、cmath4、强制类型转换,Decimal value is241三、编程题1、参考程序#include<iostream>#include<iomanip>//格式化输出控制文件using namespace std;enum color{red,yellow,blue,white,black};//枚举类型int main(){int i,j,k,n,loop,pri;n=0;for(i=red;i<=black;i++){for(j=red;j<=black;j++){if(i!=j){for(k=red;k<=black;k++){if((k!=i)&&(k!=j)){n=n+1;cout<<setw(5)<<setfill('')<<left<<n;for(loop=1;loop<=3;loop++)//通过循环控制每次三种不同颜色的球{switch(loop){case1:pri=i;break;case2:pri=j;break;case3:pri=k;break;default:break;}switch(pri)//选择输出{case red:cout<<setw(10)<<setfill('')<<left<<"red";break;case yellow:cout<<setw(10)<<setfill('')<<left<<"yellow";break;case white:cout<<setw(10)<<setfill('')<<left<<"white";break;case blue:cout<<setw(10)<<setfill('')<<left<<"blue";break;case black:cout<<setw(10)<<setfill('')<<left<<"black";break;default:break;}}cout<<"\n";}}}}}cout<<"\ntotal:"<<n<<endl;}程序输出样例:1red yellow blue2red yellow white3red yellow black4red blue yellow5red blue white6red blue black7red white yellow8red white blue9red white black10red black yellow11red black blue12red black white13yellow red blue14yellow red white15yellow red black16yellow blue red17yellow blue white18yellow blue black19yellow white red20yellow white blue21yellow white black22yellow black red23yellow black blue24yellow black white25blue red yellow26blue red white27blue red black28blue yellow red29blue yellow white30blue yellow black31blue white red32blue white yellow33blue white black34blue black red35blue black yellow36blue black white37white red yellow38white red blue39white red black40white yellow red41white yellow blue42white yellow black43white blue red44white blue yellow45white blue black46white black red47white black yellow48white black blue49black red yellow50black red blue51black red white52black yellow red53black yellow blue54black yellow white55black blue red56black blue yellow57black blue white58black white red59black white yellow60black white bluetotal:602、参考程序#include<iostream>using namespace std;long long fib(int n){int i;long long f1=0,f2=1,f=0;if(n==1)return1;if(n==0)return1;if(n>=2){for(i=2;i<=n;i++){f=f1+f2;f1=f2;f2=f;}return f;}}int main(){int num;cout<<"input the num:\n";cin>>num;cout<<fib(num)<<endl;return0;}程序输出样例:3.2.2编程实验1(2学时)参考答案1.参考程序#include<iostream>using namespace std;class Rectangle{private:int length;//表示矩形的长int breadth;//表示矩形宽public:void area()//函数功能:计算矩形的面积{cout<<length*breadth<<endl;}void set()//函数功能:设置矩形的长与宽{cin>>length;cin>>breadth;}};int main(){Rectangle rec;//回答:此处rec对象调用系统默认构造函数对其初始化赋值,length与breadth的初始值都是随机值cout<<"请输入长、宽:"<<endl;rec.set();//要求:rec对象通过set()函数对其数据成员赋值!cout<<"所求矩形的面积为:";rec.area();//要求:rec对象通过area()函数计算输出其面积!return0;}程序输出样例:2.参考程序class Point{private:int i_x;//表示点的x轴坐标int i_y;//表示点的y轴坐标public:Point();//无参构造Point(int x,int y);//有参构造Point(Point&pt);//复制构造int getx();//函数结果为i_xint gety();//函数结果为i_yvoid show();//函数功能:输出数据成员};//要求:补充完整类的定义结构!Point::Point(){cin>>i_x>>i_y;}//要求:补充完整有无构造函数的实现!Point::Point(int x,int y){i_x=x;i_y=y;}//要求:补充完整有参构造函数的实现!Point::Point(Point&pt){i_x=pt.i_x;i_y=pt.i_y;}//要求:补充完整复制构造函数的实现!int Point::getx(){return i_x;}//要求:补充完整成员函数getx()的实现!int Point::gety(){return i_y;}//要求:补充完整成员函数gety()的实现!void Point::show(){cout<<i_x<<";"<<i_y<<endl;//要求:补充完整成员函数show()的实现!}int main(){Point p1;p1.show();Point p2(4,8);p2.show();Point p3(p2);p3.show();}程序输出样例:3.参考程序#include<iostream>#include<windows.h>//调用系统时间函数需要加的头文件#include<stdio.h>//调用系统时间函数需要加的头文件using namespace std;class Time{private://私有访问属性int hour,minute,second;public://公有访问属性void setTime(int h,int m,int s)//通过形参给本类数据成员hour、minute、second赋值{hour=h;minute=m;second=s;}void showTime_1()//输出时间:以12小时计,分上午(AM)、下午(PM){int sign;if(hour<12)cout<<"am:"<<hour<<":"<<minute<<":"<<second<<endl;else{sign=hour-12;cout<<"pm:"<<sign<<":"<<minute<<":"<<second<<endl;}}void showTime_2()//输出时间,建议:以24小时计{cout<<hour<<":"<<minute<<":"<<second<<endl;}Time()//无参构造函数{hour=0;minute=0;second=0;}Time(int NewH,int NewM,int NewS)//有参构造函数{hour=NewH;minute=NewM;second=NewS;}Time(Time&pt)//复制构造函数{hour=pt.hour;minute=pt.minute;second=pt.second;}};int main(){//定义变量,输入数据,创建3个Time对象,分别使用无参构造函数、有参构造函数、复制构造函数进行初始化Time time1;//定义对象的同时自动调用无参构造函数Time time2(18,21,36);//定义对象的同时自动调用有参构造函数Time time3(time2);//定义对象的同时自动调用复制构造函数time1.showTime_1();//输出电脑时间,显示方式1time2.showTime_2();//输出电脑时间,显示方式2time3.showTime_1();//输出电脑时间,显示方式1cout<<"你想要获取当前电脑时间吗?(Y/N)";char ch=getchar();//输入的字符if(ch=='Y'){SYSTEMTIME sys;//上网查询获取方法,获取当前电脑时间,赋值给已创建的任意一个Time对象GetLocalTime(&sys);time3.setTime(sys.wHour,sys.wMinute,sys.wSecond);time3.showTime_1();//输出电脑时间,显示方式1time3.showTime_2();//输出电脑时间,显示方式2}return0;}程序输出样例:4.参考程序#include<iostream>using namespace std;class Circle{public:Circle()//无参构造函数{radius=0;}void getArea()//无返回值函数,计算圆的面积{cout<<radius*radius*3.14<<endl;}void set_radius()//无返回值函数,设置圆的半径{cin>>radius;//采用输入赋值或直接赋值都可以}~Circle()//析构函数,对象默认的调用的最后一个函数{cout<<"END PGM!\n";}private:int radius;//整型数据,4个字节};int main(){Circle c;//Circle类定义目的对象c的同时自动调用其无参构造函数初始化数据成员cout<<"请输入圆的半径:";c.set_radius();c.getArea();//程序结束前自动调用析构函数释放对象return0;}程序输出样例:5.参考程序#include<iostream>using namespace std;enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};//声明枚举类型CPU_Rankclass CPU{private:CPU_Rank rank;int frequency;float voltage;public:CPU(int newrank,int newfrequency,float newvoltage);//有参构造函数void run();void stop();~CPU(){cout<<"成功调用析构函数"<<endl;}//析构函数};void CPU::run(){cout<<"程序开始执行"<<endl;}void CPU::stop(){cout<<"程序结束"<<endl;}CPU::CPU(int newrank,int newfrequency,float newvoltage){rank=(CPU_Rank)newrank;//强制类型转换frequency=newfrequency;voltage=newvoltage;cout<<"成功调用构造函数"<<endl;cout<<"等级:"<<CPU_Rank(P1)<<endl;cout<<"频率:"<<frequency<<endl;cout<<"电压:"<<voltage<<endl;}int main(){CPU cpu(1,70,280);//定义对象的同时调用有参构造函数对数据成员初始化cpu.run();cpu.stop();//程序结束前调用析构函数释放对象return0;}程序输出样例:3.3.2编程实验2(2学时)参考答案1.参考程序//类外补充完善类中的成员函数coutner::coutner(int number)//有参构造函数{value=number;}coutner::coutner()//无参构造函数{cin>>value;}coutner::coutner(coutner&r)//复制参构造函数{value=r.value;}void coutner::increment()//给value原值加2{value+=2;}void coutner::decrement()//给value原值减2{value-=2;}int coutner::getvalue()//取得计数器值{return value;}int coutner::print()//显示计数{cout<<value<<endl;return0;}int main(){coutner c;//定义一个无参对象c,定义时自动调用无参构造函数,通过输入对value赋值cout<<"The output is"<<c.getvalue()<<endl;coutner c2(c.getvalue()+2);//定义一个有参对象c2,用c对象的值加2初始化其数值value cout<<"The output is"<<c2.getvalue()<<endl;coutner c3(c2);//定义一个对象c3,用c2对象初始化cout<<"The output is"<<c3.getvalue()<<endl;cout<<sizeof(coutner)<<""<<sizeof(c2)<<endl;//通过sizeof()函数观察该coutner类型所占的字节数return0;}思考题回答:若程序中注释掉复制构造函数coutner(coutner&r),还可以实现用一个对象初始化赋值另一对象,会调用系统默认的复制构造函数。

C语言循环结构程序设计编程题

实验3 循环结构程序设计一.实验目的:1.掌握使用while 语句,do-while 语句和for 语句实现循环的方法。

2.掌握在循环结构中使用break 与continue 语句的方法。

3.掌握多重循环的使用方法。

二.实验内容:1.编写程序输出半径为1到15的圆的面积,若面积在30到100之间则予以输出,否则,不予输出。

2.打印出所有“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字的立方之和正好等于该数本身。

例如:153是一个“水仙花数”,因为153=13+53+33。

3.编写程序,分行输出斐波那契序列的前20项(每行5个数)。

说明:斐波那契序列:1,1,2,3,5,8,13,21,……4.编写程序,输出“九九乘法口诀表”。

5.编写程序,分行输出100以内所有的素数(每行5个数)。

6.有两个红球、三个黄球、四个白球,任意取五个球,其中必须有一个黄球,编程输出所有可能的方案。

7.编写程序求解sn=a+aa+…+a …a,其中a 是1-9中的一个数字。

n 为一正整数,a 和n 均从键盘输入。

(例如输入n 为4,a 为2,sn=2+22+222+2222)8.编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。

9. 编写程序,输出200以内所有能被7整除的数。

10. 编写程序,求1~1000之间能被13整除的最大的那个数。

11. 找出若干个非零数中的最小值m 以及它们的平均值a 。

要求:从键盘输入若干个数,每次输入一个赋给变量x ,x 为零时,结束输入。

12. 从键盘输入整数 n ,输出 1+3+5+7+……前 n 项的和。

(n<=100)13. 编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。

14. 编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。

15. 编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档