您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 程序设计基础实验报告
1程序设计基础2实验一(3)2读入三个整数a、b、c,交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。#includeiostream.hvoidmain(){inta,b,c,temp;coutinputa,b,c;cinabc;temp=a;a=b;b=c;c=temp;coutabc;}(3)3对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。例如,输入为1234时,输出结果为4,3,2,1。#includeiostream.hvoidmain(){inta,b,c,d,n;3coutinputnumbern;cinn;if(n999&&n10000){a=n/1000;b=(n%1000)/100;c=(n%100)/10;d=n%10;coutdcbaendl;}elsecouterror;}实验二(2)1求解下面函数的值。ex+yx0,y0z=ln(x+y)1≤x+y〈10log10|x+y|+1其它情况#includeiostream.h#includemath.hvoidmain(){floatx,y,z;coutinput2number;4cinxy;if(x0&&y0){z=exp(x+y);}if(x+y=1&&x+y10){z=log(x+y);}elsez=log10(fabs(x+y)+1);coutzendl;}2编程求解下列各计算式:1)S=1001ii=1+2+3+…+100#includeiostream.hvoidmain(){inti,n,s;s=0;for(i=1;i=100;i++){s=s+i;}coutsendl;}52)S=71!ii=1!+2!+…+7!#includeiostream.hvoidmain(){inti,t,s;s=0;t=1;for(i=1;i=7;i++){t=t*i;s=s+t;}coutsendl;}64)Y=X-!33X+!55X-!77X+…+(-1)n+1)!12(12nXn+…的值,精确到10-6。#includeiostream#includecmathusingnamespacestd;floatf(intx,intn){ints=1;for(inti=1;i=n;i++)s*=i;returnpow(x,n)/s;}intmain(){floatx,y=0;coutenterxendl;cinx;for(inti=1;i+=2;){y+=pow(-1,i+1)*f(x,i);if(f(x,i)1e-6)break;}coutyendl;7return0;}3打印下面图形。1131135311357531135797531…………………13……21………31#includeiostream.h#includemath.h#includeiomanip.hintmain(){for(inti=1;i=11;i++){for(intj=1;j=11-i;j++)cout;for(j=1;j=2*i-1;j++)coutsetw(3)2*i-1-abs(i-j)*2;coutendl;}return0;8}4编程产生出1到10以内的所有数对i,j并输出,其中ij。#includeiostream.hvoidmain(){inti,j;for(i=1;i=10;i++){for(j=1;ji;j++)couti,j;coutendl;}}95编程求出10000以内的所有符合如下条件的数:其高位数字小于低位数字。如12,238,3578等。但21,548不符合条件。#includeiostream.hvoidmain(){inti;for(i=10;i100;i++){if(i/10i%10)couti;}for(i=100;i1000;i++){if(i/100(i%100)/10&&(i%100)/10i%10)couti;}for(i=1000;i10000;i++){if(i/1000(i%1000)/100&&(i%1000)/100(i%100)/10&&(i%100)/10i%10)couti;}}10实验三1编程产生下列数组,并输出。2)(13610152128364555)#includeiostream.hvoidmain(){inti,a[10];for(i=0;i10;i++){a[i]=(i+1)*(i+2)/2;}for(i=0;i10;i++)couta[i];}11⑵二维数组4)ABCDEFBCEHLQCDFIMRDEGJNSEFHKOT#includeiostream.hvoidmain(){inti,j;chara[5][6];for(i=0,j=0;j6;j++)a[i][j]='A'+j;for(i=1;i5;i++)for(j=0;j6;j++){a[i][j]='A'+i+j*(j+1)/2;}for(i=0;i5;i++){for(j=0;j6;j++)couta[i][j];coutendl;}}124随机输入一组数组元素值,利用题2使一个数组有序。然后随机输入一个数,用折半查找法在数组中查找,如在数组中,则输出元素在数组中的位置;如不在,则输出提示#includeiostreamusingnamespacestd;constintn=10;intmain(){inti,k,temp,a[n];for(k=0;kn;k++)cina[k];for(k=0;k10;k++){for(i=0;i10;i++){if(a[i]a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}}for(i=0;i10;i++)couta[i];coutendl;intmid;intlow=1,high=n;13intnum;cinnum;while(low=high){mid=(low+high)/2;if(num==a[mid])break;elseif(numa[mid])high=mid-1;elselow=mid+1;}if(num==a[mid])cout所查找的数在第mid+1个位置endl;elsecout不存在这个数endl;return0;}2判断一个二维数组是否有“鞍点”,即该位置上的元素在该行上最大,在该列上最小。如有,输出其行列号和值;若无,给出提示。(数组元素的值用scanf输入)#includeiostream.h#includestdio.hconstintrow=3;constintcol=3;voidmain()14{inti=0,j=0,d;intb,c,count=0;inta[row][col];cout输入数组endl;for(i=0;irow;i++)for(j=0;jcol;j++)scanf(%d,&a[i][j]);for(i=0;irow;i++){b=i;c=j;for(j=0;jcol;j++){if(a[b][c]=a[i][j]){b=i;c=j;}}for(d=0;drow;d++){if(a[d][c]a[b][c])break;}if(d==row){cout(b,c)a[b][c]endl;count++;}}if(count==0)cout没有鞍点endl;}15实验四(2)编写程序实现下列问题的求解。1求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。#includeiostream.h#includemath.hvoidf1(floatx,floaty,floatz){floatx1,x2;x1=((-y)+sqrt(y*y-4*x*z))/(2*x);x2=((-y)-sqrt(y*y-4*x*z))/(2*x);coutx1=x1endl;coutx2=x2endl;}voidf2(floatx,floaty){floatx1,x2;x1=x2=(-y)/(2*x);coutx1=x2=x1endl;}voidf3(float){16cout无实数根endl;}voidmain(){floata,b,c;cinabc;if(b*b4*a*c)f1(a,b,c);if(b*b==4*a*c)f2(a,b);if(b*b4*a*c)f3(a);}3编写一个将十进制整数转换为十六进制字符串的函数。#includeiostreamusingnamespacestd;voidmain(){charc[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};charr[100],i=0;intn;cout输入一个十进制数endl;cinn;while(n0){r[i]=n%16;i++;17n/=16;}cout转化成16进制后endl;for(intj=i-1;j=0;j--)coutc[r[j]];coutendl;}实验五〈1〉输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。#includeiostream.hvoidmain(){inti,j,temp,a[3];for(i=0;i3;i++)cina[i];for(i=0;i3;i++)for(j=0;j3;j++){if(a[j]a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}for(i=0;i3;i++)couta[i];18}〈2〉将一个3*3的矩阵转置,用一个函数实现。在主函数中用scanf输入以下矩阵元素:{2,4,6,8,10,12,14,16,18}。将数组名作为函数参数。函数调用后在主函数中输出已转置的矩阵。#includeiostreamusingnamespacestd;voids(inta[]){printf(转置后\n);printf(%d%d%d\n%d%d%d\n%d%d%d\n,a[0],a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8]);}intmain(){inta[9];printf(输入9个整数\n);scanf(%d%d%d%d%d%d%d%d%d,&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);printf(转置前\n);printf(%d%d%d\n%d%d%d\n%d%d%d\n,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);s(a);return0;}19〈3〉自己写一个strcmp函数,实现两个字符串的比较。两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。#includeiostreamusingnamespacestd;intstrcmp(chara[],charb[]){inti,j;for(i=0;(a[i]!='\0')||(b[i]!='\0');i++){if(a[i]b[i]
本文标题:程序设计基础实验报告
链接地址:https://www.777doc.com/doc-3372351 .html