for(int i=1; i if(a[i]>max) max=a[i]; if(a[i]<*min) *min=a[i]; } return max; //利用函数值返回最大值 } main() { int n; float a[200]; float max, *min=&a[0]; cout<<\请输入的 n 数值,n小于200\cin>>n; // 输入n 个数,输出最大值及最小值 // 插入相应的程序 2分 for (int i=0; i cout<<\最大值=\ cout<<\最小值=\ } 3(4分)若一链表结点结构如下: struct Node{ int data; Node *next;}; 完善如下DeleteNode()函数;函数的功能为:若从链表的首指针 h所指向的链表中找到一个结点的数据为x时,则从该链表中删除该结点。指针 h的值为0(NULL)时,表示链表为空。允许x不在链表中。 Node * DeleteNode(Node *h, int x) { Node *p,*q; if(h == 0) return h; if(h->data==x) { if(h->data==x){ 中 } p=h; h= h->next; delete p; //插入相应的程序 3分 9 } else { p=h->next; q=h; while( p && p->data!=x) { q=p; p=p->next;} if(p!=0) {q->next= p->next; delete p;} //插入相应的程序 3分 } return h; } 四、(10分)根据题目要求写出程序 1.(4分)用两种不同的方法求出二个整数的最大公约数。且求二个整数的最大公约数用函数来实现,该函数放在一个头文件中(如 xxx.h)。二个整数从键盘输入。 (1) 写出二个求整数的最大公约数函数;放在一个头文件中(如 xxx.h)//2分 (2)写出主函数;//2分 //xxx.h—头文件部分1分 int MaxCD1(int a,int b) //方法1 { }; 10 int mcd=a; //mcd--最大公约数 if (mcd { if((!(a%mcd))&&(!(b%mcd))) ctl=0; } return mcd; if (ctl) mcd--; 2.(6分)描述一个复数类Complex,私有数据为实部Real和虚部Imag 要求Complex类能提供如下操作(方法): (1) 有构造函数,缺省时实部Real和虚部Imag置为0;//1分 (2) 能修改并读取Real的值; //1分 (3) 能修改并读取Imag的值 //1分 (4) 重载运算符 +=,完成两个复数的加法;//1分 (5) 重载运算符 -=,完成两个复数的减法;//1分 (6) 重载运算符 *=,完成两个复数的乘法;//1分 class Complex{ double Real,Imag; public: Complex(double a=0,double b=0) { Real=a; Imag=b;} //1分 void SetReal(double a){Real=a;} //0.5分 void SetImag(double b){Imag=b;} //0.5分 double GetReal(){return Real;} //0.5分 double GetImag(){return Imag;} //0.5分 Complex operator +=(Complex &a) //1分 { Complex t; t.Real=Real+a.Real; t.Imag=Imag+a.Imag; return t; } Complex operator -=(Complex &a) //1分 { Complex t; t.Real=Real-a.Real; t.Imag=Imag-a.Imag; return t; } Complex operator *=(Complex &a) //1分 { Complex t; t.Real=Real*a.Real-Imag*a.Imag; t.Imag=Imag*a.Real+Real*a.Imag; return t; } }; 11 一、 选择题(共40分,每个选择题2分) 1.C 2.D 3.D 4.B 5.C 6.B 7.B 8.D 9.A 10.B 11.A 12.C 13.C 14.B 15.A 16.D 17.B 18.D 19.C 20.B 二、填空(33分) 1. 三个变量的值分别为: x= 1 y= 2 z= 1 。 2.(3分)x=4.1,i=14 3.(2分)以下程序的输出结果是 10 。 4.(4分)运行以下程序的输出结果是: cdefgh 5.(2分)运行以下程序的输出结果是 x=5 y=10 x=10 y=5 。 6.(3分)以下程序的运行结果是 -5,-12,-7 。 7.(4分)B类就是B类 A类就是A类 8.(4分)下面程序的输出是 x=1000 A::p2() z=3000 C::p2()。 9.(5分)以下程序的运行结果是 OKOKOK KOKOKO OKOKOK。 10.(5分)以下程序的运行结果是 A B 0 ~B ~A 11.(2分)在当前目录中有文本文件f1.txt,文件内容为: 1 2 3 4 5 6 7 8 9 10 执行下面的程序后,文件file2中的内容是 90。2 。 平均分数 二、 完善程序(每空1分,共15分,答题请注明序号) //1.(5分)以下程序的功能是输入二个字符串,把这两个字符串拼成一个新的字符串,然后输出这三个字符串。完善程序。 #include 12
南理工C++试题
2026/1/27 7:13:06
南理工C++试题.doc
将本文的Word文档下载到电脑

