c语言第8章 编译预处理及位运算习题答案
更新时间:2024-01-23 08:16:01 阅读量: 教育文库 文档下载
- c语言第8章答案推荐度:
- 相关推荐
编译预处理习题
一.单项选择题
1. 在宏定义#define A 3.897678中,宏名A代替一个( )。 A) 单精度数 B) 双精度数 C) 常量 D) 字符串 2. 以下叙述中正确的是
A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 3. C语言的编译系统对宏命令的处理( )。
A) 在程序运行时进行的
B) 在程序连接时进行的
C) 和C程序中的其它语句同时进行的
D) 在对源程序中其它语句正式编译之前进行的 4. 在文件包含预处理语句的中,被包含文件名用“< >”括起时,寻找被包含文件的方式
是( )。
A) 直接按系统设定的标准方式搜索目录
B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索
C) 仅仅在源程序所在目录搜索 D) 仅仅搜索当前目录 5. 以下说法中正确的是
A)#define和printf都是C语句 B)#define是C语句,而printf不是 C)printf是C语句,但#define不是 D)#define和printf都不是C语句 6. #define A 3.897678
#include
{ printf(“A=%f ”,A); }
程序运行结果为( )。
A) 3.897678=3.897678 B) 3.897678=A C) A=3.897678 D) 无结果 7. 有宏定义:#define LI(a,b) a*b
#define LJ(a,b) (a)*(b)
在后面的程序中有宏引用:x=LI(3+2,5+8); y=LJ(3+2,5+8);
则x、y的值是( )。
A) x=65,y=65 B) x=21,y=65 C) x=65,y=21 D)x=21,y=21 8. 有以下程序
# define f(x) (x*x) main() { int i1, i2;
i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ; printf(\}
程序运行后的输出结果是
1
A)64, 28 B)4, 4 C)4, 3 D)64, 64
9. 以下程序的输出结果是 #define M(x,y,z) x*y+z main()
{ int a=1,b=2, c=3;
printf(“%d\\n”, M(a+b,b+c, c+a)); }
A) 19
B) 17
C) 15
D) 12
10. 有以下程序 #define N 5 #define M1 N*3 #define M2 N*2 main() { int i;
i=M1+M2; printf(“%d\\n”,i); }
程序编译后运行的输出结果是: A) 10 #define N 2 #define M N+1 #define NUM 2*M+1 #main() { int i;
for(i=1;i<=NUM;i++)printf(“%d\\n”,i); }
该程序中的for循环执行的次数是
A) 5
B) 6
C) 7
D) 8
12. 位运算是对运算对象按二进制位进行操作的运算,运算的对象是____数据,以___的形
式参与运算。
A) 整型 原码 B) 整型 补码 C)数值 原码 D) 数值 补码 13. 在位运算中,若左移时丢弃的高位不包含1,则每左移一位,相当于_____。 A)操作数乘以2 B)操作数除以2 C)操作数除以4 D)操作数乘以4 14. 设 int b=8;表达式(b>>2)/(b>>1)的值是________。
A) 0 B) 2 C) 4 D) 8 15. 若定义unsigned int a=3,b=10;
printf(\|b==1); 则运行结果为________。
B) 20 C) 25
D) 30
11. 有如下程序
2
A)13 B)12 C)8 D)14
二.填空题
1. C提供的预处理功能主要有__宏定义____、__文件包含____、___条件编译__等三种。 2. C规定预处理命令必须以____#______开头。
3. 在预编译时将宏名替换成____宏定义中的“字符串”___的过程称为宏展开。 4. 预处理命令不是C语句,不必在行末加______;_____。
5. 以头文件stdio.h为例,文件包含的两种格式为:_ # include〈stdio.h〉_,_#
include”stdio.h”_。
6. 定义宏的关键字是___define______。
7. 设有如下运算符:&、|、~、<<、>>、^,则按优先级由低到高的排列顺序为_~、<<、>>、
&、^、|______。
8. 设二进制数i为00101101,若通过运算“i^j”,使i的高4位取反低4位不变,则
二进制数j的值应为__11110000____。
9. 设无符号整型变量a为6,b为3,则表达式b&=a的值为____2____。 10. 整型变量x和y的值相等且为非0值,则表达式x^y的结果为____零____。 二、阅读程序题
1. 以下程序输出结果是 150 。 # include〈stdio.h〉
# define MAX(x,y) (x)>(y)?(x):(y) main()
{int i,z,k; z=15; i=z-5;
k=10*(MAX(i,z));
printf(“%d\\n”,k); }
2. 以下程序输出结果是 23 。 # include〈stdio.h〉
# define ADD(y) 3.54+y
# define PR(a) printf(“%d”,(int)(a)) # define PR1(a) PR(a);putchar(‘\\n’) main() {int i=4;
PR1(ADD(5)*i);
} 3. 设有如下宏定义:
#define MYSWAP(z,x,y) {z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a、b内容交换,请填空。 float a=5,b=16,c;MYSWAP( c ,a,b);
4. 下列程序的输出结果是 1000 10 。
#define N 10 #define s(x) x*x #define f(x) (x*x)
3
main()
{ int i1,i2;i1=1000/s(N);i2=1000/f(N);printf(“%d %d\\n”,i1,i2);}
5. 以下程序输出结果是 8 20 12 。 main( ) {
int b=5; #define b 2 #define f(x) b*(x) int y=3;
printf(“%d ”,f(y+1)); #undef b
printf(“%d ”,f(y+1)); #define b 3
printf(“%d\\n”,f(y+1)); }
6. 下列程序的输出结果是 11 。
#define NX 2+3 #define NY NX*NX main()
{ int i=0,m=0; for(;i #define MAX(a,b) a>b #define EQU(a,b) a==b #define MIN(a,b) a { int a=5,b=6; if(MAX(a,b)) printf(“MAX\\n”); if(EQU(a,b)) printf(“EQU\\n”); if(MIN(a,b)) printf(“MIN\\n”);} 8. 下列程序的输出结果是 0 1 1 。 #define TEST main( ) { int x=0,y=1,z; z=2*x+y; #ifdef TEST printf(“%d %d ”,x,y); #endif printf(“%d\\n”,z); } 4 \\n”,m);} 三.编程题 1. 定义一个带参的宏,求两个整数的余数。通过宏调用,输出求得的结果。 #define R(m,n) (m)%(n) #include 2. 分别用函数和带参的宏,从3个数中找出最大者。 #include #define MAX(a,b) ((a)>(b)?(a):(b)) // implementation by MACRO int max3(int a,int b,int c) //implementation by function {int m; m=a>b?a:b; m=m>c?m:c; return m; } void main() { int m,n,k; } 3. 输入一个整数m,判断它能否被3整除。要求利用带参的宏实现。 #include #define DIVIDEDBY3(m) (m)%3==0 void main() { int m; } 5 printf(\scanf(\ printf(\ printf(\scanf(\ printf(\printf(\ printf(\scanf(\if(DIVIDEDBY3(m)) printf(\printf(\else 6
正在阅读:
c语言第8章 编译预处理及位运算习题答案01-23
普通话水平测试样题(共10份)08-27
地铁工程监控量测管理制度05-25
内蒙古自治区化工装置安全试车工作规范02-27
关于美与丑的作文02-04
2017-2018学年人教版三年级语文下册教案全集(精品)09-15
AIX笔记10-08
一规定两守则测试考试答案-更新11-805-02
中药注射液行业上市公司案例分析 - 图文06-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 预处理
- 运算
- 习题
- 编译
- 答案
- 语言
- 第五章 练习题
- 伯牙绝弦导学案教师版 - 图文
- 成套电气公司月度绩效考核方案
- SAT阅读长难句分析 - 出手相助动物
- display transceiver alarm 命令用来显示可插拔模块的当前故障告警信息
- (毕业设计论文)在线超市管理系统
- 2018二模物理分类:电学压轴题
- 校企合作项目实施总结
- 一年级《道德与法治》教材教法培训
- C#小型超市管理信息系统的设计与实现
- 天纪-先天卦-后天卦-流年卦
- 《电气控制及PLC》综合自测题B(试卷及答案)
- 营养风险筛查评分简表(依据NRS2002)
- 中国区著名消费品行业资深高级经理和总监名录
- 商业银行业务与经营管理课件重点总结 7-9章
- 温度控制系统校正环节设计
- 温岭市城东街道解放思想破解难题汇报材料
- 成考专升本英语历年真题及答案归类汇总名词
- 社会保险缴费结算通知单201612
- 中国银行业监督管理委员会办公厅关于加强商业银行债券投资风险管理的通知