




免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
lesson 7 预处理与存储类别,7,本课内容,内部函数与外部函数,无参宏(符号常量),带参数的宏,变量 4 种存储类别,使用工程文件,无参宏(符号常量),2004.4.16设有以下定义,则选项中错误的是 int a = -3; float b = 5; double c = 3.14; #define d 6 a)a+; b)b+; c)c+; d)d+;,2007.9.15以下程序的运行结果是 #define m 5 #define n m+m main() int k = n*n*5; printf(“%dn“, k); ,55,带参数的宏9-1,2004.4.38以下程序的运行结果是 #define f(x) x*x main() int i1, i2; i1 = f(8)/f(4); i2 = f(4+4)/f(2+2); printf(“%d,%dn“, i1, i2); ,64,28,i1 = x*x/x*x;,i1 = 8*8/4*4;,i2 = x * x / x * x ;,i2 = 4+4*4+4/2+2*2+2;,带参数的宏9-2,例以下程序的运行结果是 #define f(x) (x)*(x) main() int i1, i2; i1 = f(8)/f(4); i2 = f(4+4)/f(2+2); printf(“%d,%dn“, i1, i2); ,64,64,i1 = (x)*(x)/(x)*(x);,i1 = (8)*(8)/(4)*(4);,i2 = ( x )*( x )/( x )*( x );,i2 = (4+4)*(4+4)/(2+2)*(2+2);,带参数的宏9-3,2005.9.33以下程序的运行结果是 #define f(x) (x*x) main() int i1, i2; i1 = f(8)/f(4); i2 = f(4+4)/f(2+2); printf(“%d,%dn“, i1, i2); ,4,3,i1 = (x*x)/(x*x);,i1 = (8*8)/(4*4);,i2 = ( x * x )/( x * x );,i2 = (4+4*4+4)/(2+2*2+2);,带参数的宏9-4,2005.4.7以下程序的运行结果是 #define s(x) 4*x*x+1 int i = 6, j = 8; printf(“%d“, s(i+j);,81,2011.3.35以下程序的运行结果是 #define s(x) 4*(x)*x+1 int k = 5, j = 2; printf(“%d“, s(k+j);,143,带参数的宏9-5,2010.3.35以下程序的运行结果是 #include #define sub(a) (a)-(a) main() int a = 2, b = 3, c = 5, d; d = sub(a+b) * c; printf(“%dn“, d); ,-20,带参数的宏9-6,2006.9.43以下程序的运行结果是 #include #define n 5 #define m n+1 #define f(x) (x*m) main() int i1, i2; i1 = f(2); i2 = f(1+1); printf(“%d,%dn“, i1, i2); ,11,7,带参数的宏9-7,2009.9.35以下程序的运行结果是 #define f(x) x*x*x main() int a = 3, s, t; s = f(a+1); t = f(a+1); printf(“%d,%d“, s, t); a)10,64 b)10,10 c)64,10 d)64,64,带参数的宏9-8,2007.4.43名为init.txt的文件,内容如下: #define hdy(a,b) a/b #define print(y) printf(“y=%dn“, y) 以下程序的运行结果是 #include main() int a = 1, b = 2, c = 3, d = 4, k; k = hdy(a+c, b+d); print(k); ,y=6,带参数的宏9-9,2009.3.36以下程序的运行结果是 #include #define pt 3.5; #define s(x) pt*x*x; main() int a = 1, b = 2; printf(“%4.1fn“, s(a+b); a)14.0 b)31.5 c)7.5 d)程序有错,无输出结果,函数和带参数的宏,有类型转换,无类型转换,有时间开销,执行效率高,变量占空间,参数是形式,传递数值,替换文本,运行时执行,编译时替换,int f(int x, int y) return x * y; ,#define f(x,y) (x)*(y),函数,宏,编译预处理,编译预处理2-1,例以下叙述中正确的是 a)无参宏是用一个简单的名字代替一个数值 b)在源文件的一行上可以有多条预处理命令 c)#include命令只能包含库文件 d)宏替换不占用程序的运行时间,2008.9.26以下叙述中正确的是 a)宏名必须用大写字母表示 b)宏定义必须位于源程序中所有语句之前 c)宏替换没有数据类型限制 d)宏调用比函数调用耗费时间,编译预处理2-2,2008.4.28以下叙述中错误的是 a)凡是以“#“开始的语句行都是预处理命令行 b)预处理命令行的最后不能以分号表示结束 c)#define max是合法的宏定义命令行 d)预处理是在程序执行的过程中进行的,2006.4.49以下叙述中正确的是 a)预处理命令行必须位于c源程序的起始位置 b)在c语言中,预处理命令行都以“#“开头 c)每个程序必须包含:#include d)预处理不能实现宏定义和条件编译的功能,用宏判断闰年,填空实现程序的功能:带参数的宏leap用于判断年份y是否为闰年。 #define leap(y) _ main() int year; scanf(“%d“, ,(y)%4=0 & (y)%100!=0) | (y)%400=0),变量存储类别,例以下程序的运行结果是 void fun() auto int i = 0; i+; printf(“%d,“, i); main() fun(); fun(); fun(); ,auto自动变量,1,0,i,栈,1,1,1,例以下程序的运行结果是 void fun() static int i = 0; i+; printf(“%d,“, i); main() fun(); fun(); fun(); ,static静态变量,1,0,i,栈,1,2,3,堆,2,3,;,例以下程序的运行结果是 int f(int s) static int a; s += a+; return s; main() int a = 3, s = 0; s += f(a); s += f(a); printf(“%d,%dn“, a, s); ,静态变量9-1,3,7,静态变量9-2,2009.9.34以下程序的运行结果是 int f(int n) static int a = 1; n += a+; return n; main() int a = 3, s; s = f(a); s = s + f(a); printf(“%dn“, s); ,9,静态变量9-3,2011.9.33以下程序的运行结果是 int f(int m) static int n = 0; n += m; return n; main() int n = 0; printf(“%d,“, f(+n); printf(“%d“, f(n+); ,1,2,静态变量9-4,2010.3.342011.3.34以下程序运行结果是 int fun() static int x = 1; x *= 2; return x; main() int i, s = 1; for (i = 1; i = 3; i+) s *= fun(); printf(“%d“, s); ,64,静态变量9-5,2008.9.11以下程序的运行结果是 int fun(int x) static int t = 0; return t += x; main() int s, i; for (i = 1; i = 5; i+) s = fun(i); printf(“%d“, s); ,15,静态变量9-6,2006.9.27以下程序的运行结果是 fun(int x, int y) static int m = 0, i = 2; i += m + 1; m = i + x + y; return m; main() int j = 1, m = 1, k; k = fun(j, m); printf(“%d,“, k); k = fun(j, m); printf(“%dn“, k); ,5,11,静态变量9-7,2005.4.16以下程序的运行结果是 fun(int a) int b = 0; static int c = 3; b+; c+; return a+b+c; main() int i, a = 5; for (i = 0; i 3; i+) printf(“%d,%d,“, i, fun(a); ,0,10,1,11,2,12,静态变量9-8,2007.4.42以下程序的运行结果是 int a = 4; int f(int n) int t = 0; static int a = 5; if (n % 2) int a = 6; t += a+; else int a = 7; t += a+; return t + a+; main() int s = a; s += f(0); s += f(1); printf(“%d“, s); ,28,静态变量9-9,2005.9.45以下程序的运行结果是 int a = 2; int f(int n) static int a = 3; int t = 0; if (n%2) static int a=4; t+=a+; else static int a=5; t+=a+; return t + a+; main() int s = a; s+=f(0); s+=f(1); s+=f(2); printf(“%d“, s); ,29,变量作用域与生存期,auto,register,static,extern,全局,局部,静态,动态,变量存储类别4-1,2009.3.12若函数中有定义语句:int k; ,则 a)系统将自动给k赋初值0 b)这时k中的值无意义 c)系统将自动给k赋初值-1 d)这时k中无任何值,2009.3.34函数中有整型变量n,为使其在未赋初值的情况下初值为0,应选择的存储类别是 a)auto b)register c)static d)auto或register,变量存储类别4-2,2011.9.39以下选项中叙述错误的是 a)c程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 b)在c程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句中 c)c程序函数中定义的自动变量,系统不自动赋确定的初值 d)c程序函数的形参不可以说明为static型变量,变量存储类别4-3,例以下叙述中正确的是 a)全局变量的作用域一定比局部变量的作用域范围大 b)static变量的生存期贯穿于整个程序运行期间 c)函数的形参都属于全局变量 d)未在定义语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 债主押车合同协议书模板
- 货代合同管理与纠纷处理考核试卷
- 2025企业间贸易担保借款合同
- 2025合同范本技术研发与共享合作合同模板
- 2025市场营销代理合同书
- 责任审核协议
- 食品检测承包协议
- 角色扮演活动合同
- 2025合同模板租房合同中介版范本
- 2025智能解决方案委托开发合同协议
- DL∕T 5551-2018 架空输电线路荷载规范
- JGJ202-2010 建筑施工工具式脚手架安全技术规范【清晰版】
- 高考语文各类题型及答题技巧
- 六、煤矿提升机操作作业人员题库 答案(二)
- 数据化转型对营销职业的影响
- DL-T+617-2019气体绝缘金属封闭开关设备技术条件
- 全国交通运输行政执法综合管理信息系统考试题库-中(多选题练习)
- 甘肃省兰州市城七里河区-2023-2024学年六年级下学期小学期末毕业测试语文试卷
- 全新装修合同电子版范本
- 劳动教育智慧树知到期末考试答案章节答案2024年上海杉达学院
- 2023年南平市高校毕业生服务社区计划招募考试真题
评论
0/150
提交评论