预处理和指针解决方案.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 预处理和指针 宏替换和文件包含 (1)以下叙述中正确的是 A)在C语言中,预处理命令行都以#开头 B)预处理命令行必须位于C源程序的起始位置 C)#include 必须放在C程序的开头 D)C语言的预处理不能实现宏定义和条件编译的功能 (2)有以下程序 #define PT 3.5 ; #define S(x) PT*x*x ; main() { int a=1, b=2; printf(%4.1f\n , S(a+b)); } 程序运行后的输出结果是 A)31.5 B)7.5 C)程序有错无输出结果 D)14.0 (3)以下关于宏的叙述中正确的是 A)宏定义必须位于源程序中所有语句之前 B)宏名必须用大写字母表示 C)宏调用比函数调用耗费时间 D)宏替换没有数据类型限制 (4)有以下程序 #include stdio.h #define S(x) 4*(x)*x+1 void main() { int k=5,j=2; printf(%d\n,S(k+j)); } 程序运行后的输出结果是 A)197 B)143 C)33 D)28 (5)设有宏定义: #define IsDIV(k,n) ( ( k%n==1) ? 1 : 0) 且变量m已正确定义并赋值,则宏调用: IsDIV(m,5) IsDIV(m,7) 为真时所要表达的是 A)判断m是否能被5和7整除 B)判断m被5或者7整除是否余1 C)判断m被5和7整除是否都余1 D)判断m是否能被5或者7整除 (6)有以下程序 #include stdio.h #define SUB(a) (a)-(a) main() { int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(%d\n,d); } 程序运行后的输出结果是 A)-12 B)0 C)10 D)-20 (7)有以下程序 #include stdio.h #define f(x) x*x*x main() { int a=3,s,t ; s=f(a+1); t=f((a+1)); printf(%d,%d\n,s,t); } 程序运行后的输出结果是 A)10,10 B)10,64 C)64,10 D)64,64 (8)有下列程序: #include stdio.h #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 %d\n, i1,i2); } 程序的运行结果是 A)12 7 B)12 12 C)11 11 D)11 7 (9)以下叙述中错误的是 A)预处理命令行的最后不能以分号表示结束 B)C程序对预处理命令行的处理是在程序执行的过程中进行的 C)#define MAX 是合法的宏定义命令行 D)在程序中凡是以“#”开始的语句行都是预处理命令行 (10)若程序中有宏定义行: #define N 100 则以下叙述中正确的是 A)宏定义行中定义了标识符N的值为整数100 B)上述宏定义行实现将100赋给标示符N C)在运行时用100替换标识符N D)在编译程序对C源程序进行预处理时用100替换标识符N (11)若有以下程序 #define S(x) x*x #define T(x) S(x)*S(x) main() { int k=5, j=2; printf(%d,%d\n, S(k+j),T(k+j)); } 则程序的输出结果是 A)17,37 B)49,2401 C)17,289 D)49,289 (12)有以下程序 #include stdio.h #define N 2 #define M N+1 #define NUM (M+1) * M/2 main() { printf(%d\n,NUM ); } 程序运行后的输出结果是 A)4 B)8 C)9 D)6 (13)有以下程序 #include stdio.h #define SUB( X, Y ) (X+1)*Y main() { int a=3, b=4; printf(%d\n, SUB(a++ ,b++ )); } 程序运行后的输出结果是 A)20 B)12 C)16 D)25 (14)下面选项中关于编译预处理的叙述正确的是 A)凡是以#号开头的行,都被称为编译预处理命令行 B)预处理命令行必须使用分号结尾 C)预处理命令行不能出现在程序的最后一行 D)预处理命令行的作用域是到最近的函数结束处 (15)有以下程序 #include stdio.h #define SQR(X) X*X m

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档