c语言第8章-编译预处理及位运算习题答案_第1页
c语言第8章-编译预处理及位运算习题答案_第2页
c语言第8章-编译预处理及位运算习题答案_第3页
c语言第8章-编译预处理及位运算习题答案_第4页
c语言第8章-编译预处理及位运算习题答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译预处理练习问题1 .个别选择问题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语句C)printf是c语句,#define不是d,#define和printf不是c语句6. #define A 3.897678#includemain () printf(“A=%f”,a );以下程序的执行结果为()a )3. 89767=3. 89767 b )3. 89767678=AC ) a=3. 89767 d )没有结果7 .宏定义: #define LI(a,b) a*b定义LJ (a,b) (a)*(b )宏引用包含以下步骤: x=Li (32,58 )y=LJ (32,58 )x、y的值为()A) x=65,y=65 B) x=21,y=65 C) x=65,y=21 D)x=21,y=218 .这些步骤包括:#定义f (x ) (x * x )main () int i1、i2;i1=f(8)/f(4) i2=f(4 4)/f(2 2 )。打印( % d,%dn ,i1,i2 );以下程序执行后的输出结果是a ) 64,28 b ) 4,4 c ) 4,3 d ) 64,649 .以下程序的输出结果是#定义m (x,y,z) x*y zmain () int a=1,b=2,c=3;打印(“% dn”,M(a b,b c,c a ) );以下A) 19 B) 17 C) 15 D) 1210 .这些步骤包括:#define N 5#define M1 N*3#define M2 N*2main () int i;i=M1 M2; printf(“%dn”,I;以下在编译程序后执行的输出如下A) 10 B) 20 C) 25 D) 3011 .这些步骤包括:#define N 2#define M N 1#define NUM 2*M 1#main () int i;for(i=1; i=NUM; I )打印(“% dn”,I;以下这个程序的for循环的执行次数是A) 5 B) 6 C) 7 D) 812 .位运算是用二进制位操作运算对象的运算,运算的对象是_的形式参加运算。a )整数原码b )整数修正码c )数值原码d )数值修正码13 .在位运算中,如果移动到左侧时废弃的高位不包含1,则每移动到左侧就变成1位,相当于a )操作数乘以2 B )操作数乘以2 C )操作数乘以4 D )操作数乘以414.intb=8的公式(b2)/(b1 )的值是_。A) 0 B) 2 C) 4 D) 815 .如果定义为unsigned int=3,b=10打印( % dn ,a2|b=1);执行结果是_ _ _ _。A)13 B)12 C)8 D)142 .填补问题1. C提供的预处理功能主要有_宏定义_文件_和条件编译_三种。2. C中规定预处理命令以_#_开始。3 .预编译时将宏名称替换为_宏定义的“字符串”的过程称为宏展开。4 .预处理指令不是c句,而是在行末。5 .以头文件stdio.h为例,文件包含两种格式: _ # includestdio.h_,_ # includestdio.h_。6 .定义宏的关键字是_ _ _ _ _ _ _ _ _。7 .运算符包括:|、,按优先级从低到低的顺序排列。8 .设二进制数I为00101101,通过计算“ij”,如果不将I的高位4位变更为低位4位,则二进制数j的值为_11110000_。9 .若设无符号整数变量a为6,b为3,则式b=a的值为_ _ _2_ _。10 .如果整数变量x和y的值相等且不是0的值,则表达式xy的结果为_0_。二、阅读程序问题1 .以下程序的输出结果为150。# includestdio.h定义最大值(x,y) (x)(y )? (x):(y )。main ()int i,z,k;z=15;i=z-5;k=10 * (最大(I,z ) );printf(“%dn”,k;以下2 .以下程序的输出结果为23。# includestdio.h#定义添加(y )3. 54 y# define PR(a) printf(“%d”、(int)(a ) )#定义pr1(a ) pr (a ) putchar (n)main ()int i=4;pr1(添加(5) * I )以下3 .宏定义如下:定义毫米波(z,x,y) z=x; x=y; y=z; 以下以下段通过宏调用实现变量a、b的内容交换,请留空。浮点a=5,b=16,c; MYSWAP(c,a,b )4 .以下程序的输出结果为1000 10。#define N 10#定义s (x ) x * x#定义f (x ) (x * x )main () int i1、i2; I1=1000/s (n ) I2=1000/f (n )打印机(“% d % dn”),i1,i2; 以下5 .以下程序的输出结果为8 20 12。main ()举止PK=5;#define b 2#定义f (x ) b * (x )int y=3;printf(“%d”,f(y 1) );#undef bprintf(“%d”,f(y 1) );#define b 3printf(“%dn”,f(y 1) );以下6 .下一个程序的输出结果是11。#define NX 2 3#define NY NX*NXmain () int i=0,m=0; for (; PS定义equ (a,b) a=b定义最小(a,b) avoid main ()int m,n;printf ( entertwointegrers :n );扫描( % d % d ,m,n );printf(remainder=%dn ,R(m,n ) );以下2 .使用具有函数和自变量的宏,从三个个数中找到最大的。#include定义最大值(a,b) (a)(b )? (a ) : (b ) )/implementationbymacroint max3(int a、int b、intc )/implementationbyfunctionint m;m=ab? a:b;m=mc? m:c;返回m;以下void main ()int m,n,k;打印机( enter3integer :n );扫描( % d % d % d ,m,n,k );printf(1.macromax=%dn ,MAX(MAX(m,n ),k ) );printf(2. function max=%dn ,max3(m,n,k ) );以下3 .输入整数m以确定是否能被3整除。 要求利用有参加的宏观来实现。#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论