c++上课题目
- 手机
- 2025-09-14 00:24:02

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来豆包的反应时间更短,而且用了这么就我也习惯了他的使用方式。有事因为某些原因,代码不能运行也可以直接在豆包里面,得到解答并直接运行.