



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
窗体顶部练习题9及参考答案1. 单项选择题(1)C语言的编译系统对宏命令是 。A. 在程序运行时进行代换处理的B. 在程序连接时进行处理的C. 和源程序中其他C语句同时进行编译的D. 在对源程序中其他成分正式编译之前进行处理的【答】D(2)以下正确的描述为 。A. 每个C语言程序必须在开头用预处理命令:#include B. 预处理命令必须位于C源程序的首部C. 在C语言中预处理命令都以“#”开头D. C语言的预处理命令只能实现宏定义和条件编译的功能【答】C(3)以下有关宏替换叙述中,错误的是 。A. 宏替换不占用运行时间 B. 宏名无类型C. 宏替换只是字符替换 D. 宏名必须用大写字母表示【答】D(4)从下列选项中选择不会引起二义性的宏定义是 。A. #define POWER(x) x*x B. #define POWER(x) (x)*(x)C. #define POWER(x) (x*x) D. #define POWER(x) (x)*(x)【答】D(5)若有以下宏定义:#define N 3;执行语句i=N*3;后,i的值是 。A. 3 B. 6 C. 9 D. 以上选项都不对【答】D(6)若有以下宏定义:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出结果是 。int a=Y;printf(%d,Z);printf(%dn,-a);A. 7,6 B. 12,6 C. 12,5 D. 7,5【答】D(7)若有以下宏定义:#define N 2#define Y(n) (N+1)*n)则执行语句“z=2*(N+Y(5);”后的结果是 。A. 语句有错误 B. z=34 C. z=70 D. z无定值【答】B(8)若有以下宏定义:#define MOD(x,y) x%y则执行以下语句后,输出结果是 。int z,a=15,b=100;z=MOD(b,a);printf(%dn,z+);A. 11 B. 10 C. 6 D. 宏定义不合法【答】B(9)以下程序的运行结果是 。#include #define MAX(A,B) (A)(B)?(A):(B)#define PRINT(Y) printf(Y=%dn,Y)main() int a,b,c,d,t; a=1;b=2;c=3;d=4; t=MAX(a+b,c+d); PRINT(t);A. Y=3 B.存在语法错误 C. Y=7 D. Y=0【答】C(10)为了求i的3次方,请选择一个表达式 填入,使程序可以正确运行。#include #define CUBE(x) (x*x*x)main() int i=4; printf(%dn,CUBE( );A. i*i*i B. x*x*x C. x D. i【答】D2. 填空题(1)以下程序的运行结果是 。#include #define PR(a) printf(a=%d ,a)main() int j,a=1,3,5,7,9,11,13,15,*p=a+5; for (j=3;j;j-) switch(j) case 1: case 2:PR(*p+);break; case 3:PR(*(-p); 【答】a=9 a=9 a=11(2)以下程序的运行结果是 。#include #define MOD(x,y) x%yvoid main() int z,a=15,b=100; z=MOD(b,a); printf(%dn,z+);【答】10(3)以下程序的运行结果是 。#include #define A 3#define B(a) (A+1)*a)main() int x; x=3*(A+B(7); printf(x=%dn,x);【答】x=93(4)以下程序的运行结果是 。#include #define JH(x,y) x=xy;y=xy;x=xymain() int a=3,b=5,c=7; JH(a,b); JH(b,c); JH(a,c); printf(a=%d,b=%d,c=%dn,a,b,c);【答】a=3,b=7,c=53. 编程题(1)编写一个宏定义AREA(a,b,c),用于求一个边长为a、b和c的三角形的面积。其公式为:s=(a+b+c)/2【解】对应的宏如下:#define S(a,b,c) (a+b+c)/2)#define AREA(a,b,c) (sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c)(2)编写一个程序,定义一个判断字符是大写字母的宏,一个判断字符是小写字母的宏以及实现大小写字母相互转换的宏,并将用户输入的一个字符串中的大小写字母互换。【解】判断为大写字母的宏是isupper(c),判断为小写字母的宏是islower(c),将大写字母转换为小写字母的宏是tolower(c),将小写字母转换为大写字母的宏是toupper(c)。程序如下:/*文件名:exci9_2.cpp*/ VC+6.0#include #define isupper(c) (c)=A & (c)=a & (c)=z)#define tolower(c) (isupper(c) ? (c)+(a-A):(c)#define toupper(c) (islower(c) ? (c)-(a-A):(c)main() char s20; int i; printf(输入字符串:); scanf(%s,s); for (i=0;si;i+) if (isupper(si) si=tolower(si); else if (islower(si) si=toupper(si); printf(转换的结果:%sn,s);(3)编写一个程序,用户输入一个字符串,可以原样输出,也可以逆序输出。使用条件编译的方法加以控制。【解】程序如下:/*文件名:exci9_3.cpp*/ VC+6.0#include #define CONVERSEmain() char str50,*p=str; printf(输入一字符串:); scanf(%s,str); printf(输出结果:); #ifndef CONVERSE p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孤独症儿童教育康复中的协同创新与实践
- 全球科研发展现状及趋势分析
- 高校声乐课堂教学创新发展的策略及实施路径
- 2025年教育评价与改革与实践考试试题及答案
- 物资配送车队管理制度
- 特殊人员培训管理制度
- 环卫报废工具管理制度
- 环卫环境清洁管理制度
- 环境卫生长效管理制度
- 2025年长春天然气有限责任公司校园招聘笔试备考题库及参考答案详解一套
- 新就业形态劳动者的风险识别及治理机制研究
- 气管插管固定技术
- 计量法规政策研究
- 【MOOC】微积分II-江西财经大学 中国大学慕课MOOC答案
- 体育行业智慧场馆运营服务方案
- 实+用法律基础-形成性考核任务二-国开(ZJ)-参考资料
- 空调清洗合同
- 19《赵州桥》教学设计5篇
- 全套教学课件《工程伦理学》
- 高中英语3500词(乱序版)
- 06-时态-上海2022年中考英语一模单项选择语法分类汇编
评论
0/150
提交评论