首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
admin
2017-11-27
55
问题
阅读以下说明和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://jikaoti.com/ti/h6I7FFFM
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
给定关系模式如下,学生(学号,姓名,专业),课程(课程号,课程名称),选课(学号,课程号,成绩)。查询所有学生的选课情况的操作是(36);查询所有课程的选修情况的操作是(37)。(37)
()并不能减少和防范计算机病毒。
某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取出产品消费,用P、V操作实现进程间的同步模型如下图所示。假设信号量S1的初值为1,信号量S2的初值为0,那么a、b、c处应分别填()。
用于提交和回滚事务的语句为()。
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。[说明]用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密极其重要。以下过程给出了实现用户B对用户A身份的认证过程。1.A->B:A2.B->A:{B,Nb}p
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。[说明]用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密极其重要。以下过程给出了实现用户B对用户A身份的认证过程。1.A->B:A2.B->A:{B,Nb}p
阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。【说明】信息系统安全开发生命周期(securityDevelopmentLifeCycle,SDLC)是微软提出的从安全角度指导软件开发过程的管理模式,它将安全纳入信息系统开发生命周期的所有
甲不但怀疑乙发给他的信遭人篡改,而且怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲和乙决定找一个双方都信任的第三方来签发数字证书,这个第三方是()。
强制访问控制(MAC)是一种不允许主体干涉的访问控制类型。根据MAC的安全级别,用户与访问的信息的读写关系有四种类型,其中能保证数据完整性的读写组合方式是___________________。
Maintenance activities include(74)。 ①making enhancements to software products ②developing a new software product ③co
随机试题
Mammalsvaryenormouslyinsize,fromweighinglessthanapennytomeasuringmorethanthreeschoolbusesinlength.Somegroup
主要适用于决定现职员工的培训需求的培训需求分析方法是【】
认识
关于子宫下段破裂的临床表现,正确的是()
以下消防车通道检查操作,错误的是()。
企业申请开户后,银行确定账号后,售给企业各种银行往米使用的凭证,包括()。
某一次还本付息债券的票面额为10000元,票面利率8%,必要收益率为10%,期限为3年,如果按复利计息,复利贴现,其内在价值为()元。
下列哪一项不属于义务教育阶段“综合.探索”学习领域?()
北京师范大学学制研究小组于1981年在其附属中小学开始进行的学制实验是()。
1924年1月,中国国民党第一次全国代表大会确立的三大政策是()
最新回复
(
0
)