c实验答案Word文件下载.docx
《c实验答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《c实验答案Word文件下载.docx(103页珍藏版)》请在冰豆网上搜索。
下面的程序对用户输入的口令进行判断,输出不同的结果。
{
intpass;
”\npleaseinputyoupassword:
”;
cin>
>
pass;
if(pass==12345)cout<
”welcomeyou.”;
elsecout<
”yourpasswordisnotright.”;
第三步:
根据题目要求编写下面的代码进行调试。
inlineintf(intx)
{
return2*x*x+4*x+5;
f(5)<
endl;
第四步:
inlinedoublef(doublex)
voidmain()
intx=5;
doubley=5.2;
f(x)<
f(y)<
第五步:
在主函数内外同时使用sum做计数器,并在主函数中同时使用。
inta[]={1,2,3,4,,5,6,7,8,9,10};
intsum;
inti;
intsum=0;
for(i=0;
i<
10;
i++)
{if(a[i]%2!
=0)sum=sum+a[i];
∷sum=∷sum+a[i];
}
”sumofallis:
”<
∷sum;
”sumofoddis:
sum;
第六步;
根据题目要求编写代码如下。
#include<
double*r;
r=newdouble;
*r;
”areais:
3.14*(*r)*(*r);
deleter;
实验二c++简单程序设计练习
1.掌握if语句的用法。
2.掌握switch语句的用法。
3.掌握循环和多重循环的用法。
4.掌握递归函数的用法。
5.掌握简单的指针操作方式。
6.掌握c++内存的动态分配与释放方法。
三、实验内容
根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
分别使用if分支结构和switch结构编写程序。
百分制
五分制
90~100
5
80~89
4
60~79
3
0~59
2
编程求3~100之间的所有素数。
编写程序列出婓波那挈(fibonacci)数列的前20项。
分别用迭代和数组的方法编程。
输入100个整数,从小到大排列并输出。
使用递归方法解决背包问题:
设有一个背包可以放入的物品数量为s,现有n件物品,重量分别为w1,w2,…,wn,问能否从这n件物品中选择若干件放入此背包,使得放入的重量之和正好为s。
如果存在一种符合上述要求的选择,称此问题有解,否则问题无解。
读入9个双精度的数,把他们存放在一个存储块里,然后求出它们的积。
使用动态分配和指针操作。
#include<
intscore;
chargrade;
”pleaseinputscore:
end;
score;
if(score>
=0&
&
score<
=100)
89)grade=’5’;
elseif(score>
79)grade=’4’;
59)grade=’3’;
elsegrade=’2’;
”gradeis”<
grade<
else
”dataerror\007\n”;
使用switch结构解决成绩问题转换问题。
intscore,s,sun;
(score);
ifscore)
{
s=score/10;
switch(s);
case0;
case1;
case2;
case3;
case4;
case5;
grade=’2’;
break;
case6;
case7;
grade=’3’;
case8;
grade=’4’;
case9;
case10;
grade=’5’;
cout<
else
使用双重循环解决素数问题。
#include<
inti,j;
for(i=3;
=100;
for(j=2;
j<
i-1;
j++)
if(i==j)
””;
”\n”;
第四步:
使用迭代方法解决裴波那契数列问题。
inta,b,j,f;
a=1;
b=1;
a<
””<
b<
for(j=3;
=20;
{
f=a+b;
a=b;
b=f;
f<
if(j%5==0)cout<
//每输出5个换行
}
第五步:
使用数组方法解决裴波那契数列问题。
inti,fib[20]={1,1};
//初始化
for(i=2;
20;
fib[i]=fib[i-1]+fib[i-2];
for(i=1;
i++);
fib[i-1]<
if(i%5==0)cout<
第六步:
使用选择法解释排序问题。
inti,j,data[120],temp;
intmin_a;
”\npleaseinput”<
size<
”int:
”;
for(i=0;
=size;
data[i];
size;
min_a=i;
for(j=i;
if(ata[j]<
data[min_a])
min_a=j;
data[min_a]=data[i];
data[i]=temp;
”\naftersorted:
data[i]<
第七步:
使用递归方法解决背包问题。
intf;
if(s==0)f=1;
elseif((s<
0)||((s>
0)&
(n<
!
)))f=0;
elseif(knap(s-w[n],n-1)==1){cout<
”\nw[“<
n<
”]=”<
w[n];
f=1;
elsef=knap(s,n-1);
returnf;
i=knap(29,8);
if(i==0)
”nosolution\n”;
//背包问题无解
第八步:
使用动态分配和指针操作求9个double数的乘积。
constsize=9;
double*init()//返回指针值的函数
returnnewdouble(size);
//分配空间将首地址返回
voidreadin(double*a)//从a指向的存储单元开始读入数据
”\nplealseenter”<
”value:
*(a+i);
//读入数据到a+i指向的存储单元
voidproduct(double*arr,intsize,double*resule)
//计算从arr指向的存储单元开始的
//连续size个存储单元的乘积
for(size--,*result=*(arr+size);
--size>
=0;
*result=*(arr+size));
//乘积的结果放入result指向的存储单元
double*x,res,*init();
if((x=init())==null)
return;
readin(x);
product(x,size,&
res);
”theproductis:
res<
deletex;
实验三类与对象
(一)
验证性实验、设计性实验4学时
二、实验目的与要求
1、掌握类、类的数据成员、类的成员函数的定义方式
2、理解类成员的访问控制方式
3、掌握对象的定义和操作对象的方法
4、理解构造函数和析构函数的定义与执行过程
5、掌握重载构造函数的方法
6、了解拷贝构造函数的方法
三、总的设计思想,及环境语言、工具等
通过设计一个time类和一个stock类达到实验目的,使用visualc++或turboc3.0集成开发环境
四、实验内容:
1.声明一个时间类,时间类中有3个私有数据成员(hour,minute,second)和两个公有成员函数(settime和print_time).settime根据传递的3个参数为对象设置时间;
print_time负责将对象表示的时间显示输出。
在主函数中,建立一个时间类的对象,设置时间为9点20分30秒并显示该时间。
2.使用构造函数代替上面的settime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。
3.重载时间类的构造函数(不带参数)使小时,分,秒均为0。
4.在时间类的析构函数中输出“goodbye!
”
5.定义拷贝构造函数并调用。
五、主要实验步骤:
1.#include<
classtime
public:
voidsettime(intc,intm,ints)
clock=c;
minute=m;
second=s;
voidprint_time()
cout<
clock<
"
:
minute<
second<
private:
intclock,minute,second;
};
timetime1;
time1.settime(9,20,30);
time1.print_time();
2.
#include<
time(intc,intm,ints)
timetime1(10,40,50);
3.#include<
time()
clock=0;
minute=0;
second=0;
timetime2(9,20,30);
time2.print_time();
4.#include<
print_time()
~time()
goodbye"
5.#include<
time(consttime&
p)
clock=p.clock;
minute=p.minute;
second=p.second;
timetime3(9,20,30);
timetime4(time3);
time3.print_time();
time4.print_time();
实验四类与对象
(二)
1.掌握对象数组的定义与使用方法。
2.理解对象指针的概念,学会用指针引用对象。
3.了解this指针的工作方式。
4.掌握静态数据成员和静态成员函数的基本使用方法。
5.理解友元与友元函数的作用,掌握其使用方法。
使用实验三中的股票类stock,定义一个对象数组存放连续5个交易日的股票信息。
编写一个主函数,计算两个stock对象(前后两日)的当日收盘价,计算当日涨幅。
用指针引用对象数组中的两个对象。
在主函数中调用该函数计算从第2个交易日开始每天的当日涨幅。
在stock类中定义一个静态数据成员,记录当前stock对象的数量。
设计一个成员函数assign-stock为对象赋值,其中的形式参数是对另一个stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用assign-stock赋值的对象。
定义一个友元函数计算stock对象的当日开盘价是否高于当日开盘价。
若是,返回真;
否则,返回假。
定义类stock,计算两个stock对象(前后当日)的当日收盘价并计算当日涨幅。
#include“iostream.h”
constn=5;
classstock
stock(){};
stock(intn,floatmi,floatb,floate);
voidset_stock(intn,floatma,floatmi,floatb,floate);
voidset_stock();
floatget-end();
voidshow_stock();
intnumber;
floatmax,min,begin,end;
);
stock:
stock(intn,floatma,floatmi,floatb,floate)
number=n;
max=ma;
min=mi;
begin=b;
end=e;
voidstock:
set_stock(intn,floatma,floatmi,floatb,floate)
end=e;
floatstock:
get_end()
returnend;
show_stock()
number<
”\t”;
max<
min<
””\t”;
begin<
end<
end1;
set_stock()
”number:
number;
”max:
max;
”min:
min;
”begin:
begin;
”end:
stocksl[100];
stock*p;
for(i=0,p=s1;
i<
n;
i++,p++)
p->
set_stock();
show_stock();
for(i=1,p=s1+1;
”\n”<
\
(p->
get_end()-(p-1)->
get_end())/(p-1)->
get_end()*100<
”%”;
添加静态数据成员。
constn=2;
public:
stock(){}
stock(intn,floatma,floatmi,floatb,floate);
voidset_stock(intn,floatma,floatmi,floatb,floate);
floatget_end();
voidshow_stock();
intget_n_count();
private:
staticintn_count;
intnumber;
floatmax,min,begin,end;
intstock:
n_count=0;
stock(intn,floatma,floatmi,floatb,floate)
n_count++;
numb