cout<<\< int a[n]={10,21,54,2,3,53,1,5,122,8}; //排序 int t,j,i; int mid; int low=1,high=n; int num; for(i=0;i<10;i++) { t=a[i]; j=i-1; while(j>=0 && t } a[j+1]=t; } cout<<\排序后\ for(i=0;i while(low<=high) { <5>#include int main() { char string1[80],string2[40]; int i=0,j=0; cout<<\输入字符串string1:\\n\ cin>>string1; cout<<\输入字符串string2:\\n\ cin>>string2; while(string1[i]!='\\0'){ i++; } while(string2[j]!='\\0'){ string1[i++]=string2[j++]; mid=(low+high)/2; if(num==a[mid]) break; else if(num } if(num==a[mid]) cout<<\所查找的数在第\个位置\else cout<<\不存在这个数\ return 0; } } string1[i]='\\0'; cout<<\串联后的字符串为:\ return 0; } 3.分析与思考 <1> 用数组存储数据,实现筛选法求素数问题的求解。要求求出2到1000之间的所有素数。 注意: 筛选法求出2~N间的所有素数的方法是:首先将这些数全部放入一个数组中,然后 重复下面的操作直到数组为空为止: a.找出其中的最小数K,则K一定是一个素数,因此可输出。 b.从数组中删除K及其所有倍数。 <2> 判断一个二维数组是否有“鞍点”,即该位置上的元素在该行上最大,在该列上最小。如有,输出其行列号和值;若无,给出提示。(数组元素的值用scanf输入) <3> 编写程序将一个16进制数转换为十进制。任意进制如何转换为十进制? <4> 本实验内容(1)— <4>习题所完成的功能是否有不完备之处?若有,请完备这个程序。 解: <1>#include const int max=10000; int main() { int a[max]; int n=2,j,i; for(i=0;i<=1000;i++) a[i]=1; while(n<1000){ j=n; do{ } } j+=n; a[j]=0; }while(j<=1000); n++; while(a[n]==0) n++; for(i=2;i<=1000;i++) if(a[i]) cout< cout< <2>#include const int row=3; const int col=3; int main() { int i=0,j=0,d; int b,c,count=0; int a[row][col]; for(i=0;i for(j=0;j for(i=0;i b=i;c=j; for(j=0;j if(a[b][c]<=a[i][j]){ count++; b=i; c=j; } } for(d=0;d if(a[d][c] if(d==row) { cout<<\\ <3>#include using namespace std; int main() { char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int n,count=0; char r[100]; int s=0; cin>>r; while(r[count]!='\\0') count++; for(int i=0;i <4>没有数组倒置功能 #include for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>a[i][j]; for(i=0;i<3;i++) } } if(count==0) cout<<\没有鞍点 \ } for(int j=0;j<16;j++) if(r[i]==c[j]) { s+=j*pow(16,count-1-i); break; } cout< } { for(j=0;j a[i][j]=a[j][i]; a[j][i]=t; } cout< } for(i=0;i<3;i++) { for(j=0;j<3;j++) cout< } } 实验四 函 数 1.实验目的要求 (1) 理解并掌握如何模块化的用函数来构建程序。 (2) 掌握定义函数的方法,了解函数的重载方法,了解内联函数的机制。 (3) 掌握函数间传递信息的机制。 (4) 掌握函数的嵌套调用(和递归调用)的方法。 (5) 掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。 2.实验内容 (1)阅读下列程序,写出其运行结果,并指出其功能。 <1> #include int a,b,t,r; if (u > v) { t = u ; u = v ; } v = t ; a = u ; b = v ; while ( ( r = b % a ) != 0 ){ b = a ; a = r ; } return( a ) ; } int lcd( int u , int v , int h ) { } void main() { int u , v , h , l ; cin >> u >> v ; h = hcf ( u , v ) ; cout << “hcf=” << h << endl ; return( u * v / h ) ; l = lcd ( u , v, h ) ; cout << “lcd=” << l << endl ; } 输入:48,32 解:输出hcf=16 Lcd=96 功能:输入两个整形数据后,函数hcf先对两者进行判断,较小的给u,较大的给v,然后循环相除,取得最大公约数,并返回该值。然后进入第二个函数,取得最小公倍数。则该程序输出的为输入两数的最大公约数和最小公倍数。 <2> #include switch ( g ) { case 0 : return 0; case 1 : case 2 : return 1; } return ( fib( g – 1 ) + fib( g – 2 ) ) ; } void main ( ) { long k;
《程序设计基础(C++)》实验教程及完整答案(6)
2018-12-06 21:31
《程序设计基础(C++)》实验教程及完整答案(6).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!