中南大学c++题库编程答案_第1页
中南大学c++题库编程答案_第2页
中南大学c++题库编程答案_第3页
中南大学c++题库编程答案_第4页
中南大学c++题库编程答案_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.计算分段函数: 使用库函数sqrt来计算平方根。#include <iostream>#include <iomanip>#include <cmath>using namespace std;int main()double x,y;cout<<"请输入一个数x:"cin>>x;if(x!=0)y=sin(x)+(sqrt(x*x+1);elsey=cos(x)-x*x+3*x;cout<<"函数值:"<<setprecision(6)<<y<&l

2、t;endl;return 0;2.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。#include <iostream>using namespace std;int main() int a = 'a'-'A' int x; while( cin>>x ) if( x>= 'A' && x<='Z' ) cout<<" "<<(char)(x+a)<<endl; else cout<<&q

3、uot;输入的不是大写字母的ASCII码"<<endl; return 0; 3.用牛顿迭代法求方程:    3x 3-4x 2-5x+13=0 在x=1附近的根,要求精度为10-6 。 #include <iostream>#include <cmath>using namespace std;int main()float xn,xn1,f,f1;cout<<"请输入x的初值:"cin>>xn1;doxn=xn1;f=(3*(xn-4/3)*xn-5)*xn+1

4、5;f1=(9*xn-8)*xn-5;xn1=xn-f/f1;while(fabs(xn1-xn)>=1e-6);cout<<"方程的一个根:"<<xn1<<endl;return 0;4. 编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。 x n+1 =cos(x n )#include <stdio.h>#include <math.h>float value() float x0, x1; x0 = 0; x1 = cos(x0); while (abs(x

5、0 - x1) >= 0.000001) x0 = x1; x1 = cos(x0); return x1;void main() printf("迭代方法求方程:cos(x)-x=0的解为%fn", value();5.编写函数int  f(int x , int n),求出20个数中的最大数,并在以下main函数中进行测试。 #include<iostream.h> void main(  )    inta  =1,4,6,7,3,9,10,30,59,32,48,72,87,13,27,4

6、5,64,8,2,6;    cout<<"a中最大值为:"<<f(a,20)<<endl;#include "stdafx.h"#include <iostream>using namespace std;int f(int x,int n);int main(int argc, char* argv) int a20 = 1,8,10,3,7,15,28,2,4,22,0,17,25,9,19,6,14,26,20,11; printf("max is %dn",

7、f(a,20); return 0;int f(int x,int n) int i; int max; max = x0; for(i=1;i<n;i+) if(max<xi) max = xi; return max;return 0;6.将给定的十进制数转换为十六进制数。#include <iostream>using namespace std;int main() int x; while( cin>>x ) printf(" %X Hn",x); return 0; 7.编写一个自定义函数:int f( int M, int

8、N) ,f( )的功能是:对给定的正整数M和N,找出满足方程"5x+6y=M"的正整数解中x和y都 是偶数的解。要求:若M和N不都是正整数,则结束函数并返回1;只有M和N都是正整数时,才继续求解操作,并用二重循 环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)使函数值返回满足条件的正整数解的组数。 #include <iostream> using namespace std; int f( int M, int N); void main()   cout<<f(500,650)<<endl;  #in

9、clude <iostream> using namespace std; int f( int M, int N); void main() cout<<f(500,650)<<endl; int f( int M, int N ) int x,y,count = 0; if( M < 1 | N <1 ) return -1; for( x = 2 ; x <= N/5 ; x+=2 ) for( y = 2 ; y <= M/6 ; y+=2 ) if( 5*x + 6*y = M ) count+; cout<<&

10、quot;x = "<<x<<" y = "<<y<<endl; return (count?count:-1);8.编写一个解“一百元买鸡”问题的自定义函数:int f( int M, int N) ,其中M代表公鸡的单价(元/只),N代表母鸡的单价(元/ 只),价格由主调函数给定;购鸡方案中要求总花费刚好为100元,且不允许全部购买公鸡或全部购买母鸡(即公鸡、母鸡只数 都不能为0);求解所有购鸡方案。若M和N只要有一个以上参数无意义,则函数结束执行并返回1值;若M和N都有意义,则 函数输出所有可能的购鸡方案,并返

11、回方案的组数。要求用二重循环实现。 #include <iostream> using namespace std; int f( int M, int N); void main()   cout<<f(15,28)<<endl;  #include <iostream> using namespace std; int f( int M, int N); void main() cout<<f(30,20)<<endl; int f( int M, int N ) int x,y,count = 0

12、; if( M < 1 | N <1 ) return -1; for( x = 1 ; x <= 100/M ; x+) for( y = 1 ; y <= 100/N &&( M*x + N*y<=100) ; y+ ) if( M*x + N*y =100 ) count+; cout<<"公鸡 = "<<x<<" 母鸡 = "<<y<<endl; return (count?count:-1);9.编写一个自定义函数:int f( long

13、a, int n, long x) ,f( )的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组a 中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最大的那个元素的下标;若不存在,则函数值返回-1。 #include <iostream> using namespace std; int f(long a, int n, long x); void main() long x=7;   long a5=3,5,2,7,9;   cout<<f(a,5,x)<<endl; #include <iostrea

14、m> using namespace std; int f(long a, int n, long x); void main() long x=7; long a5=3,5,2,7,9; cout<<f(a,5,x)<<endl; int f(long a, int n, long x) int count = 0,pos = -1; for( int i=0;i< n ; i+) if( ai=x ) pos = i; count+; if( count=0 ) return -1; return pos; 10.编写一个自定义函数:int f( lon

15、g a, int n, long x) ,f( )的功能是:对给定的一维数组a及某个指定数x,找出数组a中元素值等于x 的元素个数,以及最后一个值为x的元素所在位置下标。在函数中输出这两个结果,并将找到的元素个数作为函数值返回。 #include <iostream> using namespace std; int f(long a, int n, long x); void main() long x=7;   long a5=3,7,2,7,9;   cout<<f(a,5,x)<<endl; #include <iostre

16、am> using namespace std; int f(long a, int n, long x); void main() long x=7; long a5=3,5,2,7,9; cout<<f(a,5,x)<<endl; int f(long a, int n, long x) int count = 0,pos = -1; for( int i=0;i< n ; i+) if( ai=x ) pos = i; count+; cout<<count<<" "<<i<<endl

17、; return count; 11.编写一个自定义函数:int f( long a, int n, long x) ,f( )的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组 a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最小的那个元素的下标;若不存在,则函数值返回-1。 #include <iostream> using namespace std; int f(long a, int n, long x); void main() long x=8;   long a5=3,7,2,7,9;   cout<

18、<f(a,5,x)<<endl; #include <iostream> using namespace std; int f(long a, int n, long x); void main() long x=7; long a5=3,5,2,7,9; cout<<f(a,5,x)<<endl; int f(long a, int n, long x) int count = 0,pos = -1; for( int i=n-1;i>=0 ; i-) if( ai=x ) pos = i; count+; if( count=0

19、) return -1; return pos;12.编写一个自定义函数:int f(int N) ,f( )的功能是:对给定的正整数N,找出满足下列方程“3x+4y=N”的正整数解。若N不是正 整数,则结束函数并返回1;若N是正整数,则函数中输出找到的所有正整数解,并且使函数值返回解的组数。用二重循环实 现。 #include <iostream> using namespace std; int f(int N); void main() cout<<f(160)<<endl; #include <iostream> using namesp

20、ace std; int f(int N); void main() cout<<f(160)<<endl; system("pause"); int f( int N ) int x,y,count = 0; for( x = 1 ; x <= N/3 ; x+ ) for( y = 1 ; y <= N/4 ; y+ ) if( 3*x + 4*y = N ) count+; cout<<"x = "<<x<<" y = "<<y<<e

21、ndl; return (count?count:-1); 13.编写一个解“鸡兔共笼”问题的自定义函数:int f(int N) ,其中N代表动物的脚总数;且笼中每种动物都至少有1只以上。若N 不符合实际,则结束函数并返回1;若N符合实际要求,则函数输出所有可能的鸡、兔数,并返回符合条件解的组数。用二重 循环实现。 #include <iostream> using namespace std; int f(int N); void main() cout<<f(160)<<endl; #include <iostream> using nam

22、espace std; int f(int N); void main() cout<<f(160)<<endl; int f( int N ) int x,y,count = 0; for( x = 1 ; x <= N/2 ; x+ ) for( y = 1 ; y <= N/4 ; y+ ) if( 2*x + 4*y = N ) count+; cout<<"鸡= "<<x<<" 兔= "<<y<<endl; return (count?count:-

23、1); 14.编写一个自定义函数:int f( int M) ,f( )的功能是:对给定的正整数M,找出满足方程"5x+6y=M"且x不超过100的正整数解。若 M不是正整数,则结束函数并返回1;若M是正整数时,则函数中输出所有的正整数解,并且使函数值返回正整数解的组数, 要求使用一重循环。 #include <iostream> using namespace std; int f( int M); void main()   cout<<f(500)<<endl;  #include <iostream>

24、; using namespace std; int f( int M); void main() cout<<f(500)<<endl; int f( int M ) int x,y,count = 0; int t; if( M <= 0 ) return -1; for( x = 1 ; x <= M/5 && x <= 100 ; x+ ) t = (100 - 5*x)/6; if( 5*x + 6*t = M ) count+; cout<<"x= "<<x<<&quo

25、t; y= "<<t<<endl; return (count?count:-1);15编写一个自定义函数:int f( int M, int N) ,f( )的功能是:对给定的正整数M和N,找出满足方程"7x+4y=M"的正整数解中x是偶 数且y是奇数的解。要求:若M和N不都是正整数,则结束函数并返回1;只有M和N都是正整数时,才继续求解操作,用二重 循环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)并且使函数值返回满足条件的正整数解的组数。 #include <iostream> using namespace

26、 std; int f( int M, int N); void main()   cout<<f(500,650)<<endl;  #include <iostream> using namespace std; int f( int M, int N); void main() cout<<f(500,650)<<endl; int f( int M, int N ) int x,y,count = 0; if( M < 1 | N <1 ) return -1; for( x = 2 ; x &l

27、t;= N/7 ; x+=2 ) for( y = 1 ; y <= M/4 ; y+=2 ) if( 7*x + 4*y = M ) count+; cout<<"x = "<<x<<" y = "<<y<<endl; return (count?count:-1);16.编写一个自定义函数:int f( char x, int N) ,f( )的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开 头没有任何空格。比如,当c为'*'且N为5时,打印的

28、图案如本题图所示。且函数值返回1。 #include <iostream> using namespace std; int f(char x, int N); void main() f('*',5); #include <iostream> using namespace std; int f(char x, int N); void main() char x;int n,i,m;cout<<"请输入字符和行数:"cin>>x>>n;for(i=1;i<=n;i+)for(m=1;m&l

29、t;=i;m+)cout<<x;cout<<endl;17.编写一个自定义函数:int f( char x, int N) ,f( )的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开 头没有任何空格。比如,当c为'T'且N为5时,打印的图案如本题图所示。且函数值返回1。 #include <iostream> using namespace std; int f(char x, int N); void main() f('T',5); #include <iostream> using

30、namespace std; int f(char x, int N); void main() char x;int n,i,m;cout<<"请输入字符和行数:"cin>>x>>n;for(i=1;i<=2*n;i=i+2)for(m=1;m<=i;m+)cout<<x;cout<<endl;18.编写一个自定义函数:int f( int N) ,f( )的功能是:对给定的正整数N,打印一个N行N列的由'A'、'B'、'C'以及空格' '

31、;符号组成的 方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。 #include <iostream> using namespace std; int f(int N); void main() f(5); #include <iostream>using namespace std;int f(int N);void main()int n;cout <<"请输入一个数:"<<endl;cin>>n;f(n);int f(int N)int i,m;for(i=1;i<=N;i+)fo

32、r(m=1;m<=N;m+)if(m=1|m=i)cout<<"A "else if(m>i)cout<<"B "elsecout<<"C "cout<<endl;return 1;19.编写一个自定义函数:int f( int N) ,f( )的功能是:对给定的正整数N<10,打印一个N行N列的由数字、字符'P'、'K'、空格' '组成 的方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。 #inclu

33、de <iostream> using namespace std; int f(int N); void main() f(5); #include <iostream>using namespace std;int f(int N);void main()int n;cout <<"请输入一个数:"<<endl;cin>>n;f(n);int f(int N)int i,m;for(i=1;i<=N;i+)for(m=1;m<=N;m+)if(i=1)cout<<"1 &quo

34、t;else if(m>i)cout<<"K "else if(m<i)cout<<"P "elsecout<<m<<" "cout<<endl;return 1;20.本题在主函数中给定个数N,通过调用自定义函数f得到 1N区间中不能被3整除的数之和。请根据函数f的声明语句及其功能 完成函数代码设计。 #include <iostream> using namespace std; int f( int m); main() int n;  

35、; cout<<"please enter n" cin>>n; cout<<f(n); #include <iostream>using namespace std;int f( int m) int sum=0;for(int i=1;i<=m;i+)if(i % 3 !=0) sum +=i;return sum;void main() int n; cout<<"please enter n:" cin>>n; cout<<f(n); 21.本题在主函数中给

36、定数组a及其元素个数n,通过调用自定义函数f,使数组a的元素反序存放:即第1个位置的元素与倒数第1个 位置的元素交换,第2个位置的元素与倒数第2个位置的元素交换,如此类推。交换的元素组数与元素总数n有关。要求n在 主函数中给定。根据主函数代码和函数f的声明,完成自定义函数设计。 #include <iostream> using namespace std; void f(int x, int n); void main()    int i, a10; for (i=0;i<=10-1;i+)     cin>>

37、ai; f (a, 10); for (i=0;i<=10-1;i+)     cout<<ai<<','  #include <iostream> using namespace std; void f(int x, int n)int tmp;for(int i=0;i<n/2;i+)tmp = xi;xi= xn-i-1;xn-i-1=tmp;void main() int i, a10; for (i=0;i<=10-1;i+) cin>>ai; f(a,10);

38、for (i=0;i<=10-1;i+) cout<<ai<<',' 22,本题在主函数中给定个数N,通过调用自定义函数f得到1N区间的偶数和。请根据函数f的声明语句及其功能完成函数代码设 计。 #include <iostream> using namespace std; int f( int m); main() int n;   cout<<"please enter n"   cin>>n;  cout<<f(n); #includ

39、e <iostream> using namespace std; int f( int m)int sum=0;for(int i=0;i<=m;i+)if(i%2=0) sum += i;return sum;int main() int n; cout<<"please enter n" cin>>n; cout<<f(n); 23.本题在主函数中给定个数N,通过调用自定义函数f得到1N区间的奇数和。请根据函数f的声明语句及其功能完成f函数代码设 计。 #include <iostream> using

40、 namespace std; int f( int m); main() int n;   cout<<"please enter n" cin>>n; cout<<f(n); #include <iostream> using namespace std; int f( int m)int sum=0;for(int i=0;i<=m;i+)if(i%2 != 0) sum += i;return sum;int main() int n; cout<<"please enter n&

41、quot; cin>>n; cout<<f(n); 24.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f得到给定数组中的所有元素之和。请根据函数f的声明语句及 其功能完成f函数代码设计。 #include <iostream> using namespace std; #define N 10 int f( int x , int n); void main() int i,aN; for (i=0;i<=N-1;i+)     cin>>ai; cout<<f(a,N); #incl

42、ude <iostream> using namespace std; #define N 10 int f( int x , int n)int sum=0;for(int i=0;i<n;i+)sum += xi;return sum;void main() int i,aN; for (i=0;i<=N-1;i+) cin>>ai; cout<<f(a,N); 25.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f求给定一维数组中所有下标为偶数的元素之和。请根据函数f 的声明语句及其功能完成函数代码设计。#include <

43、;iostream> using namespace std; #define N 10 int f( int x , int n); void main() int i,aN; for (i=0;i<=N-1;i+)     cin>>ai; cout<<f(a,N); #include <iostream> using namespace std; #define N 10 int f( int x , int n)int i,sum=0;for(i=0;i<n;i+=2)sum += xi;return

44、sum;void main() int i,aN; for (i=0;i<=N-1;i+) cin>>ai; cout<<f(a,N); 26.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f求给定一维数组中所有下标为奇数的元素之和。请根据函数f 的声明语句及其功能完成函数代码设计。 #include <iostream> using namespace std; #define N 10 int f( int x , int n); void main() int i,aN; for (i=0;i<=N-1;i+)  &#

45、160;  cin>>ai; cout<<f(a,N); #include <iostream> using namespace std; #define N 10 int f( int x , int n); void main() int i,aN; for (i=0;i<=N-1;i+) cin>>ai; cout<<f(a,N); int f(int array,int n)int sum = 0;for (int i=1; i<n; i+=2)sum += arrayi;return sum;27.本题

46、在主函数中给定方阵数组a及其行数(列数)M,通过调用自定义函数f求给定二维数组中所有上三角元素(不含主对角 线)之和。请根据函数f的声明语句及其功能完成f函数代码设计。 #include <iostream> using namespace std; #define M 3 int  f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+)     cin>>aij; cout<<f(a); #includ

47、e <iostream> using namespace std; #define M 3 int f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+) cin>>aij; cout<<f(a)<<endl; int f(int xM)int sum=0;int i,j;for( i=0;i<M;i+)for(j=i+1;j<M;j+)sum+=xij;return sum;28.本题在主函数中给定方阵数组a及其行数(

48、列数)M,通过调用自定义函数f求给定二维数组中所有下三角元素(不含主对角 线)之和。请根据函数f的声明语句及其功能完成f函数代码设计。 #include <iostream> using namespace std; #define M 3 int  f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+)     cin>>aij; cout<<f(a); #include <iostream>

49、; using namespace std; #define M 3 int f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+) cin>>aij; cout<<f(a)<<endl; int f(int xM)int sum=0 , i , j ;for(i=0;i<M;i+)for(j=0;j<i;j+)sum+=xij;return sum;29.本题在主函数中给定方阵数组a及其行数(列数)M,通过调用自定义函数f求给定二

50、维数组中所有主对角线上元素之和。请根 据函数f的声明语句及其功能完成f函数代码设计。 #include <iostream> using namespace std; #define M 3 int  f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+)     cin>>aij; cout<<f(a); #include <iostream> using namespace std; #d

51、efine M 3 int f ( int x M); void main() int i, j,aMM; for (i=0;i<=M-1;i+) for (j=0;j<=M-1;j+) cin>>aij; cout<<f(a)<<endl; int f(int xM)int sum=0;for(int i=0;i<M;i+)sum+=xii;return sum;30.通过调用自定义函数f求有规律的数列1,2,4,8,16,中前n项之和,其中n在主函数中给定。请根据函数f的声明语句及其功能完 成f函数代码设计。#include <i

52、ostream> using namespace std; int f( int m); main() int n;   cout<<"please enter n" cin>>n; cout<<f(n); #include <iostream> using namespace std; int f( int m); main() int n; cout<<"please enter n" cin>>n; cout<<f(n); int f(int n)i

53、nt sum = 0;for (int i=0; i<n; i+)int value_=1;for (int j=0; j<i; j+)value_ *= 2;sum += value_;return sum;31.通过调用自定义函数f求有规律的数列1,4,9,16,25,中前n项之和,其中n在主函数中给定。请根据函数f的声明语句及 其功能完成f函数代码设计。 #include <iostream> using namespace std; int f( int m); main() int n;   cout<<"please ente

54、r n" cin>>n; cout<<f(n); #include <iostream> using namespace std; int f( int m); main() int n; cout<<"please enter n" cin>>n; cout<<f(n);int f(int n)int sum = 0;for (int i=1; i<=n; i+)sum += i*i;return sum;32.本题在主函数中给定个数N,通过调用自定义函数f得到 1N区间中能被3整除的

55、数之和。请根据函数f的声明语句及其功能完 成f函数代码设计。 #include <iostream> using namespace std; int f( int m); main() int n;   cout<<"please enter n" cin>>n; cout<<f(n);#include <iostream> using namespace std; int f( int m); main() int n; cout<<"please enter n" c

56、in>>n; cout<<f(n); int f(int m)int i=1,sum=0;while(i<=m)if(i%3=0)sum+=i;i+;return sum;33.编写自定义函数f()的功能是找出一个数组a中第3大的元素,将该元素的值作为函数值返回,数组a及其元素个数m由主函数给 定。根据自定义函数f的声明语句和功能编写f函数的代码。#include <iostream> using namespace std; int f(int a,int m); main()     int a10=21,33,22,23,45,46,32,21,3,4;   cout<<"The result is "<<f(a,10)<<endl;   #include <iostream> us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论