首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
admin
2017-11-27
56
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
某有向图G的邻接表如下图所示,可看出该图中存在弧<v2,v3>,而不存在从顶点v1出发的弧。以下关于图G的叙述中,错误的是()。
以下关于系统原型的叙述中,不正确的是()。
下列网络互连设备中,工作在物理层的是()。
如果某一事务程序的运行导致服务器重新启动,这类故障属于系统故障,恢复过程中需要根据日志进行的操作为()。
以下关于大数据的叙述中,错误的是()。
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。【说明】基于Windows32位系统分析下列代码,回答相关问题。voidChallenge(char*str){chartemp[9]={
阅读下列说明和表,回答问题,将解答填入答题纸的对应栏内。【说明】防火墙类似于我国古代的护城河,可以阻挡敌人的进攻。在网络安全中,防火墙主要用于逻辑隔离外部网络与受保护的内部网络。防火墙通过使用各种安全规则来实现网络的安全策略。防火墙的
以下关于网络流量监控的叙述中,不正确的是()。
以下关于VPN的叙述中,正确的是()。
以下行为中,不属于威胁计算机网络安全的因素是()。
随机试题
A.《素问》B.《灵枢》C.《难经》D.《针灸大成》强调“针所不为,灸之所宜”的文献为
询问病史时,应特别注意最应做的检查是
急性心肌梗死的营养治疗应注意增加的微量营养素是()。
为明确诊断,最有帮助的辅助诊断方法是X线片示:多房性囊性阴影,边缘不整齐呈半月形切迹状,无明显钙化灶影像。拟诊为
男,10岁,发现眼睑水肿3天,尿如深茶色1天,病前3周曾患皮肤脓疱疮。查体:血压130/90mmHg,心率110次/分肝于右肋下1cm,有压痛,双下肢轻度凹陷性水肿。目前首选的治疗措施是给予
索赔报告中旨在解决索赔权能否成立的关键部分是()。
下列( )不是金融期货。
企业取得长期股权投资时,可能涉及的会计科目有()。
(一)某报社在一期报纸上刊登了某企业形象广告,在该广告中介绍了某烟草集团的发展和生产经营情况,并多处出现了该集团下属“某市卷烟厂”的名称和其生产的香烟注册标志。经调查核实,该则广告的广告费为3万元。根据《广告法》第42条规定,工商行政管理机关责令
材料党中央在1995年提出了“经济增长方式从粗放型向集约型转变”的国民经济和社会发展的指导方针。但是.目前我国经济增长方式仍然没有根本性转变。中共十六届五中全会提出全面落实科学发展观,必须加快转变经济增长方式,加快建设资源节约型、环境友好型社会。党的十七
最新回复
(
0
)