当前位置:文档之家› c实验答案

c实验答案

c实验答案
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;

if (pass==12345) cout<<”welcome you.”;

else cout<<”your password is not right.”;

}

第三步:根据题目要求编写下面的代码进行调试。

#include

inline int f(int x)

{

return 2*x*x+4*x+5;

}

void main()

{

cout<

}

第四步:根据题目要求编写下面的代码进行调试。

#include

inline double f(double x)

{

return 2*x*x+4*x+5;

}

inline double f(double x)

{

return 2*x*x+4*x+5;

}

void main()

{

int x=5;

double y=5.2;

cout<

cout<

}

第五步:在主函数内外同时使用sum做计数器,并在主函数中同时使用。#include

int a[]={1,2,3,4,,5,6,7,8,9,10};

int sum;

void main()

{

int i;

int sum=0;

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

{ if (a[i]%2!=0) sum=sum+a[i];

∷sum= ∷sum+a[i];

}

cout<<” sum of all is:”<< ∷sum;

cout<<” sum of odd is:”<

}

第六步;根据题目要求编写代码如下。#include

void main()

{

double *r;

r=new double;

cin>>*r;

cout<<”area is:”<<3.14*(*r)*(*r); delete r;

}

实验二 c++简单程序设计练习

一、实验性质

验证性实验2学时

二、实验目的和要求

1.掌握if语句的用法。

2.掌握switch语句的用法。

3.掌握循环和多重循环的用法。

4.掌握递归函数的用法。

5.掌握简单的指针操作方式。

6.掌握c++内存的动态分配与释放方法。

三、实验内容

根据输入的百分制按五分制的成绩输出。百分制与五分制之间的关系见下表。分别使用if分支结构和switch结构编写程序。

编写程序列出婓波那挈(fibonacci)数列的前20项。分别用迭代和数组的方法编程。

输入100个整数,从小到大排列并输出。

使用递归方法解决背包问题:设有一个背包可以放入的物品数量为s,现有n 件物品,重量分别为w1,w2,…,wn,问能否从这n件物品中选择若干件放入此背包,使得放入的重量之和正好为s。如果存在一种符合上述要求的选择,称此问题有解,否则问题无解。

读入9个双精度的数,把他们存放在一个存储块里,然后求出它们的积。使用动态分配和指针操作。

四、实验步骤

# include

void main()

{

int score;

char grade;

cout<<”please input score:”<

cin>>score;

if (score>=0&&score<=100)

{

if (score>89) grade=’5’;

else if (score>79) grade=’4’;

else if (score>59) grade=’3’;

else grade=’2’;

cout<<”grade is ”<

}

else

cout<<”data error\007\n”;

}

第二步:使用switch结构解决成绩问题转换问题。# include

void main()

{

int score ,s,sun; char grade;

c out<<”please input score:”<

cin>>(score);

if score)

{

s=score/10;

switch (s);

{

case 0;

case 1;

case 2;

case 3;

case 4;

case 5; grade=’2’;break;

case 6;

case7; grade=’3’;break;

case 8; grade=’4’;break;

case 9;

case 10; grade=’5’;break;

}

cout<<”grade is ”<

}

else

cout<<”data error\007\n”;

}

第三步:使用双重循环解决素数问题。

# include

void main()

{

int i,j;

for (i=3;i<=100;i++)

{

for (j=2;j

if (i==j)

cout<

}

cout<<”\n”;

}

第四步:使用迭代方法解决裴波那契数列问题。

# include

void main()

{

int a,b,j,f;

a=1;b=1;

cout<

for (j=3;j<=20;j++)

{

f=a+b;

a=b;

b=f;

cout<

if (j%5==0) cout<<”\n”; //每输出5个换行}

}

第五步:使用数组方法解决裴波那契数列问题。

# include

void main()

{

int i,fib[20]={1,1}; //初始化

for (i=2;i<20;i++)

fib[i]=fib[i-1]+fib[i-2];

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

{

cout<

if (i%5==0) cout<<”\n”; //每输出5个换行}

}

第六步:使用选择法解释排序问题。

# include

void main()

{

int i,j,data[120],temp;

int min_a;

cout<<”\nplease input ”<

for (i=0;i<=size;i++)

cin>>data[i];

for (i=0;i

{

min_a=i;

for (j=i;j

if (ata [j]

min_a=j;

data [min_a]=data[i];

data [i]=temp;

}

cout<<”\nafter sorted:”;

for (i=0;i

cout<<” ”<

}

第七步:使用递归方法解决背包问题。

# include

void main()

{

int f;

if (s==0) f=1;

else if ((s<0) ||((s>0) &&(n

else if (knap (s-w[n],n-1)==1) { cout<<”\nw[“<

else f=knap (s,n-1);

return f;

}

void main()

{

int i;

i=knap(29,8);

if (i==0)

cout<<”no solution\n”; //背包问题无解

第八步:使用动态分配和指针操作求9个double数的乘积。

# include

const size=9;

double *init() //返回指针值的函数

{

return new double (size); //分配空间将首地址返回}

void readin(double *a) //从a指向的存储单元开始读入数据

{

int i;

cout<<”\nplealse enter ”<

for (i=0;i

cin>>*(a+i); //读入数据到a+i指向的存储单元}

void product (double *arr ,int size,double *resule)

//计算从arr指向的存储单元开始的

//连续size个存储单元的乘积

{

for (size--,*result=*(arr+size);--size>=0;*result=*(arr+size));

//乘积的结果放入result指向的存储单元}

void main()

{

double *x,res,*init();

if ((x=init())==null)

return;

readin(x);

product(x,size,&res);

c out<<”the product is :”<

delete x;

}

实验三类与对象(一)

一、实验性质

验证性实验、设计性实验4学时

二、实验目的与要求

1、掌握类、类的数据成员、类的成员函数的定义方式

2、理解类成员的访问控制方式

3、掌握对象的定义和操作对象的方法

4、理解构造函数和析构函数的定义与执行过程

5、掌握重载构造函数的方法

6、了解拷贝构造函数的方法

三、总的设计思想,及环境语言、工具等

通过设计一个time类和一个stock类达到实验目的,使用visual c++ 或turboc

3.0集成开发环境

四、实验内容:

1.声明一个时间类,时间类中有3个私有数据成员(hour,minute,second)和两个公有成员函数(settime和print_time).settime根据传递的3个参数为对象设置时间;print_time负责将对象表示的时间显示输出。

在主函数中,建立一个时间类的对象,设置时间为9点20分30秒并显示该时间。

2.使用构造函数代替上面的settime成员函数,并在主函数中使用构造函数设置时间为10点40分50秒,并显示该时间。

3.重载时间类的构造函数(不带参数)使小时,分,秒均为0。

4.在时间类的析构函数中输出“goodbye!”

5.定义拷贝构造函数并调用。

五、主要实验步骤:

1. #include

class time

{

public:

void settime(int c,int m,int s)

{

clock=c;

minute=m;

second=s;

}

void print_time()

{

cout<

}

private:

int clock,minute,second;

};

void main()

{

time time1;

time1.settime(9,20,30);

time1.print_time();

}

2.

#include

class time

{

public:

time(int c,int m,int s)

{

clock=c;

minute=m;

second=s;

}

void print_time()

{

cout<

}

private:

int clock,minute,second;

};

void main()

{

time time1(10,40,50);

time1.print_time();

}

3. #include

class time

{

public:

time()

{

clock=0;

minute=0;

second=0;

}

time(int c,int m,int s)

{

clock=c;

minute=m;

second=s;

}

void print_time()

{

cout<

}

private:

int clock,minute,second;

};

void main()

{

time time1;

time1.print_time();

time time2(9,20,30);

time2.print_time();

}

4. #include

class time

{

public:

time()

{

clock=0;

minute=0;

second=0;

}

time(int c,int m,int s)

{

clock=c;

minute=m;

second=s;

}

print_time()

{

cout<

}

~time()

{

cout<<"good bye"<

}

private:

int clock,minute,second;

};

void main()

{

time time1;

time1.print_time();

time time2(9,20,30);

time2.print_time();

}

5. #include

class time

{

public:

time()

{

clock=0;

minute=0;

second=0;

}

time(int c,int m,int s)

{

clock=c;

minute=m;

second=s;

}

print_time()

{

cout<

}

~time()

{

cout<<"good bye"<

}

time (const time&p)

{

clock=p.clock;

minute=p.minute;

second=p.second;

}

private:

int clock,minute,second;

};

void main()

{

time time1;

time1.print_time();

time time2(9,20,30);

time2.print_time();

time time3(9,20,30);

time time4(time3);

time3.print_time();

time4.print_time();

}

实验四类与对象(二)

一、实验性质

验证性实验、设计性实验4学时

二、实验目的和要求

1.掌握对象数组的定义与使用方法。

2.理解对象指针的概念,学会用指针引用对象。

3.了解this指针的工作方式。

4.掌握静态数据成员和静态成员函数的基本使用方法。

5.理解友元与友元函数的作用,掌握其使用方法。

三、实验内容

使用实验三中的股票类stock,定义一个对象数组存放连续5个交易日的股票信息。

编写一个主函数,计算两个stock对象(前后两日)的当日收盘价,计算当日涨幅。用指针引用对象数组中的两个对象。在主函数中调用该函数计算从第2个交易日开始每天的当日涨幅。

在stock类中定义一个静态数据成员,记录当前stock对象的数量。

设计一个成员函数assign-stock为对象赋值,其中的形式参数是对另一个stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用assign-stock赋值的对象。

定义一个友元函数计算stock对象的当日开盘价是否高于当日开盘价。若是,返回真;否则,返回假。

四、实验步骤

第一步:定义类stock,计算两个stock对象(前后当日)的当日收盘价并计算当日涨幅。

#include “iostream.h”

const n=5;

class stock

{

public:

stock() {};

stock(int n,float mi,float b,float e);

void set_stock(int n,float ma,float mi,float b,float e);

void set_stock();

float get-end();

void show_stock();

private:

int number;

float max,min,begin,end;

);

stock::stock(int n,float ma,float mi,float b,float e)

{

number=n;

max=ma;

min=mi;

begin=b;

end=e;

}

void stock::set_stock(int n,float ma,float mi,float b,float e) {

number=n;

max=ma;

min=mi;

begin=b;

end=e;

}

float stock::get_end()

{

return end;

}

void stock::show_stock()

{

cout<

cout<

cout<

cout<

cout<

}

void stock::set_stock()

{

cout<<”number:”;

cin>>number;

cout<<”max:”;

cin>>max;

cout<<”min:”;

cin>>min;

cout<<”begin:”;

cin>>begin;

cout<<”end:”;

cin>>end;

}

void main()

{

int i;

stock sl[100];

stock *p;

for (i=0, p=s1; i

p->set_stock();

for (i=0, p=s1; i

p->show_stock();

for (i=1, p=s1+1; i

cout<<”\n”<<\

(p->get_end()-(p-1)->get_end())/(p-1)->get_end()*100<<”%”;

}

第二步:添加静态数据成员。

#include

const n=2;

class stock

{

public:

stock() {}

stock ( int n, float ma , float mi, float b, float e);

void set_stock ( int n, float ma, float mi, float b, float e);

void set_stock();

float get_end();

void show_stock();

int get_n_count();

private:

static int n_count;

int number ;

float max, min, begin, end;

};

int stock:n_count=0;

stock::stock( int n, float ma, float mi, float b, float e) {

n_count++;

number=n;

max=ma;

min=mi;

begin=b;

end=e;

}

void stock::set_stock( int n, float ma, float mi, float b, float e) {

n_count++;

number=n;

max=ma;

min=mi;

begin=b;

end=e;

}

float stock::get_end()

{

return end;

}

void stock::show_stock()

{

cout<

cout<

cout<

cout<

cout<

}

void stock::set_stock()

{n_count++;

cout<<”number:”;

cin>>number;

cout<<”max:”;

cin>>max;

cout<<”min:”;

cin>>min;

cout<<”begin:”;

cin>>begin;

cout<<”end:”;

cin>>end;

}

int stock::get_n_count()

{ return n_count;

}

void main()

{

int i;

stock s1[100];

stock *p;

for (i=0,p=s1;i

p->set_stock();

for (i=0,p=s1;i

p->show_stock();

for (i=1,p=s1+1;i

cout<<”\n”<<\

(p->get_end()-(p-1)->get_end())/(p-1)->get_end()*100<<”%”; cout<<”\n”<get_n_count();

}

第三步:使用this指针。

#include

const n=2;

class stock

{

public:

stock() {}

stock (int n,float ma,float mi,float b,float e);

void set_stock(int n,float ma,float mi,float b,float e);

void set_stock();

void assign_stock(stock& p);

void show_stock();

private:

static int n_count;

long number;

float max,min,begin,end;

};

int stock::n_count=0;

stock::stock(int n,float ma,float mi,float b,float e)

{

n_count++;

numbe=n;

max=ma;

min=mi;

begin=b;

end=e;

}

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语言程序开发环境及数据描述 四、程序清单 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语言实验习题及答案详解

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语言实验答案

一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语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上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语言实验参考答案

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

main() {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); } 实验三 1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。例如,输入整数5,程序运行后输出字符5。 #include main() {int a; char c;

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语言实验教程实验答案

实验1 基本程序示例 任务1 熟悉C语言程序的编辑、编译、连接和运行过程【上机内容】 1.输入并运行下面程序,写出运行结果。 #include "stdio.h" main() { char c1,c2; c1=97;c2=98; printf("%c,%c", c1, c2); } 在此基础上,完成以下3项任务: (1)在c1=97;c2=98;语句后加入如下语句,并运行。 printf("%d, %d", c1, c2 ); 运行结果: a,b97,98 (2)将char c1,c2;改为如下语句,再运行。 int c1, c2; 运行结果: a,b (3)将c1=97;c2=98;改为如下语句,再运行,并分析其运行结果。 c1=300; c2=400; 运行结果: ,,怭(或,,?) 2.分析下面程序,写出运行结果,再输入计算机中运行,将得到的结果与分析得到的结果比较对照。 #include "stdio.h" main() { char c1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tabc%c \n",c1,c2,c3); printf("\t\b%c %c",c4,c5); } 运行结果: aa bb abcc A N 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 分别进行以下改动后,先分析结果,再运行对照。 (1)将m=++i; n=j++;改为如下: m=i++; n= ++ j; 运行结果: 9,11,8,11 (2)程序改为如下: #include "stdio.h" main() { int i , j ; i=8; j=10; printf("%d,%d", i++, j++); } 运行结果: 8,10 (3)程序改为如下: #include "stdio.h" main() { int i , j ; i=8; j=10; printf("%d,%d", ++ i, ++ j); } 运行结果: 9,11 (4)程序改为如下: #include "stdio.h" main() { int i , j ; i=8; j=10; printf("%d,%d,%d,%d",i,j,i++,j++); } 运行结果: 8,10,8,10 (5)程序改为如下: #include "stdio.h" main() { int i , j , m=0 , n=0 ;

C语言上机实验答案

C语言上机实验答案 The latest revision on November 22, 2020

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏 幕。(书P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 =================================

5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include <> void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d); }

C语言程序设计实验实验指导书及标准答案

实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++6.0调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

华南农业大学C语言实验上机实验第四版参考答案.

C语言程序设计上机实验指导与习题 参考答案(第四版) (学生改编) 实验1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用在线评判系统。 二、实验内容 1. 运行第一个C程序 [题目:The first C Program] 将下列程序输入visual c++ ,编译、连接和运行该程序。 #include"stdio.h" main() { printf("The first C Program\n"); } [具体操作步骤] (1)在编辑窗口中输入程序。 (2)保存程序,取名为a1.c。 (3)按照第一章中介绍的方法,编译、连接和运行程序。 (4)按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”,则该题完成。

2. 在在线评判系统中提交实现了计算a+b功能的程序 [题目1001:计算a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, #include "stdio.h" main() { int a, b; scanf("%d%d", &a, &b); printf("%d", a + b); } (1)在程序编辑窗口中输入程序。 (2)保存程序,取名为a2.c。 (3)按照前二章中介绍的方法,编译、连接和运行程序。 (4)在程序运行过程中,输入 15 30↙ (↙表示输入回车符) (5)如果看到如下输出结果,则表明15+30 的结果正确,如果得不到如下结果,则需检查并更正程序。 45 (6)按照第三章中介绍的方法进入在线评判系统。 (7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。 (8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序的方法提交程序a2.c。 (9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。 3 实验2 基本数据类型、运算和表达式 一、实验目的 (1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运 算符的使用。 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。#include "stdio.h" main() { int a, b; /*定义整型变量a和b*/ int i, j; /*定义实型变量i和j*/ a=5; b=6;

C语言实验题及参考答案

实验一 1、计算整数各位数字之和(10 分) 输入一个3位正整数,将其每一位的数字相加,输出和。输入格式: 输入一个3位正整数。变量数据类型为unsigned。 输出格式: 输出整数每一位相加后的整数和。 输入样例: 输出样例: 【参考答案】 #include "" int main() { unsigned int a,ge,shi,bai,sum; scanf("%d",&a); ge=a%10; shi=a/10%10; bai=a/100; sum=ge+shi+bai; printf("%d\n",sum); return 0; } 2、计算代数表达式(10 分) 求:

输入格式: 输入角度x。变量数据类型为double。π为。 输出格式: 输出y的值,精确到小数点后2位。 输入样例: 输出样例: #include <> #include <> #define PI int main() {double x,y; scanf("%lf",&x); y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180)); printf("%.2lf",y); return 0; } 3、逆序的三位数(10 分) 程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。 输入格式: 每个测试是一个3位的正整数。 输出格式: 输出按位逆序的数。 输入样例:

输出样例: 【参考答案】 #include "" int main() { int a,ge,shi,bai,b; scanf("%d",&a); ge=a%10; shi=a/10%10; bai=a/100; b=ge*100+10*shi+bai; printf("%d\n",b); return 0; } 4、求整数均值(10 分) 本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出4个整数,其间以空格分隔。 输出格式: 在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。 输入样例: 输出样例: 【参考答案】 #include "" int main()

济南大学c语言实验答案(DOC)

实验2 顺序结构程序设计 1. 编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。 参考程序: #include "stdio.h" void main() { char ch; printf(“\nPlease input a capital character:”); scanf(“%c”,&ch); ch=ch+32; printf(“\nThe small letter is %c”,ch); } 2.编写程序,输入圆半径r ,求圆周长、圆面积、圆球体积。 参考程序: #include #include #define PI 3.14 void main() { float r,c,area,v; printf(“\nPlease input the r:”); scanf(“%f”,&r); c=2*PI*r; area=PI*r*r; v=4.0/3*PI*pow(r,3); printf(“\nThe circle’s perimeter is %.2f”,c); printf(“\nT he circle’s area is %.2f”,area; printf(“\nThe circle’s volume is %.2f”,v); } 3. 输入一个华氏温度,要求输出摄氏温度。公式为: ()3295-=F c 输出要有文字说明,取2位小数。 参考程序: #include void main() { float f,c;

printf(“\nPlease input a F temperature:”); scanf(“%f ”,&f); c=5.0/9*(f-32); printf(“\nThe temperature is %.2f ”,c); } 4. 有3个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r 。已知电阻并联公式为: 3 121111r r r r ++= 参考程序: #include void main() { float r,r1,r2,r3; printf(“\nPlease input r1、r2、r3:”); scanf(“%f%f%f ”,&r1,&r2,&r3); r=1.0/r1+1.0/r2+1.0/r3; r=1.0/r; printf(“\nThe result is %.2f ”,r); } 5.编写程序,输入三角形的三条边,计算并输出三角形的面积。(注意输入的三条边必须要能构成一个三角形) 求三角形的面积公式为: ()()()c s b s a s s area ---= 其中s=(a+b+c)/2。 参考程序: #include #include void main() { float a,b,c,s,area; printf(“\nPlease input a,b,c:”); scanf(“%f%f%f ”,a,b,c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“\nThe area is %f ”,area); } 6. 编写程序,输入梯形的上底和下底,计算并输出梯形的面积。精确到小数点

相关主题
文本预览
相关文档 最新文档