首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
阅读以下说明和C程序代码,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 【程序1】是关于条件编译的一段程序示例; 【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式” 类型必须是整型或字符型
admin
2017-11-27
97
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
在索引改进中,一般的调整原则是:当(62)是性能瓶颈时,则在关系上建立索引;当(63)是性能瓶颈时,则考虑删除某些索引;管理人员经常会将有利于大多数据查询的所以设为(64)。(64)
某有向图G的邻接表如下图所示,可看出该图中存在弧<v2,v3>,而不存在从顶点v1出发的弧。以下关于图G的叙述中,错误的是()。
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。[说明]用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密极其重要。以下过程给出了实现用户B对用户A身份的认证过程。1.A->B:A2.B->A:{B,Nb}p
阅读下列说明,回答问题1和问题2,将解答写在答题纸的对应栏内。【说明】在公钥体制中,每一用户U都有自己的公开密钥PKU和私钥SKU。如果任意两个用户A和B按以下方式通信:A发给B消息[EPKB(m),A
阅读下列说明,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】安全目标的关键是实现安全的三大要素:机密性、完整性和可用性。对于一般性的信息类型的安全分类有以下表达形式:{(机密性,影响等级),(完整性,影响等级),(可用性,影
阅读下列说明,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】安全目标的关键是实现安全的三大要素:机密性、完整性和可用性。对于一般性的信息类型的安全分类有以下表达形式:{(机密性,影响等级),(完整性,影响等级),(可用性,影
以下关于数字证书的叙述中,错误的是()。
移位密码的加密对象为英文字母,移位密码采用对明文消息的每一个英文字母向前推移固定key,位的方式实现加密。设key=3,则对应明文MATH的密文为(69)________。
在软件开发方法中,生命周期法的主要缺点是:难以准确定义用户需求,软件开发工作是劳动密集型的,并且(3)。
Insoftwareengineeringandsystemsengineering,()isadescriptionofasystem’Sbehaviorasitrespondstoarequesttha
随机试题
土地储备
A.发热,腹痛,腹泻,洗肉水样大便B.发热,腹痛,腹泻,脓血便,里急后重C.腹泻,呕吐,水样大便,无发热,无腹痛D.发热,腹痛,腹泻,水样大便E.低热,腹痛,腹泻,果酱样大便急性菌痢典型表现为
栀子的主要化学成分是豆蔻的主要化学成分是
下列选项中,属于军人违反职责罪的有()。
股票指数期货交易的特点有()。
某企业拟进行一项固定资产投资项目决策,设定折现率为12%,有四个方案可供选择。其中,甲方案的项目计算期为10年,净现值为1000万元,(A/P,12%,10)=0.177;乙方案的现值指数为0.95;丙方案的项目计算期为11年,其年金净流量为150万元;丁
下列选项中实行“进口不征、出口不退”原则的有()。
乙公司是一家历史悠久的英国奶制品公司,业务遍布欧洲、亚洲和美洲,其规模在英国同行业排行第二。乙公司生产的主要产品包括婴儿奶粉、全脂成人奶粉、各类乳酪制品,并一直使用单一品牌在各地市场上销售。乙公司在英国总部聘用了400余名营销人员,分别负责各地区
请问你对“有些人看起来像朋友但做不了朋友,有些人看起来不像朋友但却是真正的朋友”这句话怎么看?
A、41B、68C、72D、53B3×2+7×3+9×4=63,8×2+5×3+5×4=51,4×2+4×3+12×4=68,故选B。
最新回复
(
0
)