c++上课题目

1. 引用的声明及访问

代码:

复制代码
#include<iostream>
using namespace std;
int x = 5, y =10;
int &r = x;//r为x的变量别名
void print()
{
    cout << "x=" << x << "y" << y << "r=" << r << endl;
    cout << "  Address of x" << &x << endl;//输入变量x的内存地址
    cout << "Address of y" << &y << endl;
    cout << "Address of r" << &r << endl;
}
int main() 
{
    print() ;//调用输出函数
    r = y;//赋值
    print() ;
    y = 100;//再赋值
    x = y - 10;//x,y同时改变
    print();
    return 0;
}

运行结果:

复制代码
x=5 y=10 r=5
  Address of x: 0x7ffeefbff53c
Address of y: 0x7ffeefbff538
Address of r: 0x7ffeefbff53c
x=10 y=10 r=10
  Address of x: 0x7ffeefbff53c
Address of y: 0x7ffeefbff538
Address of r: 0x7ffeefbff53c
x=90 y=100 r=90
  Address of x: 0x7ffeefbff53c
Address of y: 0x7ffeefbff538
Address of r: 0x7ffeefbff53c

2. 通过引用参数修改实际参数的值

代码:

复制代码
#include <iostream>
using namespace std;
void swap ( int &x, int &y )//引用参数成为实际参数变量额、的别名
{
    int t = x;
    x = y;
    y = t;
}
int main () 
{
    int a = 3, b = 5, d = 20, c = 10;
    cout << "a=" << "  b=" << b << endl ;
    swap (a,b) ;
    cout << "a=" << a << " b=" << b << endl;
    swap ( c, d);
    cout << "c=" << c << " d=" << d << endl;
}

运行结果:

复制代码
a = 3 b = 5
a =5 b = 3
c =10 d = 20
c = 20 d =10

3. 三种参数的使用示例

复制代码
#include<iostream>
using namespace std;
int Fun(const int &x, int &y,int z)
{
    y++;
    z++;
    return y;
}
int main () 
{
    int a= 1, b = 3, c = 3, d = 0;
    cout << "a=" << a << "B=" << b << "c=" << c << "d=" << d << endl;
    d =Fun(a, b, c);
    cout << "a=" << a << " b=" << b << "c=" << c << "d=" << d << endl;
    return 0;
}

结果:

复制代码
a=1 b=2 c=3 d=0
a=1 b=3 c=3 d=3

4.动态空间管理示例

复制代码
#include<iostream>
#include <ctime>
#include <cmath>
#include <iomanip>
using namespace std;
const int N =30;
int main() 
{
    int *p, *sum, i;
    sum= new int (0);
    p = new int (N);
    if(p==NULL) {
        cout << "allocation failure.\n";
        return 0;
    }
    srand( time(NULL));
    for(i =0; i < N;i++)
    {
        p[i] = rand() % 100;
        if(p[i] %2)
            (*sum) ++;
    }
    for(i=0;i <N;i++)
    {
        cout << setw(4) << p[i];
        if((i+1) % 10==0)
        cout << endl;
    }
    cout << "the number of odd is:" << *sum << endl;
    delete []p;
    delete sum;
    return 0;
}

运行结果:

复制代码
  43  66  71  26  11  46  64  80  24  31
 36  56  42  88  40  82  10  85  68  69
 84  47  91  44  14  57  88  40  56  18
the number of odd is: 10

5. 异常处理的步骤

复制代码
#include<iostream>
using namespace std;
int divide(int x, int y) 
{
    if(y == 0) throw y;
    return x /y;

}
int main () 
{
    int a = 10 , b= 5, c =0 ;
    try
    {
        cout <<"a/b" << divide ( a,b) << endl;
        cout <<"b/a" << divide ( b,a) << endl;
        cout <<"a/c" << divide ( a,c) << endl;
        cout <<"c/b" << divide ( c,b) << endl;
    }
    catch (int ) 
    {
        cout << "except of divide zero" << endl;

     }
     cout << "calculate finished" << endl;
     return 0;
     
}

运行结果

复制代码
 a/b2
b/a0.5
except of divide zero
calculate finished

6.课后习题

1.
复制代码
#include <iostream>
using namespace std;
int main()
{
    int a, b, c;
    char ch;
    cin >> a >> ch >> b >> c;
    cout << a << endl << ch << endl << b << endl << c;
    return 0;
}

运行结果:

复制代码
1
A
2
3
2.
复制代码
#include <iostream>
using namespace std;
int main()
{
    int arr[4] = {1, 2, 3, 4}, i;
    int *a = arr;
    int &p = a; 
    p++;
    *p = 100;
    cout << *a << "\t" << *p << endl;
    for (i = 0; i < 4; i++)
        cout << arr[i] << "\t";
    cout << endl;
    int b = 10;
    p = &b;
    cout << *a << "\t" << *p << endl;
    for (i = 0; i < 4; i++)
        cout << arr[i] << "\t";
    cout << endl;
    return 0;
}

运行结果:

复制代码
100  100
1  100  3  4
10  10
1  100  3  4
3.
复制代码
#include <iostream>
using namespace std;
int i = 0;
int main()
{
    int i = 5;
    {
        int i = 7;
        cout << "i=" << i << "::i=" << ::i << endl;
        cout << "::i=" << ::i << endl;
        ::i = 1;
        cout << "::i=" << ::i << endl;
    }
    cout << "i=" << i << endl;
    cout << "please input x,y:";
    ::i = 6;
    i += ::i;
    ::i = 100;
    cout << "i=" << i << endl;
    cout << "::i=" << ::i << endl;
    return 0;
}

运行结果:

复制代码
i=7::i=0
::i=0
::i=1
i=5
please input x,y:
i=6
::i=100
4.
复制代码
#include <iostream>
using namespace std;
void f(double x = 50.6, int y = 10, char z = 'A');
int main()
{
    double a = 216.34;
    int b = 2;
    char c = 'E';
    f();
    f(a);
    f(a, b);
    f(a, b, c);
    return 0;
}
void f(double x, int y, char z)
{
    cout << "x=" << x << "\t" << "y=" << y << "\t";
    cout << "z=" << z << endl;
}

运行结果:

复制代码
x=50.6   y=10   z=A
x=216.34   y=10   z=A
x=216.34   y=2   z=A
x=216.34   y=2   z=E
5.
复制代码
#include <iostream>
using namespace std;
int & s(const int &a, int &b)
{
    b += a;
    return b;
}
int main()
{
    int x = 500, y = 1000, z = 0;
    cout << x << '\t' << y << '\t' << z << '\n';
    s(x, y);
    cout << x << '\t' << y << '\t' << z << '\n';
    z=s(x, y);
    cout << x << '\t' << y << '\t' << z << '\n';
    s(x, y) = 200;
    cout << x << '\t' << y << '\t' << z << '\n';
    return 0;
}

运行结果:

复制代码
500    1000    0
500    1500    0
500    2000    2000
500    200    2000
6.
复制代码
#include <iostream>
using namespace std;
void fun(int x, int &y)
{
    x += y;
    y += x;
}
int main()
{
    int x = 5, y = 10;
    fun(x, y);
    fun(y, x);
    cout << "x=" << x << ",y=" << y << endl;
    return 0;
}

运行结果:

复制代码
x=25 , y=25

完成方式:根据书本例题,在vs code上打出代码,并运行结果,复制到markdown里面,我有时还使用豆包,我认为比起deepseek来豆包的反应时间更短,而且用了这么就我也习惯了他的使用方式。有事因为某些原因,代码不能运行也可以直接在豆包里面,得到解答并直接运行.

相关推荐
wen_zhufeng13 分钟前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背1 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光86611 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶1 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光1 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
程与留2 小时前
05_Qt 核心模块概览——Qt Core、Gui、Widgets、Quick 的职责划分
c++·qt
buhuizhiyuci2 小时前
【QT-百日筑基篇】修真世界摸爬滚打多年,终于黄天不负有心人,突破炼器中期——常用控件QWight的属性
开发语言·c++·qt·gui·图形化
小雪崩3 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
白露与泡影3 小时前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
happyprince5 小时前
01-整体观-Codex全貌解读(源码)
算法·ai编程