《C++程序设计》复习

1.不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。在面向对象程序设计中仍然要用到结构化程序设计的知识,例如在类中定义一个函数就需要用结构化程序设计来实现。任何程序设计都需要编写操作代码,具体操作的过程就是面向过程的。对于简单的问题,直接用面向过程的方法就可以轻而易举的解决。
2.输出一行字符:“This is a C++ program.”

#include<iostream>                  // 包含头文件 iostream
using namespace std;               // 使用命名空间 std
int main()
{
    cout << "This is a C++ program."; //cout输出流对象,<<是插入运算符
    return 0;
}

3.求a和b两个数之和。

#include <iostream>
using namespace std;
int main()
{
    int a,b,sum;
    cin >>a>>b; // 两个数以空格隔开,cin是输入流对象,>>提取运算符
    sum = a+b;
    cout <<"a+b="<<sum<<endl;// endl:换行
    return 0;
}

4.给两个数x和y,求两数中的大者。

#import <iostream>
using namespace std;

int max(int x,int y)
{
    int z;
    if(x>y)z = x;
           else z = y;
    return(z);
}

int main()
{
    int a,b,m;
    cin >> a >> b;
    m = max(a,b);
    cout << "max="<<m<<'\n';
    return 0;
}

上面的程序中,max函数出现在main函数之前,因此main函数中调用max函数时,编译系统能识别max是已定义的函数名。如果把两个函数的位置对换一下,即先写main函数,在写max函数,这时在编译main函数遇到max时,编译系统无法知道max代表什么含义,因而无法编译,按出错处理。

#import <iostream>
using namespace std;

int main()
{
   int max(int x,int y);
    int a,b,m;
    cin >> a >> b;
    m = max(a,b);
    cout << "max="<<m<<'\n';
    return 0;
}

int max(int x,int y)
{
    int z;
    if(x>y)z = x;
           else z = y;
    return(z);
}

5.包含类的C++程序。

#include<iostream>
using namespace std;
class Student
{
    private:
          int num;
          int score;
    public:
          void setdata(){
                cin >> num;
                cin >> score;
           }
          void display(){
              cout << "num="<<num<<endl;
              cout << "score="<<score<<endl;
          }
};

Student stud1,stud2;
int main()
{
    stud1.setdata();
    stud2.setdata();
    stud1.display();
    stud2.display();
    return 0;
}

6.C++的数据类型


屏幕快照 2019-08-17 下午2.30.30.png

7.将字符赋给整形变量

#include<iostream>
using namespace std;
int main()
{
    int i,j;
    i='A';
    j='B';
    cout<<i<<' '<<j<<'\n';
    return 0;
}

8.字符数据与整数进行算术运算。下面程序的作用是将小写字母转换为大写字母。

#include<iostream>
using namespace std;
int main()
{
    char c1,c2;
    c1 = 'a';
    c2 = 'b';
    c1= c1-32;
    c2=c2-32;
    cout << c1<<' '<<c2<<endl;
    return 0;
}

9.将有符号数据传送给无符号变量

#include<iostream>
using namespace std;
int main()
{
    unsigned short a;
    short int b = -1;
    a = b;
    cout << "a="<<a<<endl;
    return 0;
}

-1的补码形式为1111 1111 1111 1111(即全部16个二进制均为1),将他传给a,而a是无符号型变量,16个位全1是十进制的65535.
10.puchar函数,字符输出函数
getchar函数,字符输入函数
11.strcat(char[],const char[]);
该函数有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面。第二个字符数组被指定为const,以保证该数组中的内容不会在函数调用期间修改。连接后的字符串放在第一个字符数组中,函数调用后得到的函数值,就是第一个字符数组的地址。
strcpy(char[],const char[]);
strcpy是string copy(字符串复制)的缩写。它的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的形影字符覆盖。
可以用strcpy函数将一个字符串中前若干字符复制到字符数组中去。

strcpy(str1,str2,2);

只能通过调用strcpy函数来实现一个字符串赋给一个字符数组,而不能用复制语句将一个字符串常量或字符数组直接赋值给一个字符数组。
strcmp(const char[],const char[]);
strcmp是string compare(字符串比较)的缩写。
strlen(const char[]);strlen是string length(字符串长度)的缩写。

string是在C++标准库中声明的一个字符串类。
12.& 取地址运算符,* 指针运算符(或称间接访问运算符)
例如,&a为变量a的地址,* p为指针变量p所指向的存储单元。

13.对一个数据可以使用“引用”,它的作用是位一个变量起别名。假如有一个变量a,想给它起个别名b,可以这样写
int a;
int &b=a;
&是引用声明符
14.虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算符。
15.友元可以访问与其由好友关系的类中的私有成员。
16.构造函数的主要作用是对数据成员初始化。基类的构造函数是不能继承的,在声明派生类时,派生类并没有把基类的构造函数继承过来,因此,对继承过来的基类成员初始化的工作也要由派生类的构造函数承担。在执行派生类的构造函数时,先调用基类的构造函数。
17.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。

推荐阅读更多精彩内容