第三章 函数
|
|
|
- 校 冯
- 7 years ago
- Views:
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 [兼容模式]
函数 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)
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 标识符逗号分隔,
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. 注意 "," 后面有一个空格,"." 结束,
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
新版 明解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,
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
エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 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]);
CC213
: (Ken-Yi Lee), E-mail: [email protected] 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] : ,
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,
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 ;
FY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
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
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!=
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 数据 ; 要求每个类均有构造函数 析构函数和显示数据的函数
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,
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
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
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) (
C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1
C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 CIRCLE 1 Circle 描述 编写一个圆类 Circle, 实现半径的输入 面积的计算和输出 输入 圆的半径 (double 类型 ) 输出 圆的面积 ( 保留小数点后两位 ) 样例输入 3 样例输出 28.27 提示 圆周率的取值需要比较精确, 以保证计算结果的精度 #include
新・解きながら学ぶ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
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];
C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1
C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 CRECT 类 1 CRect 类 设计矩形类, 包含 长度和宽度信息 基本构造函数 基础属性的访问接口 ( 读 / 写, Read/Write, Get/Set) 计算周长和面积 ( 注 : 基本构造函数, 一个无参数的默认构造函数, 以及一个初始化数据成员的构造函数如果数据成员的初始化有多种形式, 就提供多个构造函数
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.
C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1
C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n
新版 明解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
新・明解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
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
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
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: [email protected] 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP
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;
《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;,
新・解きながら学ぶ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 --
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;
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
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
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
《计算概论》课程 第十九讲 C 程序设计语言应用
计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 [email protected] 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout
( 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.
《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 =
Microsoft Word - CPE考生使用手冊160524.docx
大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該
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:
C++ 程序设计 笔记 * 潘建瑜 2019 年 6 月 9 日 * 本笔记仅供课堂教学使用
C++ 程序设计 笔记 * 潘建瑜 2019 年 6 月 9 日 * 本笔记仅供课堂教学使用 ii 纸上得来终觉浅, 绝知此事要躬行 学而不思则罔, 思而不学则殆 知识, 只有当它靠积极的思考得来, 而不是凭记忆得来的时候, 才是真正的知识 目录 第一讲 计算机基础 1 1.1 信息的表示与存储........................................ 1 1.1.1 计算机的数字系统...................................
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
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 [email protected] 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,
学习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
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.
PowerPoint 演示文稿
第 1 章程序设计和 C 语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C 语言的发展及其特点 1.4 最简单的 C 语言程序 1.5 运行 C 程序的步骤与方法 1.6 程序设计的任务 1.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 //
Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]
指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++
Microsoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
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()
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
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
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)
第二十届全国青少年信息学奥林匹克联赛初赛 普及组 C++ 语言试题 竞赛时间 :2014 年 10 月 12 日 14:30~16:30 选手注意 : 试题纸共有 8 页, 答题纸共有 2 页, 满分 100 分 请在答题纸上作答, 写在试题纸上的一律无效 不得使用任何电子设备 ( 如计算器 手机 电子词典等 ) 或查阅任何书籍资料 一 单项选择题 ( 共 20 题, 每题 1.5 分, 共计 30
第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
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
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
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;
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 ;
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
网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
四川省普通高等学校
四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9
CC213
: (Ken-Yi Lee), E-mail: [email protected] 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
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 [email protected] 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
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 =
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
