当前位置:首页计算机类软件水平考试中级嵌入式系统设计师->【程序1】是关于条件编译一段程序示例;【程序2】是一段swi

【程序1】是关于条件编译一段程序示例;

【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内“表达式”类型必须是整型或字符型。该程序代码中a与x对应关系如表5-1所示。表5-1 a与x对应关系表

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

【程序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程序代码1】

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

【C程序代码2】

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

【C程序代码3】

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

问题:5.1 (1)什么是c语言条件编译?(2)请解释#ifndef作用。(3)分析【C程序代码1】,写出该段执行后输出结果。

问题:5.2 完成【C程序代码2】中(1)?(3)空,将答案写到相应位置。

问题:5.3 完成【C程序代码3】中(4)?(6)空,将答案写到相应位置。

答案:
本题解析:

问题5.1、(1)条件编译:C语言中提供控制编译器流程语句。或C源程序中希望对其中一部分内容只是在满足一定条件时才进行编译,形成目标代码,这种对一部分内容指定编译条件称为条件编译。(2)#ifndef作用:如果Wifndef后面“宏名”未定义,则编译其体内程序段;否则编译#else部分程序段,如果没有#else部分,则当“宏名”己定义时直接跳过#endif。(3)x=2

问题5.2、(1)x=3 (2)x=1 (3)x=2

问题5.3、(4)&aa[i] (5)N-i-1 (6)!swap或swap==0

问题5.1、本题考查C语言编程方面基本知识。考查条件编译概念。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。

问题5.2、在C语言中,选择结构作用是根据所给条件是否满足,决定从给定两个或多个分支中,选择其中一个分支来执行。c语言中有两种选择结构语句,if语句和swkch语句。使用if语句嵌套结构实现多分支选择功能时,程序结构显得不够清晰。因此,C语言专门提供了switch语句。switch语句一般形式如下:switch(表达式){Case 常量表达式1; 语句1; break;Case 常量表达式2; 语句2; break;……Case 常量表达式n; 语句n; break;Default: 语句n+1; break;}在使用switch语句时有以下要求:1、switch语句后面圆括号内“表达式”值和case后面“常量表达式”值,都必须是整型或字符型,不允许是实数。2、在case后各常量表达式值不能相同,否则会出现错误。在本题中变量a是实数,所以在switch语句要进行转换:Switch ((int)a)。根据题意,a取整后值为0、1、2时,0<a

更新时间:2022-07-21 19:29
纠错

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)、P(S1)和V(S2)V(S3)
  • B.P(S1)、V (S1)和V(S2)V(S3)
  • C.V(S1)、V(S2)和P(S1)V(S3)
  • D.P(S1)、V(S2)和V(S1)V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.序列图
  • B.状态图
  • C.通信图
  • D.活动图
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.合并分叉
  • B.分支
  • C.合并汇合
  • D.流
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.产甲2套,乙3套
  • B.生产甲1套,乙4套
  • C.生产甲3套,乙4套
  • D.生产甲4套,乙2套
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案