文档库 最新最全的文档下载
当前位置:文档库 › C 实验答案

C 实验答案

C 实验答案
C 实验答案

实验编程题答案

实验一

1、输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。#include

using namespace std;

int main()

{

int y,m;

cin>>y>>m;

if(1900<=y&&y<3000&&0

{

if(y%4==0&&y%100!=0||y%400==0)

{

switch(m)

{

case 1:cout<<"31";break;

case 2:cout<<"29";break;

case 3:cout<<"31";break;

case 4:cout<<"30";break;

case 5:cout<<"31";break;

case 6:cout<<"30";break;

case 7:cout<<"31";break;

case 8:cout<<"31";break;

case 9:cout<<"30";break;

case 10:cout<<"31";break;

case 11:cout<<"30";break;

case 12:cout<<"31";break;

}

}

else

{

switch(m)

{

case 1:cout<<"31";break;

case 2:cout<<"28";break;

case 3:cout<<"31";break;

case 4:cout<<"30";break;

case 5:cout<<"31";break;

case 6:cout<<"30";break;

case 7:cout<<"31";break;

case 8:cout<<"31";break;

case 9:cout<<"30";break;

case 10:cout<<"31";break;

case 11:cout<<"30";break;

case 12:cout<<"31";break;

}

}

}

else

cout<<"Input error!";

return 0;

}

2、某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。

#include

using namespace std;

int main()

{

int a,b,c,d,s;

cin>>a>>b>>c>>d;

s=a+b+c+d;

if(a>=60&&b>=60&&c>=60&&d>=60&&s>=340)

{

if(s>=370) cout<<"公费"<

else cout<<"自费"<

}

else cout<<"没有录取"<

return 0;

}

3、

在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。

#include

using namespace std;

int main()

{

double tb,tw,s;

cin>>s;

tb=s/3+50;

tw=s/1.2;

if(tb>tw) cout<<"Walk"<

else

if(tb

else cout<<"All"<

return 0;

}

4、

一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。

【提示】

要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:

cout<

按上面的形式控制输出格式时,需在源程序最开始加上一行:#include

#include

#include

using namespace std;

int main()

{

double t,cost;

cin>>t;

if(t<=3) cout<<"5.00"<

else

if(t<=20.5)

{

cost=(t-3)*2+5;

cout<

}

else cout<<"40.00"<

return 0;

}

5、

模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/ ’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/ ’的除数不能为0。

#include

using namespace std;

int main()

{

double a,b,n;

char c;

cin>>a>>b>>c;

if(c=='/'&&b==0) cout<<"除数为0!"<

else

if(c!='+'&&c!='-'&&c!='*'&&c!='/') cout<<"运算符号错误!";

else

if(c=='+')

{

n=a+b;

cout<

}

if(c=='-')

{

n=a-b;

cout<

}

if(c=='*')

{

n=a*b;

cout<

}

if(c=='/')

{

n=a/b;

cout<

}

return 0;

}

实验二

1、

给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#include

using namespace std;

int main()

{ int a,b,c,d,e,f,x=0;

cin>>a>>b>>c>>d>>e>>f;

if(a<=100)

if(b

if(c

if(d

if(e

if(f

cout<

return 0;

}

2

一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米? 第5次反弹多高?

#include

using namespace std;

int main()

{

int h0;

double s,h;

cin>>h0;

h=h0/32.0;

s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);

cout<

return 0;

}

3

有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。

#include

#include

using namespace std;

int main()

{

double i,n,x,y,z;

double s;

cin>>n;

x=2;y=1;s=2;

for(i=1;i

{

z=x;x=y+z;y=z;s=s+x/y;

}

cout<

return 0;

}

4

在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。

#include

using namespace std;

void main()

{

float x,y;

for( ; ; )

{

cin>>x>>y;

if(x==0&&y==0)

{

cout<<"yes"<

break;

}

if(x<=1&&x>=-1&&y<=1&&y>=-1)

cout<<"yes"<

else

cout<<"no"<

}

}

5

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。

#include

using namespace std;

#include

void main()

{int a,b,c,d,m,n;

for(a=0;a<10;a++)

{for(b=0;b<10;b++)

{for(c=0;c<10;c++)

{for(d=0;d<10;d++)

{if(a==b&&c==d)

{m=a*1000+b*100+c*10+d;

{for(n=32;n<100;n++)

if(n*n==m)

cout<

{

}

}

}

}

}

}

}

}

实验三

1

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

#include

using namespace std;

int main()

{

int a[100];

int m,sum=0;

for(int i=1;i<=10;i++)

cin>>a[i];

cin>>m;

for(i=1;i<=10;i++)

{

if(m>=a[i]||(m=a[i]))

sum=sum+1;

}

cout<

return 0;

}

2

歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。

提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。

#include

using namespace std;

int main()

{

double score[100];

double m=0;

double g=0;

for(int i=1;i<=6;i++)

cin>>score[i];

double big=score[1];

double small=score[1];

for(int j=1;j<=6;j++)

{

if(score[j]>big)

big=score[j];

}

for(int k=1;k<=6;k++)

{

if(score[k]

small=score[k];

}

for(int n=1;n<=6;n++)

g+=score[n];

m=(g-big-small)/4;

cout<

return 0;

}

3

插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci 中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符

数组pl中,最后即得到明文字符串。

#include

using namespace std;

int main()

{

char ci[100];

char pl[100];

int m=0;

cin.getline(ci,100);

for(int i=0;ci[i]!='\0';i++)

{

if(i%2==0)

{

pl[m]=ci[i];

m=m+1;

}

}

pl[m]='\0';

cout<

return 0;

}

4

输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。

要求用指针对字符串进行处理。

#include

using namespace std;

int main()

{

char s[21],*p;

cin>>s;

p=s;

while(*p)

{

if(*p>='a'&&*p<='z')

*p=*p-32;

else

if(*p>='A'&&*p<='Z')

*p=*p+32;

p++;

}

cout<

return 0;

}

5

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#include

using namespace std;

void main()

{

int n;

cin>>n;

cout<

int*p=new int[n];

int j=0;

for(int i=0;i

cin>>p[i];

while(j

{

if(n>=2&&j==0&&p[0]!=p[1])

cout<<"0"<<' '<

if(j!=n-1&&j!=0)

{

if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]

cout<

}

if(j==n-1&&p[n-1]!=p[n-2])

cout<

j++;

}

delete []p;

}

实验四

1

判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数bool wanshu(int n),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。

#include

using namespace std;

int number (int);

int main()

{

int n;

cin>>n;

int result=number(n);

if(result==-1)

cout<<"no"<

else

cout<<"yes"<

return 0;

}

int number (int a)

{

int total=0,re=0;

for(int i=0;i

{

total+=i;

if(a==total)

{

re=a;

break;

}

else

re=-1;

}

return re;

}

2

假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日— 2012年7月26日。要求程序中编写函数int CountDown(int year,int month,int day),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。

提示:所求天数= month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#include

using namespace std;

int main()

{

int y,m,d,x;

cin>>y>>m>>d;

if(y!=2012||(m>7||m==0)||(m==7&&d>27))

cout<

else if(m==7)

{

x=27-d;

cout<

}

else

{

switch(m)

{

case 1:x=31-d+29+31+30+31+30+27;break;

case 2:x=29-d+31+30+31+30+27;break;

case 3:x=31-d+30+31+30+27;break;

case 4:x=30-d+31+30+27;break;

case 5:x=31-d+30+27;break;

case 6:x=30-d+27;break;

}

cout<

}

return 0;

}

3

许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon (中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最着名的一句为:“Madam,I’m Adam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。

现要求编写一个函数bool huiwen(char *p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。

#include

using namespace std;

bool huiwen(char *p)

{

char *q=p+strlen(p)-1;

for(int i=0;i

if(*p!=*q)

return false;

return true;

}

void main()

{

char ch[100];

cin>>ch;

if(huiwen(ch))

cout<<"yes";

else

cout<<"no";

cin.get();

cin.get();

}

4

编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:

void mystr(char c,int n, char *p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。

要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。

#include

using namespace std;

void mystr(char c,int n,char *p)

{

for(int i=1;i<=n;i++)

cout<

return;

}

int main()

{

char c;

char *p;

p=&c;

int n;

cin>>c;

cin>>n;

mystr(c,n,p);

return 0;

}

5

有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?

提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci 数列。该数列的递归定义如下:f(n)=1 (n等于1或2);f(n)= f(n-1)+ f(n-2) (n>2)

请编写递归函数int fib(int n),求出第n个月兔子的总对数。

#include

using namespace std;

void fib(int s)

{

int d=1,f=1,sum=0,n=1,t=0;

while(n

{

n++;

t=f;

f=d;

d+=t;

sum=d+f;

}

cout<<"第"<

}

int main()

{

int s;

cin>>s;

if(s!=1)

fib(s);

else

cout<<"第1个月兔子的总对数为1"<

return 0;

}

实验五

1

仿照本次实验预习的程序填空题1,将以上Distance函数定义为类piont的友元函数,实现程序的功能。并在主函数中增加输入两点作为友元函数的实参。

#include

#include

using namespace std;

class point

{

public:

point(float a,float b) { x=a; y=b; }

friend float Distance(point p1,point p2)

{

float dx=p1.x-p2.x;

float dy=p1.y-p2.y;

return (float)sqrt(dx*dx+dy*dy);

}

private:

float x,y;

};

int main()

{

float p1_x,p1_y,p2_x,p2_y;

//输入四个点

cin>>p1_x>>p1_y>>p2_x>>p2_y;

point p1(p1_x,p1_y),p2(p2_x,p2_y);

cout<

return 0;

}

2

根据以下主函数的功能来设计日期类CDateInfo,使其能正确运行。类CDateInfo中应该具有描述年、月、日的三个数据成员和相应的成员函数。

#include

using namespace std;

class CDateInfo

{

int year,month,day;

public:

CDateInfo(){};

CDateInfo(int y,int m,int d) {year=y,month=m,day=d;};

void SetDate(int y,int m,int d);

void GetDate();

};

void CDateInfo::SetDate(int y=2011,int m=10,int d=10)

{

year=y;

month=m;

day=d;

}

void CDateInfo::GetDate()

{

cout<

}

int main()

{

CDateInfo data1,data2(2011,10,10); //定义对象data1和data2

//分别调用类的不带参数的构造函数和带3个参数的构造函数对

//其数据成员进行初始化

//date1的数据成员未初始化时,其年月日用默认值2000,1,1来继续初始化。

int y,m,d;

cin>>y>>m>>d; //输入年月日值

data1.SetDate(y,m,d); //设置data1的年月日为y,m,d

data1.GetDate(); //按year-month-day的格式显示data1的年月日

data2.GetDate(); //按year-month-day的格式显示data2的年月日

return 0;

}

3

根据以下主函数的功能来设计日期类Student,使其能正确运行。类Student中应该具有描述学生姓名、性别、年龄的三个数据成员和相应的成员函数。

#include

#include

using namespace std;

class Student

{

char chOne[100];

int iSex;

int iOld;

public:

void SetName(char *name);

void SetGender(int sex);

void SetAge(int age)

{

iOld=age;

}

int GetAge(){return iOld;}

int GetGender(){return iSex;}

void GetName(char *name);

};

void Student::SetName(char *name)

{

strcpy(chOne,name);

}

void Student::SetGender(int sex)

{

iSex=sex;

}

void Student::GetName(char *name)

{

strcpy(chOne,name);

}

int main()

{

Student Zhang_San; //创建Student类对象Zhang_San

char*chOne;

int iSex;

unsigned iOld;

chOne=new char[11]; //创建动态字符数组用来存放姓名,指针chOne指向该数组

cin>>chOne; //输入姓名,存放在chOne所指向的动态字符数组中

cin>>iSex; //输入性别,输入1表示性别为“男”,输入0表示性别为“女”

cin>>iOld; //输入年龄

Zhang_San.SetName(chOne); //用输入的姓名设置对象Zhang_San用来表示姓名的数据成员

Zhang_San.SetGender(iSex); //设置对象Zhang_San用来表示性别的数据成员

Zhang_San.SetAge(iOld); //设置对象Zhang_San用来表示年龄的数据成员

cout<

Zhang_San.GetName(chOne); //调用GetName(char *)成员函数将对象Zhang_San表示姓名的数据成员值

//存放到chOne所指向的动态字符数组中

cout<<"Zhang_San's name is "<

cout<<"Zhang_San's gender is "<

delete []chOne;

return 0;

}

4

根据以下主函数的功能来设计计算器类Calculator,使其能正确运行。类Calculator中应该具有描述运算数的a和b及其表示a和b运算结果的三个数据成员和相应计算并显示结果的成员函数。#include

using namespace std;

class Calculator

{public:

Calculator(float,float);

add( ); //计算a+b并显示结果

subtract( );

multiply( );

divide();

private:

float a,b,r;

};

Calculator::Calculator(float x,float y)

{

a=x;

b=y;

}

Calculator::add( )

{

r=a+b;

cout<

}

Calculator:: subtract( )

{

r=a-b;

cout<

}

Calculator::multiply( )

{

r=a*b;

cout<

}

Calculator::divide()

{

r=a/b;

cout<

Sub(Imaginary c1,Imaginary c2)

{ cout<

int main()

{

float x1,y1,x2,y2;

cin>>x1>>y1>>x2>>y2;

Imaginary imag1(x1,y1),imag2(x2,y2);

Add(imag1,imag2);

Sub(imag1,imag2);

return 0;

}

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

c实验答案

创新源于实践《面向对象C++程序设计》 实 验 指 导 书 计算机科学与技术学院《面向对象C++程序设计》课程组

实验指导书目录 实验一 C++基础练习 (1) 实验二 C++简单程序设计练习 (4) 实验三类与对象(一) (9) 实验四类与对象(二) (14) 实验五派生类与继承 (21) 实验六虚函数与多态性 (31) 实验七函数模板与类模板 (40) 实验八输入输出的格式控制 (44) 实验九文件的输入输出 (49) 实验十综合练习 (55) 实验十一设计时间类——计算程序的运行时间 (67) 附录:C++语言上机实验环境介绍 (70)

实验一 c++基础练习 一、实验性质 验证性实验2学时 二、实验目的和要求 1.掌握c++程序的基本格式与规范,学会编写简单的c++程序。 2.理解c++程序结构的特点。 3.熟悉c++程序基本的输入输出操作。 4.掌握c++数据类型常量和变量以及修饰符的使用方法。 5.掌握函数定义、函数调用和函数说明的方法。 6.熟悉作用域运算符的功能和基本使用方法。 7.掌握c++内存的动态分配与释放方法。 8.理解引用的概念,掌握引用的使用方法。 三、实验内容: 1编写一个简单程序,输出“welcome you”,并给程序加一行注释“fisrt c++ program”。 2编写一个完整的包含输入和输出的简单c++程序。 3编写内置函数求解2x^+4x+5的值,x为整数,并用主函数调用该函数。 利用函数重载,重载上面的函数,x为浮点数。 4编写一个程序,对一个整数数组求和,求和的结果使用全局变量sum存储,同时对整数中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。本题要求体会和理解作用域运算符的概念与基本使用方法。 5编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以该数为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new,delete运算符。 四、实验步骤 第一步:根据实验内容编写下面的代码进行调试。 #include void main() { // first c++ program cout<<”\n welcome you \n”; } 第二步:下面的程序对用户输入的口令进行判断,输出不同的结果。 #include void main() { int pass; cout<<”\n please input you password:”; cin>>pass;

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; 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); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> 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 The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C实验报告参考答案

《高级语言程序设计》实验报告班级:学号:姓名:成绩: 实验7 函数程序设计 一、实验目的 1.掌握函数定义的方法。 2.掌握函数实参与形参的传递方式。 3.掌握函数的嵌套调用和递归调用的方法。 4.了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 1.改错题 (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c存盘。 #include #include void sub( char s[], char t[] ) { int i, d; d=strlen( s );

for( i=1; i< d ; i++ ) for( i=0; i< d ; i++ ) t[i]=s[d-1-i] ; for( i=0; i #include #define ARR_SIZE = 80; #define ARR_SIZE 80 void Inverse(char str[]) void Inverse(char str[]); main()

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

C实验指导书答案

篇一:c语言程序设计实验指导书课后答案 实验一 (1)编程求37+29的值,实习vc环境。 #include<stdio.h> void main() { int a,b,sum; a=37; b=29; sum=a+b; printf(sum=%d,sum); } (2)从键盘输入三个整数,求出最大数并输出。 #include<stdio.h> void main() { int a,b,c,y; int max(int x,int y); printf(input a,b,and c:); scanf(%d,%d,%d,&a,&b,&c); y=max(a,b); y=max(y,c); printf(\nmax=%d\n,y); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); } (3)通过上机实践,运行下列程序并分析输出结果。 a 程序代码 #include<stdio.h> void main() { char ch=a; printf(%c对应的ascii码是:%d\n,ch,ch); } 程序输出结果:a对应的asc||码是:97b 程序代码 #include<stdio.h> void main() { int a=168;

float b=123.456; float x=35.567,y; printf(a=%5d\n,a); printf(a=%-5d\n,a); printf(b=%6.2f\n,b); printf(b=%e\n,b); y=(int)(x*100+0.5)/100.0; printf(x=f,y=%f\n,x,y); } 程序输出结果: a=168 a=168 b=123.46b=1.234560e+002 x=f,y=35.567001 c程序代码 #include<stdio.h> void main() { int a=168; printf(十进制数%d对应的八进制数是%o\n,a,a); printf(十进制数%d对应的十六进制数是%x\n,a,a); } 程序输出结果: 十进制数168对应的八进制数是250 十进制数168对应的十六进制数是a8 实验二 2.1顺序结构 2.1.1已知a=1.5,b=5.3,c=2.9,计算s=??2 -4ac的结果并输出。 #include<stdio.h> void main() { float a,b,c,s; a=1.5; b=5.3; c=2.9; s=b*b-4*a*c; printf(s的值是%f\n,s); } 2.1.2输入某学生的三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。#include <stdio.h> void main() { int math,english,c_program; float sum ,average;

C语言实验答案

一1 #include void main() { int iNum; float fNum=134.23; printf("a=%d\tf=%.2f\n",iNum,fNum); } 一2 #include void main() { int a,b,c,sum=0; scanf("a=%d,%d%d",&a,&b,&c); sum=a+b+c; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("sum=%d\n",sum); } 一3

#include void main() { char a,b; scanf("%3c%4c",&a,&b); printf("c1=%c,c2=%c\n",a+1,b-1); } 一4 #include #include void main() { float a; printf("Enter a:"); scanf("%f",&a); printf("The original data is:%f\n\n",a); printf("h=%.2f\n",a); }

一5 #include void main() { int a,b,c,s,e; printf("Please input two numbers:\n"); scanf("%d%d",&a,&b); c=a+b; s=c*c; e=s+s; printf("%d,%d,%d\n",c,s,e); } 一6 #include void main() { float a,b; printf("input a:"); scanf("%f",&a); b=5*(a-32)/9; printf("%.0f(℉)=%.2f(℃)\n",a,b);

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; 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。(提示:用条件运算符) 答案: #include<> 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 The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

C语言实验报告参考答案完整版

C语言实验报告参考答 案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20;

c=45; x=a/b; y=a/c; 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。(提示:用条件运算符) 答案: #include<> 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 The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。

C语言实验参考答案11

C语言实验参考答案 实验一 5、输入并运行自已编写的程序(教材第一章P14 三编程题)。 实验二 1、编写一个程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。 #include main() {float x,y,z,s,t,a; printf(“x,y,z=”); scanf(“%f,%f,%f”,&x,&y,&z); s=x+y+z; t=x*y*z; a=s/3; printf(“s=%f,t=%f,a=%f\n”,s,t,a); } 2、编程。要求用户输入两个整数a、b(分别为20、10),读取用户从键盘输入的值,然后: 1)用整数输出这两个数的和、差; 2)用长整型输出这两个数的积,用float输出商; 3)用整数输出这两个数的余数,用float输出平均值。 #include

{int a,b,he,cha,yu; long ji; float shang,aver; printf(“a,b=”); scanf(“%d,%d”,&a,&b); he=a+b; cha=a-b; ji=(long)a*b; shang=1.0*a/b; yu=a%b; aver=(a+b)/2.0; printf(“a+b=%d,a-b=%d,a*b=%ld\n”,he,cha,ji); printf(“a/b=%f,a%%b=%d,aver=%f\n”,shang,yu,aver); } 3. 再次运行程序第2题中的程序,使整数a、b的值分别为10、20,分析程序运行结果,并给出说明。 程序同上。 实验三 1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。例如,输入整数5,程序运行后输出字符5。 #include

c语言上机实验完整答案

%c 字符形式输出, %d 整数形式输出, 实验一 自测练习1 程序代码 #include void main() { int x; scanf("%d",&x); //%d十进制整型,&指x在内 存中的地址。上面 scanf的作用是:按照 x在内存的地址将x 的值存进去, if (x%2 !=0) printf("%d is an odd\n",x); else printf("%d is an even\n",x); }

运行结果 自测练习2 程序代码 #include void main() { int i, sum; i=1 ; sum=0;

while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 运行结果 自测练习3 程序代码 #include void main( ) { int i, n; long p;

p=1; printf("Enter n:"); scanf("%d",&n); for (i=1; i<=n; i++) p=p*i; printf(" p=%ld\n", p); } 运行结果 自测练习4 程序代码 #include"stdio.h" int max(int x,int y) {int z; if (x>y) z=x;else z=y; return(z); } void main() {int a,b,c;

scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); } 运行结果 自测练习5 程序代码 #include"stdio.h" void main() {int x,y; for(x=0;x<=25;x++) for(y=0;y<=50;y++) if(4*x+y*2==100) printf("兔=%d,鸡=%\n",x,y); } 运行结果

c语言实验答案

n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d+%d=%f\n",a,b,*a/b); .+1/n!的值。 #include<> void main() { int n,p=1,i; float sum=0; printf("please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) { p=p*i; sum+=p; } printf("sum=%f\n",sum); } .14 p=j; switch(p) umber); for(j=0;j<3;j++) printf("%",stu[i].score[j]); printf(" ave=%.2f\n",average(stu[i]));umber); printf("score:"); for(j=0;j<3;j++) scanf("%f",&(stu[i].score[j])); } } void main() { struct student stu[3]; //定义结构体数组 input(stu); //数组名做参数,传递的是地址 output(stu); } //静态链表的建立,有三个学生,包括学号(sno char(8)),姓名(sname char(20)),分数(grade float[]), //定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。 //静态的书上有原题目,我写成动态的了,用子函数的方式实现 #include <> #include<> #include <> struct stu //定义全局结构体 { char sno[8]; char sname[20]; float grade; struct stu *next; } ; //////////////////////////////////////////////////////// void main( ) { struct stu *creat(struct stu *); void print(struct stu*); struct stu *head; head=NULL; head=creat(head); print(head); } ///////////////////////////////////////////////////////// struct stu *creat(struct stu*head) //建立链表 { struct stu *p,*q; q=(struct stu*)malloc(sizeof(struct stu)); //分配空间 printf("please input sno:"); scanf("%s",q->sno); printf("please input sname:"); scanf("%s",q->sname);

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n"); printf(" | |\n"); printf("---+---+---\n"); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么? //The program gets two integers,and computes their sum,difference,product and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,product and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d+%d=%f\n",a,b,1.0*a/b); //做除法时要注意,除得的结果是实数 } //2.2输入半径r的值,求出圆周长,圆面积 #include #define PI 3.14 void main() { int r; float zhouchang,mianji; printf("please input r:"); scanf("%d",&r); zhouchang=2*PI*r; mianji=2*PI*r*r; printf("zhouchang=%f\n",zhouchang ); printf("mianji=%f\n",mianji); } //3.1如何实现下述输出要求? //A.输出整数1234,输出共占8位,数据左对齐。 //B.输出整数1234,输出共占10位,数据右对齐。 //C.输出十六进制整数0xFFDE3C02,输出共占8位,数据左对齐。 //D.输出十六进制整数0xFFDE3C,输出共占8位,数据右对齐,前补0。

(最新版)C语言实验报告(答案)

《C程序设计》实验报告 学期: 教师姓名: 教研室:

实验1 熟悉C语言程序的运行环境,掌握数据描述 1.1 实验目的 1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。 2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。 3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。 1.2 实验预习 1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。 2.了解下列命令及函数:include、main、printf、scanf。 3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。 4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。 int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。 6.常量与变量的区别和联系。 运行环境: 1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。 2.单击“文件”菜单的“新建”命令。 3.在打开的“新建”对话框中选择“文件”标签。 4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。如图所示:

C实验及参考答案

C实验及参考答案 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

上海电力学院 实验报告 课程名称高级程序设计c++(1)实验项目实验6 函数(2) 姓名学号班级专业信息安全 同组人姓名无指导教师姓名田秀霞实验日期2015年12月2日 一、实验目的 1、掌握重载函数的使用,函数的默认参数。 2. 掌握函数递归。 二、实验内容和步骤 编程序并上机调试运行。 1、编写重载函数Max1可以分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值 程序源代码(注意添加注释) #include using namespace std; int Max1(int x,int y); int Max1(int x,int y,int z); double Max1(double x,double y); double Max1(double x,double y,double z); int main() { int x=2,y=3,z=4; double m=,n=,p=; cout<

cout<=yx:y; } int Max1(int x,int y,int z) { int max; max=x>yx:y; max=z>maxz:max; return max; } double Max1(double x,double y) { return x>=yx:y; } double Max1(double x,double y,double z) {

相关文档
相关文档 最新文档