第10章 函数与程序结构

Size: px
Start display at page:

Download "第10章 函数与程序结构"

Transcription

1 第 10 章函数与程序结构

2 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

3 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

4 结构化程序设计 使用结构化程序设计方法解决复杂的问题 把大问题分解成若干小问题, 小问题再进一步分解成若干更小的问题 写程序时, 用 main() 解决整个问题, 它调用解决小问题的函数 这些函数又进一步调用解决更小问题的函数, 从而形成函数的嵌套调用

5 程序结构示意图 main( ) 函数 1 函数 2 函数 m 函数 1_1 函数 1_2 函数 m_1 函数 m_n

6 关于函数的定义 函数命名的一些原则 描述函数所做的所有事情 避免使用无意义的 模糊或表述不清的动词 给过程起名时使用语气强烈的动词加宾语的形式 例如 checkorderinfo(...) calcmonthlyrevenues(...) 一个函数只实现一个功能

7 关于函数参数的一些原则 按照输入 - 修改 - 输出的顺序排列参数 考虑对参数采用某种表示输入 修改 输出的命名规则 使用所有的参数 把状态或出错变量放在最后 不要把函数的参数用作工作变量 在接口中对参数的假定加以说明 尽可能少的参数 ( 限制在大约 7 个以内 )

8 关于函数的长度 函数的长度与错误量之间 成反比 ( 上至 200 行代码 ) 没有关联, 而结构复杂度和数据量却与错误量有关 短小的函数 ( 32 行 ) 与更低的成本或错误率无关 ; 较长的函数 ( 65 行 ) 使得每行代码的成本更低 相对较长的函数, 短小的函数 ( 含注释 143 行 ) 中每行代码所含的错误数量要多 23%, 而较长函数的修改成本却高 2.4 倍 平均长度 100 到 150 行的函数需要修改的几率最低 超过 500 行之后, 函数出错率就会与其长度成正比

9 编码规范 高质量的程序 正确性 : 语法正确 功能正确 使之可行 可读性 : 通用的 必需的习惯用语和模式可以使代码更加容易理解 使之优雅 可维护性 : 程序应对变化的能力 使之优化 9

10 编码规范 网上搜索资料 (bing 或者百度 C 编码规范 ) 1+%E8%A7%84%E8%8C%83&FORM=AWRE 仅供参考 ( 标准不唯一, 批判性接受 ) 10

11 [ 例 10-1] 计算常用圆形体体积 设计一个常用圆形体体积计算器, 采用命令方式输入 1 2 3, 分别选择计算球体 圆柱体 圆锥体的体积, 并输入计算所需相应参数 输入 选择计算 3 种体积, 其它输入结束计算 设计一个控制函数 cal(), 经它辨别圆形体的类型, 再调用计算球体 圆柱体 圆锥体体积的函数 设计单独的函数计算不同圆形体的体积

12 程序结构 main( ) cal ( ) vol_ball ( ) vol_cylind ( ) vol_cone ( ) 3 层结构,5 个函数 降低程序的构思 编写 调试的复杂度 可读性好

13 例 10-1 源程序 #include <stdio.h> #include <math.h> #define PI void cal ( int sel ); double vol_ball(void); double vol_cylind(void); double vol_cone(void); int main(void) { int sel; while( 1 ){ printf(" 1- 计算球体体积 \n"); printf(" 2- 计算圆柱体积 \n"); printf(" 3- 计算圆锥体积 \n"); printf(" 其他 - 退出运行 \n"); printf( 请输入计算命令 : ); scanf("%d",&sel); if (sel<1 sel>3) break; else cal(sel); /* end for while */ return 0;

14 主控函数 cal void cal ( int sel ) { switch (sel) { case 1: printf(" 球体积为 :%.2f\n", vol_ball( )); break; case 2: printf(" 圆柱体积为 :%.2f\n", vol_cylind( ) ); break; case 3: printf(" 圆锥体积为 :%.2f\n", vol_cone( ) ); break;

15 球体体积函数 vol_ball double vol_ball( ) { double r ; printf(" 请输入球的半径 :"); scanf("%lf",&r); return(4.0/3.0*pi*r*r*r);

16 圆柱体积函数 vol_cylind( ) double vol_cylind( ) { double r, h ; printf(" 请输入圆柱的底圆半径和高 :"); scanf("%lf%lf",&r,&h); return(pi*r*r*h);

17 圆锥体积函数 vol_cone double vol_cone( ) { double r, h ; printf(" 请输入圆锥的底圆半径和高 :"); scanf("%lf%lf",&r,&h); return(pi*r*r*h/3.0);

18 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

19 函数的嵌套调用 int main(void) { y = fact(3); z = mypow(3.5, 2); double fact(int n) { double mypow(double x, in n) { fact main main mypow fact mypow

20 函数的嵌套调用 main int main(void) { cal (sel); void cal (int sel) { vol_ball() double vol_ball( ) { main cal cal vol_ball vol_ball

21 函数的嵌套调用 在一个函数中再调用其它函数的情况称为函数的嵌套调用 如果函数 A 调用函数 B, 函数 B 再调用函数 C, 一个调用一个地嵌套下去, 构成了函数的嵌套调用 具有嵌套调用函数的程序, 需要分别定义多个不同的函数体, 完成不同的功能, 它们合起来解决复杂的问题 循环嵌套调用 递归函数, 递归调用

22 内容 结构化程序设计 函数嵌套调用 递归函数 类型定义与宏定义 编译预处理

23 递归函数基本概念 阶乘的递归定义 : n! = n * (n-1)! 当 n>1 时 ; n! = 1 当 n=0 或 n=1 时 递归通式 递归出口 double fact( int n ) { double result; 函数 fact 自己调用自己 if( n<=1 ) 称作 : 递归调用 result = 1.0; else 不能写成 : result = n * fact(n-1); fact(n) = n*fact(n-1); return result;

24 递归函数基本概念 直接递归调用 间接接递归调用 int f(int x) { y = f(x-1) return y; int f(int x) { y = g(x-1) return y; int g(int x) { z = f(x-1) return z;

25 递归函数 fact( n ) 的实现过程 fact(3) = 3*fact(2) =3*2=6 2*fact(1) =2*1=2 同时有 4 个函数在运行, 且都未完成 3 个 f 是不一样的变量 : 名字都是 f, 值不相同 fact(1) =1 main() {... printf(fact(3)); fact(3) {... f=3*fact(2); return(f); fact(2) {... f=2*fact(1); return(f); fact(1) {... f=1; return(f);

26 函数递归调用 调用有着相同名字和相同代码的函数 调用时 : 分配参数和局部变量的存储空间 退出时 : 释放相应的空间 随着递归调用的层层深入, 存储空间的一端逐渐增加 ; 然后随着函数调用的层层返回, 存储空间的一端又逐渐缩短 函数堆栈 递归存在着可用堆栈空间过度使用的危险

27 堆栈 (stack) 堆栈 (stack): 栈或堆叠 计算机科学中的一种抽象数据类型, 只允许在有序的线性数据集合的一端 ( 称为堆栈顶端 :top) 进行加入数据 (push) 和移除数据 (pop) 的运算 操作 : 后进先出 (LIFO, Last In First Out)

28 递归程序设计 用递归实现的问题, 满足两个条件 : 问题可以逐步简化成自身较简单的形式 ( 递归式 ) 参数逐渐减小 递归最终能结束 ( 递归出口 ) 两个条件缺一不可 解决递归问题的两个着眼点

29 例 10-3 将整数按照逆序输出 void reverse(int num ) { printf( %d, num%10); if( num>9 ) reverse( num/10 ); 执行 reverse(12345) 输出 :5 执行 reverse(1234) 输出 :4 执行 reverse(123) 输出 :3 执行 reverse(12) 输出 :2 执行 reverse(1) 输出 :1 因此, 最终输出为 54321

30 例 10-5 汉诺 (Hanoi) 塔 A B C 将 64 个盘从座 A 搬到座 B (1) 一次只能搬一个盘子 (2) 盘子只能插在 A B C 三个杆中 (3) 大盘不能压在小盘上

31 分析 n-1 A B C

32 汉诺 (Hanoi) 塔问题求解 伪代码描述 hanoi (n 个盘,A B,C 为过渡 ) { if (n == 1) 直接搬运盘子 :A B else { hanoi(n-1 个盘, A C, B 为过渡 ) 运第 n 个盘子 :A B hanoi(n-1 个盘, C B, A 为过渡 ) C 语言代码 void hanoi(int n, char A, char B, char C) { if (n == 1) printf("%c-->%c\n", A, B); else { hanoi(n-1, A, C, B); printf("%c-->%c\n", A, B); hanoi(n-1, C, B, A);

33 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

34 宏定义 #define 命令 #define 宏名标识符宏定义字符串 例如 :#define PI 编译时, 把程序中所有与宏名相同的标识符, 用宏定义字符串替代说明 : 宏名一般用大写字母, 以与变量名区别 宏定义不是 C 语句, 后面不得跟分号 宏定义可以嵌套使用 多用于符号常量 简单的操作和函数等 #define MAX(a, b) ((a)>(b)? (a) : (b))

35 宏定义的作用范围 宏定义可以写在程序中任何位置, 它的作用范围从定义书写处到文件尾 可以通过 #undef 强制指定宏的结束范围

36 #define A This is the first macro void f1() { printf( A\n ); printf( %s\n, A); #define B This is the second macro void f2( ) { printf( B ) ; B 的有效范围 #undef B int main(void) { f1( ); f2( ); return 0; A 的有效范围

37 带参数的宏定义 #define MAX(a,b) a>b? a : b #define SQR(x) int x, y, z x = MAX(x,y); y = SQR(x); y = SQR(z+x); x*x x>y? x : y x*x z+x*z+x

38 带参数的宏定义 : 建议使用 ( ) #define MAX(a,b) (a)>(b)? (a):(b) #define SQR(x) int x, y, z x = MAX(x,y); y = SQR(x); y = SQR(z+x); (x)*(x) (x)>(y)? (x):(y) (x)*(x) (z+x)*(z+x)

39 用宏实现两个变量的交换 #define f(a, b, t) (t)=(a),(a)=(b),(b)=(t) void main( void ) { int x, y, t ; scanf( %d%d, &x, &y); f(x,y,t); (t)=(x),(x)=(y),(y)=(t); /* 使用宏 */ printf( %d %d\n, x, y) ;

40 嵌套的宏定义与调用 #define F(x) x - 2 #define D(x) x*f(x) void main() { printf("%d,%d", D(3), D(D(3))) ;

41 嵌套的宏定义与调用 #define F(x) x - 2 #define D(x) x*f(x) 计算 D(3), D(D(3)) 先全部替换好, 最后再统一计算 不可一边替换一边计算, 更不可以人为添加括号 D(3) = 3*F(3) = 3*3-2 = 7 D(D(3)) = D(3)*F(D(3)) = 3*F(3)*D(3)-2 = 3*3-2*3*F(3)-2 = 3*3-2*3*3-2-2 = -13

42 宏定义应用示例 判断字符 c 是否为小写字母 #define LOWCASE(c) (((c) >= 'a') && ((c) <= 'z') ) 将数字字符 ( 0 ~ 9 ) 转换为相应的十进制整数, -1 表示出错 #define CTOD(c) (((c) >= '0') && ((c) <= '9')? c - '0' : -1) 最大值 最小值 #define MAX(a,b) ((a) >= (b)? (a) : (b)) #define MIN(a,b) ((a) <= (b)? (a) : (b))

43 文件包含 #include 命令 为避免一个文件过长, 可把程序组织为多个文件 每一个文件包含若干个函数 程序文件 程序文件模块 程序 文件 函数 各程序文件模块分别编译, 再连接 整个程序只允许有一个 main() 函数

44 文件包含 #include 命令 格式 #include < 文件名 > #include " 文件名 " 例如 #include <stdio.h> #include "myfunc.h" 作用 把被包含的文件内容插入到 #include 命令所在位置 注意 编译预处理命令, 以 # 开头 行尾没有分号

45 例 10-7 文件包含举例 文件 length.h /* 1 英里 =1609 米 */ #define mile_to_meter 1609 /* 1 英尺 =30.48 厘米 */ #define foot_to_centimeter /* 1 英寸 =2.54 厘米 */ #define inch_to_centimeter 2.54

46 [ 例 10-7] 文件包含举例 文件 prog.c #include <stdio.h> #include length.h void main( ) { float foot, inch, mile; /* Input mile, foot and inch */ printf( %f miles = %f\n, mile, mile*mile_to_meter);

47 .h 头文件常规用法 统一的定义和声明 宏定义 变量声明 函数申明 外部变量申明 自定义的数据类型 ( 结构 ) 好处 避免多次重复定义 避免不一致 方便维护和修改

48 头文件编写 头文件由三部分内容组成 : 版权声明和版本信息 ( 起始处 ) 预处理块 定义和申明 结构和枚举类型定义 typedef 定义和宏定义 : typedef 数据类型重命名 具名常量定义 外部变量声明 函数申明 头文件应该只用于声明, 不应该包含 占据存储空间的变量或函数 的定义 48

49 包含 (#include) 头文件 头文件可以嵌套包含 A.h 包含 B.h,B.h 包含 C.h, 避免循环包含, 避免头文件被多重复包含 虽然函数 变量的声明都可以重复, 不会影响程序编译和运行, 但会增加编译处理的时间 当头文件中包含结构定义 枚举定义等一些类型定义时, 这些定义是不可以重复的, 必须通过一定措施防止发生 49

50 头文件的作用 通过头文件了解函数功能 用户经常不能拿到源代码 ( 涉密 ), 但是可以拿到头文件和库文件 ( 编译后的二进制文件 ) 用户可以按照头文件中的 ( 接口 ) 函数声明, 调用库函数, 而不必关心接口怎么实现的 编译器会从库中提取相应的二进制代码 例如我们使用 printf, scanf 等标准库函数 通过头文件能加强类型安全检查 如果某个接口 / 函数被实现或被使用时, 其方式与头文件中的声明不一致, 编译器就会报错 该简单规则能大大减轻程序员调试和改错负担 50

51 常用标准头文件 ctype.h 字符处理 math.h 与数学处理函数有关的说明与定义 stdio.h 输入输出函数中使用的有关说明和定义 string.h 字符串函数的有关说明和定义 stddef.h 定义某些常用内容 stdlib.h 杂项说明 time.h 支持系统时间函数

52 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

53 编译预处理 编译预处理是 C 语言编译程序的组成部分, 它用于解释处理 C 语言源程序中的各种预处理指令 文件包含 (#include) 和宏定义 (#define) 都是编译预处理指令 在形式上都以 # 开头, 不属于 C 语言中真正的语句 增强了 C 语言的编程功能, 改进 C 语言程序设计环境, 提高编程效率

54 编译预处理 由于 #define 等编译预处理指令不是 C 语句, 不能被编译程序翻译 需要在真正编译之前作一个预处理, 解释完成编译预处理指令 从而把预处理指令转换成相应的 C 程序段, 最终成为由纯粹 C 语句构成的程序 经编译最后得到目标代码

55 编译预处理主要功能 文件包含 :#include 宏定义 :#define 条件编译

56 条件编译 #define _flag 1 #define _flag 0 #if _flag 程序段 1 #else 程序段 2 #endif #define _zhongwen #ifdef _zhongwen #define msg " 早上好 " #else #define msg "Good morning" #endif main() { printf(msg);

57 条件编译 ( 用于调试 ) #define _mydebug 0 #if _mydebug #define _dbg(x) (x) #else #define _dbg(x) #endif main() { int x; _dbg(printf("%d",x));

58 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

59 源程序文件组织.c 文件 : 实现文件 函数实现 全局变量定义.h 文件 : 自定义的头文件 类型定义, 函数说明 一个程序通常包含多个.c 和.h 文件 几个到几千个 系统越大越复杂, 文件越多

60 头文件 (.h 文件 ) 为方便模块函数被其它模块调用, 头文件中保存 : 宏定义 常量定义 数据类型定义 外部变量声明 函数声明 ( 函数原型要求 ) 60

61 头文件 (.h 文件 ) 正确使用头文件可以提高代码的可读性 可维护性 以及开发效率 在.c 文件中通过命令包含.h 头文件 : 句末无 ; 系统头文件 : #include <stdio.h> 自定义头文件 : #include "mydata.h" 61

62 文件模块 (.c 文件 ) 编译单元 在编译一个.c 文件时, 预处理器首先递归包含头文件, 形成一个含有所有必要信息的单个源文件 每个.c 文件都对应一个编译单元, 生成一个目标文件 连接程序 把各个目标程序中产生的符号联系起来, 构成一个可执行程序 62

63 模块编译链接 prog1.c a1.h,, b1.h 编译 prog1.o prog2.c a2.h,, c2.h 编译 prog2.o 链接 可执行文件 progm.c a.h, b.h, c.h 编译 progm.o 63

64 大程序构成 - 多文件模块 学生信息库系统 建立 new_student() 输出 output_student() 计算平均成绩 average() 平均成绩排序 sort() 修改 modify() 查询 search_student() 文件模块 student.h input_output.c aver_sort.c modify.c student_system.c

65 大程序构成 - 多文件模块 用户头文件 student.h : 宏定义, 数据类型定义 ( 结构 ) #include<stdio.h> #include<string.h> #define MaxSize 50 struct student { int num; char name[10]; int computer, english, math; float average; ;

66 大程序构成 - 多文件模块 ( 续 ) 用户头文件 student.h : 外部变量, 外部函数 extern int count; void new_student(struct student students[]); void output_student(struct student students[]); void average(struct student students[]); void sort(struct student students[]); void modify(struct student students[]); void search_student(struct student students[], int num);

67 大程序构成 - 多文件模块 输入 / 出程序文件 input_output.c #include "student.h" void new_student(struct student students[]) { void output_student(struct student students[]) {

68 大程序构成 - 多文件模块 计算平均成绩及排序文件 aver_sort.c #include "student.h" void average(struct student students[]) { void sort(struct student students[]) {

69 大程序构成 - 多文件模块 查询和修改文件 modify.c #include "student.h" void modify(struct student students[]) { void search_student(struct student students[], int num) {

70 大程序构成 - 多文件模块 主函数程序 student_system.c #include "student.h" int count = 0; int main() { struct student students[maxsize]; /* 调用函数, 实现功能 */

71 文件模块之间的沟通 外部变量 在文件 A 中使用文件 B 中定义的全局变量 c 的时候, 需要在使用之前进行声明 声明格式如下 : extern 类型名变量名 ; 例如 : extern int count ; 如果不希望其它文件使用某个全局变量, 那么需要将其定义为 static 类型的全局变量

72 文件模块之间的沟通 外部函数 在文件 A 中使用文件 B 中定义的函数 f 的时候, 需要在使用之前进行声明 声明格式如下 : extern 类型名函数名 ( 参数类型表 ); 关键字 extern 可以省略 例如 : void new_student(struct student students[]); void output_student(struct student students[]);

73 文件模块之间的沟通 静态函数 : 内部函数 如果不希望文件中的某个函数在其它的件中调用, 那么可以将其定义为静态的 声明格式如下 : static 类型名函数名 ( 参数类型表 );

74 内容 结构化程序设计 函数嵌套调用 递归函数 宏定义与文件包含 编译预处理 大程序构成

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言語入門編『索引』

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

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

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

新版 明解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++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 移动平台应用软件开发 课程建设小组北京大学二零一五年

移动平台应用软件开发 C/C++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 移动平台应用软件开发 课程建设小组北京大学二零一五年 移动平台应用软件开发 C/C++/JAVA 基础 C 中的预处理指令 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组北京大学二零一五年 预处理 2 预处理器 C 语言的编译系统分为编译预处理和正式编译 预处理作用 : 对源程序编译之前做一些处理, 生成扩展 C 源程序 预处理器的行为是由预处理指令控制的 宏定义 文件包含 条件编译 #define #ifdef

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

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++ 程序设计 告别 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 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

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

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

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

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

untitled

untitled 串 串 例 : char ch= a ; char str[]= Hello ; 串 列 ch=getchar(); scanf( %c,&ch); 串 gets(str) scanf( %s,str); 8-1 數 ASCII 例 : char ch= A ; printf( %d,ch); // 65 A ascii =0x41 printf( %c,ch); // A 例 : char ch;

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

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

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

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

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

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

C/C++ - 字符串与字符串函数

C/C++ - 字符串与字符串函数 C/C++ Table of contents 1. 2. 3. 4. 1 char C 2 char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3 printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed

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

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

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

PowerPoint 演示文稿

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

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 语言程序设计 ( 第 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

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

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

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

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

C/C++ - 结构体、共用体、枚举体

C/C++ - 结构体、共用体、枚举体 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 C C (struct) C 2 C C (struct) C 2 i // book.c: # include < stdio.h> # define MAX_ TITLE 41 # define MAX_ AUTHOR 31 struct book { char title [ MAX_ TITLE

More information

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

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

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

《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

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

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

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

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

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

untitled

untitled CHAPTER 02 2 CHAPTER 2-1 2-4 2-2 2-5 2-3 2-6 2-1 2-1-1 2-2 02 int A[3] = {10, 20, 30; A[0] 10 A[1] 20 A[2] 30 int *pa[3], A[3]; C 3 pa pa[0]pa[1]pa[2] 3 A A[0]A[1]A[2] 3 A A[0] A + i A[i] A + i &A[i]*(A

More information

Ps22Pdf

Ps22Pdf A B C D A B C D A B C D a a b c x x x x x x x x x x x x x x x x x a b c x a x x x x x x x x x x a b a b a b x x x x x x x x x x x x A B C A B C A B A B A x B C x D A B C a b c a b x x x x x x x A B A

More information

プログラムの設計と実現II

プログラムの設計と実現II UNIX C ls mkdir man http://www.tj.chiba-u.jp/lecture/prog2/ Ctrl+x, Ctrl+s ( )..[4]% gcc Wall o hoge hoge.c..[5]%./hoge 1 : 1 2 : 2 3 : 3 4 : 0 6..[6]% (! )..[4]% gcc Wall o hoge hoge.c..[5]%!g gcc Wall

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

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

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

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

1

1 基本練習題 1 答 :(A) 2 答 :(B) 3 答 :(C) 4 答 :(B) 5 答 :(D) 6 答 :2 7 答 :(B) 8 答 : (A) A B C / D E * + F G / - (B) A B + C D - * E / (C) A B C * + E F + - 9 答 : (A) - + A * - / BCDE / F G (B) / * + A B C D E (C)

More information

Ps22Pdf

Ps22Pdf C ( CIP) C /. :, 2001. 7 21 ISBN 7-5624 -2355-5. C........ C. TP312 CIP ( 2001 ) 034496 C * * : 7871092 1 /16 : 14. 25 : 356 20017 1 20017 1 : 1 6 000 ISBN 7-5624-2355-5 / TP311 : 21. 00 C, C,,,, C,, (

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

FY.DOC

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

More information

extend

extend (object oriented) Encapsulation Inheritance Polymorphism Dynamic Binding (base class) (derived class) 1 class Base { int I; void X(); void Y(); class Derived: public Base { private: int j; void z(); Derived

More information

06-statement

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

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

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

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

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

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

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

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

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

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

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

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/C++ - 数组与指针

C/C++ - 数组与指针 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int

More information

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

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1 若已经定义 struct stu int a, b; student;, 则下列输入语句中正确的是 D)scanf( %d,&student.a); 2 若已有以下结构体定义, 则值为 2 的表达式是

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

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

没有幻灯片标题

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

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

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

ebook50-15

ebook50-15 15 82 C / C + + Developer Studio M F C C C + + 83 C / C + + M F C D L L D L L 84 M F C MFC DLL M F C 85 MFC DLL 15.1 82 C/C++ C C + + D L L M F C M F C 84 Developer Studio S t u d i o 292 C _ c p l u s

More information

untitled

untitled 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-1-1 C int main(void){ int x,y,z; int sum=0; double avg=0.0; scanf("%d",&x) ; scanf("%d",&y) ; scanf("%d",&z) ; sum=x+y+z ; avg=sum/3.0; printf("%f\n",avg); system("pause");

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++ 系统函数 2

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

More information

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

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

More information

2011-论文选集-2.cdr

2011-论文选集-2.cdr ! "#$# $$ "#$#$$" " $% &%!$ $ "#$$ " ! "!#!$ %" #& # ( #$ ) )& )# )$ ** "& ")! ! "" # $% & &( ( # ) )** )*+ )*$ )) ))" ),+ )," -./ ) ) ) " )++ )+" )%,, !"#" $ ! " #$% & ( & ) % #$% #$% & * #$%#$% #$% (

More information

1 Good morning a a a 22 17

More information

1 Good morning a a a 22 17

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

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

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

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

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不 1. 右 側 程 式 正 確 的 輸 出 應 該 如 下 : * *** ***** ******* ********* 在 不 修 改 右 側 程 式 之 第 4 行 及 第 7 行 程 式 碼 的 前 提 下, 最 少 需 修 改 幾 行 程 式 碼 以 得 到 正 確 輸 出? (A) 1 (B) 2 (C) 3 (D) 4 1 int k = 4; 2 int m = 1; 3 for (int

More information

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446>

<5B BECBB0EDB8AEC1F25D312D34B0AD5FC3E2BCAEBCF6BEF7C0DAB7E F31702E504446> : 2 = 3 4? 0 an ordered set of unambiguous, executable steps that produces a result and terminates in a finite time (computational theory) ( ) 5 6 (C-) int min, max; float degree, b; char ch, token; /,,,

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

山东师大数学科学学院

山东师大数学科学学院 山东师大数学科学学院 教材 参考书 教材 C 程序设计 ( 第三版 ) 辅导书 C 程序设计实训教程 谭浩强编著 杨杰臧文科 主要内容 第一章 C 语言概述第二章数据类型 运算符与表达式第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章数组第七章函数第八章指针第九章结构体与共用体第十章文件 上机实习 上机地点 : 上机时间 : 上机内容 (1) 对课堂所讲内容进行验证性实验 ;

More information

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft PowerPoint - ds-1.ppt [兼容模式] http://jwc..edu.cn/jxgl/ HomePage/Default.asp 2 说 明 总 学 时 : 72( 学 时 )= 56( 课 时 )+ 16( 实 验 ) 行 课 时 间 : 第 1 ~14 周 周 学 时 : 平 均 每 周 4 学 时 上 机 安 排 待 定 考 试 时 间 : 课 程 束 第 8 11 12 章 的 内 容 为 自 学 内 容 ; 目 录 中 标 有

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

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语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

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

大侠素材铺

大侠素材铺 编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information