c++编程题汇总450份
时间:2026-01-27
时间:2026-01-27
1.编写一个求方程ax2 + bx + c = 0的根 的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。
#include < iostream.h > #include < math.h >
void equation_1 (int a, int b, int c) { double x1, x2, temp; temp = b*b - 4 * a * c; x1 = (-b + sqrt(temp) ) / (2 * a * 1.0); x2 = (-b - sqrt(temp) ) / (2 * a * 1.0); cout<<"两个不相等的实根"<< endl; cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl; }
void equation_2 (int a, int b, int c) { double x1, x2, temp; temp = b*b - 4 * a * c; x1 = (-b + sqrt(temp) ) / (2 * a * 1.0); x2 = x1; cout<<"两个相等的实根"<< endl; cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl; }
void equation_3 (int a, int b, int c) { double temp, real1, real2, image1, image2; temp = - (b*b - 4 * a * c); real1 = -b / (2 * a *1.0); real2 = real1; image1 = sqrt(temp); image2 = - image1; cout<<"两个虚根"<< endl; cout<<"x1 = "<< real1<<" + "<< image1<<"j"<< endl; cout<<"x2 = "<< real2<<" + "<< image2<<"j"<< endl; }
void main() { int a, b, c; double temp; cout<<"输入a,b,c的值"<< endl; cin>>a>>b>>c; cout<<"方程为:"<< a<<"x*x+"<< b<<"x+"<< c<<" = 0"<< endl; temp = b*b - 4 * a * c; if(temp > 0) equation_1 (a, b, c); if(temp == 0) equation_2 (a, b, c); if(temp < 0) equation_3 (a, b, c); }
2.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。要求在短小而完全的程序中显示这个程序是怎样被调用的。
#include < iostream > using namespace std; char up (char c) { if(c >= 97 && c <= 122) return (c - 32) ; else return c; }
void main() { int i; char c[15] = {'A','v','e','t','E','T','%','&','4','Y','e','i','@','9','^'}; for(i = 0 ; i < 15 ; i++) cout<< up(c[i])<<", "; cout<< endl; }
3.编写主程序条用带实数r和整数n两个参数的函数并输出r的n次幂。 #include < iostream.h > #include < math.h >
double power(double a, int b) { int i; double result = 1.0; for(i=0;i< b;i++) result = result * a; return result; }
void main() { double r; int n; cout<<"r = "; cin>>r; cout<<"n = "; cin>>n; cout<< r<<"的"<< n<<"次幂是:"<< power(r,n)<< endl;}
4.编写有字符型参数C和整形参数N的函数,让他们显示出由字符C组成的三角形。其方式为第1行有1个字符C,第2行有2个字符C ,等等。
#include < iostream > using namespace std;
void print_triangle(char c, int n) { int i, j; for(i=0; i< n; i++) { for(j=0; j<=i; j++) { cout<< c; } cout<< endl; } }
void main() { print_triangle('a',10); }
5.编写一个ieqiu字符串长度的函数,strlen(),再用strlen()函数编写一个函数revers(s)的倒序递归程序,使字符串s逆序。
#include < iostream > #include < string > using namespace std; int strlen(char *str) { int len = 0; while(str[len] != '\0') { len++; } return len; }
void revers(char *b) {
char c;
int j, len; len=strlen(b); j=len/2-1; while(j>=0) { c=*(b+j);
*(b+j)=*(b+len-j-1); *(b+len-j-1)=c; j--; } b[len]='\0'; }
第 1 页 共 6 页
void main() { char str[]={"1234567890"};
cout<< str<<"----的长度:"<< strlen(str)<< endl; cout<< str<< endl;//倒序前 revers(str);//
cout<< str<< endl;//倒序后
}
6.用函数模板实现3个数值中按最小值到最大值排序的程序。
#include < iostream > using namespace std; template
void sort(T a, T b, T c) { T array[3],temp; int i,j; array[0] = a; array[1] = b; array[2] = c; for(i=0;i<3;i++) { for(j=0;j<2;j++) if(array[j]>array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } cout<< array[0]<< array[1]<< array[2]<< endl; }
void main() { sort(5,1,9); }
7.利用函数模板设计一个求数组元素中和的函数,并检验之。 #include < iostream > using namespace std; template
T sum (T a[],int n) { int i; T s=0; for(i=0;i< n;i++) s = s + a[i]; return s; }
void main () { int a[5]={1,2,3,4,5}; int s = sum(a,5); cout<< s<< endl; }
8.重载上题中的函数模板,使他能够进行两个数组的求和。 #include < iostream > using namespace std; template
T sum (T a[], int n) { int i; T s=0; for(i=0;i< n;i++) s = s + a[i]; return s; }
template //重载上面的模板
T sum (T a[], int n, T b[], int m) { return sum(a,n)+sum(b,m); }
void main () { int a[5]={1,2,3,4,5}; int b[10]={1,2,3,4,5,6,7,8,9,10}; int s1 = sum(a, 5); int s2 = sum(b, 10); int s3= sum(a, 5, b, 10); cout<< s1<< endl; cout<< s2<< endl; cout<< s3<< endl; }
1.设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。并可以输出4个坐标值和面积。使用测试程序验证程序。
#include
using namespace std; class Point //点类 { private: int x, y …… 此处隐藏:15480字,全部文档内容请下载后查看。喜欢就下载吧 ……