程序设计基础实验报告.docx

上传人:b****6 文档编号:12147106 上传时间:2023-06-04 格式:DOCX 页数:47 大小:40.57KB
下载 相关 举报
程序设计基础实验报告.docx_第1页
第1页 / 共47页
程序设计基础实验报告.docx_第2页
第2页 / 共47页
程序设计基础实验报告.docx_第3页
第3页 / 共47页
程序设计基础实验报告.docx_第4页
第4页 / 共47页
程序设计基础实验报告.docx_第5页
第5页 / 共47页
程序设计基础实验报告.docx_第6页
第6页 / 共47页
程序设计基础实验报告.docx_第7页
第7页 / 共47页
程序设计基础实验报告.docx_第8页
第8页 / 共47页
程序设计基础实验报告.docx_第9页
第9页 / 共47页
程序设计基础实验报告.docx_第10页
第10页 / 共47页
程序设计基础实验报告.docx_第11页
第11页 / 共47页
程序设计基础实验报告.docx_第12页
第12页 / 共47页
程序设计基础实验报告.docx_第13页
第13页 / 共47页
程序设计基础实验报告.docx_第14页
第14页 / 共47页
程序设计基础实验报告.docx_第15页
第15页 / 共47页
程序设计基础实验报告.docx_第16页
第16页 / 共47页
程序设计基础实验报告.docx_第17页
第17页 / 共47页
程序设计基础实验报告.docx_第18页
第18页 / 共47页
程序设计基础实验报告.docx_第19页
第19页 / 共47页
程序设计基础实验报告.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计基础实验报告.docx

《程序设计基础实验报告.docx》由会员分享,可在线阅读,更多相关《程序设计基础实验报告.docx(47页珍藏版)》请在冰点文库上搜索。

程序设计基础实验报告.docx

程序设计基础实验报告

《程序设计基础》

实验报告

专业班级:

姓名:

学号:

 

实验一面向过程的简单程序设计

1.实验目的要求

(1)使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程,初步了解C++程序的特点。

(2)掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。

(3)掌握赋值语句的使用。

(4)掌握数据的输入输出方法。

2.实验内容

(1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。

<1>

<2>

<3>sinX+cosX+tan-1X

<4>ex+y+ex-y<5>log10(1+

)<6>

+

(其中

表示取不大于a的最大整数)。

<1>

#include

usingnamespacestd;

intmain()

{

floatx,a,b,c,d,e;

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

e=x+(a+b)/(c-d);

cout<

return0;

}

<2>

#include

#include

usingnamespacestd;

intmain()

{

doublex,y;

cin>>x;

y=sqrt(1+1/(x+1/(x+1)));

cout<

return0;

}

<3>

#include

#include

usingnamespacestd;

intmain()

{

doublex,y;

cin>>x;

y=sin(x)+cos(x)+1/tan(x);

cout<

return0;

}

<4>

#include

#include

usingnamespacestd;

intmain()

{

doublex,y,z;

cin>>x>>y;

z=exp(x+y)+exp(x-y);

cout<

return0;

}

<5>

#include

#include

usingnamespacestd;

intmain()

{

doublex,y;

cin>>x;

y=log(1+sqrt(1+x*x));

cout<

return0;

}

<6>

#include

#include

usingnamespacestd;

intmain()

{

doublea,b,c;

intd;

cin>>a>>b;

c=fabs(a*a-b*b);

d=int(a-b);

if(a-b>=0||d==a-b)

c+=d;

else

c+=d-1;

cout<

return0;

}

(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。

<1>

#include

voidmain()

{

charch;

cin>>ch;

ch=(ch>=’A’&&ch<=’Z’)?

(ch+32):

ch;

ch=(ch>=’a’&&ch<=’z’)?

(ch–32):

ch;

cout<

}

将大小写字母进行转换

<2>

#include

voidmain()

{

intm;

floatx;

boolbi,br;

cout<<"\nintm=";

cin>>m;

bi=m>1000;

cout<<"\nfloatx=";

cin>>x;

br=x<=1e3;

cout<

}

分别输入10040,20003000,10001000,2000300,1004000运行。

输出结果为:

01,10,01,11,00

程序用来判断m和n与1000的大小关系

(3)编写程序实现下列问题的求解。

<1>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。

#include

usingnamespacestd;

intmain()

{

intr,l,s,pi=3.1415926;

cout<<"Inputanmber:

"<

cin>>r;

l=2*pi*r;

s=pi*r*r;

cout<<"圆的周长为:

"<

cout<<"圆的面积为:

"<

return0;

}

实验二控制结构程序设计

1.实验目的要求

(1)理解基本的解题技巧,掌握用自顶向下、逐步求精的过程设计算法。

(2)熟练掌握if/else语句和switch语句的使用。

(3)熟练掌握while语句、do/while语句和for语句的使用以及区别。

(4)掌握break和continue程序控制语句的使用。

2.实验内容

(2)编写程序实现下列问题的求解。

<1>求解下面函数的值。

ex+yx<0,y<0

z=ln(x+y)1≤x+y〈10

log10|x+y|+1其它情况

<1>

#include

#include

usingnamespacestd;

intmain()

{

doublex,y,z;

cin>>x>>y;

if(x<0&&y<0)z=exp(x+y);

elseif(x+y>=1&&x+y<10)z=log(x+y);

elsez=log10(fabs(x+y)+1);

cout<

return0;

}

<2>编程求解下列各计算式:

1)S=

=1+2+3+…+100

(1)

#include

usingnamespacestd;

intmain()

{

inti=1,sum=0;

while(i<=100)

{sum=sum+i;

i++;

}

cout<

}

2)S=

=1!

+2!

+…+7!

(2)

#include

usingnamespacestd;

intmain()

{

intn,s=1,c=0;

for(inti=1;i<=7;i++)

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

{

s*=n;

}

c+=s;

s=1;

}

cout<

return0;

}

3)   S=1×2+3×4+5×6+…+39×40

(3)

#include

usingnamespacestd;

intmain()

{

ints=0;

for(inti=1;i<=39;i+=2)

s=i*(i+1)+s;

cout<

return0;

}

<3>打印下面图形。

1

131

13531

1357531

135797531

…………………

13……21………31

#include

usingnamespacestd;

intmain()

{

intn,i,j=25,k=1,a=1,b;

for(i=1;i<=11;i++){

for(n=1;n<=j;n++){

cout<<"";

}

b=k;

while(a

cout<

a+=2;

}

a=1;

while(b>1){

cout<

b-=2;

}

cout<

for(n=1;n<=j;n++){

cout<<"";

}

j-=2;

k+=2;

cout<

}

return0;

}

实验三数组

1.实验目的要求

(1)掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。

(2)初步了解数组名与地址的关系。

(3)掌握字符数组和字符串函数的使用。

(4)掌握与数组有关的算法(特别是排序和查找算法)。

2.实验内容

(2)编写程序实现下列问题的求解。

<1>编程产生下列数组,并输出。

⑴一维数组

1)(149162536496481100)

2)(13610152128364555)

  3) (123581321345589)

<1>

(1)

#include

usingnamespacestd;

intmain()

{

inta[10];

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

{

a[i-1]=i*i;

cout<

}

cout<

return0;

}

(2)

#include

usingnamespacestd;

intmain()

{

inta[10],j=0;

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

j+=i;

a[i-1]=j;

cout<

}

cout<

return0;

}

(3)

#include

usingnamespacestd;

intmain()

{

inta[10],j=0;

a[0]=1;

a[1]=2;

for(inti=3;i<=10;i++)

{

a[i-1]=a[i-3]+a[i-2];

}

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

cout<

cout<

return0;

}

<2>1)#include

usingnamespacestd;

intmain()

{

inta[6][6],b=0;

for(inti=0;i<6;i++){

for(intj=0;j<6;j++){

if(b>5){

b=0;

}else{

b++;

}

a[i][j]=b;

}

b=i+1;

}

for(i=0;i<6;i++){

for(intj=0;j<6;j++)

cout<

cout<

}

return0;

}

2)#include

usingnamespacestd;

intmain()

{

inta[100][100],b=0,n;

cin>>n;

for(inti=0;i

for(intj=0;j

if(b>n-2){

b=0;

}else{

b++;

}

a[i][j]=b;

}

b=i+1;

}

for(i=0;i

for(intj=0;j

cout<

cout<

}

return0;

}

<3>编程求一组整数的最大公因子和最小公倍数。

#include

usingnamespacestd;

intmain()

{

intn,m,i,j,k,h;

cin>>n>>m;

if(n>m)

{

i=n;

k=m;

n=m;

m=i;

}

j=n;

i=n;

k=m;

while((m%n)!

=0)

{

j=m%n;

m=n;

n=j;

}

h=(i/j)*(k/j)*j;

cout<<"最大公约数为:

"<

cout<<"最小公倍数:

"<

return0;

}

实验四函数

1.实验目的要求

(1)理解并掌握如何模块化的用函数来构建程序。

(2)掌握定义函数的方法,了解函数的重载方法,了解内联函数的机制。

(3)掌握函数间传递信息的机制。

(4)掌握函数的嵌套调用(和递归调用)的方法。

(5)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。

2.实验内容

(2)编写程序实现下列问题的求解。

<1>求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0时的根,并输出结果。

从主函数输入a、b、c的值。

#include

#include

voidmain()

{

doublea,b,c,x1,x2,re,im,s;

cout<<"inputa,b,c\n";

cin>>a>>b>>c;

cout<

if(a==0)

{

if(b==0)

{

if(c==0)

cout<<"方程有无数组解."<

else

cout<<"方程无解."<

}

else{

x1=(-c)/b;

cout<<"方程解为:

"<

}

}

else

{

if(s>0){

x1=(-b+sqrt(s))/(2*a);

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

cout<<“方程的两个根为:

x1="<

}

else{

re=-b/(2*a);

s=-s;

im=sqrt(s)/(2*a);

cout<<“方程的两个根为:

x1="<

cout<<"x2="<

<<"i"<

}

}

}

}

<2>用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。

例如,输入”A2”转换为162。

#include

inthehe(inta)

{

intb,c;

intA,B,C,D,E,F;

b=1,c=1;

while(c!

=0)

{

c=a/16;

b=a%16;

a=c;

switch(b)

{

case1:

cout<<"1";

break;

case2:

cout<<"2";

break;

case3:

cout<<"3";

break;

case4:

cout<<"4";

break;

case5:

cout<<"5";

break;

case6:

cout<<"6";

break;

case7:

cout<<"7";

break;

case8:

cout<<"8";

break;

case9:

cout<<"9";

break;

case10:

cout<<"A";

break;

case11:

cout<<"B";

break;

case12:

cout<<"C";

break;

case13:

cout<<"D";

break;

case14:

cout<<"E";

break;

case15:

cout<<"F";

break;

}

}

return0;

}

voidmain()

{

intx;

cin>>x;

hehe(x);

cout<<"(请从右往左读)"<

}

<4>编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。

#include

#include

intPrime(intn)

{inti,k=(int)sqrt(n)+1;

for(i=2;i

if(n%i==0)break;

if((i==k))return1;

elsereturn0;

}

intmain()

{

intm,i,j,h=0,SUM=0;

inta,b;

cout<<"\ninputa,b:

";

cin>>a>>b;

for(m=a;m<=b;m++)

{h=0;

if(Prime(m)==1)

{for(i=1;;i++)

{if((Prime(m+i)==0)&&(m+i<=b))h++;

elsebreak;

}

m=m+i;

if(h>=9){SUM++;

cout<

for(j=i-1;j>=-1;j--)cout<

cout<<"\n";

}

}

elsecontinue;

}

cout<<"\nThetotalis"<

return0;

cin>>m;

}

实验五指针

1.实验目的要求

(1)掌握指针的概念,学会定义和使用指针变量。

(2)学会使用数组指针和指向数组的指针变量。

(3)学会使用字符串指针和指向字符串的指针变量。

(4)了解指向指针的指针的概念以及其使用方法。

(5)掌握指针、引用、数组做函数参数的传递机制。

(6)*学会使用指向函数的指针变量。

2.实验内容

(1)编写程序实现下列问题的求解。

〈1〉将一个3*3的矩阵转置,用一个函数实现。

在主函数中用scanf输入以下矩阵元素:

{2,4,6,8,10,12,14,16,18}。

将数组名作为函数参数。

函数调用后在主函数中输出已转置的矩阵。

#include

voidzhuanzhi(int(*p)[3]){

inti,j,t;

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

for(j=i;j<3;j++){

t=p[i][j];p[i][j]=p[j][i];p[j][i]=t;

}

}

intmain(){

inta[3][3]={2,4,6,8,10,12,14,16,18};

inti,j,t;

zhuanzhi(a);

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

{

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

cout<

cout<

}

return0;

}

 

〈2〉自己写一个strcmp函数,实现两个字符串的比较。

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。

#include

intstrcmp(char*p1,char*p2)

{

inti=0;

while(*(p1+i)==*(p2+i))

{

i++;

if(*(p1+i)=='\0')return0;

}

return(*(p1+i)-*(p2+i));

}

voidmain()

{

charstr1[20],str2[20],*p1,*p2;

inta;

cout<<"输入两个长度不超过20的字符串"<

cin>>str1;

cin>>str2;cout<

p1=str1;p2=str2;

a=strcmp(p1,p2);

cout<

}

〈3〉动态链表的每个结点包括一个整数和一个后继指针。

分别编写过程完成如下操作:

(1)从键盘输入数据建立链表,并按数据的输入顺序建立链表。

(2)依次打印其中各结点的数据。

(3)*按与链表结点相反的次序打印各结点的值。

(4)逐个释放所有结点的存储单元。

#include

structstu{

inta;

stu*next;

stu*last;

};

intmain(){

stu*p=newstu;

stu*q,*q1;

intb,i=1;

cout<<"输入结点个数并且输入数据"<

cin>>b;

cin>>(*p).a;

stu*head=p;

head->last=NULL;

while(p!

=NULL){

if(i!

=b){

q1=p;(*p).next=newstu;

p=(*p).next;p->last=q1;

cin>>(*p).a;

i++;

}

else{q1=p;(*p).next=NULL;p=(*p).next;}

}

cout<<"顺序输出"<

q=head;

while(q!

=NULL){

cout<<(*q).a<<"";

q=(*q).next;

}

cout<<"倒序输出"<

while(q1!

=NULL){

cout<<(*q1).a<<"";

q1=(*q1).last;

}

return0;

}

实验六结构和联合类型以及编译预处理

1.实验目的要求

(1)掌握结构类型变量、联合类型变量的定义和使用,以及两者在内存中分配空间时的区别。

(2)掌握结构类型数组的概念和使用。

(3)*掌握链表的概念,初步学会对链表进行查找、插入、删除、排序等操作。

(4)掌握宏定义、文件包含、条件

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2