首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
admin
2017-11-27
85
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
给定关系R(A,B,C,D)与S(C,D,E,F),则RxS与RS操作结果的属性个数分别为(39);与表达式πr2,3,4(δ2
并发操作可能带来的数据不一致性有(52),解决的办法是并发控制,主要技术是(53)。(53)
下列网络互连设备中,工作在物理层的是()。
阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。【说明】信息系统安全开发生命周期(securityDevelopmentLifeCycle,SDLC)是微软提出的从安全角度指导软件开发过程的管理模式,它将安全纳入信息系统开发生命周期的所有
深度流检测技术就是以流为基本研究对象,判断网络流是否异常的一种网络安全技术,其主要组成部分通常不包括()。
操作系统的安全审计是指对系统中有关安全的活动进行记录、检查和审核的过程。现有的审计系统包括__________________三大功能模块。
在Windows 2000 Server系统下,从计算机的两个硬盘中各拿出100MB空间形成 RAID-1卷,并分配盘符D,那么D盘空间是(13)。
Since RAM is only active when the computer is on, your computer uses disk to store information even when the computer is off. Wh
项目范围管理包括确保项目成功所需的全部工作过程,下列范围管理流程正确的是______。①定义范围②核实范围③收集需求④控制范围⑤创建工作分解结构
16个微处理器的编号分别为0、1、2、3、…、14、15,采用四维立方体单级互联函数为Cube3时,5号微处理器与(20)号微处理器相连接。
随机试题
Theseatofthebicyclecanbe______tosuityourheight
Greatwritersarethosewhonotonlyhavegreatthoughtsbutalsoexpressthesethoughtsinwordswhichappeal______toourmin
Whenhe______,tellhimthatI’vealreadyleft.
1997年公布施行的《中华人民共和国节约能源法》,要求“固定资产投资项目的可行性研究报告应当包括合理用能的()”。
会计估计的主观性、复杂性和不确定性决定了与会计估计相关的领域存在重大错报风险的可能性高于其他领域。注册会计师应当针对会计估计实施风险评估程序。可供注册会计师选择的风险评估程序有()。
对在华死亡的外国旅游者,其善后工作由接待单位负责。()
WhenIWastwelveyearsold,myfamilywerethefirstblackpeopletomoveintoanallwhitepartofGrandRapids,Michigan.Ma
必修课是国家和地方对各阶段所有学生发展的基础性要求。()
以下不能反映区域自然地理环境影响人们的生产方式、生活习惯、文化传统等方面的一句话是()。
已知圆C1:(x+1)2+(y一1)2=1,圆C2与圆C1关于直线x—y一1=0对称,则圆C2的方程为().
最新回复
(
0
)