第三章 函数

Size: px
Start display at page:

Download "第三章 函数"

Transcription

1 第三章函数 中国科大 黄章进

2 本章主要内容 函数的定义和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 C++ 系统函数 深度探索 2

3 函数的声明与使用 函数的定义 函数是面向对象程序设计中, 对功能的抽象 函数定义的语法形式 类型标识符函数名 ( 形式参数表 ) { 语句序列 若无返回值, 写 void 是被初始化的内部变量, 寿命和可见性仅限于函数内部 3

4 return 语句 函数的声明与使用函数的定义 形式参数表 <type 1 > name 1, <type 2 > name 2,..., <type n > name n 函数的返回值 由 return 语句给出, 例如 : return 0 无返回值的函数 (void 类型 ), 不必写 4

5 函数直接或间接调用自身 函数的声明与使用函数的调用 调用前先声明函数 : 若函数定义在调用点之前, 则无需另外声明 ; 若函数定义在调用点之后, 则需要在调用函数前按如下形式声明函数原型 : 类型标识符被调用函数名 ( 含类型说明的形参表 ); 调用形式函数名 ( 实参列表 ) 嵌套调用 函数可以嵌套调用, 但不允许嵌套定义 递归调用 5

6 函数的声明与使用 例 3-1 编写一个求 x 的 n 次方的函数 #include <iostream> using namespace std; // 计算 x 的 n 次方 double power(double x, int n) { double val = 1.0; while (n--) val *= x; return val; int main() { cout << "5 to the power 2 is " << power(5, 2) << endl; return 0; 6

7 例 3-1 编写一个求 x 的 n 次方的函数函数的声明与使用运行结果 : 5 to the power 2 is 25 7

8 函数的声明与使用例 3-2 数制转换 题目 : 输入一个 8 位二进制数, 将其转换 为十进制数输出 例如 : =1(2 3 )+1(2 2 )+0(2 1 )+1(2 0 )=13 10 所以, 如果输入 1101, 则应输出 13 8

9 #include <iostream> using namespace std; // 计算 x 的 n 次方 double power (double x, int n); int main() { int value = 0; cout << "Enter an 8 bit binary number "; for (int i = 7; i >= 0; i--) { char ch; cin >> ch; if (ch == '1') value += static_cast<int>(power(2, i)); cout << "Decimal value is " << value << endl; return 0; double power (double x, int n) { double val = 1.0; while (n--) val *= x; return val; 运行结果 : Enter an 8 bit binary number Decimal value is 105 9

10 π 和 x 均为 double 型 函数的声明与使用例 3-3 编写程序求 π 的值 π = 16arctan 1 5 4arctan 其中 arctan 用如下形式的级数计算 : x x x arctan x= x 直到级数某项绝对值不大于 为止 ; 10

11 #include <iostream> using namespace std; double arctan(double x) { double sqr = x * x; double e = x; double r = 0; int i = 1; while (e / i > 1e-15) { double f = e / i; r = (i % 4 == 1)? r + f : r - f; e = e * sqr; i += 2; return r; 11

12 int main() { double a = 16.0 * arctan(1 / 5.0); double b = 4.0 * arctan(1 / 239.0); // 注意 : 因为整数相除结果取整, 如果参数写 1/5,1/239, 结果就都是 0 cout << "PI = " << a - b << endl; return 0; 运行结果 : PI=

13 原数是否相等, 若相等, 则原数为回文 函数的声明与使用例 3-4 寻找并输出 11~999 之间的数 m, 它满足 m m 2 和 m 3 均为回文数 回文 : 各位数字左右对称的整数 例如 :11 满足上述条件 11 2 =121,11 3 =1331 分析 : 10 取余的方法, 从最低位开始, 依次取出该数的各位数字 按反序重新构成新的数, 比较与 13

14 #include <iostream> using namespace std; // 判断 n 是否为回文数 bool symm(unsigned n) { unsigned i = n; unsigned m = 0; while (i > 0) { m = m * 10 + i % 10; i /= 10; return m == n; 14

15 int main() { for(unsigned m = 11; m < 1000; m++) if (symm(m) && symm(m * m) && symm(m * m * m)) { cout << "m = " << m; cout << " m * m = " << m * m; cout << " m * m * m = " << m * m * m << endl; return 0; 15

16 运行结果 : m=11 m*m=121 m*m*m=1331 m=101 m*m=10201 m*m*m= m=111 m*m=12321 m*m*m=

17 函数的声明与使用例 3-5 计算如下公式, 并输出结果 : 其中 r s 的值由键盘输入 sin x 的近似值按如下公式计算, 计算精度为 10-6 : sin x k sin r+ sin s 当 r s = 1 sin( rs ) 当 r > s 2 x = 1! 3 x 3! x 5! 7 x 7! + = n= ( 1) n 1 2n 1 x (2n 1)! 17

18 #include <iostream> #include <cmath> // 对 C++ 标准库中数学函数的说明 using namespace std; const double TINY_VALUE = 1e-10; double tsin(double x) { double g = 0; double t = x; int n = 1; do { g += t; n++; t = -t * x * x / (2 * n - 1) / (2 * n - 2); while (fabs(t) >= TINY_VALUE); return g; 18

19 int main() { double k, r, s; cout << "r = "; cin >> r; cout << "s = "; cin >> s; if (r * r <= s * s) k = sqrt(tsin(r) * tsin(r) + tsin(s) * tsin(s)); else k = tsin(r * s) / 2; cout << k << endl; return 0; 运行结果 : r=5 s=

20 出和数 函数的声明与使用例 3-6 投骰子的随机游戏 每个骰子有六面, 点数分别为 游戏者在程序开始时输入一个无符号整数, 作为产生随机数的种子 每轮投两次骰子, 第一轮如果和数为 7 或 11 则为胜, 游戏结束 ; 和数为 2 3 或 12 则为负, 游戏结束 ; 和数为其它值则将此值作为自己的点数, 继续第二轮 第三轮... 直到某轮的和数等于点数则取胜, 若在此前出现和数为 7 则为负 由 rolldice 函数负责模拟投骰子 计算和数并输 20

21 rand 函数原型 :int rand(void); 所需头文件 :<cstdlib> 功能和返回值 : 求出并返回一个伪随机数 srand 函数原型 :void srand(unsigned int seed); 参数 :seed 产生随机数的种子 所需头文件 :<cstdlib> 功能 : 为使 rand() 产生一序列伪随机整数而设置起始点 使用 1 作为 seed 参数, 可以重新初化 rand() 21

22 #include <iostream> #include <cstdlib> using namespace std; // 投骰子 计算和数 输出和数 int rolldice() { int die1 = 1 + rand() % 6; int die2 = 1 + rand() % 6; int sum = die1 + die2; cout << "player rolled " << die1 << " + " << die2 << " = " << sum << endl; return sum; 22

23 enum GameStatus { WIN, LOSE, PLAYING ; int main() { int sum, mypoint; GameStatus status; unsigned seed; cout << "Please enter an unsigned integer: "; cin >> seed;// 输入随机数种子 srand(seed);// 将种子传递给 rand() sum = rolldice(); // 第一轮投骰子 计算和数 23

24 switch (sum) { case 7: // 如果和数为 7 或 11 则为胜, 状态为 WIN case 11: status = WIN; break; case 2: // 和数为 2 3 或 12 则为负, 状态为 LOSE case 3: case 12: status = LOSE; break; default: // 其它情况, 游戏尚无结果, 状态为 PLAYING, 记下点数, 为下一轮做准备 status = PLAYING; mypoint = sum; cout << "point is " << mypoint << endl; break; 24

25 while (status == PLAYING) { // 只要状态仍为 PLAYING, 就继续进行下一轮 sum = rolldice(); if (sum == mypoint) // 某轮的和数等于点数则取胜 status = WIN; else if (sum == 7) // 出现和数为 7 则为负 status = LOSE; // 当状态不为 PLAYING 时上面的循环结束, 以下程序段输出游戏结果 if (status == WIN) cout << "player wins" << endl; else cout << "player loses" << endl; return 0; 25

26 运行结果 2: Please enter an unsigned integer:23 player rolled = 9 point is 9 player rolled = 9 player wins 26

27 嵌套调用函数的声明与使用main{ 1 2 fun1() 3 调 fun1() 调 fun2() 结束返回 4 6 fun2() 5 返回 27

28 函数的声明与使用 例 3-6 输入两个整数, 求平方和 #include <iostream> using namespace std; int fun2(int m) { return m * m; int fun1(int x,int y) { return fun2(x) + fun2(y); 28

29 int main() { int a, b; cout << "Please enter two integers (a and b): "; cin >> a >> b; cout << "The sum of square of a and b: " << fun1(a, b) << endl; return 0; 运行结果 : Please enter two integers(a and b): 3 4 The sum of square of a and b: 25 29

30 未知已知函数的声明与使用递归调用 函数直接或间接地调用自身, 称为递归调用 递归过程的两个阶段 : 递推 : 4!=4 3! 3!=3 2! 2!=2 1! 1!=1 0! 0!=1 未知 回归 : 已知 4!=4 3!=24 3!=3 2!=6 2!=2 1!=2 1!=1 0!=1 0!=1 30

31 归函数实现 函数的声明与使用例 3-8 求 n! 分析 : 计算 n! 的公式如下 : n! = n ( n 1 1)! ( n ( n 这是一个递归形式的公式, 应该用递 = > 0) 0) 31

32 源程序 : #include <iostream> using namespace std; unsigned fac(int n){ unsigned f; if (n == 0) f = 1; else f = fac(n - 1) * n; return f; 32

33 int main() { unsigned n; cout << "Enter a positive integer:"; cin >> n; unsigned y = fac(n); cout << n << "! = " << y << endl; return 0; 运行结果 : Enter a positive integer:8 8! =

34 函数的声明与使用例 3-9 用递归法计算从 n 个人中选择 k 个人组成一个委员会的不同组合数 分析 : 由 n 个人里选 k 个人的组合数 = 由 n-1 个人里选 k 个人的组合数 + 由 n-1 个人里选 k-1 个人的组合数 当 n = k 或 k = 0 时, 组合数为 1 34

35 #include <iostream> using namespace std; int comm(int n, int k) { if (k > n) return 0; else if (n == k k == 0) return 1; else return comm(n - 1, k) + comm(n - 1, k - 1); 运行结果 : int main() { int n, k; cout << "Please enter two integers n and k: "; cin >> n >> k; cout << "C(n, k) = " << comm(n, k) << endl; return 0; 35

36 例 3-10 汉诺塔问题 有三根针 A B C A 针上有 N 个盘子, 大的在下, 小的在上, 要求把这 N 个盘子从 A 针移到 C 针, 在移动过程中可以借助 B 针, 每次只允许移动一个盘, 且在移动过程中在三根 用A B C 针上都保持大盘在下, 小盘在上 函数的声明与使36

37 分析 : 将 n 个盘子从 A 针移到 C 针可以分解为下面三个步骤 : 1 将 A 上 n-1 个盘子移到 B 针上 ( 借助 C 针 ); 2 把 A 针上剩下的一个盘子移到 C 针上 ; 3 将 n-1 个盘子从 B 针移到 C 针上 ( 借助 A 针 ); 事实上, 上面三个步骤包含两种操作 : 1 将多个盘子从一个针移到另一个针上, 这是一个递归的过程 hanoi 函数实现 2 将 1 个盘子从一个针上移到另一针上 用 move 函数实现 37

38 #include <iostream> using namespace std; // 把 src 针的最上面一个盘子移动到 dest 针上 void move(char src, char dest) { cout << src << " --> " << dest << endl; // 把 n 个盘子从 src 针移动到 dest 针, 以 medium 针作为中介 void hanoi(int n, char src, char medium, char dest) { if (n == 1) move(src, dest); else { hanoi(n - 1, src, dest, medium); move(src, dest); hanoi(n - 1, medium, src, dest); 38

39 int main() { int m; cout << "Enter the number of diskes: "; cin >> m; cout << "the steps to moving " << m << " diskes:" << endl; hanoi(m,'a','b','c'); return 0; 39

40 运行结果 : Enter the number of diskes:3 the steps to moving 3 diskes: A --> C A --> B C --> B A --> C B --> A B --> C A --> C 40

41 传递时是传递参数值, 即单向传递 函数的声明与使用函数的参数传递机制 传递参数值 在函数被调用时才分配形参的存储 单元 实参可以是常量 变量或表达式 实参类型必须与形参相符 41

42 函数的声明与使用函数的参数传递机制 参数值传递举例 主调函数 : A X D = power(a,3) N 3 被调函数 : double power(double X,int N) 3 42

43 函数的声明与使用 例 3-11 输入两个整数交换后输出 #include<iostream> using namespace std; void swap(int a, int b) { int t = a; a = b; b = t; 43

44 int main() { int x = 5, y = 10; cout << "x = " << x << " y = " << y << endl; swap(x, y); cout << "x = " << x << " y = " << y << endl; return 0; 运行结果 : x = 5 y = 10 x = 5 y = 10 44

45 a=b; 5 x 10 y 5 a 10 b 执行主函数中的函数调用 swap(x,y); t=a; 5 x 10 y 5 a 10 b 5 t b=t; 5 x 10 y 10 a 5 b 5 t 5 x 10 y 10 a 10 b 5 t 在 swap 子函数中返回主函数以后 5 x 10 y 4545

46 函数的声明与使用函数的参数传递 用引用做形参 引用 (&) 是标识符的别名, 例如 : int i, j; int &ri = i; // 建立一个 int 型的引用 ri, 并将其 // 初始化为变量 i 的一个别名 j = 10; ri = j;// 相当于 i = j; 声明一个引用时, 必须同时对它进行初始化, 使它指向一个已存在的对象 一旦一个引用被初始化后, 就不能改为指向其它对象 引用可以作为形参 void swap(int &a, int &b) {... 46

47 函数的声明与使 例 3-12 输入两个整数交换后输出 #include<iostream> using namespace std; 运行结果 : void swap(int& a, int& b) { int t = a; a = b; b = t; int main() { 用int x = 5, y = 10; x = 5 y = 10 x = 10 y = 5 cout << "x = " << x << " y = " << y << endl; swap(x, y); cout << "x = " << x << " y = " << y << endl; return 0; 47

48 swap(x,y); t=a; 5 10 x y 5 x 5 t x 的引用 a y 的引用 b x 的引用 a a=b b=t; 10 x 10 y 5 t 5 y x 的引用 a y 的引用 b y 的引用 b 10 5 x y 48

49 联函数内联函数声明与使用 声明时使用关键字 inline 编译时在调用处用函数体进行替换, 节省了参数传递 控制转移等开销 注意 : 内联函数体内不能有循环语句和 switch 语句 内联函数的声明必须出现在内联函数第一次被调用之前 对内联函数不能进行异常接口声明 内49

50 内联函数 例 3-14 内联函数应用举例 #include <iostream> using namespace std; const double PI = ; inline double calarea(double radius) { return PI * radius * radius; int main() { double r = 3.0; double area = calarea(r); cout << area << endl; return 0; 50

51 带缺省形参值的函数 缺省形参值的作用 函数在声明时可以预先给出缺省的形参值, 调用时如给出实参, 则采用实参值, 否则采用预先给出的缺省形参值 例如 : int add(int x = 5,int y = 6) { return x + y; int main() { add(10,20);//10+20 add(10); //10+6 add(); //5+6 51

52 int add(int x = 1, int y, int z = 6);// 错误带缺省形参值的函数缺省形参值的说明次序 有缺省参数的形参必须在形参列表的最后, 也就是说缺省形参值的右面不能有无缺省值的参数 因为调用时实参与形参的结合是从左向右的顺序 例 : int add(int x, int y = 5, int z = 6);// 正确 int add(int x = 1, int y = 5, int z);// 错误 52

53 带缺省形参值的函数 缺省形参值与函数的调用位置 如果一个函数有原型声明, 且原型声明在定义之前, 则缺省形参值必须在函数原型声明中给出 ; 而如果只有函数的定义, 或函数定义在前, 则缺省形参值需在函数定义中给出 例 : int add(int x = 5,int y = 6); // 原型声明在前 int main() { add(); int add(int x,int y) { // 此处不能再指定缺省值 return x + y; int add(int x = 5,int y = 6) { // 只有定义, 没有原型声明 return x + y; int main() { add(); 53

54 默认形参值的函数默认形参值的作用域 带 在相同的作用域内, 默认形参值的说明应保持唯一, 但如果在不同的作用域内, 允许说明不同的默认形参 例 : int add(int x=1,int y=2); int main() { int add(int x=3,int y=4); add(); // 使用局部默认形参值 ( 实现 3+4) void fun(void) {... add(); // 使用全局默认形参值 ( 实现 1+2) 54

55 数载函函数重载 函数的重载 : 两个以上的函数, 具有相同的函数名, 但是形参的个数或者类型不同 重 C 中实现整数和浮点数的加法 : int iadd(int x, int y); float fadd(float x, float y); 55

56 数重载函重载函数的声明 C++ 允许功能相近的函数在相同的作用域内以相同函数名声明, 从而形成重载 方便使用, 便于记忆 例 : int add(int x, int y); float add(float x, float y); int add(int x, int y); int add(int x, int y, int z); 形参类型不同 形参个数不同 56

57 函数重载{ return x - y; 注意事项 重载函数的形参必须不同 : 个数不同或类型不同 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数 int add(int x,int y); int add(int x,int y); int add(int a,int b); void add(int x,int y); 编译器不以形参名来区分编译器不以返回值来区分 不要将不同功能的函数声明为重载函数, 以免出现调用结果的误解 混淆 这样不好 : int add(int x, int y) { return x + y; float add(float x,float y) 57

58 编译器无法确定执行哪个重构函数, 报语法错误函数重载注意事项 当使用具有缺省形参值的函数重载形式时, 要防止二义性 void fun(int length, int width=2, int height=33); void fun(int length); fun(1); 58

59 函数重载 例 3-16 重载函数应用举例 编写两个名为 sumofsquare 的重载函数, 分别求两整数的平方和及两实数的平方和 #include <iostream> using namespace std; int sumofsquare(int a, int b) { return a * a + b * b; double sumofsquare(double a, double b) { return a * a + b * b; 59

60 int main() { int m, n; cout << "Enter two integer: "; cin >> m >> n; cout << "Their sum of square: " << sumofsquare(m, n) << endl; double x, y; cout << "Enter two real number: "; cin >> x >> y; cout << "Their sum of square: " << sumofsquare(x, y) << endl; return 0; 60

61 运行结果 : Enter two integer: 3 5 Their sum of square: 34 Enter two real number: Their sum of square:

62 使用C++ 系统函数C++ 系统函数 C++ 的系统库中提供了几百个函数可 供程序员使用 例如 : 求平方根函数 (sprt) 求绝对 值函数 (abs) 等 使用系统函数时要包含相应的头文件 例如 :cmath 或 math.h 62

63 说明在头文件 cmath 中 使用C++ 系统函数例 3-17 系统函数应用举例 题目 : 从键盘输入一个角度值, 求出该角度的正弦值 余弦值和正切值 分析 : 系统函数中提供了求正弦值 余弦值和正切值的函数 :sin() cos() tan(), 函数的 63

64 #include <iostream> #include <cmath> using namespace std; const double PI = ; int main() { double angle; cout << "Please enter an angle: "; cin >> angle; // 输入角度值 运行结果 : 30 sin(30)=0.5 cos(30)= tan(30)= double radian = angle * PI / 180; // 转化为弧度值 cout << "sin(" << angle << ") = " << sin(radian) <<endl; cout << "cos(" << angle << ") = " << cos(radian) <<endl; cout << "tan(" << angle << ") = " << tan(radian) <<endl; return 0; 64

65 使用C++ 系统函数65 标准函数与非标准函数 标准 C++ 函数 C++ 标准中规定的函数 ; 各种编译环境普遍支持, 因此用标准函数的程序移植性好 ; 很多标准 C++ 函数继承自标准 C, 头文件以 c 开头 :cmath,cstdlib,cstdio,ctime 非标准 C++ 函数 与特定操作系统或编译环境相关 ; 在处理和操作系统相关事务时常常需要调用

66 使用C++ 系统函数查找系统函数的使用说明 查编译系统的库函数手册 库函数

67 深度探索67 形参和局部变量的存储 为什么不能为形参和局部变量分配固定地址? 他们仅在函数调用时生效, 函数返回后即失效, 分配固定地址造成空间浪费 更重要的是, 发生递归调用时, 多次调用间的形参和局部变量应彼此独立 需要栈式存储

68 深度探索68 栈 栈是一种容纳数据的容器 数据只能从栈的一端存入 ( 压入栈 ) 数据只能从栈的同一端取出 ( 弹出栈 ) 压入栈 a n a 2 a 1 弹出栈 栈顶 栈底

69 索运行栈 度探 运行栈是一段区域的内存空间深 运行栈分为一个一个栈帧 每个栈帧对应一次函数调用 栈帧中包括 : 本次函数调用的形参值 控制信息 局部变量值 一些临时数据 函数调用时, 会有一个栈帧被压入运行栈 返回时, 会有一个栈帧被弹出 69

70 索运行栈示意图 度探unsigned fac(unsigned n) { unsigned f; if (n == 0) f = 1; else f = fac(n - 1) * n; return f; int main() { unsigned n; cin >> n; unsigned y = fac(n); 栈顶深f: 1 n: 0 f:? n: 1 y:? n: 1 fac(0) fac(1) main() 70

71 索函数调用的执行过程 度探 栈指针 esp: 指向运行栈栈顶深 帧指针 ebp: 定位形参和局部变量 传递参数 : 调用前把实参压入堆栈 函数调用时的几步关键操作 call 指令 : 将下一条指令地址 ( 返回地址 ) 压入运行栈, 转到函数入口地址 被调函数入口处 : 将当前 ebp 压入运行栈, 用 ebp 保存 esp, 调整 esp 为局部变量留出空间 被调函数出口处,leave 指令 : 用 ebp 恢复 esp, 从运行栈中弹出 ebp 原值 ret 指令 : 将返回地址从运行栈弹出, 转到返回地址 71

72 索运行栈的数据分布 深度探esp ebp 调用 fac(n-1) 的参数 n 局部变量 f ebp 原值返回地址 eip 参数 n fac 的栈帧 unsigned fac(unsigned n) { unsigned f; if (n == 0) f = 1; else f = fac(n - 1) * n; return f; 形参和局部变量定位 : ebp + 8: 形参 n ebp - 4: 局部变量 f 72

73 函数调用的执行过程 深索 C call 0x <add(int, int)> mov %eax,0x1c(%esp) F push %ebp mov %esp,%ebp and $0xfffffff0,%esp sub $0x20,%esp call 0x < main> D movl $0x7,0x4(%esp) movl $0x5,(%esp) mov $0x0,%eax A leave B ret 度探int add(int a, int b) { int c = a+b; return c; int main() { int x = add(5,7); return 0; 形参和局部变量定位 : esp, esp+4: 实参 a,b esp + 1c: 局部变量 x 73

74 深度探函数调用的执行过程 索 A mov -0x4(%ebp),%eax D leave push %ebp mov %esp,%ebp B sub $0x10,%esp E mov 0xc(%ebp),%eax mov 0x8(%ebp),%edx lea (%edx,%eax,1),%eax mov %eax,-0x4(%ebp) E ret int add(int a, int b) { int c = a+b; return c; int main() { int x = add(5,7); return 0; 形参和局部变量定位 : ebp+8, esp+c: 形参 a,b ebp - 4: 局部变量 c 74

75 索函数声明的意义 度探 以错误方式调用函数的危险性深 函数的原型信息 ( 参数个数和类型 返回值类型 ) 在编译后即不存在 ; 如果不要求声明函数, 以错误的方式 ( 错误的参数数量或类型 ) 调用函数, 会产生不可预期的结果, 但很多情况下不会给出错误提示 函数原型是主调函数与被调函数间的协议 运行结果错误 vs 编译错误 一个错误, 与其被淹没在运行中, 不如暴露在编译时 75

76 C 语言的反例 不完整的函数声明 C 语言允许 只声明函数名和返回类型, 而不声明参数类型 不声明函数, 直接调用 后果 : 隐蔽错误 如果给出 add() 的完整声明, 则会自动进行类型转换 声明带来了类型安全 double add(); int main() { double s = add(1, 2);. return 0; 错误的调用, 压入运行栈的是整数! double add(double a, double b) { return a + b; 76

77 小结与复习建议 主要内容 函数的声明和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 C++ 系统函数 达到的目标 学会将一段功能相对独立的程序写成一个函数, 为下一章学习类和对象打好必要的基础 77

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式] 函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2

主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2 第四讲 函数 主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2 函数的定义 函数是程序设计中, 对功能的抽象, 是 C++ 的基本模块 C++ 程序是由函数构成的 ( 一个或多个函数 ) C++ 程序必须有且只能有一个 main 函数 函数的定义 函数头 类型标识符函数名 ( 形式参数表

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

Static Enforcement of Security with Types

Static Enforcement of Security with Types 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结 果如下 根据所生成的汇编程序来解释程序中四个变 量的存储分配 生存期 作用域和置初值方式等方面 的区别 static long aa = 10; short bb = 20; func( ) { } static long cc = 30; short dd = 40; static long aa = 10; func(

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 思考题 1 函数总需要从 main 中调用吗? 当调用一个函数时, 为什么要使用参数? 函数不是总需要从 main 函数中调用, 使用参数的目的是为了给被调函数传递数据 2 什么是函数的返回值? 是否每个函数都有返回值?

More information

Microsoft PowerPoint - 10 模板 Template.pptx

Microsoft PowerPoint - 10 模板 Template.pptx 模板 Tempalte 泛型编程的需要 Why Templates? 设想你对整数类型实现了一个排序算法 : void sort(int *is,int n); 用该函数可以对实 复数或工资单排序吗? 模板可以复用源代码 - 泛型编程. inline void Swap( int &x, int &y){ int t = x; x = y; y =t; inline void Swap(double

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 PERSON 1 Person 题目描述 编写程序, 定义一个基类 Person, 包含 name 和 age 两个数据成员 ; 再由它派生出学生类 Student 和教师类 Teacher, 其中学生类添加学号 no 数据, 教师类添加职称 title 数据 ; 要求每个类均有构造函数 析构函数和显示数据的函数

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期  开放本科  期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l 试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 c++ 程序中都必须包含有这样一个函数, 该函数的函数名为 ( ) A. main

More information

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期  开放本科  期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new 试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 C 十 + 程序中都必须包含有这样一个函数, 该函数的函数名为 ) A.main

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 CIRCLE 1 Circle 描述 编写一个圆类 Circle, 实现半径的输入 面积的计算和输出 输入 圆的半径 (double 类型 ) 输出 圆的面积 ( 保留小数点后两位 ) 样例输入 3 样例输出 28.27 提示 圆周率的取值需要比较精确, 以保证计算结果的精度 #include

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 CRECT 类 1 CRect 类 设计矩形类, 包含 长度和宽度信息 基本构造函数 基础属性的访问接口 ( 读 / 写, Read/Write, Get/Set) 计算周长和面积 ( 注 : 基本构造函数, 一个无参数的默认构造函数, 以及一个初始化数据成员的构造函数如果数据成员的初始化有多种形式, 就提供多个构造函数

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

More information

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

02

02 Thinking in C++: Volume One: Introduction to Standard C++, Second Edition & Volume Two: Practical Programming C++ C C++ C++ 3 3 C C class C++ C++ C++ C++ string vector 2.1 interpreter compiler 2.1.1 BASIC

More information

06-statement

06-statement PHP 基本语法 条件 循环 函数杨亮 程序的基本结构 程序 输 入 运算 (+ - x / &! ) 逻辑 ( 条件 循环 递归 ) 输出 辅助 ( 变量 数组 函数 ) 小测验 用你熟悉的程序找出 1~1000 中的所有质数 我们直接看代码好了 if else elseif 1

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 7.5 函数的嵌套调用 C 语言的函数定义是互相平行 独立的 即函数不能嵌套定义 但可以嵌套调用函数 即调用一个函数的过程中, 又可以调用另一个函数 7.5 函数的嵌套调用 main 函数 1 调用 a 函数 2 a 函数 3 调用 b 函数 4 b 函数 5 9 8 7 6 结束 7.5 函数的嵌套调用 例 7.5 输入 4 个整数, 找出其中最大的数 用函数的嵌套调用来处理 解题思路 : main

More information

Microsoft Word - 第05章 函数

Microsoft Word - 第05章 函数 第 5 章函数 5.1 函数概述 对于一个较大的程序, 为便于实现一般应将其分为若干个程序模块, 每一个模块实现一个特定的功能 在 C 语言中, 由函数实现模块的功能 函数是 C 程序的构成基础 一个 C 程序可由一个主函数 main() 和若干个子函数构成 像 printf() scanf() 这样的函数是由系统提供的, 其他函数则由用户编写 函数的实现, 将有利于信息隐藏及数据共享, 节省开发时间,

More information

C

C C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;

More information

C/C++语言 - 分支结构

C/C++语言 - 分支结构 C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

C/C++语言 - 运算符、表达式和语句

C/C++语言 - 运算符、表达式和语句 C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe

More information

第五讲 数组 一维数组 二维数组 数组作为函数参数

第五讲 数组 一维数组 二维数组 数组作为函数参数 第五讲 数组 一维数组 二维数组 数组作为函数参数 一维数组 2 数组 数组 : 具有一定顺序关系的若干相同类型变量的集合体 一维数组的声明 类型标识符变量名 [n] 声明一个长度为 n 的数组 ( 向量 ) 类型标识符 : 数组元素的数据类型 ; n: 数组的长度, 即元素的个数 ; 例 : int x[5] // 声明一个长度为 5 的一维数组 一维数组的引用 变量名 [k] // 注 : 下标

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

<4D F736F F F696E74202D2043D3EFD1D4BFCEBCFE2D362DBAAFCAFD2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D2043D3EFD1D4BFCEBCFE2D362DBAAFCAFD2E BBCE6C8DDC4A3CABD5D> 第六章函数 郎大鹏 第六章函数 6.1 高效程序的编写方法 6.2 函数的定义 6.3 函数间数据的传递方法 6.4 函数的调用 6.5 函数的嵌套调用 6.6 函数的递归调用 6.7 局部变量和全局变量 6.8 变量的存储类别 6.9 习题 第六章函数 6.1 高效程序的编写方法 6.2 函数的定义 6.3 函数间数据的传递方法 6.4 函数的调用 6.5 函数的嵌套调用 6.6 函数的递归调用

More information

Microsoft Word - CPE考生使用手冊160524.docx

Microsoft Word - CPE考生使用手冊160524.docx 大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

C++ 程序设计 笔记 * 潘建瑜 2019 年 6 月 9 日 * 本笔记仅供课堂教学使用

C++ 程序设计 笔记 * 潘建瑜 2019 年 6 月 9 日 * 本笔记仅供课堂教学使用 C++ 程序设计 笔记 * 潘建瑜 2019 年 6 月 9 日 * 本笔记仅供课堂教学使用 ii 纸上得来终觉浅, 绝知此事要躬行 学而不思则罔, 思而不学则殆 知识, 只有当它靠积极的思考得来, 而不是凭记忆得来的时候, 才是真正的知识 目录 第一讲 计算机基础 1 1.1 信息的表示与存储........................................ 1 1.1.1 计算机的数字系统...................................

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 lambda 表达式及其应用 lambda 表达式是 Java 8 提供的一种新特性, 它使得 Java 也能像 C# 和 C++ 语言一样进行简单的 函数式编程, 这不仅简化了某些通用结构的实现方式, 也大大增强了 Java 语言的表达功能 3.1 lambda 表达式简介 lambda 表达式是基于数学中的 λ 演算得名, 本质上就是一个没有方法名的匿名方法 例如, 有一个方法定义如下

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc)

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc) : TBFAT-G5MP-MN004-11 1 GX Series PLC Program Manual 2 GX Series PLC Program Manual Contents Contents...3 1... 1-1 1.1... 1-2 1.2... 1-3 1.2.1... 1-3 1.2.2... 1-4 1.2.3... 1-4 1.2.4... 1-6 1.3... 1-7 1.3.1...

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第 1 章程序设计和 C 语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C 语言的发展及其特点 1.4 最简单的 C 语言程序 1.5 运行 C 程序的步骤与方法 1.6 程序设计的任务 1.1 什么是计算机程序 程序 : 一组计算机能识别和执行的指令 只要让计算机执行这个程序, 计算机就会自动地 有条不紊地进行工作 计算机的一切操作都是由程序控制的, 离开程序, 计算机将一事无成

More information

C++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 简单图形 1 简单图形 输入图形的行数 ( 如下图 7 行 ), 输出如下图所示图形 * *** ***** ******* ***** *** * 2 1 简单图形 1 #inc lude 2 using namespace std ; 3 4 // 注意变量命名的方式 5 //

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

递归函数的高效实现方法

递归函数的高效实现方法 递归函数的高效实现方法 赵建华 递归函数的适用范围和优缺点 分治法 把一个比较大的问题分解为若干个比较小的问题, 分别求解这些比较小的问题, 再综合得到原问题的解 如果比较小的问题和原问题具有同样的性质, 那么适用递归接法 要求最终能够把问题分解为能够直接解决的简单问题 优点 简洁 能够帮助思考 和问题的结构有对应关系 缺点 效率低下 递归 递归的定义 若一个对象部分地包含它自己, 或用它自己给自己定义,

More information

C++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 圆 1 圆 设计圆类 包含 包含基本属性和基本属性访问接口 计算面积和周长接口 2 1 圆 1 #include 2 using namespace std ; 3 c l a s s CCircle 4 { 5 p r i v a t e : 6 double r ; 7 const

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 SWAP 1 Swap 题目描述 用函数模板的方式实现对不同数据类型的数组中的数据进行输入 从小到大排序和输出 使用如下主函数测试你的模板设计一个函数模板 Swap, 实现任意数据类型的两个数据的交换, 分别用 int 型 double 型和 char 型的数据进行测试 main 函数如下 : int main()

More information

第五讲 C++程序的结构

第五讲 C++程序的结构 第五章数据的共享与保护 本章主要内容 作用域与可见性 对象的生存期 数据与函数 静态成员 共享数据的保护 友元 编译预处理命令 多文件结构和工程 深度探索 2 命名空间作用域作用域与可见性标识符的作用域 标识符在程序正文中有效的区域 函数原型作用域 局部作用域 类作用域 3 作用域与可见性函数原型的作用域 函数原型中的参数, 其作用域始于 "(", 结束于 ")" 例如, 设有下列原型声明 : double

More information

untitled

untitled (encapsulation) 例 類 說 類 料 來 料 information hiding 念 (inheritance) 來說 類 類 類 類 類 類 行 利 來 (polymorphism) 不 類 數 不 1 2 3 4 類 類 不 類 不 類 5 6 7 // virtual 不見了 #include #include using namespace

More information

ebook39-5

ebook39-5 5 3 last-in-first-out, LIFO 3-1 L i n e a r L i s t 3-8 C h a i n 3 3. 8. 3 C + + 5.1 [ ] s t a c k t o p b o t t o m 5-1a 5-1a E D 5-1b 5-1b E E 5-1a 5-1b 5-1c E t o p D t o p D C C B B B t o p A b o

More information

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 MYQUEUE 1 MyQueue 题目描述 设计一个 MyQueue 类模板, 类模板说明如下 : template class MyQueue; template std::ostream & operator

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

Microsoft PowerPoint - CPP-Ch ppt [兼容模式]

Microsoft PowerPoint - CPP-Ch ppt [兼容模式] Chapter 6 Functions and an Introduction to Recursion http://jssec.seu.edu.cn 杨明 yangming2002@seu.edu.cn OBJECTIVES To construct programs modularly from functions. To use common math functions available

More information

一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)

一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项) 第二十届全国青少年信息学奥林匹克联赛初赛 普及组 C++ 语言试题 竞赛时间 :2014 年 10 月 12 日 14:30~16:30 选手注意 : 试题纸共有 8 页, 答题纸共有 2 页, 满分 100 分 请在答题纸上作答, 写在试题纸上的一律无效 不得使用任何电子设备 ( 如计算器 手机 电子词典等 ) 或查阅任何书籍资料 一 单项选择题 ( 共 20 题, 每题 1.5 分, 共计 30

More information

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D> 程序设计实习 (I): C++ 程序设计 第二讲类和对象 (1) 面向对象的程序设计 面向对象的程序设计方法, 能够较好解决结构化程序设计中出现的问题 面向对象的程序 = 类 + 类 + + 类 设计程序的过程, 就是设计类的过程 2 面向对象的程序设计 面向对象的程序设计方法 : 将某类客观事物共同特点 ( 属性 ) 归纳出来, 形成一个数据结 构 ( 可以用多个变量描述事物的属性 ); 将这类事物所能进行的行为也归纳出来,

More information

Microsoft Word - 970617cppFinalSolution.doc

Microsoft Word - 970617cppFinalSolution.doc 國 立 台 灣 海 洋 大 學 資 訊 工 程 系 C++ 程 式 設 計 期 末 考 參 考 答 案 姓 名 : 系 級 : 學 號 : 97/06/17 考 試 時 間 :10:00 12:10 試 題 敘 述 蠻 多 的, 看 清 楚 題 目 問 什 麼, 針 對 重 點 回 答 是 很 重 要 的 ; 不 確 定 的 請 一 定 要 當 場 提 出 來, 不 要 白 花 力 氣 在 誤 會

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

C

C C 2017 3 14 1. 2. 3. 4. 2/95 C 1. 3/95 C I 1 // talkback.c: 2 #include 3 #include 4 #define DENSITY 62.4 5 int main(void) 6 { 7 float weight, volume; 8 int size; 9 unsigned long letters;

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

99710b43ZW.PDF

99710b43ZW.PDF v = at s = 1 2 2 v = 2 π r a = v 2 = 4 π 2 r T r T 2 a 2 R = 2 R r g v 1 2 2 g = 9.8 r = 60R a = 9.8 = 0.0027 60 F = G Mm r 2 m

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 第十一讲 运算符重载 与类型转换 运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 为什么要运算符重载 预定义的运算符只针对基本数据类型, 若要对类的对象进行类似的运算, 需要重新定义运算符的功能 运算符重载实质就是函数重载 : 对已有的运算符赋予多重含义, 使得同一个运算符作用于不同类型的数据时导致不同的行为

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 177 [P179] (1) - [P181] [P182] (2) - for [P183] (3) - switch [P184] [P187] [P189] [P194] 178 [ ]; : : int var; : int var[3]; var 2293620 var[0] var[1] 2293620

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 计算概论 A 课程程序设计部分 C++ 语言基本成分 数据成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 再谈, 我们的进度安排 我们的学习过程 感性理性函数指针等 数据成分运算成分控制成分数组字符串 结构化的程序递归 传统学习过程 数据类型与表达式 输入输出 关系运算 控制语句 函数数组指针结构体 作业练习 感性认识作业练习 ( 以抄程序为主 ) 正常作业练习

More information

WHUST 2017 Div.2 Day 3.5 C++ 标准模版库

WHUST 2017 Div.2 Day 3.5  C++ 标准模版库 标准模版库 标准模版库 集训队郭松 集训队郭松 标准模版库 标准模版库 纲 介绍算法竞赛中, 需要 到的 知识命名空间代码框架实参 类型模版函数简介 模版类简介 集训队郭松 标准模版库 标准模版库介绍算法竞赛中, 需要 到的 知识算法竞赛中, 需要 到的 知识标准命名空间 std 集训队郭松 标准模版库 标准模版库介绍算法竞赛中, 需要 到的 知识算法竞赛中, 需要 到的 知识标准命名空间 std

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

Chapter12 Derived Classes

Chapter12   Derived Classes 继 承 -- 派 生 类 复 习 1. 有 下 面 类 的 说 明, 有 错 误 的 语 句 是 : class X { A) const int a; B) X(); C) X(int val) {a=2 D) ~X(); 答 案 :C 不 正 确, 应 改 成 X(int val) : a(2) { 2. 下 列 静 态 数 据 成 员 的 特 性 中, 错 误 的 是 A) 说 明 静 态 数

More information