首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序 #include <stdio.h> #define FNA(x) x*x #define FNB(x) x+x main() { int a=2,b=4; printf("%d,%d
有以下程序 #include <stdio.h> #define FNA(x) x*x #define FNB(x) x+x main() { int a=2,b=4; printf("%d,%d
admin
2020-06-16
71
问题
有以下程序
#include <stdio.h>
#define FNA(x) x*x
#define FNB(x) x+x
main()
{ int a=2,b=4;
printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b)));
}
程序运行后的输出结果是
选项
A、8,16
B、16,32
C、8,32
D、16,16
答案
C
解析
带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。FNA(FNB(a))的替换过程为:FNA(2+2)替换为2+2*2+2,计算结果为8。FNB(FNA(b))的替换过程为:FNB(4*4)替换为4*4+4*4=32。程序运行后的输出结果是8,32,C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/giCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下叙述中正确的是
以下叙述中正确的是
以下叙述正确的是
以下叙述中错误的是
有以下程序#include#includevoidmain(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",str1
以下选项中,能正确进行字符串赋值的是
设有定义:inta=1,b=2,c=3;以下语句中执行效果与其它三个不同的是
设有定义:inta=2,b=3,c=4:,则以下选项中值为0的表达式是
以下关于结构化程序设计的叙述中正确的是()。
算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是()。
随机试题
旋转变压器是一种输出电压随转子转角变化的信号元件。()
存储器的______指的从CPU给出存储器地址开始到存储器读出数据并送到CPU(或者是把CPU数据写人存储器)所需要的时间。
下列各项,不属胸痹病因的是
A、《备急千金要方》B、《太平惠民和剂局方》C、《黄帝内经》D、《本草纲目》E、《伤寒论》和《金匮要略》属于战国时期的医药著作()。
确定证券投资政策涉及到()
出让国有土地使用权,以竞价方式m让的,契税的计税依据一般为竞价的成交价格,包括()。(2009年)
2015年3月,国务院正式发布了《存款保险条例》,并与5月1日式实施。从风险管理的角度,商业银行参加存款风险属于()型管理策略。
构建社会主义和谐社会的重点是()。
在中国教育史上第一次明确提出“教学相长”思想的教育论著是()
判断英国工业革命基本完成的主要依据是()
最新回复
(
0
)