C++上机实验题目(2010版)
2010级c课程设计实验答案

2010级c课程设计实验答案一、教学目标本课程的教学目标是使学生掌握2010级C课程的核心知识,提高他们的问题解决能力和创新思维能力。
具体来说,知识目标包括:掌握课程基础知识,了解相关概念和原理;技能目标包括:能够运用所学知识解决实际问题,具备一定的实验操作能力;情感态度价值观目标包括:培养学生的学习兴趣,增强他们对科学探究的热爱,提高他们的团队合作意识和责任感。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:第一部分是课程基础知识,包括相关概念和原理的介绍;第二部分是实例分析,通过分析具体案例,使学生更好地理解知识;第三部分是实验操作,让学生亲自动手进行实验,提高他们的实践能力;第四部分是综合应用,通过解决实际问题,检验学生的学习成果。
三、教学方法为了实现教学目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
讲授法主要用于传授基础知识,使学生掌握基本概念和原理;讨论法用于激发学生的思考,培养他们的创新思维能力;案例分析法用于分析实际问题,使学生能够将所学知识运用到实际中;实验法用于培养学生的实践能力,让他们在动手实验中感受科学的魅力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。
教材是教学的基础,我们将选用符合课程要求的教材;参考书用于拓宽学生的知识视野,提高他们的自主学习能力;多媒体资料用于丰富教学手段,激发学生的学习兴趣;实验设备是实验教学的重要保障,我们将确保实验设备齐全,为学生提供良好的实验环境。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用多种评估方式。
平时表现评估将关注学生的出勤、课堂参与度、小组讨论表现等;作业评估将包括课后练习、小论文、实验报告等,以检验学生对知识的掌握和应用能力;考试评估将设置期中考试和期末考试,全面测试学生的知识水平和问题解决能力。
我们将及时反馈评估结果,指导学生进行改进。
2010春C语言上机试卷与答案

江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷(2010年春)二级C语言(试卷代号C02)(本试卷完成时间70分钟)一、改错题(16分)【程序功能】先将一个正整数转换为十进制数字字符串,再将千位分隔符插入到该字符串中,最后输出该字符串。
【测试数据及运行结果】输入:1234567输出:12345671,234,567【含有错误的源程序】#include <stdio.h>#include <string.h>void ltoa(char s[],long num){ long n=num,i=0;printf("%ld\n",num);while(n){ i++; n/=10; }s[i]= \0 ;while(num){ s[--i]=num%10+'0'; num/=10;}}void insert(char s[]){ char j,k,t;t=j=strlen(s);while(j>3){ j=j-3;for(k=t; k>j; k--)s[k]=s[k+1];s[j]= ',';t++;}}void main(){ static char s[20]; long num;scanf("%d",&num);ltoa(s,num);insert(s,num);puts(s);getch();}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
3.改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。
二、编程题(24分)【程序功能】一个整数的“真因子”是指包括1但不包括整数自身的因子。
2010C语言实验报告参考答案

3、编译、连接无错,运行后屏幕上显示以下结果:
a/b的商=7
a/c的商=3
a/b的余数=10
a/c的余数=15
4.编译、连接无错,运行后屏幕上显示以下结果:
c =-10
实验二顺序结构程序设计
四、程序清单
1
问题1D。
问题2改printf("%c,%c,%d\n",a,b,c);这条语句
答案:
#include<stdio.h>
main()
{
int a,b,c;
a=0;
b=-10;
c= (a>b) ? b:a;
printf("c = %d\n",c);
}
五、调试和测试结果
1.编译、连接无错,运行后屏幕上显示以下结果:
The dress is long
The shoes are big
printf("a/b的商=%d\n",x);
printf("a/c的商=%d\n",y);
x=a%b;
y=a%c;
printf("a/b的余数=%d\n",x);
printf("a/c的余数=%d\n",y);
}
4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符)
{
int a,b,c,x;
scanf("%d%d%d",&a,&b,&c);
if(a>=b)
x=a;
else
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
2010 VC++ 实验报告 包括全部答案

程
序
+
注
释
)
3
3
4
实验__2__实验报告
教学班级:14 学生学号:20091426 学生姓名:余行健 实验日期:3/31 实验地点:7507(机房) 指导教师签名:__________ 实验成绩:___________
一、实验目的
1.掌握对一般数据的输入和输出格式控制方法; 2.掌握对实型数据输出形式的设置和小数位数的控制方法; 3.了解数据输入的相关注意事项。
2. 某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量 的多与少其价格也不同。具体标准见下表:
批发商
数量(个)
单位价格(元/个)
50~200
10
200 以上
8
零售商
数量(个)
单位价格(元/个)
1~20
18
20~40
15
40~50
12
三、实验结果(源程序 + 注释)
8
实验__5__实验报告
#include <iostream> using namespace std; void arrays(int [],int [],int, int ); int main() {
int a[5]={12,3,34,7,23}; int b[5]={26,27,6,8,10}; cout<<"数组 a 的元素是:"<<endl; for(int i=0;i<5;i++) {cout<<a[i]<<" ";} cout<<endl<<"数组 b 的元素是:"<<endl; for(i=0;i<5;i++) { cout<<b[i]<<" ";}
2010级c++实验

实验一c++程序的运行环境1.实验目的1)了解在Visual C++ 6.0 环境下如何编辑、编译、连接和运行一个C++程序;2)通过运行简单的C++程序,初步了解C++源程序的结构和特点;3)掌握C++的数据类型、变量定义及赋值的方法;2.实验内容和步骤1)在Visual C++ 6.0 环境下,编译和运行C++程序a)进入Visual C++ 6.0环境b)在自己指定的子目录中建立一个名为test.cpp的新文件c)从键盘输入课本例1.1d)选择Build->Compile test.cpp命令,对源程序进行编译,观察和分析编译信息,直到编译不出错为止。
e)选择Build->Build test.exe命令,对程序进行连接,生成可执行程序test.exe。
f)选择Build->Execute test.exe命令,执行可执行程序test.exe。
在输出窗口应显示程序运行结果,观察屏幕的变化。
2)输入第1章习题第8题,编译源程序,根据编译信息指出的错误修改程序,直到正确运行输出预期结果。
3)输入并运行下面的程序:#include <iostream>using namespace std;int main(){int a,b;char c1,c2;cin>>a>>b;c1=++a;c2=b++;cout<<”c1=”<<c1<<”,c2=”<<c2<<endl;return 0;}在运行时分别作以下输入:97 97↙97 353↙40 64↙-212 -216↙分析所得到的结果,进一步掌握不同类型数据间赋值的规律。
实验二 C++程序设计初步1.实验目的1)掌握简单的C++程序的编写和调试方法。
2)掌握赋值语句和输入输出的使用方法。
3)掌握顺序结构和选择结构在C++中的实现。
4)掌握循环结构在C++中的实现。
上海交大 2010届 C++ 上机题

实验一VC的使用熟悉VC的使用,用打印“hello world”程序作为实例,练习程序的输入、编译、链接、执行和看结果。
实验二程序设计的基本概念和变量及表达式假设校园电费是0.6元/千瓦时,输入这个月使用了多少千瓦时的点,算出你要交的电费。
假如你只有1元和1毛的硬币,请问各需要多少1元和1毛的硬币。
输入输出:输入这个月使用的电量:11电费:6.6共需6张1元和6张实验三分支程序设计使用switch语句设计一个简单的四则运算计算器,开始的时候由用户选择操作数是整数还是浮点数。
选择浮点数的话操作数与结果都是浮点数然后用户输入:操作数1 运算符操作数2显示计算结果。
若除法的除数为0,则要求显示“除数不能为0”。
输入输出:1.整数运算2.浮点数运算13 +4 = 7实验四分支与循环程序设计猜数字首先随机生成一个1到100的整数,然后由人不断输入数字来猜这个数字的大小。
猜错了,系统会给出一个提示,然后让用户继续猜。
猜对了就退出程序。
例如:随机生成的数是42,开始提示的范围是1~100,然后玩家猜是30,猜测是错误的,系统告诉你太小了。
然后,玩家继续输入60,猜测依然错误,系统告诉你太大了。
直到玩家猜到是42为止。
用户最大的猜测次数是10次。
输入输出:猜数字请输入:30太小了!请输入:60太大了!请输入:50太大了!请输入:40太小了!太大了!请输入:42恭喜你,猜对了实验五数组设计一个井字游戏,两个玩家,一个打圈(O),一个打叉(X),轮流在3乘3的格上打自己的符号,最先以横、直、斜连成一线则为胜。
如果双方都下得正确无误,将得和局。
输入输出:井字游戏开始玩家1:2 2棋盘:? ? ?? O ?? ? ?玩家2:1 2棋盘:? X ?? O ?? ? ?玩家1:1 1棋盘:O X ?? O ?? ? ?玩家2:3 3棋盘:O X ?? O ?? ? X玩家1:3 1棋盘:O X ?? O ?O ? X玩家2:2 1棋盘:O X ?X O ?O ? X玩家1:1 3棋盘:O X OO ? X玩家1胜利实验六函数画图题:根据用户选择在“指定位置”上画出正立等腰三角形(指定位置和高度),倒立等腰三角形(指定位置和高度),长方形(指定位置、长和宽),正方形(指定位置和边长),菱形(指定位置和高度)。
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所示)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交1. 实验题目以附件形式提交,每个附件限一个源程序,附件以自己学号命名;2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交实验题总数为10题(带“*”号),占期末总评成绩的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=22y xq=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删除对象指针。
在不同的位置输出各类count的值。
最后输出"Main function ends."。