首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
admin
2017-11-27
66
问题
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
【程序1】是关于条件编译的一段程序示例;
【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型。该程序代码中a与x的对应关系如表5-1所示。
【程序3】是冒泡排序算法的实现。假设有N个数据存放在数组aa中,用冒泡排序将这N个数从小到大排序。首先,在aa[0]到aa[N-1]的范围内,依次比较两个相邻元素的值,若aa[j]>aa[j+1],则交换aa[j]与aa[j+1],j的值取0,1,2,…,N一2;经过这样一趟冒泡,就把这N个数中最大的数放到aa[N—1]中。接下来对aa[0]到aa[N一2]中的数再进行一趟冒泡,这样就将该范围内的最大值换到aa[N-2]中。依次进行下去,最多只要进行N-1趟冒泡,就可完成排序。如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。
【C程序代码l】
#include
#define_DEF_X
main()
{
int x;
#ifndef_DEF_X
x=1;
#else
x=2;
#endif
printf(”x=%d\n”, x);
}
【C程序代码2】
float a;
int x;
Scanf(”%d”,&a);
switch( (int)a)
{
case 0:
case 1:
case 2:
if(a>2)X=1;
else
(1)
;
break;
case 3:
(2)
;
break;
case 4:
(3)
;
break;
default:
prinf(”a is error\r\n”);
}
【C程序代码3】
#include
#define N 8
main()
{
int I,j,aa[N],temp,swap;
clrscr();
for(i=0;i
scanf("%d”,
(4)
);
for(i=0;i
{
swap=0;
for(j=0;j<
(5)
;j++)
{
if(aa[j]>aa[j+1])
{
swap=1;.
temp=aa[j];
aa[j]=aa[j+1];
aa[j+1]=temp;
}
}
if(
(6)
) break;
}
for(i=0; i
printf(”%d ”, aa
);
printf(”\n”);
}
(1)什么是C语言的条件编译?
(2)请解释#ifndef的作用。
(3)分析【C程序代码1】,写出该段执行后的输出结果。
选项
答案
(1)条件编译:C语言中提供控制编译器流程的语句。 或C源程序中希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译的条件称为条件编译。 (2)#ifndef的作用:如果#ifndef后面的“宏名”未定义,则编译其体内的程序段;否则编译#else部分的程序段,如果没有#else部分,则当“宏名”已定义时直接跳过#endif。 (3)x=2
解析
C语言中提供控制编译器流程的语句为条件编译语句,在一般情况下,C源程序中所有的行都参加编译过程,但有时出于对程序代码优化的考虑,希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译的条件称为条件编译。
下面是关于#ifdef语句的使用规则:
#ifdef 宏名
程序段1;
#else
程序段2;
#endif
或者
#ifdef 宏名
程序段:
#endif
该语句的作用是,如果#ifdef后面的“宏名”在此前已用#define语句定义,则编译“程序段1”或“程序段”;否则编译“程序段2”。如果没有#else部分,则当“宏名”未定义时直接跳过#endif。
下面是关于#ifndef语句的使用规则:
#ifndef 宏名
程序段1;
#else
程序段2;
#endif
或者
#ifndef 宏名
程序段;
#endif
#ifndef语句的功能与#ifdef语句的功能正好相反,如果#ifndef后面的“宏名”未定义,则编译“程序段1”或“程序段”;否则编译“程序段2”。如果没有#else部分,则当“宏名”已定义时直接跳过#endif。
在【C程序代码1】中,由于在执行条件编译语句时,x已定义,所以,执行x=2;语句。最终程序执行结果为:x=2。
转载请注明原文地址:https://kaotiyun.com/show/fQWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
在网络安全管理中,加强内防内控可采取的策略有(14)________________。①控制终端接入数量②终端访问授权,防止合法终端越权访问③加强终端的安全检查与策略管理④加强员工上网行为管理与违规审计
在索引改进中,一般的调整原则是:当(62)是性能瓶颈时,则在关系上建立索引;当(63)是性能瓶颈时,则考虑删除某些索引;管理人员经常会将有利于大多数据查询的所以设为(64)。(62)
以下关于软件测试的叙述中,正确的是()。
面向数据挖掘的隐私保护技术主要解决高层应用中的隐私保护问题,致力于研究如何根据不同数据挖掘操作的特征来实现对隐私的保护。从数据挖掘的角度看,不属于隐私保护技术的是__________________。
面向数据挖掘的隐私保护技术主要解决高层应用中的隐私保护问题,致力于研究如何根据不同数据挖掘操作的特征来实现对隐私的保护。从数据挖掘的角度,不属于隐私保护技术的是(8)________________。
恶意代码是指为达到恶意目的而专门设计的程序或代码。恶意代码的一般命名格式为:..。以下恶意代码中,属于脚本病毒的是(24)_________。
数字签名是对以数字形式存储的消息进行某种处理,产生一种类似于传统手书签名功效的信息处理过程。数字签名标准DSS中使用的签名算法DSA是基于ElGamal和Schnorr两个方案而设计的。当DSA对消息m的签名验证结果为True,也不能说明(11)_____
Todocumentyourcodecanincreaseprogram(72)andmakeprogrameasierto(73).
Changecontrolwithininformationtechnology(IT)systemsisaformalprocessusedtoensurethatchangestoproductorsystemare
随机试题
女性,38岁。患慢性支气管炎、阻塞性肺气肿、肺源性心脏病,神志清楚,发绀明显,动脉血气提示代偿性呼吸性酸中毒,给予鼻导管吸氧4升/分,发绀略有减轻,但迅速进入嗜睡状态。此时首先应采取的措施是
有关医院感染的概念,错误的是
楼地面由三部分组成下列选项中不属于其组成部分的选项为()。
当宽则宽,当严则严。有从宽情节的,一定要从宽;有从严情节的,一定要从严,否则就会失去政策的威力。()
人民警察的工作纪律包括()、()、()三个方面。
①中国传统文人几乎都毫无例外地面临着仕与隐的人生抉择②他之所以被人一次次提起而感慨不已,缘由也是他照亮了文人的心路历程③屈原代表了文人共有的一种文化心理和悲剧人格④而赋诗作文毕竟等而下之,于是就出现了一大批文化官僚⑤
在科学技术飞速发展的今天,我们的企业经营()也要不断更新。
An80-year-oldmanfromCincinnatiinAmericaismakinglegalhistorybysuingdoctorswhosavedhiswife.EdwardWinterhaswit
Theemployerblamedthestaffmember’slackofproductivityon______ratherthanincompetence,claimingthatthemanknewhowto
UniversitiesintheUS Thereare【T1】__________________intheUnitedStates.Nearlyhalfofthe【T2】__________________inAmerica
最新回复
(
0
)