Microsoft Word - 第3章.doc

Size: px
Start display at page:

Download "Microsoft Word - 第3章.doc"

Transcription

1 在第 2 章中已经对 C 语言变量的声明 定义及初始化进行了介绍, 并简单介绍了 C 语言变量的作用域, 本章将对变量的存储方式进行详细的介绍, 不同存储方式的变量有不同的生命期, 作用域也各不相同 通过对 C 语言变量存储方式的介绍, 使更加深入的了解 C 语言变量的作用域的工作原理 本章讲述的知识点包括 : C 语言变量的生存期和作用域 ; C 语言局部变量与全局变量 ; C 语言变量的存储方式 3.1 变量的生存期和作用域 在 C 语言程序设计中, 变量具有两个属性, 即生存期和作用域 在程序执行时, 所有的变量都有有限的生存期 它们从被声明的那一刻起存在, 并在某一刻消失, 最迟在程序结束时消失 变量的作用域决定了程序中的哪些语句可以使用它, 换句话说, 就是变量在程序其他部分的可见性 通常, 变量的作用域都是通过它在程序中的位置隐式说明的 本节将详细介绍变量的生存期和作用域 变量的生存期 变量可以在某特定的时刻被创建, 或在不再需要时被删除 在创建和删除之间所经过的时间, 被称为变量的生存期 变量只有在生存期中才被分配 ( 占用 ) 内存, 也就是说, 只要变量存在, 在变量中存储的值就不会丢失 当变量被删除之后, 它所占用的内存单元被标记为空闲, 供创建其他变量时使用, 这保证了内存空间的有效使用 在 C 语言中, 变量的生存期有两种 : 全局生存期和动态生存期 1. 全局生存期全局生存期指变量在程序运行一开始就被建立, 而在程序运行结束后才从内存中删除 具有全程生存期的变量是全局变量和静态变量, 具有全局生存期的变量存储在程序的静态数据存储区中 例如 : static int a; 具有全局生存期的变量在定义时如有初始化, 则初始化在程序刚开始运行建立静态数

2 第 1 篇 C 语言编程基础 据区时会被执行一次, 以后再也不会执行初始化操作 注意 : 具有全局生存期的变量在定义时如果没有初始化, 则初值自动为 0( 上例中的 a 被自动赋值为 0) 2. 动态生存期 变量在程序运行过程中, 因需要使用才建立, 而使用结束就被删除 具有动态生存期的变量有局部自动变量和寄存器变量, 具有动态生存期的变量存储在程序的动态数据区中 void f() int a=0; 对于复合语句中定义的 auto 型的局部变量, 每当程序运行至该语句时, 就会在动态数据区建立这些局部变量的存储空间, 而一旦程序流程离开该复合语句时, 该复合语句中的局部变量将被系统从内存中删除 例如 : for(int i=1,i<10,i++) int a=0;. 具有动态生存期的变量未初始化时, 初值为一随机数 ( 一般动态生存期的变量在定义的时候同时被初始化 ) 动态生存期的变量在定义时如有初始化, 则每当程序创建该变量时都会执行初始化 下面举例说明变量的生存期在程序中的体现 例 3-1 使用 for 循环连续打印变量值, 目的是为了说明全程生存期和动态生存期的区别 代码 3-1 全程生存期和动态生存期的体现 01 #include <stdio.h> 02 void fun() int a =0; // 自动局部变量 a 05 static int c; // 静态局部变量 c 06 a++; //a 执行自加操作 07 c++; //c 执行自加操作 08 printf("%d,%d,",a,c); // 打印 a 和 c 的值 int main() int i; 13 for(i=1;i<=4;i++) // 连续 4 次调用函数 fun() 14 fun(); 15 return 0; 16 58

3 运行结果如下 : 1,1,1,2,1,3,1,4 代码 3-1 中, 由于 a 为动态生存期变量, 所以每次调用函数 fun() 时都要进行初始化, 故每次输出都是 1 而 c 为全局生存期变量, 所以只是在第一次调用函数 fun() 时进行初始化, 在接下来对函数 fun() 的调用中,c 的值为上次函数结束时的值 注意 : 除了上述两种生存期变量之外, 还有一种变量, 它可以随时创建 随时删除 创建和删除是程序员用内存操作函数进行的, 在介绍指针时将对这种变量进行介绍 变量的作用域 变量的作用域是变量的有效范围或者变量在程序中的可见性 变量定义的位置决定了变量的作用域 在 C 语言中, 变量的作用域包括局部作用域 全局作用域和文件作用域 3 种 1. 全局作用域 对于具有全局作用域的变量, 可以在程序的任何位置访问它们 当一个变量是在所有函数的外部声明, 也就是在程序的开头声明时, 那么这个变量就是全局变量 例如 : int a; void f1() a++; int main() f1; printf("%d",a); 在上面的例子中, 由于整型变量 a 定义在 main() 函数和 f1() 函数之前, 因此在函数 main() 和 f1() 函数中都可以访问它 2. 局部作用域 变量在复合语句内部或者函数内部声明, 无法被复合语句外或者其他函数的代码所访问 例如 : int main() int a; 59

4 第 1 篇 C 语言编程基础 int b; 在上面的例子中, 整型变量 a 在主函数内声明, 因此主函数之外的代码都无法访问 整型变量 b 在主函数内的复合语句中声明, 在复合语句外的代码无法访问 3. 文件作用域 变量仅在声明它的源代码文件中可见, 一般用 static 修饰符指定变量具有文件作用域 例如 : static int a; void f1() a++; int main() f1; printf("%d",a); 在上面的例子中, 整型变量 a 的作用域局限在声明它的源代码文件中 由于前面提到的大多数程序都只有一个源代码文件, 所以这种写法没有实际意义 但是在程序设计中, 一个工程不是由一个人完成, 也不只有一个文件, 这就很难避免使用一样的全局变量名 为了不同程序文件中各自的变量和函数互不干扰, 可以使用 static 修饰符, 使不同的代码文件中的全局变量互不可见 注意 : 本节中介绍的生存期和作用域是两个完全不同的概念 生存期是指 时间 概念, 指变量从建立到删除的时间 作用域是 空间 概念, 指变量在程序中的可见性 生存期是整个程序的变量, 作用域不一定是整个程序 例如 static int a, 生存期是整个全局生存期, 但是作用域是文件作用域, 局限于变量所在文件的代码可以访问它 3.2 局部变量与全局变量 在前面章节中, 已经讲过变量的作用域, 包括全局作用域和局部作用域,C 语言中所有的变量都有自己的作用域 变量声明的位置不同, 其作用域也不同, 因此,C 语言中的变量可以分为局部变量和全局变量 局部变量 60 在 C 语言中, 变量的作用域只在一定范围内有效, 称之为局部变量 在以下各位置定

5 义的变量均属于局部变量 在函数体内定义的变量, 变量的作用域局限于函数体内 ; 在复合语句内定义的变量, 变量的作用域局限于复合语句内 ; 有参函数的形参也是局部变量, 变量的作用域只在其所在的函数范围内有效 图 3.1 简单说明了这 3 种局部变量及其作用域 int f1(int x) int i; x,i 作用域 int f2(int x,int y) int i; int j; int main() j 作用域 x,y,i 作用域 int a; a 作用域 图 3.1 局部变量及其作用域 如图 3.1 所示, 函数 f1() 内声明的局部变量 i 作用域局限于 f1() 的函数体内 函数 f2() 内声明的局部变量 i 作用域局限于 f2() 的函数体内 f1() 的形参 x 和 f2() 的形参 x 和 y, 它们的作用域分别是 f1() 和 f2() 的函数体 f2() 的复合语句体中声明的局部变量 j 的作用域局限于复合语句体内 main() 函数中的 x 作用域也只局限于 main() 函数体内 由此可见, 不同函数中和不同的复合语句中可以定义 ( 使用 ) 同名变量 因为它们作用域不同, 程序运行时在内存中占据不同的存储单元, 各自代表不同的对象, 所以它们互不干预, 即同名, 不同作用域的变量是不同的变量 局部变量所在的函数被调用或执行时, 系统临时给相应的局部变量分配存储单元, 一旦函数执行结束, 则系统立即释放这些存储单元 所以在各个函数中的局部变量起作用的时刻是不同的 注意 : 主函数 main() 中定义的变量, 只能在主函数中使用, 其他函数不能使用 同时, 主函数中也不能使用其他函数中定义的局部变量, 因为主函数也是一个函数, 与其他函数是平行关系 这一点与其他语言不同, 应予以注意 61

6 第 1 篇 C 语言编程基础 例 3-2 该例详细说明局部变量的用法, 这是一个方程式计算的例子 代码 3-2 计算方程式 y=x*x+2x+1 01 #include <stdio.h> 02 int calculate(int x) // 形参类局部变量定义 int m = x*x; // 函数内部定义的局部变量 m 05 int n = 2*x; // 函数内部定义的局部变量 n 06 int y = m +n +1; // 函数内部定义的局部变量 y 07 return y; int main(int argc, char* argv[]) int x,y; 12 printf("please input num :\n"); 13 scanf("%d",&x); 14 y = calculate(x); // 函数调用计算方程式结果 15 printf("result is %d",y); 16 return 0; 17 运行结果如下 : please input num : 5 ( 回车 ) result is 36 代码 3-2 的第 2 行定义了函数 int calculate(), 并在函数内部定义了 3 个局部变量 m n y, 它们的作用范围只是在 calculate() 函数内部 第 14 行在 main() 函数中调用了计算结果 全局变量 与局部变量不同, 全局变量是在函数之外定义的变量 ( 所有函数前 各个函数之间 所有函数后 ) 全局变量的作用域为从定义全局变量的位置起到本源程序结束为止 如图 3.2 所示, 简单说明了全局变量及其作用域 如图 3.2 所示, 全局变量 a b 和 c 由于在程序中定义的位置不同, 其作用域也不同 在函数 f1() f2() 和 main() 中都可以使用变量 a, 在函数 f2() 和 main() 中可以使用变量 b, 而变量 c 只能在 main() 函数中使用 全局变量是程序中各个函数之间沟通的桥梁 如果在程序文件的开始定义全局变量 ( 如图 3.2 中的变量 a), 则文件中的所有函数 ( 如 f1() f2() 和 main()) 都可以使用全局变量的值 因此, 如果在一个函数中改变了全局变量 a 的值, 就能影响到使用全局变量的其他函数 例 3-3 通过改写代码例 3-2 来说明全局变量的用法 62 代码 3-3 计算方程式 y=x*x+2x+1 01 #include <stdio.h> 02 int result; // 定义全局变量 result 03 int calculate(int x) // 形参类局部变量定义 04

7 int a=1; int f1(int x) int i; int b; int f2(int x,int y) int i; 全局变量 int j; b++; c 作用域 全局变量 b 作用域 int c; int main() int a; b++; c++; 全局变量 c 作用域 图 3.2 全局变量及其作用域 05 int m = x*x; // 函数内部定义的局部变量 m 06 int n = 2*x; // 函数内部定义的局部变量 n 07 result = m +n +1; // 改变全局变量 result 的值 08 return 0; int main(int argc, char* argv[]) int x,y; 13 printf("please input num:\n"); 14 scanf("%d",&x); 15 calculate(x); // 函数调用计算方程式结果 16 printf("result is%d",result); // 输出已经改变了的全局变量 result 的值 17 return 0; 18 运行结果如下 : 63

8 第 1 篇 C 语言编程基础 please input num: 5 ( 回车 ) result is 36 代码 3-3 与代码 3-2 不同的是, 在程序开始第 2 行定义了全局变量 result, 计算方程式的结果不是通过返回值获得的, 而是通过 result 获得的 全局变量特别适用于需要从被调函数获得一个以上返回值的情况, 因为函数的返回值只有一个, 所以要获得多个返回值, 就可以通过全局变量来传递 注意 : 应尽量少使用全局变量, 过多地使用全局变量会造成程序的不清晰 在引用全局变量时, 如果使用 extern 声明全局变量, 可以扩大全局变量的作用域, 对于单文件, 扩大到整个源文件, 对于多源文件, 可以扩大到其他源文件 extern 声明将在后面详细介绍 变量的屏蔽效果 在 C 语言中, 如果在同一个源文件中, 外部变量与局部变量同名, 则在局部变量的作用范围内, 外部变量被 屏蔽, 即它不起作用, 这种情况称为变量的 屏蔽 例 3-4 该例通过实现求两个整数之和, 说明变量的屏蔽 代码 3-4 两个整数求和 01 int a=2,b=3; //a,b 为全局变量, 作用域在 add() 函数和 main() 函数内 02 int add(int a,int b) //a,b 为局部变量, 作用域在 add() 函数内 int c; //c 为局部变量, 作用域在 add() 函数内 05 c=a+b; 06 return(c); // 返回 c 的值 int main() int c; //c 为局部变量, 作用域在 main() 函数内 11 int a=10; //a 为局部变量, 作用域在 main() 函数内, 屏蔽全局变量 a 12 c= add(a,b); // 调用函数 add(), 使用的 b 为全局变量 13 printf("%d\n",c); // 输出求得的和 14 运行结果如下 : 13 在代码 3-4 中, 第 1 行定义了全局变量 a 和 b, 第 2 行中形参 a 和 b 是局部变量, 它们的值通过函数调用由实参传给形参, 全局变量 a 和 b 在 add() 函数中不起作用 第 11 行定义了局部变量 a 并初始化, 因此全局变量 a 在 main() 函数内不起作用, 但是全局变量 b 在 main() 函数内有效 因此在 main() 函数中,a 的值为 10,b 的值为 3, 最后求和结果为 13 注意 : 在编写程序的过程中, 为了提高程序的可读性, 请不要过多地使用相同名字的变量 64

9 3.3 变量的存储与变量的作用域 从前面的章节可以知, 从生存期 ( 变量存在的时间 ) 来分, 变量可以分为全局生存期变量和动态生存期变量 从变量的存储方式来分, 可以分为静态存储方式和动态存储方式 具有全局生存期的变量以静态的方式存储, 具有动态生存期的变量则以动态的方式存储 这两种存储类型具体又可以分为自动型 (auto) 静态型(static) 外部型(extern) 和寄存器型 (register)4 类 本节将详细讲述这 4 种存储类型的变量及其作用域 变量的存储 变量的存储类型包括静态存储和动态存储 静态存储是指在程序运行期间分配固定的内存空间, 直至整个程序结束 例如前面介绍的全局变量就是这种存储类型 动态存储是在程序运行期间, 根据需要动态地分配存储空间, 使用它时才分配存储单元, 使用完毕立即释放 例如函数的形式参数, 在函数定义时并不给形参分配存储单元, 只是在函数被调用时, 才予以分配, 函数调用完毕立即释放 如果一个函数被多次调用, 则反复地分配 释放形参变量的存储单元 因此, 静态存储变量是一直存在的, 而动态存储变量则时而存在时而消失 一个变量究竟属于哪一种存储方式, 并不能仅从其作用域来判断, 还应有明确的存储类型说明 想要理解存储类型, 首先要知道系统为一个运行的 C 程序所分配的内存区域, 如图 3.3 所示 堆区 ( 动态数据 ) 栈区 ( 函数局部数据 ) 代码区 静态数据区 ( 全局 静态变量 ) 常量数据区 图 3.3 C 程序的内存分配 65

10 第 1 篇 C 语言编程基础 C 程序的内存分配, 主要有以下 5 个内存存储区 (1) 静态数据区 : 存储全局变量, 和 static 声明的静态变量 全局变量和静态变量放在同一区域中 初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域 这些存储区域在程序结束的时候释放 静态存储方式的变量一般存储在这个区域 (2) 常量存储区 : 存储常量 (3) 代码区 : 存储代码 (4) 栈 : 存储由编译器在需要的时候分配, 在不需要的时候自动清除的变量 通常是局部变量 函数参数等 动态存储方式的变量一般存储在这个区域 (5) 堆 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由系统回收 用 malloc() calloc() 和 realloc() 等函数分配管理 下面将分别介绍这 4 种存储类型的变量, 其中自动型变量和寄存器变量属于动态存储方式, 静态变量和外部变量属于静态存储方式 自动型变量 自动型变量是 C 语言程序中使用最广泛的一种变量, 一般存储在栈区 自动型变量是用关键字 auto 来声明, 定义的一般格式为 : auto 数据类型变量名例如 : int f1() auto int a; // 定义自动型变量 在 C 语言中, 关键字 auto 可以省略, 凡未加存储类型说明的变量均视为自动变量 在前面章节例子程序中的函数形参 在函数中所定义的变量 ( 包括在复合语句中定义的变量 ), 凡未加存储类型说明符的都属于自动型变量 上面的例子等价于 : 66 int f1() int a; // 定义自动型变量 自动型变量属于动态存储方式, 主要具有以下特点 (1) 自动型变量只有在使用它, 即定义该变量的函数被调用时才给它分配存储单元, 开始它的生存期 函数调用结束, 释放存储单元, 生存期结束 例如 : 01 int main() int i; // 自动型变量 04 for(i=1;i<10;i++) int a=0; // 自动型变量 07 a++;

11 08 09 printf("a=%d\n",a); 10 a 是在复合语句中定义的自动型变量 复合语句结束之后 a 就被释放, 如果再输出变量 a 的值, 显然会有编译错误 下面是改写过的正确例子 : 01 int main() int i,a=0; // 自动型变量 04 for(i=1;i<10;i++) a++; printf("a=%d\n",a); 09 (2) 自动变量的作用域是局部作用域 在函数中定义的自动变量, 只在该函数内有效 在复合语句中定义的自动变量只在该复合语句中有效 (3) 由于自动变量的作用域和生存期都局限于定义它的个体内 ( 函数或复合语句内 ), 因此不同的个体中允许使用同名的变量而不会混淆 也就是说, 在函数内定义的自动变量, 可以与该函数内部的复合语句中定义的自动变量同名 例如 : 01 int main() int i; // 自动型变量 04 int a = 100; // 自动型变量 05 for(i=1;i<10;i++) int a=10; // 自动型变量 08 a++; 09 printf("a=%d\n",a); 10 break; printf("a=%d\n",a); 13 运行结果如下 : 在上面的例子中, 在 main() 函数内定义了自动型变量 a 并初始化为 100, 在 for 循环语句中定义了自动型变量 a 并初始化为 10 由于它们的作用域不同, 所以在 main() 函数结束的时候和 for 循环结束的时候输出 a 的值分别为 100 和 11 由此可以看出, 这两个自动型变量 a 互不干扰 静态变量 静态变量一般存储在静态数据区, 用 static 关键字来声明, 静态变量一般分为静态全局变量和静态局部变量, 定义的一般格式为 : static 数据类型变量名 67

12 第 1 篇 C 语言编程基础 注意 : 前面章节中讲到的全局变量加以 static 进行声明就是静态全局变量, 局部变量加以 static 进行声明就是静态局部变量 1. 静态局部变量 局部变量加以 static 进行声明就是静态局部变量 例如 : static int a,b; static int a[5]=1,2,3,4,5; 静态局部变量属于静态存储方式, 主要具有以下特点 (1) 静态局部变量在函数 ( 或复合语句 ) 内定义, 但不像自动变量那样, 当调用函数时就存在, 退出函数时就消失 静态局部变量始终存在, 它的生存期为整个程序的生存周期 例如 : 01 int f() static int a=1; // 定义静态局部变量 04 a=a+1; 05 return a; int main() int i; 10 for(i=0;i<2;i++) // 连续两次调用函数 f() printf("%d\n",f()); // 输出函数 f() 的返回值 return 0; 15 运行结果如下 : 2 3 在上面的例子中, 由于 a 被定义为静态局部变量, 只是第一次在调用函数 f() 时被初始化为 1, 以后每次调用 f() 函数时都使用上次计算所得到的值 (2) 静态局部变量的作用域仍与自动变量相同, 是局部作用域, 即只能在定义该变量的个体内使用该变量, 退出该函数后, 尽管该变量还继续存在, 但不能使用它 例如 : 01 int f() static int a=1; // 定义静态局部变量 04 a=a+1; 05 return a; int main() int i; 10 for(i=0;i<2;i++) // 连续两次调用函数 f() printf("%d\n",f()); // 输出函数 f() 的返回值 printf("%d\n",a); // 输出变量 a() 的值 68

13 15 return 0; 16 在上面的例子中, 由于静态局部变量 a 是在函数 f() 内定义的, 只在函数 f() 内可以使用, 因此在 main() 函数中直接输出 a 的值会引起错误 (3) 对静态局部变量, 若在声明时未赋以初值, 则系统自动赋予 0 值 ; 若自动变量不赋初值, 则其值是不定的 例 3-5 通过求 1~100 的和, 说明静态局部变量的使用方法 代码 3-5 求 的值 01 void add(); // 声明函数 add() 02 int sum =0; // 定义全局变量 03 int main() int i; 06 for(i=0;i<100;i++) // 循环 100 次调用函数 add() add(); printf("%d\n",sum); // 输出求得的和 11 return 0; void add() // 定义函数 add() static int num=0; // 定义静态局部变量 num 16 num++; //num 自加 17 sum+=num; // 求和计算 18 运行结果如下 : 5050 由代码 3-5 可以看出静态局部变量的生存期为整个程序, 作用域为局部作用域 因此, 虽然在定义它的函数之外的范围内不能使用, 但如果再次调用定义它的函数时, 又可以继续使用, 并且保存了前次被调用后得到的值 因此, 当多次调用一个函数且要求在调用之间保留某些变量的值时, 可考虑采用静态局部变量 2. 静态全局变量 全局变量加以 static 进行声明就是静态全局变量 全局变量和静态全局变量都是静态存储方式, 二者的生存期都是整个源程序 二者的区别在于, 非静态全局变量的作用域在各个源文件中都是有效的 而静态全局变量则限制了其作用域为文件作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其他源文件中不能使用它 例如文件 file1.c 的内容如下 : int a; static int b; int main() // 全局变量 b 加了 static 声明, 就是静态全局变量 69

14 第 1 篇 C 语言编程基础 文件 file2.c 的内容如下 : extern a; extern b; void f1() a=a+b; // 声明变量 a // 声明变量 b 文件 file1.c 中定义了全局变量 a 和静态全局变量 b 在文件 file2.c 中用 extern 声明 a 和 b, 并且在函数 f1() 中使用 a 和 b 是错误的 因为 b 是静态全局变量, 只能在文件 file1.c 中使用, 在文件 file2.c 中仅可使用变量 a extern 将在后面的章节详细介绍 外部变量 在前面讲全局变量时已经提到, 如果需要扩展外部变量的作用域, 使其在程序中的各个源文件和各个函数中都可以使用此全局变量, 就需要用 extern 关键字来声明全局变量 外部变量声明的一般格式为 : extern 变量名外部变量的使用主要分为以下两种情况 : 在一个源代码文件内声明外部变量和在多个源代码文件间声明外部变量 1. 在一个源代码文件内声明外部变量前面已经讲过, 如果全局变量不在文件的开头定义, 其作用域只限于定义变量的位置到源文件结束 如果在定义变量前想引用该全局变量, 则应该在引用之前用 extern 声明外部变量 这样就可以从声明的位置开始, 合法地使用该外部变量 例如 : void f1() extern a; printf( %d\n,a); int a=1; int main() a=a+1; // 声明外部变量 a // 定义变量 a 在上面的例子中, 在函数 f1() 需要使用全局变量 a, 但是全局变量 a 的定义在 f1() 函数结束之后, 因此需要在 f1() 中用 extern 声明外部变量, 从而合法的在函数 f1() 中输出 a 的值 70

15 2. 在多个源代码文件间声明外部变量当一个源程序由若干个源文件组成时, 在一个源文件中定义的全局变量, 其作用域只限于定义变量的位置到该源文件结束 如果需要在其他的源文件中引用该全局变量, 则应该在其他源代码文件中对该全局变量进行外部变量声明 例如文件 file1.c 的内容如下 : int a; int b; int main() // 定义全局变量 a // 定义全局变量 b 文件 file2.c 的内容如下 : extern a; extern b; void f1() a=a+b; // 声明外部变量 a // 声明外部变量 b 上面的例子中, 文件 file1.c 中定义了全局变量 a 和 b, 文件 file2.c 中, 用 extern 声明了 a 和 b 为外部变量, 并在函数 f1() 中合法使用 a 和 b 注意 :extern 只是用来声明变量是一个已经定义的外部变量, 而不是定义变量 外部变量的定义只能有一次, 但是声明可以有多次, 并且可以在源代码的任何位置 寄存器变量 前面所讲到的变量不管是存放在堆 栈还是静态数据区, 都存放在内存中 为了提高程序的执行效率,C 语言允许变量存放在 CPU 的寄存器中, 这样 CPU 就不用经常花费较长时间访问内存区, 这样的变量称之为寄存器变量 使用关键字 register 声明, 声明的一般格式为 : register 数据类型变量名 例 3-6 通过求 20 的阶乘, 介绍寄存器变量 阶乘数比较大时, 使用寄存器变量可以节约很多执行时间 代码 3-6 求阶乘 20! 01 #include <stdio.h> 02 float fac(int n) // 定义阶乘函数 fac() register int i ; // 定义寄存器变量 i 05 float f = 1; 06 for ( i=1; i<= n; i++ ) // 循环求阶乘 71

16 第 1 篇 C 语言编程基础 07 f = f * i ; 08 return f ; int main ( ) 11 int j = 20; // 定义阶乘数为 printf ("%d!=%f \n", j, fac (j) ); // 调用函数 fac() 求阶乘, 并输出结果 13 return 0; 14 运行结果如下 : 20!= 代码 3-6 中第 4 行使用关键字 register 定义了一个寄存器变量 i, 这样可节约很多执行时间 注意 : 只有局部自动变量和形参可以作为寄存器变量, 其他变量 ( 如全局变量 静态变量 ) 都不行 变量存储类型 前面几节已经详细介绍了变量的作用域 生存期和存储类型 下面按照变量的作用域和生存期对这几种存储类型的变量进行归类 1. 按照作用域分类各种变量按照作用域分类, 如图 3.4 所示 自动变量 局部变量 静态局部变量寄存器变量 函数形参 非静态全局变量 ( 可用 extern 声明 ) 静态全局变量图 3.4 按照作用域分类局部变量 ( 包括自动变量 静态存储变量 寄存器变量和形参 ) 的作用域是局部作用域, 只在定义它们的个体 ( 函数或者复合语句 ) 内可用 非静态全局变量的作用域是全局作用域, 不仅可以在定义它的整个源文件中引用, 还可以通过 extern 扩展到其他文件中 静态全局变量的作用域是文件作用域, 只能在定义它的文件中引用 2. 按照生存期分类本节介绍的各种变量按照生存期分类, 如图 3.5 所示 72

17 自动变量 动态存储 寄存器变量 函数形参静态局部变量 静态存储 全局变量 图 3.5 按照生存期分类 自动变量 函数形参和寄存器变量是动态存储方式, 生存期为动态生存期 调用函数时分配存储空间, 函数结束时释放占用的空间 自动变量和函数形参占用内存的堆 栈等动态存储区, 而寄存器变量占用 CPU 的寄存器 静态局部变量和全局变量的生存期为全局生存期, 在整个程序运行期间都存在, 直到程序结束释放占用空间 它们占用内存的静态数据区 注意 : 凡是全程生存期的变量都具有 一次初始化 的特性, 即只在程序开始前初始化一次 ( 之后再遇到初始化语句就会跳过, 但其他赋值语句不会跳过 ) 3.4 变量使用实例 本节举例说明变量的基本使用方法, 希望通过这些代码实例可以深入了解和掌握变量的作用域及其生命周期 例 3-7 计算 1~7 的平方值及平方和 该实例打印出 1~7 的平方值, 最后打印出 1~ 7 的平方值的和, 其中全局变量 sum 出现在多个函数中 全局变量在 header() 函数中被初始化为 0, 在函数 square() 中,sum 对 number 的平方值进行累加 也就是说, 每调用一次函数 square(),sum 就对 number 的平方值累加一次 代码 3-7 计算 1~7 的平方及平方和 01 #include <stdio.h> 02 # include<math.h> 03 void header(); // 函数声明 04 void square(int number) ; 05 void ending(); 06 int sum=0; // 全局变量 07 void main() int index; 10 header() ; // 函数调用 11 for (index = 1;index <= 7;index++ ) 12 73

18 第 1 篇 C 语言编程基础 13 square( index ) ; // 调用求平方函数 ending( ) ; // 结束 void header() sum = 0; // 初始化变量 sum void square(int number) int numsq; 25 numsq = number * number; 26 sum += numsq; 27 printf("%d square is %d\n",number,numsq ) ; void ending() printf("\nsum=%d",sum) ; 33 运行结果如下 : 1 square is 1 2 square is 4 3 square is 9 4 square is 16 5 square is 25 6 square is 36 7 square is 49 sum=140 代码 3-7 中, 代码 22~28 行实现了函数 square(), 其功能是求输入参数数值的平方, 该函数在代码的 11~15 行中被主函数循环调用, 实现了数值 1~7 平方的计算 3.5 小结 本章介绍了在函数及程序设计中, 变量的生存期 作用域和存储类型 作用域是指变量的可见范围, 分为局部作用域 全局作用域和文件作用域 生存期是指变量存在的时间, 包括全局生存期和动态生存期 存储类型包括自动 (auto) 静态(static) 外部(extern) 和寄存器 (register)4 种, 这 4 种变量都有各自的作用域和生存期 同时本章列举了大量的实例代码, 希望可以帮助读者上机实践, 尽早地掌握变量在模块化设计中的应用 3.6 本章习题 1. 以下选项那个不是变量的作用域 A. 全局作用域 B. 局部作用域 74

19 C. 系统作用域 D. 文件作用域 2. 静态变量的生命期是 A. 永远存在 B. 和静态变量所在程序一样 C. 和静态变量所在函数一样 D. 自静态变量定义到静态变量所在程序结束 3. 全局变量的存储位置是 A. 寄存器 B. 堆栈 C. 静态存储区 D. 常量区数据区 4.C 语言中 auto 的关键字的作用是 A. 声明定义自动型的函数 B. 声明定义自动型的变量 C. 声明外部变量 D. 用于声明定义内部变量 5. 引用外部变量需要的关键字是 6. 定义外部文件无法访问的变量的关键字是 7. 定义一个函数, 该函数有记录被调用次数的功能 75

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

没有幻灯片标题

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

More information

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

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

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

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 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

PowerPoint 演示文稿

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

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

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

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

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

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

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 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

Microsoft Word - 第05章 函数

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

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

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

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

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

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

<B1CACAD4CCE22E D20BCC7CAC2B1BE>

<B1CACAD4CCE22E D20BCC7CAC2B1BE> 1 局部变量能否和全局变量重名? 答 : 能, 局部会屏蔽全局 要用全局变量, 需要使用 "::" 局部变量可以与全局变量同名, 在函数内引用这个变量时, 会用到同名的局部变量, 而不会用到全局变量 对于有些编译器而言, 在同一个函数内可以定义多个同名的局部变量, 比如在两个循环体内都定义一个同名的局部变量, 而那个局部变量的作用域就在那个循环体内 2 如何引用一个已经定义过的全局变量? 答 :extern

More information

一 关于内存 数据存储 变量分类 局部变量 全局变量 静态变量 请看下面代码, 分析变量类型? int pi = 3; int Area(int r, int *sum) { int b; static int c =0; b = pi * r * r; c += b; *sum = c; retu

一 关于内存 数据存储 变量分类 局部变量 全局变量 静态变量 请看下面代码, 分析变量类型? int pi = 3; int Area(int r, int *sum) { int b; static int c =0; b = pi * r * r; c += b; *sum = c; retu 移动平台应用软件开发 C/C++/JAVA 基础 指针以及指针操作 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组北京大学二零一五年 一 关于内存 数据存储 变量分类 局部变量 全局变量 静态变量 请看下面代码, 分析变量类型? int pi = 3; int Area(int r, int *sum) { int b; static int c =0;

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

FY.DOC

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

More information

06-statement

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

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

Microsoft Word - 第3章.doc

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

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

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

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

ARM中C和汇编混合编程及示例.doc

ARM中C和汇编混合编程及示例.doc ARM 中 C 和汇编混合编程及示例 在嵌入式系统开发中, 目前使用的主要编程语言是 C 和汇编,C++ 已经有相应的编译器, 但是现在使用还是比较少的 在稍大规模的嵌入式软件中, 例如含有 OS, 大部分的代码都是用 C 编写的, 主要是因为 C 语言的结构比较好, 便于人的理解, 而且有大量的支持库 尽管如此, 很多地方还是要用到汇编语言, 例如开机时硬件系统的初始化, 包括 CPU 状态的设定,

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

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期  开放本科  期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默 试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值,

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

网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

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

试卷代号 :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

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

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

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

Microsoft PowerPoint - 0 C复习.ppt [兼容模式]

Microsoft PowerPoint - 0 C复习.ppt [兼容模式] C 复习 董洪伟 http://hwdong.com 1 程序 : 数据 + 处理 ( 运算 ) 数据 : 变量和常量 int i = 3; 初始化式 变量需要定义 : 类型变量名 ; 类型变量名 = 变量或常量 ; doule pi, r=3.45,area; char var= A ; 类型变量 1, 变量 2, 变量 3; 同时定义多个变量, 逗号隔开 2 运算 : 用运算符对数据进行处理 y

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

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

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

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

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

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

More information

untitled

untitled 1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

untitled

untitled 1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete

More information

Microsoft Word - VC6环境中LIB与DLL文件的使用.doc

Microsoft Word - VC6环境中LIB与DLL文件的使用.doc 作者 : 合肥工业大学杨铸网址 :www.200yi.com 电邮 :fairyfar@msn.com 2008.01 春节前夕 Scripted by FairyFar. 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

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

新・解きながら学ぶ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

2015年计算机二级(C语言)模拟试题及答案(三)

2015年计算机二级(C语言)模拟试题及答案(三) 2016 年计算机二级 (C 语言 ) 模拟试题及答案 (3) 1.( A ) 是构成 C 语言程序的基本单位 A 函数 B 过程 C 子程序 D 子例程 2.C 语言程序从 ( C ) 开始执行 A 程序中第一条可执行语句 B 程序中第一个函数 C 程序中的 main 函数 D 包含文件中的第一个函数 3 以下说法中正确的是( C ) A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中,

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

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机 C 语言函数 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 在标准 C 语言中, 定义函数的格式如下 : 函数返回类型函数名字 ( 数据类型形参 1, 数据类型形参 2,..., 数 据类型形参 N) { } 局部变量定义 ; 表达式语句 ; 函数定义和声明 -- 标准 C 函数定义和声明 函数定义和声明 -- 标准 C 函数定义和声明 其中

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言語入門編

新版 明解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

新・明解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

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378> 第 1 部分 Visual Studio 6.0 开发环境介绍 本书以 Visual C++ 6.0 作为 C 源程序的实践开发环境, 本章将首先介绍 Visual C++ 6.0 环境的基本操作, 包括 Visual C++ 6.0 的安装和启动,C 源程序的编辑 运行与调试 1.1 安装与启动 Visual C++ 6.0 MSDN Visual C++ 6.0 1.1 Microsoft Visual

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

<4D F736F F D20D7DBBACFCAD4CCE231B2CEBFBCB4F0B0B82E646F63>

<4D F736F F D20D7DBBACFCAD4CCE231B2CEBFBCB4F0B0B82E646F63> 综合测试题一参考答案 一 填空题 ( 表达式求值 )( 本大题共 10 小题, 每小题 1 分, 共 10 分 ) 设各语句的初始化 相同 :int x=3,y=2,z=1; 1. x=y==z x= 0 2. x=!(z>y)&&!x 1 x= 1 3. x=(y++*1/3) x= 0 4. x=((x>y>z)?1:0) x= 0 5. x*=2+3 x= 15 6. x=(++z*y,y++,z%y)

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

第五讲 C++程序的结构

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

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

2015年计算机二级(C语言)模拟试题及答案(四)

2015年计算机二级(C语言)模拟试题及答案(四) 2016 年 计 算 机 二 级 (C 语 言 ) 模 拟 试 题 及 答 案 (4) 一 填 空 题 1 C 语 言 中 基 本 的 数 据 类 型 有 : 2 C 语 言 中 普 通 整 型 变 量 的 类 型 说 明 符 为, 在 内 存 中 占 字 节, 有 符 号 普 通 整 型 的 数 据 范 围 是 3 整 数 -35 在 机 内 的 补 码 表 示 为 4 执 行 下 列 语 句 int

More information

Unternehmens-Präsentation

Unternehmens-Präsentation JetSym STX 面向对象编程 坚德自动化技术 ( 上海 ) 有限公司修订日期 :2018 年 6 月 15 日 Revision date: June 15, 2018 概述... 面向过程 vs. 面向对象... 声明类... 实例化对象... 创建构造函数... 通过对象访问硬件... 指针... 对象列表... 继承... 对象的参数化... 面向过程 vs. 面向对象... 面向过程

More information

親愛的,我們結婚吧!

親愛的,我們結婚吧! 3/22 愛 情 的 法 律 學 分 交 大 通 識 課 程 親 愛 的, 我 們 結 婚 吧! 授 課 教 師 : 林 志 潔 博 士 投 影 片 製 作 : 劉 庭 妤 邱 于 柔 學 習 目 標 身 分 關 係 與 親 屬 的 類 型 血 親 與 姻 親 親 系 與 親 等 婚 姻 與 家 庭 結 婚 的 要 件 : 形 式 要 件 與 實 質 要 件 婚 姻 的 普 通 效 力 婚 姻 的

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

Microsoft Word - C++CodeRule94.doc

Microsoft Word - C++CodeRule94.doc C++ 程序编制标准 标准如下 : 一 概述制定本编程格式的目的是为了使软件可读性好 兼容性好 易维护等等 二 程序的构成 C++ 程序的主要特点即为对象 (object) 的概念和数据封装性 (encaptulation) 所以, C++ 程序的主要内容包括 : 1 类 ( 包括基类子类等, 结构看作特殊的类 ) 的定义, 也就是类的描述说明 2 对象类的成员函数的定义, 即类的实现 所有的类都既有属性定义,

More information

吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with

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

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

Microsoft PowerPoint - 概率统计Ch02.ppt [Compatibility Mode]

Microsoft PowerPoint - 概率统计Ch02.ppt [Compatibility Mode] 66 随机变量的函数.5 随机变量的函数的分布 设 是一随机变量, 是 的函数, g(, 则 也是一个随机变量. 本节的任务 : 当 取值 x 时, 取值 y g 67 ( 一 离散型随机变量的函数 设 是离散型随机变量, 其分布律为 或 P { x } p (,, x x, P p p, x p 已知随机变量 的分布, 并且已知 g 要求随机变量 的分布. (, 是 的函数 : g(, 则 也是离散型随机变

More information

untitled

untitled Introduction to Programming ( 數 ) Lecture 3 Spring 2005 March 4, 2005 Lecture 2 Outline 數 料 If if 狀 if 2 (Standard Output, stdout): 料. ((Standard Input, stdin): 料. 類 數 數 數 說 printf 見 數 puts 串 數 putchar

More information

Microsoft Word - CsfZw3.doc

Microsoft Word - CsfZw3.doc 第 3 章 函数和递归函数 3.1 编写函数的优点 程序设计语言中的函数的概念与通常的数学概念差别很大, 尽管它们也具有一些相似之处 因此, 初看上去可能会令人混淆, 以至于不能做出明确的比较 我们更愿意在 Java 中介绍函数的语法, 并且说明它的两个基本的优点 : 函数可以作为用于增强程序模块性 (modularity) 和代码可重用性的子例程 (subroutine) 函数可以通过它们自身递归地定义,

More information

<4D F736F F D C4EA39D4C23137C8D5B6FEBCB643D3EFD1D4B1CACAD4CAD4BEEDBCB0B4F0B0B85FB1EAD7BCB0E65F2E646F63>

<4D F736F F D C4EA39D4C23137C8D5B6FEBCB643D3EFD1D4B1CACAD4CAD4BEEDBCB0B4F0B0B85FB1EAD7BCB0E65F2E646F63> 2011 年 9 月 17 日全国计算机等级考试 C 语言笔试题 一 选择题 (⑴-(10) (21)-(40) 每题 2 分,(11)-(20) 每题 1 分, 共 70 分 ) 下列各题 A) B) C) D) 四个选项中, 只有一个选项是正确的, 请将正确选项填涂在答题卡相应位置上, 答在试卷上不得分 (1) 下列叙述中正确的是 A) 算法就是程序 B) 设计算法时只需考虑数据结构的设计 C)

More information

WWW Slides

WWW Slides 函数和环境 通用和专用的方法, 实例 局部函数定义 变量和作用域 ( 全局和局部 ) 嵌套的作用域 名字和变量 ( 函数 ) 的约束关系 global 和 nonlocal 声明, 变量查找 函数执行中的环境变化 计算概论 (Python 程序设计 ) 裘宗燕,2015/4/2//-1- 通用和专用的方法 解决计算问题, 存在一些通用的方法, 针对具体问题也可能开发出一些具体的专用方法 前面讨论过几个计算中常用的通用方法

More information

技能竞赛C试题

技能竞赛C试题 C 语言程序设计试题 第 1 2 3 章概述 类型 表达式 一 选择题 1 一个 C 程序由若干个 C 函数组成, 各个函数在文件中的位置顺序为 :( ) A 任意 B 第一个函数必须是主函数, 其他函数任意 C 必须完全按照执行的顺序排列 D 其他函数可以任意, 主函数必须在最后 2 下列四个叙述中, 正确的是 :( ) A C 程序中的所有字母都必须小写 B C 程序中的关键字必须小写, 其他标示符不区分大小写

More information

C 语言程序设计 ( 第 33 版 )) #define PI // 下面 2 行是函数的原型说明部分 double sup_area(double r); double volume(double r); // 下面是主函数部分 { double a=-5,b,c,d; b=fab

C 语言程序设计 ( 第 33 版 )) #define PI // 下面 2 行是函数的原型说明部分 double sup_area(double r); double volume(double r); // 下面是主函数部分 { double a=-5,b,c,d; b=fab 第 1 章 C 语言基础与顺序结构 学习目标 1. 掌握 C 语言程序的结构 2. 合理选用数据类型 3. 掌握算术运算符和赋值运算符 4. 掌握控制数据的输入 输出方法 5. 掌握顺序结构以及顺序结构的流程 6. 掌握 Visual C++ 6.0 集成环境的使用方法 7. 掌握转换大小写字母的方法 8. 掌握产生随机整数的方法 计算机由硬件系统和软件系统组成, 其中硬件是物质基础, 而软件是计算机的灵魂

More information

四. 夏 族 言 语 不 是 一 音 一 字 五. 禹 传 子 的 生 物 学 意 义 一. 大 禹 治 的 水 是 从 何 而 来 可 能 是 海 浸 大 禹 治 水, 洪 水 滔 天, 神 州 无 净 土! 左 准 绳 右 规 矩, 声 为 律 身 为 度 所 以 大 禹 一 直 被 国 人 尊

四. 夏 族 言 语 不 是 一 音 一 字 五. 禹 传 子 的 生 物 学 意 义 一. 大 禹 治 的 水 是 从 何 而 来 可 能 是 海 浸 大 禹 治 水, 洪 水 滔 天, 神 州 无 净 土! 左 准 绳 右 规 矩, 声 为 律 身 为 度 所 以 大 禹 一 直 被 国 人 尊 文 见 于 香 港 中 国 工 程 师 学 会 网 页 www.hkcie.org 大 禹 治 水 的 21 世 纪 新 知 释 ( 香 港 ) 杨 伟 国 博 士 ( 科 学 技 术 哲 学 专 业 ) 自 从 2002 年 在 香 港 摩 啰 街 古 董 店 翻 出 一 件 并 不 太 起 眼 的 长 方 四 足 青 铜 器 ( 且 一 足 有 缺 口, 又 缺 失 了 上 盖 垂 环 只 剩

More information

日本清酒精妙绝伦的另一面

日本清酒精妙绝伦的另一面 日 本 清 酒 精 妙 绝 伦 的 另 一 面 过 度 认 真 执 著 的 日 本 人, 对 于 各 种 传 统 产 业 总 是 有 着 多 如 牛 毛 的 规 矩 和 禁 忌, 因 此 想 要 采 访 酒 庄 是 相 当 不 容 易 的 一 件 事 幸 运 的 是, 由 于 某 种 特 殊 的 机 缘, 笔 者 得 以 近 距 离 的 全 程 参 与 杜 氏 ( 首 席 酿 酒 师 ) 的 酿 酒

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Microsoft PowerPoint - C语言课件-9-结构体.pptx

Microsoft PowerPoint - C语言课件-9-结构体.pptx 第九章结构体 郎大鹏 第九章结构体 9.1 结构体类型的声明方法 9.2 结构体类型变量的定义与使用 9.3 结构体数组 9.4 编程举例 9.5 习题 9.1 结构体类型的声明方法 结构体声明的语法形式如下 : struct 结构体标识符 成员变量列表 ; }; 例如, 为了描述班级 ( 假设仅仅包括班级编号 专业 人数等信息 ), 可以声明如下的结构体类型 struct Class char Code[10];

More information

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

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

(1) 64 15 2062 50 8 818 60 41606 63 8305 53 3 11201 38 10 216C 2012815 2012815 2012815 2012815 2012815 201464 200211 20128 20128 20128 20128 20146 4 2

(1) 64 15 2062 50 8 818 60 41606 63 8305 53 3 11201 38 10 216C 2012815 2012815 2012815 2012815 2012815 201464 200211 20128 20128 20128 20128 20146 4 2 (1) 51 41 49 6 6 7 161 4 27 338 2012815 2012815 2012815 200712 20093 20086 211 (1) 64 15 2062 50 8 818 60 41606 63 8305 53 3 11201 38 10 216C 2012815 2012815 2012815 2012815 2012815 201464 200211 20128

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

10月工作总结

10月工作总结 第 6 章程序设计基础 计算机与数学教研室刘玮 目录 6.1 程序设计概述 6.2 程序的三种基本结构 6.3 多模块程序 6.1 程序设计概述 程序 程序是能够完成一定任务的命令的有序集合 VFP 中, 程序文件的扩展名为.prg 程序设计的具体步骤如下 : (1) 分析任务, 建立模型 (2) 分解任务, 描述算法 (3) 编写程序, 认真检查 (4) 上机调试, 纠正错误 6.1 程序设计概述

More information

Microsoft Word - 10201生物02.doc

Microsoft Word - 10201生物02.doc 五 福 一 自 p1 高 雄 市 立 五 福 國 中 97 學 年 度 第 2 學 期 第 1 次 段 考 一 年 級 自 然 與 生 活 科 技 學 習 領 域 試 題 卷 一 選 擇 題 : 每 題 2 分,35 題 共 70 分 ㄧ 年 班 號 姓 名 : ( )1. 下 列 關 於 有 性 生 殖 的 特 色, 哪 一 項 敘 述 是 正 確 的? (A) 高 等 植 物 利 用 營 養 器

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 Word - 《C语言开发入门》课程教学大纲-2.doc

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc C 语言开发入门 课程教学大纲 ( 课程英文名称 ) 课程编号 :201409210011 学分 :5 学分学时 :60 学时 ( 其中 : 讲课学时 :37 学时上机学时 :23 学时 ) 先修课程 : 计算机导论后续课程 :C++ 程序设计适用专业 : 信息及其计算机相关专业开课部门 : 计算机系 一 课程的性质与目标 C 语言开发入门 是计算机各专业必修的基础课程, 是数据结构 C++ Java

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

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

第5章 递归 (Recurve)

第5章  递归 (Recurve) 第 8 讲函数的设计方法 周水庚 2012-11-1 提要 函数基础知识 函数定义 函数调用 函数形参 函数说明 递归函数基础 命令行参数 函数程序设计实例 程序设计 -2012 年秋 2 提要 函数基础知识 函数定义 函数调用 函数形参 函数说明 递归函数基础 命令行参数 函数程序设计实例 程序设计 -2012 年秋 3 函数基础知识 结构化程序设计中, 将复杂的功能分解成若干简单的子功能, 并用函数实现子功能,

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

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information