CPP上机实验题目(2011版)
CPP上机实验

5、类的应用
要求:定义一个Point类。数据成员:横坐 标与纵坐标;成员函数:返回点的横纵坐 标值。
定义一个Line类。数据成员:Point 类的两个对象。成员函数:返回任意两点 间的距离。
主函数完成的功能,从键盘输入两个点的 坐标(共四个值),输出这两个点的坐标 及两点间的距离。
C++语言程序设计
上机实验
1
1、输出空心菱形图案。如下图:
**************************
************ ************
**********
**********
********
********
******
*ห้องสมุดไป่ตู้****
****
****
**
**
*
*
**
**
****
****
******
******
********
********
**********
**********
************ ************
**************************
2、基本运算与控制:简易计算器
要求:从键盘输入形如1+2,计算机表达式的值,输出结果。要求 能够完成加、减、乘、除,取余五种运算。
3、引用与函数:去除重复元素
要求:把数组a的n个元素复制到数组b 中,但是只在b中保留第一次出现的重复 元素(即数组b中的元素唯一)。最后输 出数组a,b中的值。
4、结构体
要求:定义学生结构类型Student,结构成 员包括学号id,姓名name,成绩score和排 名rank.按照成绩从高到低排序并输出。 对于成绩相同者,其排名也应相同。
实验指导书2011版真题练习+答案

1、打开proj1.cpp,函数的功能是返回所给字符串中大写字母的个数,删除程序代码里面的下划线,并补充相应的代码。
(注意:不要改动其它代码,不得增行或删行,也不得更改程序的结构)(15分)#include "iostream.h"int fun(char s[]){ int i,c=0;for(i=0;s[i]!='\0';i++)if(____________________) //删除下划线并填入答案c++;return c;}解:s[i]>=’A’&&s[i]<=’Z’2、打开proj1.cpp,程序的功能是统计一个字符串包含英文字母的个数,在两条星线间填入相应的内容,使得程序完成该功能。
(注意:不要改动其它代码,不得更改程序的结构)(15分)#include "iostream.h"#include "stdio.h"void main(){ char text[200]; i nt n=0;cout<<"输入一个字符串:"<<endl;gets(text);//**********两条星线间填入相应的内容*******//**********两条星线间填入相应的内容*******cout<<"英文字母的个数是:"<<n<<endl;}解:int i=0;for(i=0;text[i]!='\0';i++)if(text[i]>='A'&&text[i]<='z')n++;3、打开proj1.cpp,将数组b中的字符串复制到数组a中,在两条星线间填入相应的内容,使得程序完成该功能。
(注意:不要改动其它代码,不得更改程序的结构)(15分)#include "iostream.h"void main(){ char a[100],b[]="Y ou are a student."; int i=0;for( ; a[i]!='\0';i++)//*************两条星线之间填入相应的内容***********//*************两条星线之间填入相应的内容***********cout<<a<<endl;}解:{a[i]=b[i];if(b[i+1]=='\0')break;}a[i+1]='\0';4、打开proj1.cpp 该程序的功能是,求100以内的自然数中被14整除的最大数。
C++上机课题及部分答案

上机考试题(1)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。
定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。
在主函数中用Score类定义学生成绩对象数组s[3]。
用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。
实验数据:No Name Math Phi Data Ave1001 Zhou 80 70 601002 Chen 90 80 851003 Wang 70 75 89(2)建立一个存放素数的类Prime,具体要求如下。
①私有数据成员。
"int a[25]:存放指定范围内的所有素数。
int n1,n2:存放指定范围的下限和上限int num:存放素数的个数。
②公有成员函数Prime(int m1,int m2):构造函数,用参数m1、m2初始化n1、n2,同时初始化num。
void primef():求指定范围内的所有素数,把它们依次存放在数组a中。
并将求出的素数个数赋给num。
void show():显示求出的素数的个数及所有的素数,每行输出5个素数。
③在主函数中定义一个Prime类的对象p(100,200),通过p调用成员函数完成求素数及输出素数的工作。
课后习题(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。
用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i ,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。
用公有成员函数Dispaly()显示复数c1、c2与c3 的内容。
!(2)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。
2011C++习题答案(待完善版)

C++课后练习题答案(待完善版)一、说明:分析程序写运行结果题目的答案是经过VC++6.0运行的,同学们可以自己尝试运行。
如发现所有题目的答案有错误请及时共享。
祝大家考试快乐!!(黑体字问题为未解决问题)第二章●C++进行强制类型转换时有几种格式?⏹答:✧(数据类型)表达式数据类型(表达式)●字符串常量与字符常量有什么区别?'c'和"c"有什么区别?⏹答:✧字符串在内存中的存放形式是:按串中字符的排列次序顺序存放对应字符的ASCII码,每个字符占一个字节,并在字符串末尾添加'\0'作为结束标记。
因此,字符常量所占用的内存字节数比字符串中字符的个数多1。
✧'c'是字符常量,"c"是字符串常量。
●假设程序中有“int a[20],*pa=a;”的语句,要表示数组元素a[i]有哪几种方法?⏹答:✧a[i]、*(a+i)、p[i]、*(p+i)●写出程序的运行结果:(1)#include <iostream.h>int a=100;void main(){int a=200;cout<<a<<','<<::a<<endl;}(2)#include <iostream.h>#include <iomanip.h>void main(){int i,j;for(i=4;i>=1;i--){cout<<setw(i+5)<<' ';for(j=i;j<=4;j++)cout<<'*'<<' ';cout<<endl;}}⏹答:(1)200,100(2)** ** * ** * * *●编程求50~1000之间的,各位上的数字之和等于5的整数。
(2011年级)上机考试试卷B(C++下)

信息学院11级计算机科学基础II上机试卷B(考试时间70分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件和.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件和dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误(共10处)。
1)只能修改、不能增加或删除整条语句。
2)请在修改行的末尾用"注释符号//+序号"表示此行修改过,如//3)3)源程序以"学号f1.cpp"命名,存入自己学号命名的文件夹中。
如04011011f1.cpp。
【含错误的源程序】#include<iostream>#include<cstring>using namespace std;const day = 2;class CShoes{int ID;string Name;double *Price;public:CShoes( int =0, string ="\0", double * =NULL );CShoes( CShoes & );~CShoes();void Rewrite( int ,string );friend ostream& operator<<( ostream& out, CShoes &obj ){out<<"ID: "<<obj.ID<<endl<<"Name: "<<<<endl<<"Price list: "<<endl;if ( Price ){for ( int i=0; i<day; i++ )out<<obj.Price[i]<<'\t';out<<endl<<endl;}else out<<"No price were recorded.\n\n";return out;}};CShoes::CShoes(int id,string name,double *p):ID(id),name(Name){if(*Price=new double [day])for(int i=0;i<day;i++)Price[i]=p[i];else{cout<<"Memory allocation error\n!";exit(1);}}else Price=p;}CShoes::CShoes(CShoes &obj){ID=obj.ID;Name=;if(Price){if(Price=new double [day])for(int i=0;i<day;i++)Price[i]=obj.Price[i];else{cout<<"Memory allocation error\n!";exit(1);}}else Price=obj.Price;}CShoes::~CShoes(){cout<<"No. "<<ID<<" shoes were cancelled!\n\n";if(Price) delete Price;}void CShoes:: Rewrite(int id,string name ){ID=id;Name=name;if(Price){Price=new double(day);if(!Price){cout<<"Memory allocation error!\n";exit(1);if(Price){cout<<"please input "<<day<<" price records:\n";for(int i=0;i<day;i++)cin>>Price[day];}}int main(){double plist[day]={399,799};CShoes shoes(1,"Sandals",plist);cout<<shoes;CShoes shoes1(shoes);cout<<shoes1;shoes1.Rewrite(6,"Boots");cout<<shoes1;return 0;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
C++第一次上机实验参考答案

第一次上机实验答案1、输入三个整数从大到小排序源码:#include<iostream>using namespace std;int main(){int a,b,c;int max, min;cout <<"请输入三个不等整数:\n";cin>>a>>b>>c;if (a>b){max=a;min=b;}else{max=b;min=a;}if (c>max) cout<<c<<'\t'<<max<<'\t'<<min<<'\n';else if (c<min) cout<<max<<'\t'<<min<<'\t'<<c<<'\n';else cout<<max<<'\t'<<c<<'\t'<<min<<'\n';return 0;}运行结果:2、交换两个整数源码:#include<iostream>using namespace std;int main(){int a,b,c;cout<<"请输入两个数:\n";cin>>a>>b;c=a;a=b;b=c;cout<<"a="<<a<<'\t'<<"b="<<b<<'\n';return 0;}运行结果:3、去掉输出语句cout << "a,b = " ; 对程序的功能有影响吗?如果没有,那么该语句在程序中起何作用?请解释。
cpp-上机实验

实验4 综合设计
内容:要求学生从如下实验中任选其一
学籍管理系统的设计与实现
公司工资管理系统的设计与实现 多功能运算器的设计与实现 车库管理系统的设计与空航天大学
实验4 综合设计
算法设计:(主要完成实验需要用到的类图、关 键程序流程图) 调试过程:(主要包括调试过程中出现的问题及 改正方法) 测试结果:(主要写测试数据及运行结果) 程序代码:
沈阳航空航天大学
实验2 类的继承与派生-2
设计一个大学的类系统,学校中有学生、教师, 每种人员都有自己的特性,他们之间有相同的地 方(以person类为基类,有姓名、编号),又有各 自不同的特性(学生:专业、平均成绩;教师:职 称、工资)。利用继承机制定义这个系统中的各个 类,要求输入姓名等信息后再将这些信息输出。
沈阳航空航天大学
实验3 多态性
实验题目: 类的继承与多态
实验目的:
掌握派生的类别与方式
了解派生类中如何使用基类的成员、基类成员在派生 类中的访问控制
了解静态重载与动态联编的区别与联系
要求:学生能够编制、调试、运行多个具有继承 关系的类。
沈阳航空航天大学
实验3 多态性
实验内容:要求学生从如下实验中任选其一
图形计算类的设计与实现
学生管理类的设计与实现 公司人员管理类的设计与实现 车辆管理类的设计与实现 银行储蓄管理类的设计与实现
沈阳航空航天大学
实验3 多态性
算法设计:(主要完成实验需要用到的类图、关 键程序流程图) 调试过程:(主要包括调试过程中出现的问题及 改正方法) 测试结果:(主要写测试数据及运行结果) 程序代码:
沈阳航空航天大学
沈阳航空航天大学
C语言培训上机实验题目

安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。
将下载的文件Microsoft Visual Studio.rar解压后即可使用。
请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。
编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。
2.掌握C语言程序设计的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。
1-2 编程示例,在屏幕上显示一个短句“Hello World!”。
源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。
(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。
图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。
2011年小学期C++实验_修改_

通过本实验巩固《C++语言程序设计》课程教学成果,深入理解结构体、类和对象、继承与多态、指针、链表、动态分配内存和文件操作等C++程序设计中的中高级技术,熟练掌握C++语言的调试方法,初步培养良好的编程习惯和编程风格,初步学习程序文档的撰写方法。
一、题目1、程序控制基础2、IO流类3、数组应用4、简单图形管理5、异质链表6、图书管理系统二、调试环境VC++6.0所有同学必须提交实验报告电子版一份,内容包括:1、填写完整的实验报告;2、所有程序的源代码及注释等相关文件;请将所有文件压缩成rar格式一并提交,题目为“班级学号姓名.rar”。
三、注意事项任何人不得抄袭、拷贝。
凡发现实验报告或源程序雷同,按不及格处理。
题目一程序控制基础(8学时)具体要求:1、输入生日的年、月、日,输出是星期几提示:公元1年1月1日是星期一,需要求出生日离1年1月1日共多少天。
先计算公元1年到本日的上一年年底多少天,再加上本年到生日的上月底共多少天,最后加上当月过去多少天。
注意对闰年进行区别处理;还应注意输入日期不合法时的意外处理。
思考并验证:(1)验证:今天是2011 年8 月15 日,星期一。
你的生日是1992年12月13日,是星期日。
(2)程序中应该对输入日期的合法性进行验证,应该考虑哪些方面?年份不能有负数,月份不能小于0也不能大于12,日期不能大于该月分的天数,也不能小于0.(3)判断闰年的条件是什么?year%400==0||(year%4==0&&year%100!=0)2、证明哥德巴赫猜想:任何大于6的偶数n都能表示为两个素数之和。
要求输入任意一个大于6的偶数,输出两个素数之和,如输入40,输出“40=3+37”。
要求,定义并使用判断素数的函数,函数原形为int sushu ( int a);思考并验证:(1)假设sushu()函数已经定义好了,那main()函数该如何设计?请写出main()函数的算法描述,用到函数sushu()的时候直接调用即可。
C++上机题目(答案)

答案: #include <iostream.h> void main(int argc, char * argv[]) { cout<<”The reverse sequence of parameter:”; for(int i=argc-1; i>0; i--) cout<<argv[i]<<” “; }
private: int itsAge;
}
CAT & MakeCat(int age); int main() {
int age = 7; CAT Boots = MakeCat(age); cout << "Boots is " << Boots.GetAge()<<”years old\n”; return 0; }
friend void setValue(Animal& ,int,int); 错误 2:
在类中使用到了函数 setvalue(Animal& , int)和 setValue(Animal& ,int,int),但没有函数原 型定义,所以需要在类定义前加上以下三个语句:
class Animal; void setvalue(Animal& , int); void setValue(Animal& ,int,int);
itsStatic--;
:}
:
void myClass::GetStatic()
{
return itsStatic;
}
: int main()
:{
2011年C++机试100真题(推荐)

{
below[k]=score[i];
k++;
}
return k;
}
2: 第2题 请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:
void fun(int *a, int *n)
{
pp[k]=t[i];
k++;
}
*n=k;
}
4: 第4题 请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:
void fun(char *tt, int pp[])
case ‘v’: pp[21]++;break;
case ‘w’: pp[22]++;break;
case ‘x’: pp[23]++;break;
case ‘y’: pp[24]++;break;
case ‘z’: pp[25]++;break;
}
tt++;
}
}
16: 第16题 请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。
答案:
float fun(float h)
{
long t;
float s;
h=h*1000;
(2011年级)上机考试试卷A(C++下)(答案)

参考答案--------信息学院11年级计算机科学基础II上机试卷A(考试时间70分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件和.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件和dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误(共10处)。
1)只能修改、不能增加或删除整条语句。
2)请在修改行的末尾用"注释符号//+序号"表示此行修改过,如//3)3)源程序以"学号f1.cpp"命名,存入自己学号命名的文件夹中。
如04011011f1.cpp。
【含错误的源程序】#include<iostream>#include<cstring> //错1,该句改为:#include<string>using namespace std;#define day 3class CGlasses{ int ID;string Name;double *Price;public:CGlasses( int =0, string ="\0", double * =NULL );CGlasses(CGlasses &);~CGlasses();void Rewrite( int ,string );friend ostream& operator<<( ostream& out, CGlasses &obj ){out<<"ID: "<<obj.ID<<endl<<"Name: "<<<<endl<<"Price list: "<<endl;if(obj.Price){for(int i=0;i<day;i++)out<<obj.Price[day]<<'\t'; //错2,该句改为:out<<obj.Price[ i ]<<'\t';out<<endl<<endl;}else out<<"No price were recorded.\n\n";return cout; //错3,该句改为:return out;}};CGlasses::CGlasses( int id, string name, double *p) : id(ID), Name(name)//错4,上一行改为:CGlasses::CGlasses( int id, string name, double *p) : ID(id), Name(name) {if ( !p )//错5,该句改为:if ( p ){if ( Price=new double [day] )for ( int i=0; i<day; i++ )Price[ i ] = p[ i ];else{cout<<"Memory allocation error\n!";exit(1);}}else Price=p;}CGlasses::CGlasses( CGlasses obj )//错6,该句改为:CGlasses::CGlasses( CGlasses &obj ) {ID=obj.ID;Name=;if ( obj.Price ){if ( Price=new double [day] )for ( int i=0; i<day; i++ )Price[ i ] = obj.Price[ i ];else{cout<<"Memory allocation error\n!";exit(1);}}else Price=obj.Price;}~CGlasses() //错7,该句改为:CGlasses::~CGlasses(){cout<<"No. "<<ID<<" glasses were deleted!\n\n";if ( Price ) delete Price; //错8,该句改为:if ( Price ) delete [ ] Price;}void CGlasses:: Rewrite( int id, string name ){ID=id;Name=name;if ( !Price ){Price=new double(day); //错9,该句改为:Price=new double[day];if ( !Price ){cout<<"Memory allocation error!\n";exit(1);}}if ( Price ){cout<<"please input "<<day<<" price records:\n";for ( int i=0; i<day; i++ )cin>>Price[ i ];}}int main(){double plist[day]={70,85,78};CGlasses glass(10,"Sun glasses",*plist);//错10,上一行改为:CGlasses glass(10,"Sun glasses",plist);cout<<glass;CGlasses glass1( glass );cout<<glass1;glass1.Rewrite(11,"Hyperopic glasses");cout<<glass1;return 0;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
CPP上机实验题目(2011版)

实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为10051234的同学提交实验1的第5题,则附件命名方式为:1-5-10051234.cpp,错误提交的将被退回。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交带“*” 号实验题,全部题目占期末总评成绩的20%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
2011年计算机等级考试二级C语言上机题库(含答案)

认识实习报告9月初,我们先前往了山东威海滨田印刷机械有限公司进行认识实习。
此后我们又去了一家大型零件加工厂进行了参观。
通过这次的实习,我们了解到机械行业第一线的一些具体情况,了解了工业生产实施的具体过程,同时也对一些工厂的技术实施,管理方法有了一定的认识。
前往滨田印刷机械有限公司以后,我们在指导老师和工程师的带领下,分批开始了对该厂的参观。
这一切对我们而言陌生有新鲜。
开始,我们在一位严谨的工程师的带领下,去了零件加工厂了解了各类零件的加工。
其中参观了各种自动化得机床,我们还从一部分机床中看到了上学期我们金工实习那些机床的影子。
但给我最大的感触是整个车间里,国产的机床并不是很多。
整个过程纪律严明,一边参观零件的加工,一边聆听了工程师给予我们的讲解了解了整个工厂的第一道程序。
此后,我们前往了三间组装车间,参观了52系列,66系列和47系列三种印刷机的组装。
这次给我们介绍的是一位年轻的工程师,他详细的向我们介绍了这三种印刷机的一些知识。
我们也了解了刚知道这几个型号产生的疑惑,原来,47,52和66的意思是最大用纸尺寸的长。
其中47系列是单色印刷机,可用于印号码,打孔线和树脂凸版印刷。
使用的集中供油系统可以有效的防止因局部遗忘加油造成的零件磨损,延长零件的精度和使用寿命,杜绝润滑油浪费,保护环境卫生。
52系列性能较高,大都是以高级胶印机所具有的高耐久性、高精度的部件为基础,生产的高性能印刷机。
同时也是可适合文字、线条印刷,实地印刷等各种印刷需要。
另外通过添加多种备选装置,使机器升级到更高效率的印刷机。
到66系列时,工程师大哥向我们介绍的较为详细,它分为两款:WEIHAI HAMADA66-NP 实现精美平版印刷及号码印刷的高品质重型印刷机和WEIHAI HAMADA66 真正高品质的重型印刷机。
WEIHAI HAMADA66系列是以真正高质量印刷为目标而生产的大四开重型胶印机。
这款先进的机械拥有按扭式与触摸式键盘,所需操作全部集中在3处操作盘上。
2011浙江省C语言二级考试上机试题及实验题库

2010浙江C语言二级考试上机试题及实验题库1.三个数比较大小。
#include <stdio.h>void swap(______1______) //int *pa,int *pb{ /*交换两个数的位置*/int temp; temp = *pa; *pa = *pb; *pb = temp; }void main(){ int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b) swap(&a,&b);if(b>c) swap(&b,&c);if(______2______) //a>bswap(&a,&b);printf("%d,%d,%d",a,b,c); }2.表达式求和。
#include <stdio.h> #include <math.h>void main(){ FILE *fp;float n=1,t=1,pi=0;int i;// 从以下开始答题i=1;while(fabs(t)>=1e-6){ pi=pi+t; i=-i; n=n+2; t=i/n; } fp=fopen("Design1.dat","w");fprintf(fp,"%.6f",4*pi);fclose(fp); }运行结果:3.1415943.字母后移循环输出。
#include <stdio.h>void main(){ char c; c=getchar();if(______1______) // c>='a' && c<'v' c=c+5;elseif (c>='v' && c<='z')______2______ // c=c-21;putchar(c); }4.求满足条件的数。
2011浙江省C语言二级考试上机试题及实验题库

2010浙江C语言二级考试上机试题及实验题库1.三个数比较大小。
#include <>void swap(______1______) f",4*pi);fclose(fp); }运行结果:3.字母后移循环输出。
#include <>void main(){ char c; c=getchar();if(______1______) f",n,pow,n));fclose(p); }运行结果:283,9921375.求满足条件的数。
#include <>void main(){ int m=0,t=1,n;while( _____ 1 ________); f",s); fclose(p); }运行结果:11.数组赋值。
#include <>void main(){ int a[10],b[10],i;printf("\ninput 10 numbers: ");for (i=0; i<10;i++) /* 数组输入*/scanf("%d", &a[i]);for (i=1; i<10; i++)b[i]=______1______; f",s); fclose(p); }运行结果:13.十进制数转换为二进制数。
#include <>void dec2bin(int m){ int bin[32],j;for(j=0;m!=0;j++){ bin[j]= ______1______; f",s);fclose(p); }运行结果:15.在字符串中删除数字字符。
#include <> #include <> #include <>void f(char *s){ int i=0;while(s[i]!='\0'){if(isdigit(s[i])) ____1____(s+i,s+i+1); ,a[i].y); ,&a[i].y);for(i=0;i<n;i++)if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)printf("%f,%f\n",a[i].x,a[i].y); }**试题本身有错误,a=(struct axy *) malloc(n*2*sizeof(float));20.从a数组中找出偶数放入b数组。
2011级软件班c++实验题目

软件学院2010级面向对象程序设计实验手册姓名班级学号文件名:班级号_学号_姓名_题号.cpp(多文件应压缩为rar文件)实验1 VisualC++6.0开发环境的初步使用(3学时)实验目的(1)熟悉VC6开发环境。
(2)初步掌握简单程序的上机操作基本步骤,熟悉C++单文件程序的输入、编译、链接和运行的过程。
(3)初步掌握菜单栏、工具栏、项目工作区、文件编辑区、输出区和状态栏等的使用。
(4)初步掌握程序的编辑修改和调试。
实验内容使用VC6开发环境来调试以下两个C++源程序。
程序1#include <iostream.h>#include <math.h>void main(){ double a,b,c,s,area;cout <<"a,b,c, =";cin >>a>>b>>c; // 输入三角形的三条边s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c)); // 求三角形的面积cout <<"area="<<area<<endl;}思考并验证:(1)给出两组输入/输出数据a= b= c= area=a= b= c= area=(2)如果去掉第一行和第二行的包含命令,编译时出现什么信息?程序2#include <iostream.h>double max (double x,double y);void main(){ double a,b,c;cout<<"input two numbers: ";cin >>a>>b; // 输入两个实数c=max(a,b); // 求两个实数最大值cout <<"maximum="<<c<<endl;}double max(double x,double y){ if(x>y)return x;elsereturn y;}思考并验证:(1)如果输入a=1.3 b=3.5,输出结果是什么?(2)程序由哪几个函数组成,哪个函数是必须的?姓名班级学号文件名:班级号_学号_姓名_题号.cpp(多文件应压缩为rar文件)实验2 数据类型、运算符和表达式(3学时)实验目的(1)掌握C++数据类型的概念。
C++上机实验报告实验一1

实验一(1)实验目的:1、熟悉Microsoft Visual C++6、0集成开发环境2、学习创建控制台应用程序项目3、编辑源程序4、编译与调试程序(2)实验要求:1、熟悉程序开发环境2、编辑源程序3、编译并调试程序(3)实验内容及实验步骤1、熟悉Microsoft Visual Studio 6、0 的开发环境2、编辑并调试下面的程序注:工程中的文件包括三个:TimeType、h、TimeType、cpp、Diary、cpp(4)源程序:<Diary、cpp>#include<iostream>#include"TimeType、h" //添加TimeType、h头文件using namespace std;int main(){TimeType time; //定义类类型的变量time TimeType othertime; //定义类类型的另一变量othertime int hours;int minutes;int seconds;cout<<"Enter a time (use hours<0 to quit):";cin>>hours>>minutes>>seconds;while(hours>=0) //设置循环结束条件{time、Set(hours,minutes,seconds); //调用设置时间函数time、Increment(); //调用时间增秒函数cout<<"Incremented time is";time、Write(); //调用打印函数打印时间到屏幕上cout<<endl;cout<<"Enter a time(use hours<0 to quit):";cin>>hours>>minutes>>seconds; //输入另一个类变量的数据成员值othertime、Set(hours,minutes,seconds);if(time、Euqal(othertime)) //判断两个时间就是否相同cout<<"time is equal to othertime"<<endl;}//whilereturn 0;}头文件:<TimeType、h>#include<iostream>using namespace std;class TimeType{ //TimeType类定义public:void Set(int hours,int minutes,int seconds); //公有成员函数void Increment();void Write();// const;bool Euqal(TimeType otherTime) ;//const;bool LessThan(TimeType otherTime);//const;private: //私有数据成员int hrs;int mins;int secs;};void TimeType::Set(int hours,int minutes,int seconds){hrs=hours;mins=minutes;secs=seconds;} //给类中的数据成员赋值void TimeType::Increment(){secs++;if(secs>59){secs=0;mins++;if(mins>59){mins=0;hrs++;if(hrs>23) hrs=0;}}} //Increment()将类中时间成员的值调整为下一秒的时间void TimeType::Write() //const{cout<<hrs<<':';if(mins<10) cout<<'0';cout<<mins<<':';if(secs<10) cout<<'0';cout<<secs;} //Write()输出完整时间bool TimeType::Euqal(TimeType otherTime){return(hrs==otherTime、hrs&&mins==otherTime、mins&&secs==otherTime、secs);} //返回布尔类型的值,若两个时间相等则返回1 bool TimeType::LessThan(TimeType otherTime){return(hrs<otherTime、hrs||hrs==otherTime、hrs&&mins<otherTime、mins||hrs==otherTime、hrs&&mins==otherTime、mins&&secs<otherTime、secs); } //若前一个输入的时间小于后一个时间,则返回1 运行结果:心得体会:了解了类的基本使用规则,增强了编译调试的能力,加深了对面向对象的设计语言的理解。
c++上机试卷H

10-11-2非电类上机考试第四场试卷_F(2011年1月)学号姓名成绩(考试时间70分钟,卷面分数100分)说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于保存上交的考试文件。
先在D盘编写调试程序,最后将自己的源程序(.cpp)文件拷贝至Z盘自己的文件夹。
一、改错题:(50分)【题目】以下程序中fun函数的功能是:找出所有小于x的正整数中,将能整除x且是奇数的数按从小到大的顺序放在pp数组中,这些数的个数通过返回值返回。
【测试数据与运行结果】测试数据:100运行结果:1 5 25【要求】只允许在原语句上进行修改,可以增加个别说明语句,但不能增加或删除整条程序语句或修改算法。
【注意】将源程序以“学号F1.cpp”为文件名存入Z盘自己的目录中。
#include <iostream.h>int fun(int x, int pp[ ]){int i,j=0,k=0,m;int n;while(i<=x) {m=i%2;if(m) {pp[j]=i;j++;}i++;}for(i=0,i<j,i++){ m= x%pp[i];if(m=0) {pp[k]=pp[i];k++;}}n=k;return n;}void main() {int x,p[100],n;cin>>x;n=fun(x,p[100]);cout<<"能整除"<<x<<"的奇数有:";for(int i=0;i<n;i++)cout<<p[i]<<'\t';}二、编程题:(50分)【编程要求】根据级数展开式计算f (x)。
(30)11652321)(753+-+-=x x x x x f 注:后一项的分子是前一项的分子分母之和,后一项的分母是前一项的分子分母之积。
1.编写函数double fun(double x),计算f (x)的近似值,直到最新项的绝对值小于10-6;2. 编写主函数main ,在主函数中建立循环,循环中由键盘输入x 值,若x 的值小于1并大于0;调用函数fun 计算f (x)的近似值,并输出计算结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为10051234的同学提交实验1的第5题,则附件命名方式为:1-5-10051234.cpp,错误提交的将被退回。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交带“*”号实验题,全部题目占期末总评成绩的20%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
3. 编写函数判断一个数是否是素数,在主程序中实现输入、输出。
4. 编写一个程序,设计一个函数可以计算并返回输入的4个数的平均值。
*5. 给定某个年、月、日的值,例如,2005年7月11日,计算出这一天属于该年的第几天,要求写出计算闰年的函数和计算日期的函数。
三、实验要求1. 结合上课内容,写出程序、调试程序,使用典型数据测试程序,并就实验结果加以分析。
2. 整理上机步骤,总结经验和体会。
3. 完成实验,并上交程序。
实验2 指针与引用一、实验目的1. 熟练掌握指针、地址、指针类型、void指针、空指针等概念;2. 熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;3. 会使用数组的指针和指向的指针变量;4. 会使用字符串的指针和指向字符串的指针变量;5. 学会使用指向函数的指针变量;6. 了解指针与链表关系。
二、实验内容1. 编写一个函数f,将传入此函数的直角坐标值转换为极坐标值,并返回主调函数中。
求极坐标的公式是:c=22yxq=arctan(y/x)若要将两值返回主调函数,有多种方式可以完成,请试之:(1)两值均以指针形参带回(2)由指针形参带回一个值,函数值返回另一个值(3)两值均以引用形参返回(提示:程序中可以使用库函数sprt、pow及atan,它们的头文件为math.h)2. 使用指针变量对一字符串按照字母,空格、数字和其他字符进行分类统计(提示:读一行字符包括空格用函数cin.getline(ch, 81) )。
3. 用指针变量设计一通用函数,该函数查找实型数组中最大和最小元素并输出相应元素和下标。
三、实验要求1. 结合上课内容,写出程序、调试程序,使用典型数据测试程序,并就实验结果加以分析。
2. 整理上机步骤,总结经验和体会。
3. 完成实验,并上交程序。
实验3 类和对象一、实验目的1. 掌握类的概念、类的定义格式、类的成员属性和类的封装性;2. 掌握对象的定义;3. 理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4. 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数,能够根据给定的要求定义类并实现类的成员函数;5. 掌握友元函数的含义,友元函数和成员函数的区别。
二、实验内容1. 定义一个圆类,计算圆的面积和周长。
要求:分别用成员函数和友元函数来求圆的面积和周长。
2. 定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:(1)使用成员函数实现对数据的输入、输出;(2)使用构造函数和析构函数实现对数据的输入、输出。
*3. 定义日期类型Date。
要求有以下成员:(1)可以设置日期;(2)日期加一天操作;(3)输入函数,输入格式为:XXXX XX XX,如2010 4 13;(4)输出函数,输出格式为:XXXX年XX月XX日,如2010年4月11日。
*4. 设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作:(1)可以重置数组的大小(Resize)(2)可以通过下标返回数组元素,并对下标越界情况进行检查(3)可以利用已知数组对象对整个数组赋值和初始化(4)可以返回当前数组的大小(Size)最后用数据验证你所设计的类。
提示:(1)利用已知数组对象对整个数组赋值,说明要求重载等号运算符(2)利用已知数组对象对整个数组初始化,说明要求重载拷贝构造函数(3)要求用指针存储数组对象中元素三、实验要求1. 结合上课内容,写出程序、调试程序,使用典型数据测试程序,并就实验结果加以分析。
2. 整理上机步骤,总结经验和体会。
3. 完成实验,并上交程序。
实验4 继承与派生类一、实验目的1. 理解继承的含义,掌握派生类的定义方法和实现;2. 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3. 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;4. 理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。
二、实验内容*1. 编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher 的基类。
*2.编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。
(3)定义主函数,求球、圆柱、圆锥的和体积。
三、实验要求1. 结合上课内容,写出程序、调试程序,使用典型数据测试程序,并就实验结果加以分析。
2. 整理上机步骤,总结经验和体会。
3. 完成实验,并上交程序。
实验5 多态性一、实验目的1. 掌握用成员函数重载运算符的方法;2. 掌握用友元函数重载运算符的方法;3. 理解并掌握利用虚函数实现动态多态性和编写通用程序的方法。
二、实验内容与步骤*1. 上机实验题一定义一个复数类,通过重载运算符:*,/,直接实现二个复数之间的乘除运算。
编写一个完整的程序,测试重载运算符的正确性。
要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
⑴分析两复数相乘的计算公式为:(a+b i)*(c+d i)=(ac–bd )+(ad+bc) i两复数相除的计算公式为:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d) i复数类及运算符重载函数可定义为:class Complex{float Real, Image;public:C omplex(float r=0,float i=0){Real=r;Image=i;}v oid Show(){cout <<"Real="<<Real<<'\t'<<"Image="<<Image<<'\n';}friend Complex operator *(Complex &, Complex &);Complex operator/(Complex &); //重载运算符/};Complex operator*(Complex &c1,Complex &c2){Complex t;t.Real = c1.Real * c2.Real - c1.Image * c2.Image;t.Image = c1.Image * c2.Real + c1.Real * c2.Image;return t;}Complex Complex::operator/(Complex &c){Complex t;t.Real = (Real *c.Real+ Image * c.Image)/(c.Real*c.Real+ c.Image * c.Image);t.Image = (Image *c.Real - Real * c.Image)/(c.Real*c.Real+ c.Image * c.Image);return t;}⑵上机要求增加重载复数的加法和减法运算符的功能,实现两个复数的加法,一个复数与一个实数的加法;两个复数的减法,一个复数与一个实数的减法。
用成员函数实现加法运算符的重载,用友元函数实现减法运算符的重载。
自已设计主函数,完成程序的调试工作。
*2. 上机实验题二编写程序:声明一个哺乳动物类Mammal,再由此派生出狗类Dog和猫类Cat。
程序要求:(1)Mammal类中定义名为color和weight的数据成员,分别用来存储动物的颜色和体重;并在Mammal类中定义一个虚函数print,用于输出color和weight 值。
(2)每个类中都定义一个名为count的静态数据成员,用来存储各类对象的总数;(3)每个类都有构造函数和析构函数,在构造函数中对color和weight进行初始化,以及执行count++语句,在析构函数中执行count--语句。
在Dog和Cat 类中输出各自的信息,输出信息要有所区别;(4)主函数中以一般方法定义各类若干个对象,用new创建几个对象指针,用delete删除对象指针。