程序设计基础实验报告.docx
《程序设计基础实验报告.docx》由会员分享,可在线阅读,更多相关《程序设计基础实验报告.docx(47页珍藏版)》请在冰点文库上搜索。
程序设计基础实验报告
《程序设计基础》
实验报告
专业班级:
姓名:
学号:
实验一面向过程的简单程序设计
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的最大整数)。
#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#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=sqrt(1+1/(x+1/(x+1)));cout<return0;}<3>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=sin(x)+cos(x)+1/tan(x);cout<return0;}<4>#include#includeusingnamespacestd;intmain(){doublex,y,z;cin>>x>>y;z=exp(x+y)+exp(x-y);cout<return0;}<5>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=log(1+sqrt(1+x*x));cout<return0;}<6>#include#includeusingnamespacestd;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;elsec+=d-1;cout<return0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。<1>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
return0;
}
doublex,y;
cin>>x;
y=sqrt(1+1/(x+1/(x+1)));
cout<return0;}<3>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=sin(x)+cos(x)+1/tan(x);cout<return0;}<4>#include#includeusingnamespacestd;intmain(){doublex,y,z;cin>>x>>y;z=exp(x+y)+exp(x-y);cout<return0;}<5>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=log(1+sqrt(1+x*x));cout<return0;}<6>#include#includeusingnamespacestd;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;elsec+=d-1;cout<return0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。<1>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<3>
y=sin(x)+cos(x)+1/tan(x);
cout<return0;}<4>#include#includeusingnamespacestd;intmain(){doublex,y,z;cin>>x>>y;z=exp(x+y)+exp(x-y);cout<return0;}<5>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=log(1+sqrt(1+x*x));cout<return0;}<6>#include#includeusingnamespacestd;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;elsec+=d-1;cout<return0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。<1>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<4>
doublex,y,z;
cin>>x>>y;
z=exp(x+y)+exp(x-y);
cout<return0;}<5>#include#includeusingnamespacestd;intmain(){doublex,y;cin>>x;y=log(1+sqrt(1+x*x));cout<return0;}<6>#include#includeusingnamespacestd;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;elsec+=d-1;cout<return0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。<1>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<5>
y=log(1+sqrt(1+x*x));
cout<return0;}<6>#include#includeusingnamespacestd;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;elsec+=d-1;cout<return0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。<1>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<6>
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>#includevoidmain(){charch;cin>>ch;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;ch=(ch>=’a’&&ch<=’z’)?(ch–32):ch;cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。
voidmain()
charch;
cin>>ch;
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch;
ch=(ch>=’a’&&ch<=’z’)?
(ch–32):
cout<}将大小写字母进行转换<2>#includevoidmain(){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>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
将大小写字母进行转换
intm;
floatx;
boolbi,br;
cout<<"\nintm=";
cin>>m;
bi=m>1000;
cout<<"\nfloatx=";
br=x<=1e3;
cout<}分别输入10040,20003000,10001000,2000300,1004000运行。输出结果为:01,10,01,11,00程序用来判断m和n与1000的大小关系(3)编写程序实现下列问题的求解。<1>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。#includeusingnamespacestd;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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
分别输入10040,20003000,10001000,2000300,1004000运行。
输出结果为:
01,10,01,11,00
程序用来判断m和n与1000的大小关系
(3)编写程序实现下列问题的求解。
<1>根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。
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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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<0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况<1>#include#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<<"圆的面积为:
"<
实验二控制结构程序设计
(1)理解基本的解题技巧,掌握用自顶向下、逐步求精的过程设计算法。
(2)熟练掌握if/else语句和switch语句的使用。
(3)熟练掌握while语句、do/while语句和for语句的使用以及区别。
(4)掌握break和continue程序控制语句的使用。
(2)编写程序实现下列问题的求解。
<1>求解下面函数的值。
ex+yx<0,y<0
z=ln(x+y)1≤x+y〈10
log10|x+y|+1其它情况
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)#includeusingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<2>编程求解下列各计算式:
1)S=
=1+2+3+…+100
(1)
inti=1,sum=0;
while(i<=100)
{sum=sum+i;
i++;
cout<}2)S==1!+2!+…+7!(2)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
2)S=
=1!
+2!
+…+7!
(2)
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)#includeusingnamespacestd;intmain(){ints=0;for(inti=1;i<=39;i+=2)s=i*(i+1)+s;cout<return0;}<3>打印下面图形。1131135311357531135797531…………………13……21………31#includeusingnamespacestd;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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
3) S=1×2+3×4+5×6+…+39×40
(3)
ints=0;
for(inti=1;i<=39;i+=2)
s=i*(i+1)+s;
cout<
<3>打印下面图形。
1
131
13531
1357531
135797531
…………………
13……21………31
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(acout<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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
a+=2;
a=1;
while(b>1){
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)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
j-=2;
k+=2;
cout<}return0;}实验三数组1.实验目的要求(1)掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。(2)初步了解数组名与地址的关系。(3)掌握字符数组和字符串函数的使用。(4)掌握与数组有关的算法(特别是排序和查找算法)。2.实验内容(2)编写程序实现下列问题的求解。<1>编程产生下列数组,并输出。⑴一维数组1)(149162536496481100)2)(13610152128364555) 3) (123581321345589)<1>(1)#includeusingnamespacestd;intmain(){inta[10];for(inti=1;i<=10;i++){a[i-1]=i*i;cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
实验三数组
(1)掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。
(2)初步了解数组名与地址的关系。
(3)掌握字符数组和字符串函数的使用。
(4)掌握与数组有关的算法(特别是排序和查找算法)。
<1>编程产生下列数组,并输出。
⑴一维数组
1)(149162536496481100)
2)(13610152128364555)
3) (123581321345589)
inta[10];
for(inti=1;i<=10;i++)
a[i-1]=i*i;
cout<}cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<return0;}(2)#includeusingnamespacestd;intmain(){inta[10],j=0;for(inti=1;i<=10;i++){j+=i;a[i-1]=j;cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
inta[10],j=0;
for(inti=1;i<=10;i++){
j+=i;
a[i-1]=j;
cout<}cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<return0;}(3)#includeusingnamespacestd;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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<return0;}<2>1)#includeusingnamespacestd;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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<2>1)#include
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)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<}return0;}2)#includeusingnamespacestd;intmain(){inta[100][100],b=0,n;cin>>n;for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
2)#include
inta[100][100],b=0,n;
cin>>n;
for(inti=0;ifor(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
for(intj=0;jif(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
if(b>n-2){
for(i=0;ifor(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
for(intj=0;jcout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<}return0;}<3>编程求一组整数的最大公因子和最小公倍数。#includeusingnamespacestd;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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<3>编程求一组整数的最大公因子和最小公倍数。
intn,m,i,j,k,h;
cin>>n>>m;
if(n>m)
i=n;
k=m;
n=m;
m=i;
j=n;
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#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<<"最小公倍数:
"<return0;}实验四函数1.实验目的要求(1)理解并掌握如何模块化的用函数来构建程序。(2)掌握定义函数的方法,了解函数的重载方法,了解内联函数的机制。(3)掌握函数间传递信息的机制。(4)掌握函数的嵌套调用(和递归调用)的方法。(5)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。2.实验内容(2)编写程序实现下列问题的求解。<1>求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。#include#includevoidmain(){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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
实验四函数
(1)理解并掌握如何模块化的用函数来构建程序。
(2)掌握定义函数的方法,了解函数的重载方法,了解内联函数的机制。
(3)掌握函数间传递信息的机制。
(4)掌握函数的嵌套调用(和递归调用)的方法。
(5)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。
<1>求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0时的根,并输出结果。
从主函数输入a、b、c的值。
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<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
if(a==0)
if(b==0)
if(c==0)
cout<<"方程有无数组解."<elsecout<<"方程无解."<}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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
re=-b/(2*a);
s=-s;
im=sqrt(s)/(2*a);
x1="<cout<<"x2="<<<"i"<}}}}<2>用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<<"x2="<<<"i"<}}}}<2>用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<<"i"<}}}}<2>用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。#includeinthehe(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#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<2>用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。
例如,输入”A2”转换为162。
inthehe(inta)
intb,c;
intA,B,C,D,E,F;
b=1,c=1;
while(c!
c=a/16;
b=a%16;
a=c;
switch(b)
case1:
cout<<"1";
break;
case2:
cout<<"2";
case3:
cout<<"3";
case4:
cout<<"4";
case5:
cout<<"5";
case6:
cout<<"6";
case7:
cout<<"7";
case8:
cout<<"8";
case9:
cout<<"9";
case10:
cout<<"A";
case11:
cout<<"B";
case12:
cout<<"C";
case13:
cout<<"D";
case14:
cout<<"E";
case15:
cout<<"F";
intx;
hehe(x);
cout<<"(请从右往左读)"<}<4>编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。#include#includeintPrime(intn){inti,k=(int)sqrt(n)+1;for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
<4>编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。
intPrime(intn)
{inti,k=(int)sqrt(n)+1;
for(i=2;iif(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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
if(n%i==0)break;
if((i==k))return1;
elsereturn0;
intm,i,j,h=0,SUM=0;
inta,b;
cout<<"\ninputa,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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
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}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includevoidzhuanzhi(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函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
实验五指针
(1)掌握指针的概念,学会定义和使用指针变量。
(2)学会使用数组指针和指向数组的指针变量。
(3)学会使用字符串指针和指向字符串的指针变量。
(4)了解指向指针的指针的概念以及其使用方法。
(5)掌握指针、引用、数组做函数参数的传递机制。
(6)*学会使用指向函数的指针变量。
(1)编写程序实现下列问题的求解。
〈1〉将一个3*3的矩阵转置,用一个函数实现。
在主函数中用scanf输入以下矩阵元素:
{2,4,6,8,10,12,14,16,18}。
将数组名作为函数参数。
函数调用后在主函数中输出已转置的矩阵。
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};
zhuanzhi(a);
for(j=0;j<3;j++)
cout<cout<}return0;} 〈2〉自己写一个strcmp函数,实现两个字符串的比较。两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cout<}return0;} 〈2〉自己写一个strcmp函数,实现两个字符串的比较。两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。#includeintstrcmp(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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
〈2〉自己写一个strcmp函数,实现两个字符串的比较。
两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。
intstrcmp(char*p1,char*p2)
inti=0;
while(*(p1+i)==*(p2+i))
if(*(p1+i)=='\0')return0;
return(*(p1+i)-*(p2+i));
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)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
cin>>str1;
cin>>str2;cout<p1=str1;p2=str2;a=strcmp(p1,p2);cout<}〈3〉动态链表的每个结点包括一个整数和一个后继指针。分别编写过程完成如下操作:(1)从键盘输入数据建立链表,并按数据的输入顺序建立链表。(2)依次打印其中各结点的数据。(3)*按与链表结点相反的次序打印各结点的值。(4)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
p1=str1;p2=str2;
a=strcmp(p1,p2);
cout<}〈3〉动态链表的每个结点包括一个整数和一个后继指针。分别编写过程完成如下操作:(1)从键盘输入数据建立链表,并按数据的输入顺序建立链表。(2)依次打印其中各结点的数据。(3)*按与链表结点相反的次序打印各结点的值。(4)逐个释放所有结点的存储单元。#includestructstu{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)掌握宏定义、文件包含、条件
〈3〉动态链表的每个结点包括一个整数和一个后继指针。
分别编写过程完成如下操作:
(1)从键盘输入数据建立链表,并按数据的输入顺序建立链表。
(2)依次打印其中各结点的数据。
(3)*按与链表结点相反的次序打印各结点的值。
(4)逐个释放所有结点的存储单元。
structstu{
stu*next;
stu*last;
};
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)掌握宏定义、文件包含、条件
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;
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)掌握宏定义、文件包含、条件
q=head;
while(q!
cout<<(*q).a<<"";
q=(*q).next;
cout<<"倒序输出"<while(q1!=NULL){cout<<(*q1).a<<"";q1=(*q1).last;}return0;}实验六结构和联合类型以及编译预处理1.实验目的要求(1)掌握结构类型变量、联合类型变量的定义和使用,以及两者在内存中分配空间时的区别。(2)掌握结构类型数组的概念和使用。(3)*掌握链表的概念,初步学会对链表进行查找、插入、删除、排序等操作。(4)掌握宏定义、文件包含、条件
while(q1!
cout<<(*q1).a<<"";
q1=(*q1).last;
实验六结构和联合类型以及编译预处理
(1)掌握结构类型变量、联合类型变量的定义和使用,以及两者在内存中分配空间时的区别。
(2)掌握结构类型数组的概念和使用。
(3)*掌握链表的概念,初步学会对链表进行查找、插入、删除、排序等操作。
(4)掌握宏定义、文件包含、条件
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2