c++上机实验答案实验六
c程序设计实验参考答案

main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
西南交大各次C上机实验报告答案(全)

2014-2015各次C++上机实验报告答案(全)实验__1__①实验报告一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;/*输出语句*/cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";/*输出语句*/cin >> num1; /*输入语句*/cout << "Enter second number: ";cin >> num2; /*输入语句*/sum=num1+num2; /*运算语句*/cout << "The sum is " << sum << endl; /*输出语句*/return 0;}三、实验结果1.2.实验一②实验报告一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算以及输入与输出方法。
二、实验任务1.输入一个摄氏温度,输出并显示转换出的华氏温度(提示:摄氏温度=(华氏温度—32)*5/9);2.画出一头威武雄壮的雄狮。
C实验报告答案完整版

实验1简单判定性问题求解一、实验学时完成本实验需4学时。
二、实验目的1、阅读程序题(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。
2、编程题(1)如何运用if-else判定性结构进行程序设计;(2)如何运用switch判定性结构进行程序设计。
3、调试题(1)熟悉C程序的编辑、编译、连接和运行的过程。
三、实验指导为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。
1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。
2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。
要注意简单判定性问题的结构选择。
3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。
对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。
四、实验内容1、阅读程序题(1)main( ){ /*定义字符型变量*/char c1,c2; /*向字符变量赋以整数*/c1=97;c2=98;printf("%c %c\n",c1,c2); /*以字符形式输出*/printf("%d %d\n",c1,c2); /*以整数形式输出*/}思考:可否改成int c1,c2;输出结果是?相同(2)main(){int a=7,b=5;printf("%d\n",b=b/a);}思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main(){int a=9;a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/printf("%d\n",a);}思考:赋值表达式a+=a-=a+a的求解步骤?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main(){int k=-1;printf("%d,%u\n",k,k);}思考:-1在内存中的存储形式?取反加一11111111111111111111111111111111(32个)(5)main(){unsigned x1;int b=-1;x1=b; /*有符号数据传送给无符号变量*/printf("%u",x1);}(6)main(){int a=3,b=4,c=5;printf("%d\n",(!(a<b))&&(c=c+1));printf("%d",c);}思考:若将第一个1(换行)6(7)main(){ int a=1,b=2,c=3;if(c=a) ; printf("%d\n",c);else printf("%d\n",b);}2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应具体要求如下:1)用switch语句实现该功能;2)用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数据应输出错误信息;3)输出结果应包含百分制成绩和成绩等级;4)分别输入成绩-10,30,60,68,75,83,95,102,查看记录运行结果。
C上机实验6含答案及代码

`特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。
程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。
实验8_1/******************************************************************* 主程序中定义一个类对象,把新定义的类对象作为参数传递给普通函数***********************************************************************/ // Tdate.h:Tdate类声明#include<iostream>using namespace std;class Tdate{public:void Set(int,int,int); //成员函数的声明int IsLeapYear();void Print();private:int month;int day;int year;};//Tdate.cpp:#include "Tdate.h"void Tdate::Set(int m,int d,int y){month=m;day=d;year=y;}int Tdate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}void Tdate::Print(){ cout<<month<<"/"<<"/"<<year<<endl;}//应用程序:lab12.cpp#include <iostream>using namespace std;# include"Tdate.h"void someFunc(Tdate someday){ someday.Print ();if (someday.IsLeapYear())cout<<"leap yrar\n";elsecout<<"not leap year\n";}void main(){ Tdate s;s.Set (21,10 ,2012);someFunc(s);}程序说明:定义一个日期类Tdate,它的数据成员有年、月、日;它的函数成员有设置值、打印输出和判断是否闰年。
C上机实验报告实验六修订稿

C上机实验报告实验六 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】实验六实验目的1.掌握运算符重载的方法2.学习使用虚函数实现动态多态性实验要求1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。
2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
观察虚函数的作用。
3.(选做)对实验4中的People类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。
实验内容及实验步骤1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point&operator++();Pointoperator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Pointoperator --(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。
程序名:1ab8_1.Cpp#include<iostream>usingnamespacestd;classPoint{public:Point();Point(intx,inty);~Point(){}//Point类析构函数Point&operator++();//公有成员函数Pointoperator++(int);Point&operator--();Pointoperator--(int);voidShow();private:int_x;//私有数据成员int_y;};Point::Point(){//Point类构造函数_x=0;_y=0;}Point::Point(intx,inty)//Point类构造函数{_x=x;_y=y;}Point&Point::operator++()//重载后置++运算符为Point类成员函数{_x++;_y++;}PointPoint::operator++(int)//重载前置++运算符为Point类成员函数{Pointold=*this;++(this->_x);++(this->_y);returnold;}Point&Point::operator--()//重载后置--运算符为Point类成员函数{_x--;_y--;}PointPoint::operator--(int)//重载前置--运算符为Point类成员函数{Pointold=*this;--(this->_x);--(this->_y);returnold;}voidPoint::Show()//输出Point的坐标值{cout<<_x<<","<<_y<<")"<<endl;}intmain(){Pointa(2,3);//定义一个Point类对象aPointb=a++;//定义Point类对象b并用a++初始化bPointc=++a;//定义Point类对象c并用++a初始化cPointd=--a;//定义Point类对象d并用--a初始化dPointe=a--;//定义Point类对象e并用a--初始化ecout<<"Pointa(";a.Show();//输出a的坐标cout<<"Pointb(";b.Show();//输出b的坐标cout<<"Pointc(";c.Show();//输出c的坐标cout<<"Pointd(";d.Show();//输出d的坐标cout<<"Pointe(";e.Show();//输出e的坐标return0;}运行结果:2编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。
河南科技大学C语言上机实验指导书答案

河南科技大学C语言上机实验指导书答案C语言上机实验指导实验2.1-2.9答案2.1 实验1 C语言表达式1.阅读程序,分析结果,并上机验证(1) t=550 (2) a+u=22,b+u=-14 (3) f ge(4) x=3.600000,i=3 (5) a=100 c ike2.阅读程序,分析程序中的错误,每处错误均在提示行/********************/的下一行,请将错误改正,并上机验证。
(1) int a=3; (2) /********************//********************/ int a=99,b=100;a+=4(3) /********************/ (4) /********************/a=(int)c%3; int b;(5) /********************/a=5;3.阅读程序,在程序中提示行/********************/的下一行填写正确内容,将程序补充完整,并上机验证。
(1) int float (2) sqrt(x) (3) x*x+3*x+2(4) *(x+32) (5) abs(a)+abs(b)2.2 实验2 顺序结构程序设计1.阅读程序,分析结果,并上机验证(1) i=5,j=6 (2) i=5,j=6 (3) i=1234,j=5(4) i=12.500,j=-4.000 (5) c=652.阅读程序,分析程序中的错误,每处错误均在提示行/********************/的下一行,请将错误改正,并上机验证。
(1) /********************/ (2) /********************/scanf(―%f‖,&i); printf(―%c‖,a);(3) /********************/ (4) /********************/int b=20;a=10; scanf(―%d‖,&a);(5) /********************/scanf(―%d%d‖,a,b);3.阅读程序,在程序中提示行/********************/的下一行填写正确内容,将程序补充完整,并上机验证。
C语言实验教程实验答案

7.x、y有如下函数关系,编写程序输入x,输出y值。
x (x<1)
y = 2x–1 (1≤x<10)
3x–11 (x≥10)
参考答案:
#include "stdio.h"
main()
{ double x,y;
scanf ("%lf",&x);
if (x<1)
y=x;
else if(x<10)
y=2*x-1;
printf("area=%f",area);
}
运行结果:(具体情况根据自己输入的数据而定)
如在键盘上输入:3,4,5↙
则运行结果为:
area=6.000000
3.已知圆半径、圆柱高、求圆周长、圆柱体积。
程序清单如下:
#include "stdio.h"
main()
{
float r,h,l,v,pi;
3.分析下面程序,写出运行结果,再输入计算机中运行,将得到的结果与分析得到的结果比较对照。
#include "stdio.h"
main()
{
int i , j , m , n ;
i=8; j=10;
m=++i; n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行结果:
9,11,9,10
pi=3.1415926;
scanf("%f,%f",&r,&h);
l=2*pi*r;
v=pi*r*r*h;
printf("圆周长为:%6.2f\n",l);
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(条件){语句一;}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
int i;
string str[3],temp;
for(i=0;i<3;i++)
cin>>str[i];
for(i=0;i<3;i++)
{
for(int j=0;j<3-i-1;j++)
{
if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
cout<<name[n-1]<<endl;
}
4.有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3),凡报到3的人退出圈子,问最后留下的原来排在第几号。
#include<iostream>
using namespace std;
void main()
{
const int n=11;
int a[n];
使用%运算符将各个数字分离出来。
对于大于100的数值,处理方式类似。
#include<iostream>
ain()
{
char *digits[10]={" ","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"};
if(!digit2)
cout<<tens[digit1];
else cout<<tens[digit1]<<" "<<digits[digit2]<<" ";
}
cout<<"and "<<" "<<cents<<"/100"<<'\n';
return 0;
}
6.编写一个程序,把两个字符型链表对象链接成一个链表。该程序应该包含函数concatenate,它以对两个链表对象的引用为参数,并将第2个链表链接到第一个链表上。
scanf("%c",&p->data);
getchar();
p->next = NULL;
head->next = p;
head = head->next;
}
return OK;
}
Status DestroyLink(LinkList &L)///销毁链表
{
LinkList p = L->next;
cin>>dollars>>cents;
cout<<endl;
if (dollars<10)
cout<<digits[dollars]<<" ";
else if(dollars<20)
cout<<teens[dollars-10]<<" ";
else
{
digit1=dollars/10;
digit2=dollars%10;
{
LinkList Pc = Lc = La;
LinkListPa= La->next;
LinkList Pb = Lb->next;
while (Pc->next)
{
//Pc->next = Pa;
Pc = Pc->next;
//Pa = Pa->next;
}
while (Pb)
{
Pc->next = Pb;
4.理解引用的概念,掌握引用的应用方法。
5.了解指向函数的指针变量;
6.了解指针与链表关系。
二、实验内容
1.分析如下程序的结果(数组与指针的关系)
#include<iostream>
using namespace std;
void main()
{
char s1[5]={‘m’, ‘n’, ‘p’, ‘q’,‘\0’};
char *teens[10]={"TEN","ELEVEN","TWELVE","THIRTEEN","FOURTEEN","FIFTEEN",
"SIXTEEN","SEVENTEEN","EIGHTEEN","NINETEEN"};
char *tens[10]={" ","TEN","TWENTY","THIRTY","FORTY","FIFTY","SIXTY","SEVENTY","EIGHTY",
{
if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
for(i=0;i<3;i++)
cout<<str[i]<<endl;
(2)用string方法
#include<iostream>
#include<string>
using namespace std;
"NINETY"};
int dollars;/*接收输入的美元*/
int cents;/*接收输入的美分*/
int digit1;/*用来计算十位数*/
int digit2;//用来计算个位数
cout<<"enter the check amout(0 to 99)and cents(0-99):";
return 0;
}
三、实验体会
教师评价
优
良
中
及格
不及格
教师签名
日期
if(a[i]==1) cout<<"最后留下的人原来排在第"<<i+1<<"号"<<endl;
}
编程挑战:
5.编写一个程序,读取支票上的一个数值金额,并输出其文字表示。例如,数字112.43应写为:
ONE HUNDRED TWELEVE and 43/100
提示:
只处理0到100之间的值。
创建一个字符型指针数组,包含所有的个位和十位数表示(40,50、60等),不要忘记11~19之间的数字!
中国矿业大学计算机学院实验报告
课程名称高级程序设计语言实验名称___实验六指针__
实验报告要求:1.实验目的2.实验内容3.实验步骤
4.运行结果5.流程图6.实验体会
一、实验目的
1.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;
2.掌握用指针处理数组和字符串的方法
3.掌握用指针作为函数参数的方法
p = p->next;
}
printf("\n");
return OK;
}
int main()
{
LinkList la;
LinkList lb;
LinkList lc;
CreatLink(la,3);///创建链表1
PrintLink(la);
printf("------------------------------------\n");
CreatLink(lb,2);///创建链表2
PrintLink(lb);
printf("------------------------------------\n");
concatenate(la,lb,lc);///连接后的链表
PrintLink(lc);
DestroyLink(lc);///销毁
str[j+1]=temp;
}
}
}
for(i=0;i<3;i++)
cout<<str[i]<<endl;
return 0;
}
3.编写一程序,输入月份,输出该月的英文名。例如,输入“3”,则输出March,要求用指针数组实现。
#include<iostream>
using namespace std;
void main()
{
int n;
char *name[12]={"January","February","March","April","May","June","July","August",
"September","October","November","December"};
cin>>n;
char *ps=s1;
cout<<s1<<'\n';mnpq