华中科技大学c第次上机作业

合集下载

华中科技大学 类的上机答案

华中科技大学 类的上机答案

第四章上机第一套第一题:class Rectangle{private:double left;double top;double right;double bottom;public:Rectangle(double a=0,double b=0,double c=0,double d=0 );~Rectangle(){};void Assign(double a,double b,double c,double d);void Show();double getLeft(){return left;};double getTop(){return top;};double getRight(){return right;};double getBottom(){return bottom;};double Area();double Perimeter();};Rectangle::Rectangle(double a,double b,double c,double d){left=a; top=b; right=c;bottom=d;}void Rectangle::Assign(double a,double b,double c,double d){left=a; top=b; right=c;bottom=d;}void Rectangle::Show(){cout<<"left-top point is ("<<left<<","<<top<<")"<<'\n';cout<<"right-bottom point is ("<<left<<","<<top<<")"<<'\n';}double Rectangle::Area(){return fabs((right-left)*(bottom-top));}double Rectangle::Perimeter(){return 4*(right-left);}第二题char mid;Person::Person(char *id, char *name, char sex,int birthday,char *homeadd){ strcpy(IdPerson,id);strcpy(Name,name);Sex=sex;Birthday=birthday;strcpy(HomeAddress,homeadd);}Person::Person(){IdPerson[0]='\0';Name[0]='\0';Sex=mid;Birthday=0;HomeAddress[0]='\0';}Person::Person(Person&Ps){cout<<""<<endl;strcpy(IdPerson,Ps.IdPerson);strcpy(Name,);Sex=Ps.Sex;Birthday=Ps.Birthday;strcpy(HomeAddress,Ps.HomeAddress);}第三题class Timedate{private: int year,month,date;int hh,mm,ss;public: Timedate(int=2000,int=1,int=1);void putdate(int y,int m,int d);void puttime(int n,int m,int s);void list();};Timedate::Timedate(int y,int m,int d ){year=y; month=m; date=d;hh=12; mm=30; ss=0;}void Timedate::putdate(int y,int m, int d){year=y; month=m; date=d;} void Timedate::puttime(int h,int m,int s){hh=h; mm=m; ss=s;第四题#include<iostream>#include<cmath>using namespace std;const double PI=3.14159265;class Circle{private:double r;double Circumference;double Area;public:Circle(double a=0);Circle(Circle &);void SetR(double R);~Circle(){};double GetR(){return r;};double GetCircumference(){return Circumference;};double GetAreaCircle(){return Area;};};Circle::Circle(double a){r=a;Area=PI*r*r;Circumference=2*PI*r;}Circle::Circle(Circle &cl){r=cl.r; Area=cl.Area; Circumference=cl.Circumference;}void Circle::SetR(double R){ r=R; Area=PI*r*r; Circumference=2*PI*r;}第二套上机题目第一题;class Circle{private:double radius;public:double area();double circumference();void Set(double r1);Circle(double r=0):radius(r){}};double Circle::circumference(){return 2*PI*radius;}void Circle::Set(double r1){radius=r1;}double Circle::area(){return PI*radius*radius;}class Box{private :double length;public:void Set(double l1);Box(double l=0):length(l){}double area();double circumference();};double Box::circumference(){return 4*length;}void Box::Set(double l1){length=l1;}double Box::area(){return length*length;}class NewStyle{public:Circle a;Box b;NewStyle(Circle a1,Box b1);double S();double L();void Set(Circle a2,Box b2);};NewStyle::NewStyle(Circle a1,Box b1){a=a1;b=b1;}void NewStyle::Set(Circle a2,Box b2){a=a2;b=b2;}double NewStyle::S(){return a.area()-b.area();}double NewStyle::L(){return a.circumference()+b.circumference();}第二题:date::date(int Year,int Month,int Day){year=Year; month=Month; day=Day;}void date::setdate(int Year,int Month,int Day){year=Year; month=Month; day=Day;}int date::get_year(){return year;}int date::get_month(){return month;}int date::get_day(){return day;}card::card(int Book, int Reader,date Borrow_day,int Expiry ):book(Book),reader(Reader),borrow_day(Borrow_day),expiry(Expiry){}date card::get_borrow_day(){return borrow_day;}date card::get_return_day(){date return_day;return_day.setdate(borrow_day.get_year(),borrow_day.get_month(),borrow_day.get_day()+ expiry);int i=return_day.get_month(),a;int year=return_day.get_year();int day=return_day.get_day();if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) a= 31;else if(i!=2) a =30;else if((year%4==0&&year%100!=0)||(year%400==0)) a=29;else a=28;while(day>a){i++;day-=a;if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) a= 31;else if(i!=2) a =30;else if((year%4==0&&year%100!=0)||(year%400==0)) a=29;else a=28;}while(i>12){year++;i-=12;}return_day.setdate(year,i,day);return return_day;}int card::get_book(){return book;}int card::get_reader(){return reader ;}int card::get_expiry(){return expiry;}。

c语言作业(2)

c语言作业(2)

提交作业规范:(1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“)(2)上传到文件夹:偶春生\班级。

千万别传错。

注意:(1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。

(2)如果不能联网,请改网关地址:252或253(3)开机进入“basis”第一次上机题目:(1)从键盘上输入四个整数,计算并输出四个数的平均值。

(2)输入球的半径,计算并输出球的体积和表面积。

(3)输入一个三位正整数,分别输出该数的个位、十位和百位。

(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12)(4)请测试++、--、关系和逻辑运算符。

第二次上机题目:(1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。

(2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。

”,如果是小写字符,请输出:“您输入的是小写字符。

”,(3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。

(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。

)(5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。

第三次上机题目:(1)输入十个数,分别计算出其中正数、负数的和。

(2)输出1—100内能被3整除或个位数是3的数。

(3)打印出大写英文字母,每行最多输出十个。

(4)输入十个数,求出其中的最小值。

(5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n!。

华中科技大学-C语言程序设计_上机2019

华中科技大学-C语言程序设计_上机2019
• 课后习题 • 上机指导书
华中科技大学信息学院平台课—C语言程序设计
8
第五次上机
• 程序编写 ➢ 输入 n 个整数( n<10),排序后输出。排序的原则由函数 的一个参数决定,参数值为 1,按递减顺序排序,否则按递 增顺序排序。 ➢ 课后习题15
➢ 插入排序
• 课后习题 • 上机指导书
华中科技大学信息学院平台课—C语言程序设计
7
第四次上机
• 1. 已知五位数a2b3c能被23整除,编程求此五位数。 • 2. 编写函数GetMaxMin,求3个整形数据的最大值和最小值,
main函数完成输入3个整数值,调用所编函数计算最大值和最小 值,在main函数中输出最大和最小值。 • 3. 掌握程序调试方法,包括断点、单步、观察变量。(验证第四 章一(1-3))
➢ 输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9
。取2位小数。
• 课后习题
➢ 五、程序3
➢ 表达式的值
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
6
第三次上机
• 程序编写 ➢ 第3章 二 4、6、8、12、14
• 课后习题ቤተ መጻሕፍቲ ባይዱ
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
华中科技大学信息学院平台课—C语言程序设计
3
上机要求
• 教学方式上机需要实验报告(上机前准备好
),给出测试内容(包括定义程序目标、设
计程序),写出代码
• 上机调试,记录出现问题,给出解释
• 用不同颜色笔修改上机报告中的程序
• 交上机报告
华中科技大学信息学院平台课—C语言程序设计
4
第一次上机

华科上机试题答案

华科上机试题答案

上机考试。

一般网站上公布上机环境要求是TC2.0,但实际上是可以使用VC的。

这里有一点特别要大家注意:TC2.0只支持纯C代码,不支持C++风格代码。

华科的计算机学生称,不管你是用VC还是TC,老师都要在TC2.0上进行验收程序,以确认你的代码是纯C。

比如:p = new Node ; 的代码写法在TC2.0下是通不过的,只能写p = (Node *)malloc (sizeof (Node)) ; 。

另外TC2.0不支持引用,如:Pop (Stack &s , ElemType &e)中含有“&”的引用,在TC2.0下无法通过。

华科的上机题目每年都差不多,经常考的就是排序、链表和树的操作等。

建议在去复试前一定要进行专门练习上机。

08年的华科招收研究生上机试题:(1)输入一个十进制数,将其先转化为八进制数,然后再输出#include<stdio.h>main(){int a = 0 ;printf ("Please enter a decimal number:") ;scanf ("%d",&a) ;printf ("%d's octal number is %o\n",a,a) ;}(2)用户输入一个文本名,编程实现输出文本中最长的一行和最短的一行。

如果最长和最短的不止一行,请全部输出。

#include<stdio.h>#include<stdlib.h>#include<string.h>#define BUFFSIZE 1000int main(){FILE *fp;char filename[255];printf("input file name:");scanf("%s",filename);if (NULL==(fp=fopen(filename,"r"))){printf("file open error!");return 0;}char Line[BUFFSIZE][BUFFSIZE];int i=0;int cnt=0;while((fgets(Line[i], BUFFSIZE, fp))&&i<BUFFSIZE) {//printf("%s",Line[i]);i++;cnt++;}char tempMax[BUFFSIZE];char tempMin[BUFFSIZE];strcpy(tempMax,Line[0]);strcpy(tempMin,Line[0]);//printf("%s\n",tempMax);for(i=1;i<cnt;i++){if(strlen(Line[i])>strlen(tempMax))strcpy(tempMax,Line[i]);if(strlen(Line[i])<strlen(tempMax))strcpy(tempMin,Line[i]);}int j=-1;printf("longest string:\n");for(i=0;i<cnt;i++){if(strlen(Line[i])==strlen(tempMax)){printf("%s\n",Line[i]);}}printf("\n\nshortest string:\n");for(i=0;i<cnt;i++){if(strlen(Line[i])==strlen(tempMin)){printf("%s",Line[i]);}}fclose(fp);return 0;} (3)输入学生信息:学号,三门课程的成绩,学号为0时结束,将其存储在链表A中,从中找出分数大于平均分的学生,并将该学生信息按平均分降序排列存入到链表B中,最后输出链表B。

大学C 上机实验题目(版)

大学C 上机实验题目(版)

20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。

通过亲手编程掌握C++语言编程的方法。

二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。

学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。

指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。

2. 提交时间定为该次实验课的一周内,过期不再接收。

四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;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. 编写一个函数,用来计算从键盘上输入的整数的阶乘。

华中科技大学c++第1次上机作业

华中科技大学c++第1次上机作业

第二章上机实验一、实验目得●学会编写简单得顺序C++程序、●掌握基本数据类型变量与常量得应用。

●掌握运算符与表达式得应用。

●掌握结构化程序设计基本控制结构得运用。

●了解使用简单得输入输出。

●了解头文件得作用、●熟悉Visual C++6、0得开发环境。

学习用Visual C++6.0编写标准得C++控制台程序、二、实验内容1.ﻩ请按照下面步骤调试程序,了解程序调式得步骤、知识点:调试Visual C++6、0开发环境使用(编辑、编译、连接、运行、调试)1)启动Visual C++6。

0开发环境从“开始”菜单中选择“所有程序”,然后找到【Microsoft VisualStud io 6。

0 | Microsoft Visual C++6。

0】双击,显示Visual C++6。

0开发环境窗口,如图2.1所示。

图2。

1 操作系统中选择VC编译软件2)创建一个项目进入Microsoft Visual C++ 6.0集成开发环境后,选择【文件|新建】菜单项,弹出新建对话框、单击【工程】标签,打开其选项卡,在其左边得列表框中选择【Win32 Console App lication 】工程类型,在【工程名称】文本框中输入工程名hello,在【位置】文本框中输入工程保存得位置,单击【确定】按钮,如图2。

2 所示、图2.2 创建新得应用程序界面在弹出得对话框(如图2.3所示),选择【一个空工程】,单击【完成】按钮图2.3 Win32ConsoleApplication弹出窗口此时出现【新建工程信息】对话框,如图2、4 所示。

该对话框中提示用户创建了一个空得控制台应用程序,并且没有任何文件被添加到新工程中,此时,工程创建完成。

图2、4 新工程信息对话框3)建立C++源程序文件选择【文件|新建】菜单項,弹出新建对话框。

单击【文件】选项卡,在列表框中选择C++ Source File ,在【文件名】文本框中输入文件名hellofile,选中【添加到工程】复选框,自动生成hello文件,如图2.5所示。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

武汉大学c++第一次上机试题

武汉大学c++第一次上机试题

实验一开发环境与简单C++程序一. 实验目的1.熟悉VC++开发环境,能够使用开发环境提供的工具创建项目,编辑源程序,编译、运行程序。

2.熟悉常见的编译错误及其改正方法。

3.掌握利用VC++ 调试工具对程序进行调试的步骤、方法。

4.掌握C++语法组成要素及其定义。

5.C++程序的控制。

6.培养良好的编程习惯二. 知识要点1.C++程序的开发流程。

2.C++的基本数据类型3.标准C++关键字的作用、标识符定义、运算符的优先级别及结合方向。

4.标准C++程序的流程控制方式。

三. 实验内容㈠Visual C++集成开发环境应用实习⒈创建应用程序Mysdi使用资源编辑器编辑图标、工具栏、快捷键、串表和版本信息。

⒉创建一个名为mydlg的对话框应用程序,并修改程序的大小图标、修改版本号等。

⒊课本P22 1-20㈡C++语言基础实习⒈从键盘输入一个字符序列,编程统计其中的数字个数和英文字母个数,输入的字符序列以“#”作为结束符。

⒉编写一段程序,当用户输入一个6位数据时,程序可以将其分离为单独的数字,分离结果之间用3个空格分开。

(应用求模运算符和整型除法)⒊采用指针方法将一个数组中的所有元素颠倒顺序,结果仍然放在原来的数组中,要求使用最少的辅助存储单元。

⒋使用结构变量表示每个学生的信息:姓名、学号、三门课的成绩和平均成绩。

编写一个冒泡排序函数,根据学生的平均成绩排序。

从键盘上输入10个学生的数据,在主函数中调用排序函数输出每个学生的姓名和三门课的成绩以及平均成绩。

⒌编写一段程序,确定员工的工资总额。

每位员工在一周内工作40小时以内,是按正规工作时间付酬,超出40小时,是正规工作时间报酬的1.5倍。

假定已经有了公司员工的花名册、每位员工在上个星期的工作时间以及每位员工的小时报酬。

在程序中应将每位员工的信息输入,计算显示员工的应得工资。

(练习使用嵌套的if/else语句和switch语句)四. 实验要求1.新建MFC Appwizard项目,完成“Visual C++集成开发环境应用实习”部分的内容。

华科C++第一次上机作业

华科C++第一次上机作业

第一次C++上机作业1. #include <iostream>using namespace std ;int main (){int a,b,temp;cout <<"a,b=";cin>>a>>b;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;temp=a;a=b;b=temp;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;return 0;}(3)去掉输出语句cout << "a,b = " ; 对程序的功能无影响,如下:该语句在程序中起解释说明作用,便于程序使用者理解程序使用程序。

(4)a,b不能交换,如图:原因是这样改写程序后,使得赋值时顺序变为:1.将初始a值改变为初始b值。

2.将初始b 值改为改变后的a值,即变为初始b值。

结论:这样即造成了输出的a,b值都等于初始b 值的错误情况。

(5)输出语句cout<<"a=" << a <<'\t'<<"b="<< b << endl;中,'\t'的作用为表示空格,endl的作用为表示换行。

前者可用\x09'代替,后者可用"\n"。

经验证修改程序后运行正常。

(6)不能,如图:原因是cin>>是输入的意思原意是输入a,b值,加入入’\t’ 和endl之类的符号后就变得不伦不类了,无法理解。

华中科技大学标准C语言程序设计及应用习题答案

华中科技大学标准C语言程序设计及应用习题答案

结构体2.#include<stdio.h>#define N 3struct a{long num;char name[20];int old; //工龄char ps[20]; //职务int wage;};main(){struct a b[N];int i,sum=0,ave=0;for(i=0;i<N;i++){scanf("%ld%s%d%s%d",&b[i].num,b[i].name,&b[i].old,b[i].ps,&b[i].wage);sum=sum+b[i].wage;}ave=sum/N;printf("工作证号姓名工龄职务工资\n");printf("-----------------------------\n");for(i=0;i<3;i++)printf("%-9ld%-5s%-5d%-5s%-5d\n",b[i].num,b[i].name,b[i].old,b[i].ps,b[i].wage);printf("总工资=%d\t平均工资=%d\n",sum,ave);}7.#include<stdio.h>struct Date{int day;int month;int year;int yearday;char month_name[4];};Int day_of_year(struct Date pd){Int day_tab[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}};Int i,day,leap;day=pd.day;Leap=pd.year%4==0&&pd.year%100!=0||pd->year%400==0; //闰年二月29天For(i=0;i<pd.month;i++)Day+=day_tab[leap][i];Return day;}main(){int ts;struct Date d1,d2;d1.day=12;d1.month=2;d1.year=2001;d2.day=6;d2.month=7;d2.year=2001;day_of_year(d1);day_of_year(d2);ts=d2.yearday-d1.yearday;printf("%d\t",d1.yearday);printf("%d\t",d2.yearday);printf("%d\n",ts);}程序流程2.8输入5位数整数,倒序输出#include <stdio.h>main(){long a,i,b,a1;while(1){printf("please input data(1-99999):");scanf("%ld",&a);printf("a:%ld\n",a);if(a<=0||a>=100000)break;i=0;a1=0;while(a!=0){b=a%10;printf("%8d",b);a/=10;i++;a1=a1*10+b;}printf("\n i:%ld a1:%ld\n",i,a1);}}2.9猜数游戏#include <stdio.h>#include <time.h>#include <stdlib.h>main(){int a,b,i,k=0;randomize();a=random(1001);/*create a random data(0-1000)*/ for(i=0;i<20;i++){printf("please guess a number:");scanf("%d",&b);if(a>b){k++;printf("\n%d:Smaller,guess again!\n",k);}else if(a<b){k++;printf("\n%d:Bigger,guess again!\n",k);}else{printf("\nYou guess right,congraturation!") ;printf("\nYou have guessed %d times",k);break;}}if(k==20)printf("\nsorry,you failed!");}2.11。

华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部)

华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部)

华中科技大学C语言实验与课程设计实验报告计算机科学与技术学院指导老师:目录1 表达式和标准输入输出实验 (3)2 流程控制实验 (11)3 函数程序与结构实验 (20)4 编译预处理实验 (28)5 数组实验 (35)6 指针实验 (42)7 结构与联合实验 (52)8 文件实验 (61)华中科技大学C语言实验与课程设计实验报告CS1408赵晓雁1 表达式和标准输入与输出实验1.1 实验目的(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。

(2)掌握scanf 和printf 函数的用法。

(3)掌握简单C程序(顺序结构程序)的编写方法。

1.2 实验内容及结果1.2.1.源程序改错下面给出了一个简单C语言程序例程,用来完成以下工作:(1)输入华氏温度f,将它转换成摄氏温度C后输出;(2)输入圆的半径值r,计算并输出圆的面积s;(3)输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误。

要求参照2.1.3和2.1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。

程序代码:#include<stdio.h>#define PI 3.14159;voidmain( void ){int f ;short p, k ;double c , r , s ;/* for task 1 */printf(“Input Fahrenheit:” ) ;scanf(“%d”, f ) ;c = 5/9*(f-32) ;printf( “ \n %d (F) = %.2f (C)\n\n ”, f, c ) ;/* for task 2 */printf("input the radius r:");scanf("%f", &r);s = PI * r * r;printf("\nThe acreage is %.2f\n\n",&s);/* for task 3 */printf("input hex int k, p :");scanf("%x %x", &k, &p );3处的语句,使之实现两数对调的操作。

C--上机作业答案讲解

C--上机作业答案讲解

第一章作业答案.1。

编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F—32)程序代码:#include〈iostream>using namespace std;void main(){float F,C;cout〈<”Please input F:”;cin〉>F;C=5*(F-32)/9。

0;cout<<”C="<〈C<〈endl;}运行结果:2。

编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积.程序代码:#include〈iostream〉using namespace std;#define PI 3。

14159void main(){float r,h,v;cout<<”Please input r h:”;cin〉>r>〉h;v=PI*r*r*h;cout〈<”v="〈<v〈<endl;}运行结果:3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area。

若则area=程序代码:#include〈iostream〉#include〈math。

h〉using namespace std;void main(){float a,b,c,p,area;cout〈〈"Please input a b c:";cin>〉a〉>b>>c;if((a+b〉c)&&(b+c>a)&&(a+c〉b)){p=(a+b+c)/2.0;area=sqrt(p*(p—a)*(p—b)*(p-c));cout<<"area=”〈<area<〈endl;}else cout〈<"input error!"〈<endl;运行结果:4。

输入a,b,c的值,求一元二次方程:的解。

第五次作业华中科技大学c++程序设计上机作业

第五次作业华中科技大学c++程序设计上机作业

1.定义了一个手机类,请完成该类成员函数的定义。

#include <iostream>using namespace std;classiphone{double card;//11位本机号码int password;//4位锁定密码int status;//手机状态,0:正常,1:自动锁定public:iphone (double num);//构造函数/* 创建的对象本机号码card为形式参数num,4位锁定密码password为0,手机状态status为正常*/intsetpassword(int code);//设置4位锁定密码password/* 若形式参数code的位数全部相同,设定失败,函数结束,返回值-1。

否则设置4位锁定密码password的值为code,手机为自动锁定状态,函数返回0*/int unlock(int code);//手机解锁/* 手机为正常状态,函数结束,返回值0。

手机为自动锁定状态,则当code等于锁定密码password时,手机回到正常状态,函数返回0;否则解锁失败,函数返回值-1 */intgetstatus(){ return status;}};/**********Program**********/iphone::iphone(double num){card=num;password=0;status=0;}intiphone::setpassword(int code){inti=0,a=0,b=0,c=0,d=0;a=code/1000;b=(code/100)%10;c=(code/10)%10;d=code%10;if(a==b&&b==c&&c==d)return -1;elsepassword=code;return 0;}intiphone::unlock(int code){if(password==code)return 0;elsereturn -1;}/********** End **********/int main(){double mc=134********;iphone p1(mc);int code=0;while (p1.setpassword(code)){cout<<"锁定密码无效,手机p1状态为"<<p1.getstatus()<<",请重新输入锁定密码:";cin>>code;}cout<<"手机p1状态为"<<p1.getstatus()<<",手机被锁定!!!!"<<endl;cout<<"如果要通话,请输入4位手机锁定密码:";cin>>code;if (p1.unlock(code)) cout<<"密码输入错误!!!"<<endl;else cout<<"开始通话........"<<endl;return 0;}//2.(new)定义了游戏NPC类。

华中科技大学c++第次上机作业

华中科技大学c++第次上机作业

第二章上机实验一、实验目的学会编写简单的顺序C++程序。

掌握基本数据类型变量和常量的应用。

掌握运算符与表达式的应用。

掌握结构化程序设计基本控制结构的运用。

了解使用简单的输入输出。

了解头文件的作用。

熟悉Visual C++6.0 的开发环境。

学习用Visual C++6.0 编写标准的C++控制台程序。

二、实验内容1•请按照下面步骤调试程序,了解程序调式的步骤。

知识点:调试Visual C++6.0 开发环境使用(编辑、编译、连接、运行、调试)1)启动Visual C++6.0 开发环境从"开始”菜单中选择"所有程序”,然后找到【Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0 】双击,显示Visual C++6.0 开发环境窗口,如图2.1所示。

Microsoft Sync FrameworkMicrosoft Visual C++ 6,0Microsoft Visual C+ + 6.0 ToolsMicrosoft Visual SourceSafeMicrosoft Visual Studio 2010NeroQtRadmin Viewer 3SharePoint4 返回图2.1操作系统中选择VC编译软件2)创建一个项目进入Microsoft Visual C++ 6.0集成开发环境后,选择【文件|新建】菜单项,弹出新建对话框。

单击【工程】标签,打开其选项卡,在其左边的列表框中选择【Win32 Console Application】工程类型,在【工程名称】文本框中输入工程名hello,在【位置】文本框中输入工程保存的位置,单击【确定】按钮,如图 2.2所示。

AW! TB1B U£i »!:>■匚就I MMDif — J ? _ - _ - c "A图2.2创建新的应用程序界面在弹出的对话框(如图2.3所示),选择【一个空工程】,单击【完成】按钮鹽Faia - M cracft Yiauil C-S-+图2.3 Win32 Con sole Applicatio n 弹出窗口此时出现【新建工程信息】对话框,如图2.4所示。

华中科技大学标准C语言程序设计上机试题答案及报告格式

华中科技大学标准C语言程序设计上机试题答案及报告格式

《标准C语言程序设计》上机报告实验七指针及函数结构体初步程序设计专业:班级:学号:姓名:完成日期:1一、实验目的1.进一步理解指针的概念,掌握指针变量间接地址访问的本质;2.掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;3.掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;4.掌握字符串的指针和指向字符串的指针变量;5.掌握指针数组和二级指针;6.熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。

7.理解函数定义、原型和调用,掌握函数参数的传递(传值、传指针和传引用)二、实验内容及要求(鼓励一题多解)1.深入理解《上机实践训练教程》2.6实验六案例示范和有关概念文字描述中的知识点,给出你的理解。

定义指针时一定要给指针分配好应有的类型和内存空间,防止出现野指针,造成程序不能运行甚至系统崩溃。

数组名不能作为左值,它实际上是一个常量指针,不能通过str=“comrade”给字符数组str赋值。

2.输入每个学生的姓名和线性代数、通信原理和C语言课程成绩,统计每人的平均值,并按平均值降序排列,输出排列后的名次、姓名、课程名(成绩)和平均值。

(注:平均值相同者按姓名的字母表顺序排列)(要求用结构体数据类型实现)#include <stdio.h>#include <math.h>#include <stdlib.h>#define N 3struct student{int rank;char name[20];double score[3];double aver;};void input(struct student *p,int n);void sort(struct student *p,int n);double average (struct student *p,int n);void output(struct student *p,int n,double aver);void main(){struct student stu[N];double aver;input(stu,N);sort(stu,N);aver=average(stu,N);output(stu,N,aver);}void input(struct student *p,int n){int i,j;double a;char str[20];for(i=0;i<n;i++,p++){printf("请输入考生姓名:\n");gets(p->name);printf("请依次输入学生线性代数、通信原理、c语言分数:\n");for(a=0,j=0;j<3;j++){gets(str);p->score[j]=atof(str);a+=p->score[j];}p->aver=a/3;}return;}void sort(struct student *p,int n){struct student temp;int i,j;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(p[j].aver<p[j+1].aver){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}double average(struct student *p,int n){int i;double temp;for(i=0,temp=0;i<n;i++)temp=temp+p[i].aver;return temp/n;}void output(struct student *p,int n,double aver){int i;printf("姓名线性代数通信原理c语言平均分\n");printf("-----------------------------------------\n");for(i=0;i<n;i++){printf("%-10s%8.2lf%8.2lf%8.2lf%8.2lf\n",p[i].name,p[i].score[0],p[i].score[1],p[i].score[2],p[i].aver);}}运行结果:3.利用指向指针的指针方法对N个整数排序并输出。

华科C语言第一次作业参考答案

华科C语言第一次作业参考答案

一、从1900年开始到2014年为止,我们会遇到多少个素数年号?//第一题解法1void main( ){int num=0;int i,j;for(i=1900;i<=2014;i++){for(j=2;j<i;j++){if(i%j==0)break;}if(i= =j)num++;}printf("总共有%d个素数年号",num);}void main(){int i=0;int a,b,c;for(a=1901;a<=2014;a+=2){for(b=3;b<=sqrt(a);b=b+2){c=a%b;if(c==0)break;}if(c){i=i+1;printf("%d ",a);}}printf("%d ",i);}#include<stdio.h>void main( ){int num=0;int i,j;int data[120];for(i=1900;i<=2014;i++){for(j=2;j<i;j++){if(i%j= =0)break;}if(i==j)data[num++]=i;}printf("总共有%d个素数年号:",num); for(i=0;i<num;i++)printf("%d ",data[i]);}2.设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N值。

//第二题解法一void main(){int x1,x2,x3,x4,i;for(i=1000;i<10000;i++){x1=i/1000;x2=(i-x1*1000)/100;x3=(i-x1*1000-x2*100)/10;x4=i-x1*1000-x2*100-x3*10;if(i*9==x4*1000+x3*100+x2*10+x1)printf("%d is the result",i);}}void main(){int a,b,c,d,n;for(n=1000;n<=1200;n++){a=n/1000;b=n/100%10;c=n/10%10;d=n%10;if(n*9==1000*d+100*c+10*b+a) printf("n=%d",n);}}void main(){int n,a,b,c,d;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++)for(d=1;d<=9;d++){n=1000*a+100*b+10*c+d;if(9*n==1000*d+100*c+10*b+a)printf("%d",n);}}1.编程输出以下图形,不能只单用printf库函数实现。

C_上机实验(含作业)总的目的、要求和评分标准

C_上机实验(含作业)总的目的、要求和评分标准

上机实验(含作业)总的目的、要求和评分标准一、实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。

C程序设计课程实践性很强,即要求独立编写程序,学会独立上机调试程序。

学会独立上机调试程序。

也就是要善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理论和方法,还要求自己动手实践。

对程序设计来说,要求会编写程序并上机调试通过。

因此调试程序本身是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。

调试程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来积累,而且有些经验是只能“会意”难以“言传”。

因此,在实验时不但要达到通过程序完成每一次的实验任务,而且应当在已通过的程序基础上作进一步的修改、提高和完善。

甚至于“自设障碍”,即把正确的程序改为有错的(如用scanf函数为输入变量输入数据时,漏写“&”符号,double变量使用格式符“%f”;使数组下标出界;使整数溢出等等),观察和分析所出现的情况。

这样的学习才会有真正的收获。

实验目的可归纳如下:⒈验证自己已建立起来的概念或所编写的程序是否正确;⒉加深对课堂所学内容的理解和语法规则的记忆;⒊理解和掌握运用计算机高级语言进行编程的思想方法;⒋掌握常用算法的设计与应用实现;⒌熟悉Turbo C 2.0程序开发环境,掌握C程序常用的调试手段;⒍学会上机调试程序的方法,不断积累调试经验,提高排错能力;⒎使自己具有独立的应用编程和熟练的程序调试能力。

二、要求:⒈做好每一次上机前的准备以提高上机效率:①预先认真阅读相关实验内容,做到心中有明确的目的要求和任务,要有备而来;②按照实验内容规定的习题题目,事先在实验预习报告上编写好源程序及运行程序所需的典型数据,并经人工静态检查认为无误;手编程序应书写整齐,应在每个题目之间留出一定的空间,以备记录上机调试情况和运行结果等;对程序中自己有疑问的地方,应作出记号,以便上机时给以注意。

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

华中科技大学《计算机基础与程序设计(C++)》实验报告实验名称:第三次上机实验实验学时:4姓名:学号:班级:电气实验日期:2017/3/27 教师批阅签字:一、实验目的●掌握三种循环语句的使用。

●学会使用continue 和break。

●掌握多重循环的设计。

●掌握常用算法的应用。

二、实验内容1.在vc环境下编写下述程序代码,编译调试然后用不同的数据测试直至得到完全正确的结果。

并解释出错原因。

#include<iostream>#include<cmath>using namespace std;int main( ){float x0,x1,a;cout<<"输入一个正数:";cin>>a;if(a<0)cout<<a<<"不能开平方!"<<endl;else ;{x0=a/2;x1=(x0+a/x0)/2;while (abs(x1-x0)>=1e-5){x0=x1;x1=(x0+a/x0)/2;}cout<< a<<"的平方根为:"<<x1<<endl;}return 0;语法错误:1.最后缺少花括号。

逻辑错误:1.else后面有分号,导致花括号中的语句不受else限制。

2.abs所提供的精度为整数更改后的程序:#include<iostream>#include<cmath>using namespace std;int main( ){float x0,x1,a;cout<<"输入一个正数:";cin>>a;if(a<0)cout<<a<<"不能开平方!"<<endl;else{x0=a/2;x1=(x0+a/x0)/2;while (fabs(x1-x0)>=1e-5){x0=x1;x1=(x0+a/x0)/2;}cout<< a<<"的平方根为:"<<x1<<endl;}return 0;}2.下列程序的功能是:计算一对兔子,从出生后第3个月起每个月都生一对兔子。

小兔子长到第3个月后每个月又生一对兔子,假设兔子不存在死亡问题,请问从第1个月到第20个月,每个月有多少对兔子?要求输出时按行列方式每行显示5个数据。

如下图:编译调试该程序看是否正确,不正确的话修改之直至完全满足要求。

并解释出错原因。

int main(){int fib0=0,fib1=1,fib2;int n;cout<<setw(5)<<fib0<<fib1<<endl;for(n=1;n<=20;n++){ fib2=fib0+fib1;cout<<setw(5)<<fib2;fib1=fib2;fib0=fib1;if(n%5==0) cout<<endl;}return 0;}语法错误:1.缺少头文件(iostream以及iomanip)以及命名空间。

2.return 0后的分号为中文分号。

逻辑错误:1. cout<<setw(5)<<fib1;最初只需要输出一个月而且无需换行2.前面已经输出一个月所以n<=19。

而且后面的换行也需要改为n+13.复制顺序错误,应该为fib0=fib1;fib1=fib2;改正后的程序:#include <iostream>#include <iomanip>using namespace std;int main(){int fib0=0,fib1=1,fib2;int n;cout<<setw(5)<<fib1;for(n=1;n<=19;n++){ fib2=fib0+fib1;cout<<setw(5)<<fib2;fib0=fib1;fib1=fib2;if((n+1)%5==0) cout<<endl;}return 0;}3.编程任意输入一个三位数,判断其是否是水仙花数(水仙花数是指这个数等于个位,十位和百位的立方和。

例如:153=13+53+33)要求:程序原代码,及运行结果截图。

(直接粘贴在此)#include <iostream>using namespace std;int main(){cout<<"请输入需要判断的正整数"<<endl;int a,g,s,b;cin>>a;s=(a/10)%10;b=a/100;if (a==g*g*g+s*s*s+b*b*b)cout<<"该整数为水仙花数"<<endl;elsecout<<"该整数不是水仙花数"<<endl;return 0;}解决本题的算法思路描述。

首先要解决的是如何取得个十百三位的数字,然后用if语句进行判断。

调试过程的记载(包括出现的错误,以及修改过程)对十位和百位的数字进行提取的时候出现错误。

开始时:g=a%10;改正后:g=a%10;s=a%100;s=(a/10)%10;b=a%1000; b=a/100;4.输出3到100以内的所有素数。

(要求每行显示8个数)提示:该题需要用到多重循环,外循环代表需要判断的数,从3到100,内循环判断该数是否是素数,参考教材的例4.9(判断一个数是否为素数)。

要求:程序原代码,及运行结果截图。

(直接粘贴在此)#include <iostream>#include <iomanip>using namespace std;int main(){int i,n,m=0,s=0,a;for (i=3;i<=100;i++){a=1;for (n=2;n<i;n++){if (i%n==0){a=0;break;}}if (a==1){cout<<setw(3)<<i;m=m+1;if (m%8==0)cout<<endl;else;}return 0;}解决本题的算法思路描述运用双重循环语句进行,一个用来判断是否为素数,另外一个用来循环3-100.调试过程的记载(包括出现的错误,以及修改过程)a需要每次循环都赋值,最初放在循环外,导致只能输出3一个数字。

花括号位置错误,导致格式不正确。

5.连续输入n 个整数(n由键盘输入)统计其中正数、负数和零的个数。

要求:程序原代码,及运行结果截图。

(直接粘贴在此)#include <iostream>using namespace std;int main(){cout<<"请输入所需统计的数字的个数"<<endl;int i=1,z=0,f=0,l=0,n,a;cin>>n;cout<<"请输入所需统计的数据"<<endl;for (;i<=n;i++){cin>>a;if (a==0)l++;else if (a>0)z++;elsef++;}cout<<"统计的数据中正数、负数以及0的个数分别"<<z<<','<<f<<','<<l<<endl;return 0;}解决本题的算法思路描述首先判断输入数据的个数,然后运用for循环和if-else语句进行统计出现次数。

调试过程的记载(包括出现的错误,以及修改过程)未出现错误,但是最开始的程序未进行相关提示。

6.改写教材115 例18 ,规则为5局3胜制规则,其余条件不变。

要求:程序原代码,及运行结果截图。

(直接粘贴在此)#include <iostream>#include <cmath>using namespace std;int main(){int v1=0,v2=0,i,p1,p2;while (v1<3&&v2<3){cout<<"请输入两个小孩的划拳值,1代表石头,2代表剪刀,3代表布。

"<<endl;cin>>p1>>p2;switch (p1){case 1:cout<<"石头";break;case 2:cout<<"剪刀";break;case 3:cout<<"布";break;}cout<<'\t';switch (p2){case 1:cout<<"石头";break;case 2:cout<<"剪刀";break;case 3:cout<<"布";break;}cout<<'\n';if(p1==p2)continue;if(p1==1&&p2==2||p1==2&&p2==3||p1==3&&p2==1)v1++;elsev2++;}if (v1==3)cout<<"小孩1获胜"<<endl;elsecout<<"小孩2获胜"<<endl;return 0;}解决本题的算法思路描述通过修改while的循环条件即可实现五局三胜制只需要统计两个孩子的胜利次数,谁先到达三次即获胜调试过程的记载(包括出现的错误,以及修改过程)由于为书中例题,只需简单修改即可完成,故未出现错误7.改写教材龟兔赛跑程序,要求在指定距离的条件下比赛,其余规则不变。

要求:程序原代码,及运行结果截图。

(直接粘贴在此)#include<iostream>using namespace std;int main(){int s,sw=0,st=0,station=0,sleep=0,run=0;cout<<"输入比赛距离:";cin>>s;while(sw<s&&st<s){if(station==0){run++;sw+=3;st+=9;if(run==10){run=0;if(st>sw)station=1;else;}else;}else{sleep++;sw+=3;if(sleep==30){station=0;sleep=0;}else;}}if(sw>st)cout<<"乌龟胜"<<endl;else if(sw<st)cout<<"兔子胜"<<endl;elsecout<<"平局"<<endl;return 0;}解决本题的算法思路描述1.以时间为循环的控制条件,计算两者走相同路程时谁的时间少,运用累计时间的算法,有一者到达指定路程就停止计时,然后比较两者的路程。

相关文档
最新文档