您的位置:首页 > 编程语言 > C语言/C++

C++编程思想 第三章习题

2013-07-18 23:21 239 查看
3-1

myhead.h

 C++ Code 
1

2

3

4

5

6

7

8

9

#ifndef MY_HEAD_H
#define MY_HEAD_H
#include <iostream>
using namespace  std;;
int add(int a,int b);
int sub(int a,int b);
void inital(void);
char str(char a,char b);
#endif
myhead.cpp

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include "myhead.h"
int add(int a,int b)

{

    cout<<"add"<<endl;

    return 0;

}
int sub(int a,int b)

{

    cout<<"sub"<<endl;

    return 0;

}
void inital(void)

{

    cout<<"inital"<<endl;

}
char str(char a,char b)

{

    cout<<"str"<<endl;

    return 'a';

}

 

main.cpp

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

#include "myhead.h"
#include <iostream>
using namespace std ;
void main(void)

{

    int a =1,b=3;

    add(a,b);

    inital();

    str('a','b');

    sub(a,b);

    system("pause");

}


3-2 素数

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include <iostream>
using namespace std ;

void main(void)

{

    int i,j;

    for(i =2 ;i<=1000;i++)

    {

        for(j=2;j<=i/2;j++)

        {

            if (i%j==0)

            {

                break;

            }

        }

        if (j>i/2)

        {

            cout<<i<<"  ";

        }

        

    }

    system("pause");

}
3-3

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#include <iostream>
#include <string>
using namespace std ;

void main(void)

{

    string str;

    int status;

    while (cin>>str)

    {

        if (str=="q")

        {

            break;

        }

        if (str=="love")

        {

            status = 0;

            cout<<status<<endl;

        }

        if (str == "no")

        {

            status  = 1;

        }

        if (str == "yes")

        {

            status = 2;

        }

        switch(status)

        {

            case 0:cout<<status<<endl;break;

            case 1:cout<<status<<endl;break;

            case 2:cout<<status<<endl;break;

            default:cout<<"status is error!";

        }

    }

    system("pause");

}
 3-4

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

#include <iostream>
#include <string>
using namespace std ;

void main(void)

{

    char c; 

    while (true)

    {

        cout<<"MAIN MENU"<<endl;

        cout<<"1:left ,r:right,q:quit ->";

        cin>>c;

        switch(c)

        {

            case 'q':break;

            case 'l':

                {

                    cout<<"left MENU:"<<endl;

                    cout<<"select a or b:";

                    cin>>c;

                    switch(c)

                    {

                        case 'a':

                        {

                                cout<<"you chose 'a'"<<endl;

                                continue;

                        }

                        case 'b':

                        {

                            cout<<"you chose 'b'";

                            continue;

                        }

                        default:

                        {

                            cout<<"you didn't choose a or b!"

                            <<endl;

                            continue;

                        }

                    }

            case 'r':

                {

                    cout<<"RIGHT MENU:"<<endl;

                    cout<<"select c or d"<<endl;

                    cin >>c;

                    switch(c)

                    {

                    case 'c':

                        cout<<"you choose 'c'"<<endl;

                        continue;

                    case 'd':

                        cout<<"you chose 'd'"<<endl;

                        continue;

                    default:

                        cout<<"you did't choose c or d!"

                            <<endl;

                        continue;

                    }

                

                }

                

            }

        }

            cout<<"you must type l or r or q!";

    }

    cout<<"quiting MENU..."<<endl;

    system("pause");

}
3-7

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include <iostream>
#include <string>
using namespace std ;

void fun1(string* str)//指针改变外部变量
{

    *str ="string* fun(string* str)";

}
void fun2(string& str)//引用改变外部变量
{

    str= "string* fun(string& str)";

}

string mystr("I know about you's ...");
void main(void)

{

    cout<<mystr<<endl;

    fun1(&mystr);//指针实参
    cout<<mystr<<endl;

    fun2(mystr);//引用实参 函数调用时候,明显引用的形式更好。
    cout<<mystr;

    system("pause");

}
3-9

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#include "myhead.h"
#include <iostream>
#include <string>
using namespace std ;

void fun1(void)

{

    int i = 0;

    cout<<"i = "<<++i<<endl;

}

void main(void)

{

    for (int j = 0;j<10;j++)

    {

        fun1();

    }

    system("pause");

}


在fun1函数中 变量i修饰符写上static



为什么会出现这种情况呢,这个就是static 的妙用 ,在static定义的变量只初始化一次,而且生命周期是整个程序的生命周期,所以每次调用fun1 static相当于一个全局的计数器。但是局部变量  i 每次进入fun1都会初始化为0 ,++后变成1,输出1.

3-10

main.cpp

 C++ Code 
1

2

3

4

5

6

7

8

9

#include <iostream>
#include <string>
using namespace std ;
static int age;
void main(void)

{

    age = 10;

    system("pause");

}
externfile.cpp

 C++ Code 
1

2

3

4

5

extern int age ;
void fun()

{

    age =100;

}
编译错误  ,1 unresolved externals

说明extern 可以访问外部变量但是不能访问外部静态变量,静态变量的访问只能是本文件内部访问。

3-14

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include <iostream>
using namespace std;

int max(int a,int b)

{

    int temp;

    temp = a>b? a : b;

    return temp;

}
void main()

{

    cout<<max(1,3);

    system("pause");

}
 3-15

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#include <iostream>
#include <string>
using namespace std;
typedef struct person

{

    string  name;

    string  sex;

    int age;

}Person;
typedef Person* LinkPerson;
void main()

{

    Person jack;

    LinkPerson linkperson= &jack;

    linkperson->name ="damon";

    linkperson->sex = "men";

    linkperson->age =16; 

    cout<<linkperson->name<<endl;

    cout<<linkperson->sex<<endl;

    cout<<linkperson->age<<endl;

    system("pause");

}
3-16

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#include <iostream>
#include <string>
using namespace std;

void main()

{

    enum color {red= 10,blue = 20,yello= 30,pink = 40,green= 50,orange= 60};

    for (int i =0;i<70;i++)

    {

        if (i==red)

        {

            cout<<red<<endl;

        }

        else if(i==blue)

        {

            cout<<blue<<endl;

        }

        else if(i==yello)

        {

            cout<<yello<<endl;

        }

        else if(i==pink)

        {

            cout<<pink<<endl;

        }

        else if(i==green)

        {

            cout<<green<<endl;

        }

        else if(i==orange)

        {

            cout<<orange<<endl;

        }

    

    }

    system("pause");

}
 3-17

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include <iostream>
#include <string>
using namespace std;

void main()

{

    union style

    {

        char a;

        short f;

        int b;

        long g;

        float c;

        double d;

    }Style;

    system("pause");

}
联合体内所有元素共享一块内存,所以他的大小有占内存最大的类型决定。

32位系统double占8个字节, short 占2个字节,int占4个字节,float占四个字节,char占1个字节,long占4个字节。

 2-20

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#include <iostream>
#include <string>
#include <cstdio>
using namespace std ;

const int SIZE = 5;
typedef struct myNode

{

    int i;

    int j;

    int k;

}MyNode;

int main(void)

{

    MyNode num[SIZE]={0};

    MyNode* pMyNode[SIZE]={0};

    for (int i =0;i<SIZE;i++)

    {

        pMyNode[i] = &num[i];

        num[i].i = i;

        num[i].j = 2*i;

        num[i].k = 3*i;

        

    }

    

    for (int j = 0;j<SIZE;j++)

    {

        cout<<pMyNode[j]->i;

        cout<<pMyNode[j]->j;

        cout<<pMyNode[j]->k;

        cout<<endl<<j<<endl;

    }

    system("pause");

}

 
3-21

 C++ Code 
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#include <iostream>
#include <string>
#include <cstdio>
using namespace std ;
int main(void)

{

    string str("I love my mm");

    for (int i =0;i<str.size();i++)

    {

        cout<<str[i];

        if (str[i]==' ')

        {

            cout<<endl;

        }

    }

    system("pause");

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: