- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 13
三.写出下列程序的输出结果
1. 以下程序的输出结果是 13
#include stdio.h
#define M( x, y ) x % y
main( )
{ int a, m=15, n=118;
a=M( n, m );
printf(“ %d \n ”, a-- );
}
提示:先进行宏替换:a=M( n, m )=n%m=118%15=13;输出a的值,即13;再执行a--,此时a的值为12。
2. 下列程序的输出结果是 8
#include stdio.h
#define M(x, y) (x) * (y)
#define N(x, y) (x) / (y)
main( )
{ int a=7, b=6, c=5, k;
k=N( M( a, b ), c );
printf(“%d\n”, k);
}
提示:先进行宏替换:k=N(M(a,b),c)=N( (a)*(b),c)=((a)*(b))/(c)=((7)*(6))/(5)=8。
3. 下列程序的输出结果是 16,12
#include stdio.h
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{ int i1,i2;
i1=f(3);
i2=f(1+2);
printf(“%d,%d\n”, i1,i2);
}
提示:先进行宏替换:
i1=f(2)=(3*M)=(3* N+1)=(3* 5+1)=16;
i2=f(1+2)=(1+2*M)=(1+2*N+1)=(1+2*5+1)=12。
4.若变量已正确定义,有以下程序段
main( )
{ int a=5, b=8, c=11;
if ( a b ) a = b; c = a;
if( c != a ) c = b;
printf(%d, %d, %d \n, a, b, c ); //5,8,5
}
其输出结果是 5,8,5
提示:main函数的第2行是2条独立的语句。因为( a b )为假,所以不执行a = b;子语句,执行下一条语句c = a;,c的值更新为5;此时( c != a )为假,不执行c = b;子语句,c仍为5,a和b的值不变。
5. 以下程序的输出结果是 23
#include stdio.h
main( )
{ int x=16, y=7, z=23;
if ( x y )
if ( y 0 ) z=0;
else z += 1;
printf (“%d\n”, z );
}
提示: if语句可以嵌套使用,else可以与其上最近的if配对。因为( x y )为假,所以if子句不执行,z值不变。
6. 有以下程序段
#include stdio.h
main( )
{ int x=1, y=0, a=2, b=5;
switch ( x )
{ caes 1:
switch( y )
{ case 0: a++; break; //a=3
case 1: b++; break;
}
case 2: a++; b++; break; //a=4, b=6
case 3: a++; b++;
}
printf(“a=%d, b=%d \n”, a, b );
}
程序的运行结果是 a=4, b=6
提示:根据X的值,外switch语句执行caes 1分支语句;根据y的值,执行内switch语句的case 0分支,a=3,break语句退出内switch语句,因为外switch语句执行caes 1分支无break语句,所以接着执行case 2分支,a=4,b=6,break后退出外switch语句。
7. 下面程序的运行结果是 2,0
#include stdio.h
main( )
{ int a=-1, b=2 ;
if( ( ++a 0 ) ( b-- 0 ) ) printf(“%d, %d”, a, b );
else printf(“%d,%d”, b, a );
}
提示:++a运算后,a值为0,a0为假,因而(++a 0 ) ( b-- 0 ) 为假,( b-- 0 )不运算,b值不变,执行else后的printf(“%d,%d”, b, a);语句。
8. 下面程序的运行结果是 1 3 5
main( )
{ int i;
for( i=1; i+1; i++ )
{ if( i4 ) { printf(%3d , i ); break; }
printf(%d\
您可能关注的文档
最近下载
- 苏州七年级月考试卷及答案.doc VIP
- 山东科学技术版劳动实践指导手册三年级第11课公益劳动与志愿服务校园公益劳动清洁美化校园我行动 教案.docx VIP
- 2025年中级审计师测试题习题.docx VIP
- 一、毕业设计(论文)的目的和意义.doc VIP
- 四川大学软件学院2008级毕业设计启动会课程设计.ppt VIP
- 2025全科医生考试题及答案.docx VIP
- 大班科学标准教案小油滴不见了.pptx VIP
- 2024年隆昌市兴诚投资集团有限公司人员招聘考试题库及答案解析.docx VIP
- 中式烹调师题库及答案.pdf VIP
- 车辆维修和保养服务框架协议采购方案投标文件(技术方案).doc
文档评论(0)