当前位置:文档之家› 西南交通大学C++上机实验答案

西南交通大学C++上机实验答案

西南交通大学C++上机实验答案
西南交通大学C++上机实验答案

实验1

教学班级:学生学号:学生姓名:

实验日期:2014年3月1日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________ 一、实验目的

1.熟悉C++程序的集成开发环境;

2.学习新建和打开控制台应用程序的方法;

3.掌握简单数据运算,以及输入与输出方法。二、实验任务

1.输入一摄氏温度,输出显示所转换的华氏温度。

(提示:摄氏温度=(华氏温度-32)×5/9)

2.画出一头威武雄壮的雄狮。

,%%%%%%

,%%/\%%%%/\%

,%%%\c "" J/%%%

%. %%%%/ o o \%%%

`%%. %%%% _ |%%

`%% `%%%%(__Y__)%

// ;%%%%`\-/%%%'

(( / `%%%%%%%'

\\ .' |

\\ / \ | |

\\/ ) | |

\ /_ | |__

(___________)))))))

三、实验结果(源程序+ 注释)

1.

源程序

#include

using namespace std;

void main()

{

double a,b;

cout<<"请输入一摄氏温度:"<

cin>>a;

b=a*9/5+32;

cout<<"转换的华氏温度为:"<

}

2.

源程序

#include

using namespace std;

void main()

{

cout<<" ,%%%%%% "<

cout<<" ,%%/\%%%%/\% "<

cout<<" ,%%%\c "" J/%%% "<

cout<<"%. %%%%/ o o \%%% "<

cout<<"`%%. %%%% _ |%% "<

cout<<" `%% `%%%%(__Y__)% "<

cout<<" // ;%%%%`\-/%%%' "<

cout<<"(( / `%%%%%%%' "<

cout<<" \\ .' | "<

cout<<" \\ / \ | | "<

cout<<" \\/ ) | | "<

cout<<" \ /_ | |__ "<

cout<<" (___________))))))) "<

}

实验2

教学班级:学生学号:学生姓名:

实验日期:2014年3月1日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握对一般数据的输入和输出格式控制方法;

2.掌握对实型数据输出形式的设置和小数位数的控制方法;

3.了解数据输入的相关注意事项。

二、实验任务

1. 键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。

要求:编号为11位数字构成,如10987654321;价格含有小数部分,如

998.0元;输出的编号只是由数字组成,不应该出现小数点等非数字符号。

2. 有一种加密方法是用原来字母的第n个字母代替原来的宁母。例如把A

用其后第4个字母E来替代。现在有一密文内容为wigvix,编程求出它

的原文是什么?(提示:可根据上述加密原理,使用若干字符型变量来实

现)。

3.编程实现:在计算机的提示下输入某学生的学号、英语成绩、高等数学成

绩、线性代数成绩,计算得出三门课程平均成绩,并按如下格式输出显示。

成绩单

学号20100002

****************************************

科目成绩

-----------------------------------------------------------------

英语85

高等数学90

线性代数88.5

****************************************

平均成绩87.8

三、实验结果(源程序+ 注释)

1.

源程序

#include

using namespace std;

void main()

{ double a,b;

cout<<"请输入某台计算机的编号和该计算机的价格:"<

cin>>a>>b;

cout.precision(11);

cout<<"该计算机的编号和价格分别为:"<

cout<

}

2.

源程序

#include

using namespace std;

void main()

{ char c1,c2,c3,c4,c5,c6;

cout<<"请输入密码内容:"<

cin>>c1>>c2>>c3>>c4>>c5>>c6;

c1=c1-4;

c2=c2-4;

c3=c3-4;

c4=c4-4;

c5=c5-4;

c6=c6-4;

cout<<"原文是:"<

cout<

}

3.

源程序

#include

#include

using namespace std;

void main()

{ float score1,score2,score3,average;

cout<<"请输入三门课程的成绩"<

cin>>score1>>score2>>score3;

average=(score1+score2+score3)/3;

cout<<"成绩单"<

cout<<"学号 20100002"<

cout<<"****************************************"<

cout<<"----------------------------------------"<

cout<<"高等数学"<

cout<<"线性代数"<

cout<<"****************************************"<

cout.precision(1);

cout<<"平均成绩"<

}

实验3

教学班级: 学生学号:学生姓名:

实验日期:2014年3月2日实验地点: (机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1. 掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法;

2. 掌握简单分支程序设计,以及if 和if-else 语句的使用方法。

二、实验任务

1. 已知一函数??

???>=-<<=-<=)10(113)101(12)1(x x x x x x y ,输入x 的值,求解并输出相应的y 值。

2. 求一元二次方程ax2+bx+c=0的根,其中a 、b 、c 为实数,由键盘输入。

三、实验结果(源程序+ 注释)

1.

源程序

#include

using namespace std;

void main()

{ double x,y;

cout<<"请输入x的值:"<

cin>>x;

if(x<1)

y=x;

if(x>=1&&x<10)

y=2*x-1;

if(x>=10)

y=3*x-11;

cout<<"输出相应的y值为:"<

}

2.

源程序

#include

#include

using namespace std;

void main()

{ double a,b,c,delta,x,x1,x2;

cout<<"求一元二次方程ax2+bx+c=0的根"<

cout<<"请输入a,b,c的值:"<

cin>>a>>b>>c;

delta=b*b-4*a*c;

if(delta<0)

cout<<"一元二次方程无实根"<

else

if(delta==0)

{ x=-b/(2*a);

cout<<"一元二次方程ax2+bx+c=0的根为a:"<<"x1=x2="<0)

{ x1=(-b-sqrt(delta))/(2*a);

x2=(-b+sqrt(delta))/(2*a);

cout<<"一元二次方程ax2+bx+c=0的根为:"<<"x1="<

"<<"x2="<

}

实验4

教学班级:学生学号:学生姓名:

实验日期:2014年3月3日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握多路分支结构的程序设计,以及switch语句的使用方法;

2.学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值变化

情况。

二、实验任务

1.某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购

要求编写一程序,输入客户购买产品的数量,输出客户类型(批发或零售客户)、产品单价及应付的总额。

2. 给学生写评语,需将学生的考试成绩由百分制转换为5级制,标准为:

等级分数段

A 95. - 100分

B 85.-94.分

C 75.-84.分

D 60.-74.分

E 60.分以下

3. 输入年号y和月份m, 输出y年的m月有多少天。

三、实验结果(源程序+ 注释)

1.

源程序

#include

using namespace std;

void main()

{ int x,y;

cout<<"请输入客户购买产品的数量:"<

cin>>x;

y=x/10;

switch(y)

{ case 0:

case 1:

cout<<"客户类型为零售商,产品单价为18元/个,应付的总额为:"<<18*x<

case 2:

case 3:

cout<<"客户类型为零售商,产品单价为15元/个,应付的总额为:"<<15*x<

case 4:

cout<<"客户类型为零售商,产品单价为12元/个,应付的总额为:"<<12*x<

}

if(50<=x&&x<200)

cout<<"客户类型为批发商,产品单价为10元/个,应付的总额为:"<<10*x<

if(x>=200)

cout<<"客户类型为批发商,产品单价为8元/个,应付的总额为:"<<8*x<

}

2.

源程序

#include

using namespace std;

void main()

{ int a,b;

cout<<"请输入一学生的考试成绩:"<

cin>>a;

b=a/5;

switch(b)

{ case 20:

case 19:

cout<<"该学生的考试成绩等级为A:"<

case 18:

case 17:

cout<<"该学生的考试成绩等级为B:"<

case 16:

case 15:

cout<<"该学生的考试成绩等级为C:"<

case 14:

case 13:

case 12:

cout<<"该学生的考试成绩等级为D:"<

default:

cout<<"该学生的考试成绩等级为E:"<

}

}

3.

源程序

#include

using namespace std;

void main()

{ int y,m;

cout<<"请输入输入年号y和月份m:"<

cin>>y>>m;

switch(m)

{ case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

cout<

case 4:

case 6:

case 9:

case 11:

cout<

}

if(m==2)

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

cout<

else

cout<

}

}

实验5

教学班级:学生学号:学生姓名:

实验日期:2014年4月日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法;

2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。

二、实验任务

1.计算4π=1-31+51-7

1+…直到最后一项小于10-6。 2.编程实现阿基里德算法求解两个整数的最大公约数和最小公倍数。 ( 提示:设两个整数m 、n (m>=n ),用m 除以n ,求得余数q 。

若q 为零,n 即为所求的最大公约数;

若q 不为零,则更新除数和被除数(n →m,q →n )再做除法,直

至余数q 为零止。这时,相应的n 即为所求的最大公约数。

而最小大公倍数=原始m 与n 值的乘积/最大公约数。 )

3. 编程实现十进制整数和二进制整数之间的转换。

三、实验结果(源程序 + 注释)

1.

源程序

#include

using namespace std;

void main()

{ int i=1;

double n=1,j=1,k=0,pi=0;

do {k=k+j;

n=n+2;

i=-i;

j=i/n;

}while (j>=1.0e-6||j<=-1.0e-6);

pi=4*k;

cout<<"π/4="<

cout<<"π="<

}

2.

源程序

#include

using namespace std;

void main()

{ int m,n,q,i,j,k;

cout<<"请输入两个整数:"<

cin>>m>>n;

i=m;

j=n;

q=i%j;

if (q==0)

cout<<"所求的最大公约数为:"<

if (q!=0)

do { i=j;

j=q;

q=i%j;

}while(q!=0);

k=(m*n/j);

cout<<"所求的最大公约数为:"<

cout<<"所求的最小公倍数为:"<

}

3

源程序

#include

using namespace std;

void main()

{ int i=10,j=1,m,n=0;

cout<<"请输入一个二进制整数:"<

cin>>m;

do{n+=j*(m%i);

m/=i;

j*=2;

}while(m!=0);

cout <<"转换为十进制整数是:"<

}

实验6

教学班级:学生学号:学生姓名:

实验日期:2014年4月2日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握循环与选择结构的嵌套的使用方法;

2.掌握嵌套循环的使用方法;

二、实验任务

1. 设计一个程序,求出n-m之间(m>n)的所有素数,要求:每行输出5个。

2. 键盘输入一行字符,统计字符总个数,以及其中的英文字母个数,如果

是数字,则统计它们所构成的数据中,奇数个数和偶数个数分别是多少。

提示:可使用以下程序段,连续输入若干字符直到输入'\n'时停止。

while(1) { ch=getchar(); if(ch=='\n')break;

。。。。。。

}

3. 两个乒乓球队进行比赛,各出3人。甲队为A、B、C共3人,乙队为X、Y、

Z共3人,并以抽签方式决定比赛名单。有人向队员打听比赛的名单,A说

他不和X比,C说他不和X、Z比,请给出3对赛手的名单。

4. 用循环结构语句编程并输出下图,其行数有键盘给出。

例如:键盘输入:5,则运行结果如下

1

22

333

4444

555555555

4444

333

22

1

三、实验结果(源程序+ 注释)

1.

源程序

#include

#include

using namespace std;

void main()

{ int m,n,x,y,k=0;

cout<<"请输入两个不等的整数:"<

cin>>n>>m;

cout<<"它们之间的所有素数为:"<

for(x=n;x<=m;x++)

{for(y=2;y<=x-1;y++)

if(x%y==0)break;

if(x==y)

{cout<<" "<

k=k+1;

if(k%5==0)

cout<<"\n";}

}

}

2.

源程序

#include

using namespace std;

#include

void main()

{

char ch;

int i=0,ch_num=0,odd_num=0,even_num=0;

cout<<"请输入一行字符:"<

while(1)

{

ch=getchar();

if(ch=='\n')break;

else

{

i=i+1;

if(ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z')

ch_num+=1;

else

if(ch>='1'&&ch<='9')

if(ch%2==0) even_num+=1;

else odd_num+=1;

}

}

cout<<"输入的字符总个数为:"<

cout<<"其中英文字符个数为:"<

cout<<"奇数个数为:"<

cout<<"偶数个数为:"<

}

3.

源程序

#include

using namespace std;

void main()

{ char i,j,k;

for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

if(i!=j)

for(k='X';k<='Z';k++)

if(i!=k&&j!=k)

if(i!='X'&&k!='X'&&k!='Z')

cout<<"3对选手的名单为:"<<"A--"<

}

4.

源程序

#include

#include

using namespace std;

void main()

{ int i,j,a;

cout<<"请任意输入一个整数:";

cin>>a;

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

{for(j=1;j<=2*a-1;j++)

if(j<=2*a-1-i)

if(i!=a)

cout<<" ";

else

cout<

else

cout<

cout<

for(i=1;i<=a-1;i++)

{for(j=1;j<=a-1;j++)

if(j<=a-i)

cout<

else

cout<<" ";

cout<

}

实验7

教学班级:学生学号:学生姓名:

实验日期:2014年4月2日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握数值型一维数组的使用方法;

2.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。

二、实验任务

1. 对两个无序的数组(其中数组a长度为n,数组b长度m),采用选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。要求:a和b 数组长度及其元素均由键盘获取。

2. 将以上任务1构建的两个有序的数组a和b,进行有序合并,即将这两个数组进行合并的过程中其数据始终保持有序。

(提示:数据结构:三个一维数组a,b,c

将a[ia]和b[ib]比较,谁小就把谁放入c[ic](c数组用于存放合并后的数据),

谁放入了c[ic]中谁的下标就加1,同时ic(c中当前存放数据的下

标)加1,如下图所示。)

3. 计算以上任务2中c数组元素的平均值,并删除c中所有低于平均值的那些元素。

三、实验结果(源程序+ 注释)

1.

源程序

#include

using namespace std;

void main(void)

{ int i,j,t,n,m,a[100],b[100];

cout<<"请输入数组a中数字的个数:";

cin>>n;

cout<<"请输入数组a的"<

for(i=0;i

cin>>a[i];

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<"数组从小到大排列为:"<

for(j=0;j

cout<

cout<

cout<<"请输入数组b中数字的个数:";

cin>>m;

cout<<"请输入数组b的"<

for(i=0;i

cin>>b[i];

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<"数组b从小到大排列为:"<

for(j=0;j

cout<

cout<

}

2.

源程序

#include

using namespace std;

void main(void)

{ int i,j,t,n,m,a[100],b[100];

cout<<"请输入数组a中元素的个数:";

cin>>n;

cout<<"请输入数组a的"<

for(i=0;i

cin>>a[i];

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<"数组a的元素从小到大排列为:"<

for(j=0;j

cout<

cout<

cout<<"请输入数组b中元素的个数:";

cin>>m;

cout<<"请输入数组b的"<

for(i=0;i

cin>>b[i];

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<"数组b的元素从小到大排列为:"<

for(j=0;j

cout<

cout<

{int c[200],ia=0,ib=0,ic=0;

for(ia=0;ia

if(b[ib]>a[ia])

c[ic++]=a[ia];

else

{c[ic++]=b[ib];

if(a[ia]!=b[ib])

ia--;

ib++;}

if(ib

for(;ib

c[ic++]=b[ib];

cout<<"合并后的数组c为:"<

for(int i=0;i

cout<<" "<

cout<

}

3.

源程序

#include

using namespace std;

void main(void)

{ int i,j,t,n,m,a[100],b[100];

cout<<"请输入数组a中元素的个数:";

cin>>n;

cout<<"请输入数组a的"<

for(i=0;i

cin>>a[i];

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<"数组a的元素从小到大排列为:"<

for(j=0;j

cout<

cout<

cout<<"请输入数组b中元素的个数:";

cin>>m;

cout<<"请输入数组b的"<

for(i=0;i

cin>>b[i];

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<"数组b的元素从小到大排列为:"<

for(j=0;j

cout<

cout<

int c[200],ia=0,ib=0,ic=0;

{for(ia=0;ia

if(b[ib]>a[ia])

c[ic++]=a[ia];

else

{c[ic++]=b[ib];

if(a[ia]!=b[ib])

ia--;

ib++;}

if(ib

for(;ib

c[ic++]=b[ib];

cout<<"合并后的数组c为:"<

for(int i=0;i

cout<<" "<

cout<

float sum=0.0,ave;

for(i=0;i

sum=sum+c[i];

ave=sum/(n+m);

cout<<"数组c元素的平均值为:"<

cout<<"数组c中大于平均值的元素为:";

for(i=0;i

if(c[i]>ave)

cout<

}

实验8

教学班级:学生学号:学生姓名:

实验日期:2014年5月1日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。

二、实验任务

1. 使用插入排序法将键盘输入的无序数列按升序排列。

思路分析与算法:

1)从第一个元素开始,该元素可以认为已经被排序。

2)取出下一个元素,在已经排序的元素序列中从后向前扫描。

3)如果该元素(已排序)大于新元素,将该元素移到下一位置。

4)重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。

5)将新元素插入到该位置中。

6)重复步骤2。

2.选举猴王问题:N 只猴子围成一圈,顺序编号1至N。从编号为1的猴子开始依次报数,报数m 的猴子就退出圈子,接着再报,报数m 的猴子再退出圈子,依次继续下去,圈子最后所剩的一只猴子为猴王,它原先的编号是几?

思路分析与算法:

1)使用一维数组存放猴子从1到n的编号,定义参加选举猴王的最

多猴子数为40。

2)i为每次循环时计数变量,k为按1,2,3,…m报数时的计数变量,

t表示退出的猴子数。依次将退出的猴子对应的数组元素置0,

直到只剩下一只猴子。

3)找出数组中不为0的a[i],输出该数。

三、实验结果(源程序+ 注释)

1.

源程序

#include

#include

using namespace std;

void main()

{ const int N=100;

int a[N],t,i,j,n;

cout<<"请输入数据的个数:";

cin>>n;

cout<<"请输入有"<

for(i=0;i

cin>>a[i];

if(a[0]>a[1])

{ t=a[0];a[0]=a[1];a[1]=t;}

for(i=2;i

{ j=0;

while(a[i]>a[j]&&j<=n)

j++;

if(j

{ t=a[i];

for(int k=i;k>=j;k--)

a[k]=a[k-1];

a[j]=t;

}

}

cout<<"原数列按升序排列为:"<

for(i=0;i

cout<

cout<

}

2

源程序

#include

using namespace std;

void main()

{ const int N=40;

int n, m, a[N];

int i,j,k;

cout<<"请输入参加选举的猴子总数:";

cin>>n;

cout<<"请输入报数数目:";

cin>>m;

for(i=0;i

a[i]=i+1;

i=0;

j=0;

k=0;

while(k

{ if(a[i]!=0) j++;

if(j==m){a[i]=0;j=0;k++;}

i++;

if(i==n) i=0;

}

i=0;

while(a[i]==0) i++;

cout<<"猴王原先的编号是"<

}

实验9

教学班级:学生学号:学生姓名:

实验日期:2013年5月1日实验地点:(机房)

指导教师签名:__________ 实验成绩:___________

一、实验目的

1.掌握二维数值型数组的使用方法;

2. 掌握string类字符串的使用方法。

二、实验任务

1.自动产生N*N数据(N取值最大不超过100)存入a数组,数据形成规律

如下图示(呈S形),并取出a的下三角形区域数据输出,输出形式如下图所示(呈等腰三角形)。

2. 从键盘上输入任意两个字符串,比较它们是否相同,将它们连接成一个新

的字符串并输出,输出这个新的字符串的有效长度。

三、实验结果(源程序+ 注释)

1.

源程序

#include

#include

using namespace std;

void main()

{ int a[10][10],i,j,n,k=0;

cout<<"请输入一个数字n:";

cin>>n;

a[0][0]=1;

for(i=0;i

for(j=0;j

{if(i%2==0)

{a[i+1][0]=a[i][0]+2*n-1;

a[i][j+1]=a[i][j]+1;}

if(i%2!=0)

{a[i+1][0]=a[i][0]+1;

a[i][j+1]=a[i][j]-1;}}

for(i=0;i

for(j=0;j

{cout<

k++;

if(k%n==0)

cout<

for(i=0;i

{cout<

MATLAB课后实验答案

%实验一MATLAB运算基础 %第一题%(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.* sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t>=0&t<1)+(t.^2-1).*( t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t <3)%第二题 A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; A+6*B A-B+eye(size(A)) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2]%第三题 A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B F=size(C) D=C(F(1)-2:F(1),F(2)-1:F(2)) whos%第四题 %(1): A=100:999; B=rem(A,21); C=length(find(B==0)) %(2): A='lsdhKSDLKklsdkl'; k=find(A>='A'&A<='Z'); A(k)=[] %实验二MATLAB矩阵分析与处理 %第一题 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]);%判断AB是否相等 A=[E,R;O,S];A^2 B=[E,(R+R*S);O,S^2] %第二题 H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) %第三题: A=fix(10*rand(5)) H=det(A)Trace=trace(A) Rank=rank(A)Norm=norm(A) %第四题: A=[-29,6,18;20,5,12;-8,8,5] [V,D]=eig(A)%数学意义略 %第五题方法一: %(1): A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4, 1/5,1/6]; b=[0.95,0.67,0.52]'; x=inv(A)*b %(2): B=[0.95,0.67,0.53]'; x=inv(A)*B %(3): cond(A) %第五题方法二: A=hilb(4) A(:,1)=[] A(4,:)=[] B=[0.95,0.67,0.52]'; X=inv(A)*B B1=[0.95,0.67,0.53]'; X1=inv(A)*B1 N=cond(B) N1=cond(B1) Na=cond(A) %矩阵A为病态矩阵 %第六题 A=[1,4,9;16,25,36;49,64,81] B=sqrtm(A) C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算 %实验三选择程序结构设计 %第一题程序一 x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5. 0]; y=[]; %建立存放所有y值的矩阵

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键盘¥50.5\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);这条语句 改成:printf("%c %c %d\n",a,b,c);

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 a/c的商=3

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,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() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

实验5(答案)

实验五 连续系统分析 一、实验目的 1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。 2.掌握利用MATLAB 分析连续系统的时域响应、频响特性和零极点的基本方法。 二、实验原理及内容 MATLAB 提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 1. 连续系统的时域响应 连续时间LTI 系统可用如下的线性常系数微分方程来描述: ) ()( )()(01)1(1)(t y a t y a t y a t y a n n n n ++++-- )()( )()(01)1(1)(t x b t x b t x b t x b m m m m ++++=-- 已知输入信号x (t )以及系统初始状态)0(,),0('),0()1(----n y y y ,就可以求出系统的响应。 MATLAB 提供了微分方程的数值计算的函数,可以计算上述n 阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。 在调用MATLAB 函数时,需要利用连续系统对应的系数函数。对微分方程进行Laplace 变换即可得系统函数: 1110111)()()(a s a s a s a b s b s b s b s X s Y s H n n n n m m m m ++++++++==---- 在MATLAB 中可使用向量和向量分别保存分母多项式和分子多项式的系数: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= 这些系数均按s 的降幂直至s 0排列。 ● 连续系统的单位冲激响应h (t )的计算 impulse(sys)计算并画出系统的冲激响应。 参数:sys 可由函数tf(b,a)获得。其中: ],,,,[011a a a a a n n -= ],,,,[011b b b b b m m -= h=impulse(sys, t) 计算出系统在向量t 定义的区间上的冲激响应, 向 量h 保存对应区间的系统冲激响应的输出值。 ● 连续系统的单位阶跃响应g (t )的计算 step(sys)计算并画出系统的阶跃响应。

C语言程序设计实验与习题答案

2.程序填空 (1)以下程序的功能是计算1~50之间能被7整除的整数之和。 #include void main() {int i,sum= 0; for(i=1;50;i++) if(i%7==0) sum+=i; printf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #include void main() {char cx; char front=’’; while ((cx=getchar())!=’\n’) {if (cx!=’’) putchar(cx); if (cx= =’’) if (front!=’’) putchar(cx); front=cx; } } 3.程序改错 (1)下列程序的功能是求1+3+5+…99的和。

#include void main( ) { int s,i; ★//int s=0,i; i=1; while(i<=99)s=s+i;★//{s=s+i;i++;} printf("1+3+5+…99的和是:%d\n",s); } (2)下面程序的功能是输入一个正整数,判断是否是素数,若 为素数输出1,否则输出0。 #include void main() { int i,x,y=0; ★//y=1 scanf("%d",&x); for(i=2;i<=x/2&&y;i++) if ((x%i)!=0) y=0; ★//x%i==0 printf("%d\n",y); } 4.设计性实验 (1)题 /* 方法(1)精度控制*/ #include

实验五数值积分参考答案

一 实验目的: 1 加深理解积分理论中分割、近似、求和、取极限的思想方法; 2 了解定积分近似计算的矩形法、梯形法与抛物线法; 3 会用MATLAB 语言编写求定积分近似值的程序,会用MALAB 中的命令求定积分。 二 实验准备素材 见附件。 三 实验内容 1.(不定积分)用int 计算下列不定积分,并用diff 验证 ?dx x x 2 sin ,?+x dx cos 1,?+1x e dx ,?xdx arcsin ,?xdx 3sec 2.(定积分)用trapz,int 计算下列定积分 ?10sin dx x x ,?10dx x x ,?π20)2sin(dx x e x ,?-102dx e x 3.(椭圆的周长) 用定积分的方法计算椭圆1492 2=+y x 的周长 4.(二重积分)计算积分??≤+++y y x dxdy y x 222)1( 5. (广义积分)计算广义积分 ?∞∞-+-dx x x 421)exp(,?10)tan(dx x x ,?-1021sin dx x x 7.1 syms x; g1=int(x.*sin(x).*sin(x)) g1 = x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2

clear;syms x; d1=diff(x*(-1/2*cos(x)*sin(x)+1/2*x)+1/4*sin(x)^2-1/4*x^2) syms x; g2=int(1/(1+cos(x))) g2 = tan(1/2*x) clear;syms x; d2=diff(tan(1/2*x)) syms x; g3=int(1/(exp(x)+1)) g3 = log(exp(x))-log(exp(x)+1) clear;syms x; d3=diff(exp(x))-log(exp(x)+1)) syms x; g4=int(finverse(sin(x))) g4 = x*asin(x)+(1-x^2)^(1/2) clear;syms x; d4=diff(x*asin(x)+(1-x^2)^(1/2)) syms x; g5=int(sec(x).^3) g5 = 1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)) clear;syms x; d5=diff(1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x))) 7.2 x=10e-100:0.001:1; y=sin(x)./x; trapz(x,y) clear all;syms x;

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

实验五 连接查询参考答案

--创建学生视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_stu]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_stu] go create view v_stu as select sid, sname, ssexy, sbdate, Datediff(year, sbdate, getdate()) as sage, stele, ugrade.gid, gname, gyear, udept.did, dname, daddr, dtele, demail, uteacher.tid, tname, tsexy, tbdate, tfield, tprof, tele, qq, email, msn from ustudent, ugrade, udept, uteacher where ustudent.gid=ugrade.gid and ugrade.did=udept.did and ugrade.tid=uteacher.tid --创建选修课程视图 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_sc]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[v_sc] go create view v_sc as select ustudent.sname, usc.*, cname, credit, pcid, chour, cattr, cnum from ustudent, usc, ucourse where ustudent.sid=usc.sid and usc.cid=ucourse.cid --1、显示所有学生的详细信息,包括学号、姓名、性别、年龄、班级名称,入学年份select sid, sname, ssexy, sage, gname, gyear from v_stu --2、显示信息科学与技术系同学的名单,包括学号、姓名、性别、年龄、班级名称、入学年份 select sid, sname, ssexy, sage, gname, gyear from v_stu where dname='信息科学与技术系' --3、显示选修了“数据库”的所有同学的学号、姓名 select sid, sname from v_sc where cname='数据库' --4、显示白云同学的班主任老师的姓名、联系电话 select tname, tele from v_stu

大学物理实验报告答案大全(实验数据)

U 2 I 2 大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的 (1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 实验方法原理 根据欧姆定律, R = U ,如测得 U 和 I 则可计算出 R 。值得注意的是,本实验待测电阻有两只, 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置 待测电阻两只,0~5mA 电流表 1 只,0-5V 电压表 1 只,0~50mA 电流表 1 只,0~10V 电压表一 只,滑线变阻器 1 只,DF1730SB3A 稳压源 1 台。 实验步骤 本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学 生参照第 2 章中的第 2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录 U 值和 I 值。对每一个电阻测量 3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 (1) 由 U = U max ? 1.5% ,得到 U 1 = 0.15V , U 2 = 0.075V ; (2) 由 I = I max ? 1.5% ,得到 I 1 = 0.075mA , I 2 = 0.75mA ; (3) 再由 u R = R ( 3V ) + ( 3I ) ,求得 u R 1 = 9 ? 101 &, u R 2 = 1& ; (4) 结果表示 R 1 = (2.92 ± 0.09) ?10 3 &, R 2 = (44 ± 1)& 光栅衍射 实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。 (3) 观测汞灯在可见光范围内几条光谱线的波长 实验方法原理

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

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

长沙理工大学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键盘¥50.5\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;

C语言上机实验标准答案.doc

实验一上机操作初步 (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( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\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); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C实验报告1参考答案范文

《高级语言程序设计》实验报告 班级: 学号: 姓名: 成绩: 实验1熟悉Visual C++6.0环境及运行C 程序 一、实验目的 1.掌握在Visual C++6.0环境下C 程序的建立、编辑、编译和执行过程。 2.掌握C 程序的最基本框架结构,完成简单程序的编制与运行。 3.了解基本输入输出函数scanf()、printf ()的格式及使用方法。 4.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.下列程序的功能是:从键盘输入两个数a 和b ,求它们的平方和,并在屏幕上输出。输入该C 程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c 保存。 #include main() { int a,b,sum; /*定义整型变量a 、b 、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a 和b*/ sum=a*a+b*b; /*赋值语句,把a 2+b 2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ } (1)下列程序的功能为:计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名sy1_2.c 保存。 #include main main () { int x=2;y=3;a int x=2;y=3;a ;

A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名 sy1_3.c 保存。 #include viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max main() { int x,y,total; /* 定义整型变量x,y,total*/ printf("Please input x,y ! "); /* 输出提示信息 */ scanf(“%d%d ”,&x,&y); /* 由键盘输入两个数分别赋予x 和y*/ total=x+y; /* 赋值语句 */ printf("%d + %d=%d\n",x,y,total); /* 输出两个整数的和 */ }

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

实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++调试环境。 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个数中的最大者,则程序该如何编写。 程序代码 运行结果:

实验报告5答案

实验报告 课程名称:高级语言程序设计 实验五:循环结构程序设计 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 1、理解循环的概念 2、理解并掌握循环结构相关语句的含义、格式及使用 3、学会循环的应用及控制,包括: ① 掌握使用循环输入多个数据的方法 ② 掌握在多个数据中有选择地输出数据的方法 ③ 掌握在多个数据中对某种数据进行计数的方法 ④ 掌握求多个数据中最大值、最小值的方法 ⑤ 掌握使用break 、continue 语句终止循环 4、掌握循环的嵌套 二、知识要点 1、循环变量、循环条件、循环体的概念 2、三种循环语句的一般格式、执行过程 3、理解选择结构与循环结构中“条件表达式”之不同含义 4、二重循环的执行过程 三、实验预习 (要求做实验前完成) 1、循环变量的主要用途是: 2、用循环求多个数的和之前,先要把和的初始值赋为: 3、用循环求多个数的乘积之前,先要把乘积的初始值赋为: 4、字符变量能否作为循环变量? 5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法? 6、什么叫循环的嵌套? 四、实验内容 (要求提供:① 算法描述或流程图 ② 源程序 ) 1、编程,利用循环计算以下表达式的值: (5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for 循环) 2、编程,从键盘输入若干个整数,当输入0时,输入停止。统计并输出总共输入了几个 数,以及所有输入数的和。(while 循环) 3、输入一行字符,分别统计其中的英文字母、数字、空格和其他字符的个数。 4、使用二重循环编程,绘制如下图形: *****A ****B ***C **D *E 5. 输入10个整数,输出最大值、最小值和平均分。 6. 编写程序,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14…。 () 1121231234121233535735793521n n π?????????=++++++?????????+………… 五、实验结果(要求写出运行界面及输出的运行结果)

C语言程序设计实验报告(实验1-12)

文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持. 《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue

2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b; printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容:

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