华中科技大学c第3次上机作业
华中科技大学 类的上机答案
第四章上机第一套第一题: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语言程序设计_上机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
第一次上机
大学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语言程序设计上机试题、答案及报告格式
《标准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个整数排序并输出。
华中科技大学微机原理第三次作业
华中科技⼤学微机原理第三次作业《计算机原理及应⽤》第三次课外作业题⼀、计算题:1、⼗进制数240.75的⼆进制数、⼗六进制数和BCD码分别是多少?答:(1111 0000.11)B ; (F0.C)H ; (0010 0100 0000. 0111 0101)BCD2、设X=C3H,Y=5AH。
试计算:{(X或Y)与(X异或Y)}。
答:化为⼆进制:X=(1100 0011)B, Y=(0101 1010)B所以:(X或Y)=(1101 1011)B=(DB)H(X异或Y)=(1001 1001)B=(99)H⼆、填空题:1、512×4位的存储器分别需要9根地址线和4根数据线?8K×8位的存储器⼜分别需要13根地址线和8根数据线?2、下述机器数形式可表⽰的数值范围是:单字节⽆符号整数0到255 ;单字节有符号整数-128到+127 。
(请⽤⼗进制形式写出)3、⼋⽚16K×4的存储器可以设计为32K 存储容量的16位存储器?4、宏汇编语⾔程序被汇编时,指令语句产⽣代码指令,指⽰性(伪指令)语句不产⽣代码指令,宏指令语句可能产⽣也可能不产⽣代码指令。
5、变址寻址的有效地址是变址寄存器的内容与形式地址代数和。
三、问答题:1、Intel系列的CPU单元⼀般由哪两个控制单元组成?它们分别起什么作⽤?答:由执⾏单元和总线接⼝单元组成。
执⾏单元的功能是负责执⾏指令,执⾏的指令从BICU 的指令队列缓冲器中取得,执⾏指令的结果或执⾏指令所需要的数据,都由EU 向BICU 发出请求,再由BICU对存储器或外设存取。
总线接⼝控制单元BICU的功能是负责完成CPU与存储器或I/O设备之间的数据传送。
2、在Intel8086体系结构中,在存储原则上堆栈是遵循什么原则的内存专⽤区域?若设SP=0056H ,如果⽤栈操作指令存⼊9个字节数据,则SP 值为多少?若⼜⽤栈操作指令取出4个字节数据,则SP 值⼜变为多少?答:堆栈遵循先⼊后出原则;SP=004DH ;SP=0052H3、请画出8086⾮屏蔽中断响应流程图。
华中科技大学计算机学院C实验报告实验三
课程实验报告课程名称:面向对象程序设计实验名称:面向对象的整型栈编程院系:计算机科学与技术专业班级:CS1209班学号:___________姓名:一扌旨导教师 : ____ 李春花________2015 年01月22 日一、需求分析1. 题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶 添加一个整型元素、出栈等。
整型栈类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用 C++编程,然后写一个main 函数对栈的所有操作函数进行测 试。
class STACK{int *con st elems; //申请内存用于存放栈的元素 const int max;〃栈能存放的最大元素个数int pos; //栈实际已有元素个数,栈空时pos=0;public:STACK(int m);//初始化栈:最多m 个元素STACK(co nst STACK&s); virtual int size ( ) con st; virtual operator int ( ) con st; virtual int operator] ] (int x) con st; virtual STACK & operator«(i nt e); virtual STACK & operator»(i nt &e); //virtual STACK& operator=(const STACK&s); //赋 s 给栈,并返回被赋值的栈 virtual void prin t( ) con st;virtual ~STACK(); //打印栈//销毁栈};2. 需求分析采用面向对象的C++语言定义,构建整型栈并对其进行判断栈是否为空、向栈顶添加一个 整型元素、出栈等操作。
、系统设计 概要设计用结构实现栈,此结构包括指向栈的指针,最大容量,和当前的元素个数等三个元素 要求是栈的元素是栈元素类型是整形。
C上机作业(第3次)参考答案
第3次上机作业参考答案3-1.c程序1#include<stdio.h>#include<conio.h>int main(void){printf("1: %c\n",’E’);printf("2: %c\n",’\105’);printf("3: %c\n",’\x45’);getch();return 0;}程序2#include<stdio.h>#include<conio.h>int main(void){putchar(’E’);putchar(’\105’);putchar(’\x45’);getch();return 0;}3-3.c程序1(转换后的二进制数小于等于8位)#include<math.h>main(){ int a1,a2, a3, a4, a5, a6, a7, a8;unsigned int p;scanf("%d",&p);if(p<256){ a1=p%2; p=p/2;a2=p%2; p=p/2;a3=p%2; p=p/2;a4=p%2; p=p/2;a5=p%2; p=p/2;a6=p%2; p=p/2;a7=p%2; p=p/2;a8=p%2; p=p/2;printf("%d%d%d%d%d%d%d%d",a8,a7,a6,a5,a4,a3,a2,a1);}}程序2(转换后的二进制数小于等于8位)#include<stdio.h>ain(){ int a1,a2, a3, a4, a5, a6, a7, a8;unsigned int n;scanf("%d",&n);if(p<256){ a1=n/128; n=n%128;a2=n/64; n=n%64;a3=n/32; n=n%32;a4=n/16; n=n%16;a5=n/8; n=n%8;a6=n/4; n=n%4;a7=n/2;a8=n%2;printf("%d%d%d%d%d%d%d%d", a8,a7,a6,a5,a4,a3,a2,a1);}}•程序3 (转换后的二进制数小于等于8位) 推荐算法#include <stdio.h>main(){ int b=0x80, c=0;unsigned int p;scanf("%u",&p);if(p<256){ while(c<8){ printf("%d", p/b);p=p%b;b=b/2;c++;}}}程序4 (教材提供,转换后的二进制数小于等于16位)#include<stdio.h>#include<conio.h>int main(void){unsigned int a,b,n,mode;scanf("%u",&a);n=16; b=a; mode=0x8000;printf("%u in binary format is:",a);while(n>0){printf("%d",b/mode); /*输出一位*/b=b%mode;mode=mode/2;n=n-1;}printf("\n");return 0;}程序5(转换后的二进制数小于等于100位)#include<stdio.h>#include <conio.h>main(){long int n;int a[100],i=0; /*a是数组,有100个元素*/ printf("Input a integer number");scanf("%ld",&n);while(n>0){ a[i]=n%2;n=n/2;i++;}i--;putchar('\n');while(i>=0){printf("%d",a[i]);i--;}getch();}3-4.c#include<stdio.h>#include<conio.h>#include<math.h>int main(void){float num,,sign,deci;int inte;printf("please input a real number:");scanf("%f",&num);if(num>0)printf("sign:+\n");else if(num<0)printf("sign:-\n");else printf("sign:0\n");inte=num;deci=num-inte;printf("integral part: %d\n",abs(inte));printf("decimal fraction part: %f\n",fabs(deci));return 0;}3-5a.c程序1#include<stdio.h>#include<math.h>#include <conio.h>main(){ int n,a,b,c,d,e;printf("intput a number:");scanf("%d",&n);if(n>1000 && n<10000){ a=n/1000;b=(n-1000*a)/100;c=(n-1000*a-100*b)/10;d=n%10;e=1000*d+100*c+10*b+a;printf("%d",e);}elseprintf("n is too large!");getch();}程序2#include<stdio.h>#include <conio.h>main(){ int x,a,b,c,d;printf("input a integer number:");scanf("%d",&x);if(n>1000 && n<10000){d=x%10; x=x/10;c=x%10; x=x/10;b=x%10; x=x/10;a=x;x=d*1000+c*100+b*10+a;printf("%d",x);}elseprintf("too large!");getch();}3-5b.c推荐算法(生成一个整数n的反序数,n<1000000000)#include<stdio.h>#include <conio.h>main(){long x,y;printf("input a integer number, not larger than 1000000000:"); scanf("%ld",&x);if(x>0&&x<1000000000){ y=0;while(x>0){y=y*10+x%10;x=x/10;}printf("%ld",y);}elseprintf("too large!");getch();}3-6.c#include<stdio.h>#include<conio.h>#include<math.h>int main(void){double x,y,a,b,c,d,e;clrscr();printf("input two numbers:");scanf("%lf,%lf",&x,&y);a=sin(x);b=cos(x);c=fabs(x);d=exp(x);e=pow(x,y);printf("sin(%f)=%f\n",x,a);printf("cos(%f)=%f\n",x,b);printf("|%f|=%f\n",x,c);printf("exp(%f)=%f\n",x,d);printf("pow(%f,%f)=%f\n",x,y,e);return 0;}3-7.c#include <stdio.h>#include <math.h>#include <conio.h>main(){int a,b,c;float s,area;printf("\n Input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);if(a+b>c&& a+c>b && b+c>a){ s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("\n area=%f",area);}else printf(“can’t calculate”); getch();}3-8c#include<stdio.h>#include<conio.h>int main(void){float num=100.453627;clrscr();printf("%f->%10.1f\n",num,num);printf("%f->%10.2f\n",num,num);printf("%f->%10.3f\n",num,num);printf("%f->%10.4f\n",num,num);return 0;}3-9.c#include<stdio.h>#include <conio.h>void main(){ int n;printf("Input n:\n");scanf("%d",&n);if(n%2==0)printf("%d is a even number!",n);elseprintf("%d is a odd number!",n);getch();}。
三级C语言上机南开100题_修订word版
*******************************************************************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){ qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10;if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}******************************************************************************★题目3(字符型题)函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
C语言上机实验
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
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语言实验指导书(第2版)-华中科技大学
C语言程序设计实验指导书(第二版)编著曹计昌卢萍李开张茂元华中科技大学计算机学院2008年3月目录编写说明 (4)实验1 Turbo C 2.0集成开发环境及简单程序调试 (5)一、实验目的 (5)二、实验任务 (5)三.操作指导(结合第1题) (7)实验2 表达式和标准输入与输出 (17)一、实验目的 (17)二、实验题目及要求 (17)1、源程序改错题 (17)2、源程序修改替换题 (18)3、编程设计题 (18)实验3 流程控制实验 (19)一、实验目的 (19)二、实验题目及要求 (19)1.源程序改错题 (19)2.源程序修改替换题 (19)3.编程设计题 (19)4. 选做题 (20)实验4 函数与程序结构实验 (21)一、实验目的 (21)二、实验题目及要求 (21)1.源程序改错题 (21)2.源程序修改替换题 (21)3.跟踪调试题 (22)4.编程设计题 (22)5.选做题 (23)实验5 编译预处理实验 (24)一、实验目的 (24)二、实验题目及要求 (24)1.源程序改错题 (24)2.源程序修改替换题 (24)3.跟踪调试题 (25)4.编程设计题 (26)实验6 标准库及用户自定义库实验 (27)一、实验目的 (27)二、实验题目及要求 (27)1.编程设计题 (27)2.选做题 (28)实验7 数组实验 (29)一、实验目的 (29)二、实验题目及要求 (29)1.源程序改错题 (29)2.源程序完善、修改、替换题 (29)3.跟踪调试题 (30)4.编程设计题 (31)5.选做题 (31)实验8 指针实验 (32)一、实验目的 (32)二、实验题目及要求 (32)1.源程序改错题 (32)2.源程序完善、修改、替换题 (32)3.跟踪调试题 (33)4.编程设计题 (34)5.选做题 (34)实验9 结构与联合实验 (35)一、实验目的 (35)二、实验题目及要求 (35)1.表达式求值的程序验证题 (35)2.源程序修改替换题 (35)3.编程设计题 (37)4.选做题 (37)实验10 文件实验 (38)一、实验目的 (38)二、实验题目及要求 (38)1.文件类型的程序验证题 (38)2.源程序修改替换题 (39)3.编程设计题 (39)编写说明本实验指导书是根据2008年出版发行的《C语言程序设计》教材编写。
华科C语言第三次作业参考答案
一、有一个字符串,包含n个字符。
将此字符串从第m个字符开始的全部字符复制成为另一个字符串。
最后输出合成的字符串。
void main( ){char str1[100],str2[100];int m;printf("请输入起始串:");gets(str1);printf("请输入连接串:");gets(str2);printf("请输入连接位置:");scanf("%d",&m);if(m>strlen(str1))printf("输入连接位置有误!");else{strcpy(str1+m,str2);printf("合成串为%s:",str1);}}二、求出某一个字符在某一字符串中最后一次出现的位置。
#include<stdio.h>#include<string.h>void main( ){ char str[100];char c;int i,locate=-1;printf("请输入字符串:");gets(str);printf("请输入匹配字符:");c=getchar();for(i=strlen(str)-1;i>=0;i--){if(str[i]= =c){ locate=i;break;}}if(locate= =-1)printf("字符串中未出现匹配字符");elseprintf("匹配字符最后一次出现在第%d个字符位置.",locate+1);3.编写一个程序,读入一段正文,并读入一个单词,然后删除正文中出现的单词。
最后显示正文结果。
(例如正文是123abc4567abc89,单词是abc,结果是123456789)void main(){char str1[200],str2[50];char *ptr;printf("请输入正文内容:\n");gets(str1);printf("请输入匹配字符串:\n");gets(str2);do{ptr=strstr(str1,str2);if(ptr!=NULL)strcpy(ptr,ptr+strlen(str2));}while(ptr!=NULL);printf("请输出最终内容:%s\n",str1);}。
第三次华中科技大学C程序设计上机作业
cin.getline(a,6); cout<<a<<endl; return 0; }
3. #include <iostream>
using namespace std; int main() { char c[]="I am a student";
cout<<c<<endl; return 0; }
4. 在下面程序中输入 China ,要求输出 China #include <iostream> using namespace std; int main() { char a[5],*p;
int i; p=&a[0]; for(i=0;i<=4;i++)
{cout<<"您已借书"<<t<<"天"<<endl; cout<<"您未超期"<<'\t'; cout<<"请注意在"<<w<<"天之内还书"<<endl;} }
提高题:(选做)
把有序的一两个整型数组 a 和 b 合并,要求合并后的数组依然有序。 #include<iostream> using namespace std; int main(){ int a[9]={1,4,5,9,10,12,15,22,35},b[5]={7,8,23,27,50},c[14]; for(int ai=0,bi=0,ci=0; ci<14; ci++){ if(bi>=5||a[ai]<b[bi]&&ai<9) c[ci]=a[ai++]; else if(ai>=9||a[ai]>b[bi]&&bi<5) c[ci]=b[bi++]; cout<<c[ci]<<" "; } cout<<endl;
华中科技大学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++上机实验答案(全)
实验一/*要求从键盘输入三个不等的整数后按ENTER键,在屏幕上由大到小的输出。
*/ #include<iostream>using namespace std;int main(){int a,b,c,max,min;cout<<"请输入三个不同的整数:"<<endl;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<<endl;else if(c<min)cout<<max<<'\t'<<min<<'\t'<<c<<endl;else cout<<max<<'\t'<<c<<'\t'<<min<<endl;return 0;}实验二//输入两个数,将它们交换后输出。
#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;}//求一个三角形的面积(例题程序)#include<iostream>#include<cmath>using namespace std;int main(){float 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;return 0;}//求一个三角形的面积(修改后的程序)#include<iostream>#include<cmath>using namespace std;int main(){int a,b,c,s,area;cout<<"a,b,c=";cin>>a>>b>>c;if(a<b+c&&b<a+c&&c<a+b){s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;}else cout<<"不能够成三角形"<<endl;return 0;}/*用sizeof运算符计算C++中char,short,int,long,float,double等基本数据类型所占的字节数,并按以下格式输出:sizeof(char)=1 bytesizeof(short)=2 bytessizeof(int)=4 bytes……..*/#include<iostream>using namespace std;int main(){cout<<"sizeof(char)="<<sizeof(char)<<"byte"<<endl;cout<<"sizeof(short)="<<sizeof(short)<<"byte"<<endl;cout<<"sizeof(int)="<<sizeof(int)<<"byte"<<endl;cout<<"sizeof(long)="<<sizeof(long)<<"byte"<<endl;cout<<"sizeof(float)="<<sizeof(float)<<"byte"<<endl;cout<<"sizeof(double)="<<sizeof(double)<<"byte"<<endl;return 0;}//修改后的程序#include<iostream>using namespace std;int main(){cout<<"char"<<'\t'<<sizeof(char)<<"byte"<<endl;cout<<"short"<<'\t'<<sizeof(short)<<"byte"<<endl;cout<<"int"<<'\t'<<sizeof(int)<<"byte"<<endl;cout<<"long"<<'\t'<<sizeof(long)<<"byte"<<endl;cout<<"float"<<'\t'<<sizeof(float)<<"byte"<<endl;cout<<"double"<<'\t'<<sizeof(double)<<"byte"<<endl;return 0;}//用数组列表输出#include<iostream>using namespace std;int main(){char datatype[]="char\tshort\tint\tlong\tfloat\tdouble";cout<<datatype<<endl;cout<<sizeof(char)<<'\t'<<sizeof(short)<<'\t'<<sizeof(int)<<'\t'<<sizeof(long)<<'\t'<<siz eof(float)<<'\t'<<sizeof(double)<<endl;return 0;}/*编写满足下列要求的程序:根据输入的球半径,分别计算球的表面积、体积和质量(假设球的密度为7.8kg/dm3),并输出计算结果。
华科历年上机真题以及解答part3
//3(1)无冗余的接受键盘输入的n个字符串,并将其无冗余的放入对应的字符数组中,再按照每行一串的格式输出这些字符串。
(2)以单个字符串为数据域,按字典顺序将n个字符串生成为一棵二叉搜索树,并且规定左子树(数据域)小于右子树(数据域)。
(3)先序遍历该二叉树,并输出结果。
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct node{char *data;struct node *lchild,*rchild;}BNode,*BTree;void Insert(BTree *t,char *data){if(!(*t)){(*t) = (BTree)malloc(sizeof(BNode));(*t)->data = data;(*t)->lchild = NULL;(*t)->rchild = NULL;}else{if(strcmp((*t)->data,data)>0)Insert(&((*t)->rchild),data);elseInsert(&((*t)->lchild),data);}}void PreOrder(BTree t){if(t){printf("%s\n",t->data);PreOrder(t->lchild);PreOrder(t->rchild);}}void main(){char **str;int n,count,i;char ch;BTree t=NULL;printf("please input n:");scanf("%d",&n);str = (char **)malloc(n*sizeof(char *));fflush(stdin);for(i=0;i<n;i++){count = 0;str[i] = (char *)malloc(sizeof(char));while((ch= getchar())!=' ' && ch != '\n'){count++;str[i] = (char *)realloc(str[i],count*sizeof(char));str[i][count-1]=ch;}str[i] = (char *)realloc(str[i],(count+1)*sizeof(char));str[i][count]='\0';}for(i=0;i<n;i++)Insert(&t,str[i]);printf("PreOder output:\n");PreOrder(t);fflush(stdin);getchar();}//输入一串数,然后,建立链表,排序输出。
华中科技大学c++第3次上机作业
华中科技大学《计算机基础与程序设计(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个月起每个月都生一对兔子。
C++上机作业(三)
C++上机作业(三)——分支结构【任务一】根据用户输入的学生成绩(0~100),判断成绩的等级(〈60 不及格,<=60且<70及格,〈=70且〈80中等,<=80且〈90良好,〈=90且<=100优秀)。
要求:使用if条件结构实现【任务二】输入一个年度,判断是否是闰年.例如,2000是闰年,1900不是闰年,1904是闰年。
要求:使用分支结构语句实现。
【任务三】输入一个5位正整数,输出它是不是回文数。
回文数是这样一种数,它的逆序数和它本身相等。
例如,12321的逆序数是12321,和它本身相等,所以它是回文数.又例如25128的逆序数是82152,所以它不是回文数。
要求:使用分支结构语句实现。
【任务四】从键盘上输入一个年份值和一个月份值,判断该月的天数。
(说明:一年有12个月,大月的天数是31,小月的天数是30。
2月的天数比较特殊,遇到闰年是29天,否则为28天。
)要求:使用分支结构语句实现。
【任务五】:输入三个整数x、y、z,请把这三个数由小到大输出。
要求:使用分支结构语句实现。
【任务六】:输入一个不多于5位的正整数,要求:1.输出它是几位数;2.逆序打印出各位数字。
例如,输入256,则先输出3,再输出652.要求:使用分支或循环结构语句实现。
【任务七】:编写程序实现:商店卖西瓜,20斤以上的每斤0.85元;重于15斤轻于等于20斤的,每斤0。
90元;重于10斤轻于等于15斤的,每斤0。
95元;重于5斤轻于等于10斤的,每斤1.00元;轻于或等于5斤的,每斤1。
05元。
输入西瓜的重量和顾客所付钱数,输出应付货款和应找钱数。
要求:使用分支结构语句实现。
【任务八】:编写程序计算购买图书的总价格:用户输入图书的定价和购买图书的数量,并分别保存到一个float和一个int类型的变量中,然后根据用户输入的定价和购买图书的数量,计算合计购书金额并输出。
其中,图书销售策略为:正常情况下按9折出售,购书数量超过10本打85折,超过100本打8折。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.以时间为循环的控制条件,计算两者走相同路程时谁的时间少,运用累计时间的算法,有一者到达指定路程就停止计时,然后比较两者的路程。