自考C++程序题

来源:百度知道 编辑:UC知道 时间:2024/06/28 09:02:23
我想问下像这样的改错题应该从哪先着手找错??快考试了,看不懂,急啊。
44.#include<iostream.h>
class point{private:float x;
public:void f(float a){x=a;}
void f( ){x=0;}
friend float max(point& a,point& b);
};
float max(point& a,point& b)
{return(a.x>b.x)? a.x:b.x;}
main( ){
point a,b;
a.f(2.2);b.f(3.3);
cout<<a.max(a,b);
}
还有这样的给出结果题。都应该怎么看?高手帮帮忙吧!
.给出下面程序的输出结果。
#include<iostream>
using namespace std;
template<class T>
T max(T ml,T m2)
{return(m1>m2)?ml:m2:}
void main( ) {
cout<<max(1,7)<< 〃\t〃<<max(2.0,5.0)<<endl;
cout<<max(′y′,′b′<<〃\t〃<<max(〃A〃,〃a〃)<<endl;
}
答案我有,我想知道解题思路 。做类似的题应该先看什么

第一题没有什么方法,就是看你对知识的掌握阿,首先要看懂,知道他要考得是什么,程序很简单,看那个函数就能看出是求最大值,唯一不是很常见的就是friend这个友元的概念,那么这道题考得就是友元的一个比较需要注意的点,!!友元无论是否在类内定义,它都不是类的成员函数!!!那么下面的
a.max(a,b)这句话的应用就是错的应该直接为max(a,b);就可以了。

第二题答案同上,知道用的是函数模版,并且知道他们那个大就可以了,这种题就是静下心一步一步看程序就可以了。

第一题,max不是point类的成员函数,所以应该直接是cout<<max(a,b);
还有,缺少using namespace std;声明,所以用cin和cout会有问题的。
还有那些分号逗号冒号什么的好像是汉语的,肯定不行。
第二题,自己运行下吧

第一个是3.3
第二个是
7 5.0
y a