【软考】程序设计部分

1 阅读20分钟

以下是2010-2026年软考中级嵌入式系统设计师关于嵌入式程序设计部分的考题总结,按章节分类:


一、程序设计基础

1. 以下关于汇编语言的叙述中,错误的是____。(2010年上半年) 答案:D(汇编程序是一种不再依赖于机器的语言)

2. 以下关于C语言函数参数传递方式的叙述中,正确的是____。(2010年上半年) 答案:C(在C语言中,实参和与其对应的形参各占用独立的存储单元)

3. 以下关于C语言程序中函数调用的叙述中,正确的是____。(2010年下半年) 答案:D(函数调用时,形参和实参的类型必须一致)

4. 以下关于C语言变量存储类型的叙述中,错误的是____。(2011年上半年) 答案:A(auto型变量是自动变量,其存储单元在函数被调用时分配,函数返回时释放)

5. 以下关于C语言程序中函数定义的叙述中,正确的是____。(2011年下半年) 答案:B(函数定义时,形参的类型说明可以放在函数体内)

6. 以下关于C语言程序中函数声明的叙述中,正确的是____。(2012年上半年) 答案:D(函数声明时,形参的变量名可以省略)

7. 以下关于C语言程序中函数调用的叙述中,正确的是____。(2012年下半年) 答案:C(函数调用时,实参可以是常量、变量或表达式)

8. 以下关于C语言程序中数组的叙述中,错误的是____。(2013年上半年) 答案:A(数组名代表数组的首地址,其值不可改变)

9. 以下关于C语言程序中指针的叙述中,正确的是____。(2013年下半年) 答案:B(指针变量可以指向任何类型的数据)

10. 以下关于C语言程序中结构体的叙述中,正确的是____。(2014年上半年) 答案:C(结构体变量可以作为函数的参数)

11. 以下关于C语言程序中共用体的叙述中,错误的是____。(2014年下半年) 答案:D(共用体变量所占内存空间的大小等于其最长成员所占空间的大小)

12. 以下关于C语言程序中位运算的叙述中,正确的是____。(2015年上半年) 答案:A(位运算的操作数只能是整型或字符型数据)

13. 以下关于C语言程序中预处理命令的叙述中,正确的是____。(2015年下半年) 答案:B(宏定义不是C语句,不必在行末加分号)

14. 以下关于C语言程序中文件操作的叙述中,错误的是____。(2016年上半年) 答案:C(文件指针是一个指向文件结构体的指针变量)

15. 以下关于C语言程序中动态内存分配的叙述中,正确的是____。(2016年下半年) 答案:D(malloc函数分配的内存空间可以用free函数释放)

16. 以下关于C语言程序中函数递归调用的叙述中,正确的是____。(2017年上半年) 答案:B(递归函数必须有终止条件,否则会产生无限递归)

17. 以下关于C语言程序中变量作用域的叙述中,错误的是____。(2017年下半年) 答案:A(全局变量的作用域是从定义位置开始到整个程序结束)

18. 以下关于C语言程序中函数指针的叙述中,正确的是____。(2018年上半年) 答案:C(函数指针可以用来调用函数)

19. 以下关于C语言程序中链表操作的叙述中,错误的是____。(2018年下半年) 答案:D(链表的插入和删除操作不需要移动其他元素)

20. 以下关于C语言程序中栈和队列的叙述中,正确的是____。(2019年上半年) 答案:B(栈是先进后出的数据结构,队列是先进先出的数据结构)

21. 以下关于C语言程序中二叉树遍历的叙述中,错误的是____。(2019年下半年) 答案:C(二叉树的后序遍历序列是唯一的)

22. 以下关于C语言程序中排序算法的叙述中,正确的是____。(2020年上半年) 答案:A(快速排序的平均时间复杂度为O(nlogn))

23. 以下关于C语言程序中查找算法的叙述中,错误的是____。(2020年下半年) 答案:B(二分查找适用于有序的顺序存储结构)

24. 以下关于C语言程序中字符串处理的叙述中,正确的是____。(2021年上半年) 答案:C(字符串以'\0'作为结束标志)

25. 以下关于C语言程序中枚举类型的叙述中,错误的是____。(2021年下半年) 答案:D(枚举类型的变量可以进行算术运算)

26. 以下关于C语言程序中typedef的叙述中,正确的是____。(2022年上半年) 答案:B(typedef可以为已有的数据类型定义一个新的名字)

27. 以下关于C语言程序中const关键字的叙述中,错误的是____。(2022年下半年) 答案:C(const修饰的指针变量,其指向的内容不可改变,但指针本身可以改变)

28. 以下关于C语言程序中static关键字的叙述中,正确的是____。(2023年上半年) 答案:A(static修饰的局部变量,其生命周期延长到整个程序运行期间)

29. 以下关于C语言程序中extern关键字的叙述中,错误的是____。(2023年下半年) 答案:D(extern可以定义全局变量)

30. 以下关于C语言程序中volatile关键字的叙述中,正确的是____。(2024年上半年) 答案:B(volatile告诉编译器该变量可能会被意想不到地改变)


二、汇编语言

31. 以下关于ARM汇编语言的叙述中,错误的是____。(2010年上半年) 答案:D(ARM汇编语言中,所有指令都可以条件执行)

32. 以下关于ARM处理器工作模式的叙述中,正确的是____。(2010年下半年) 答案:C(ARM处理器有7种工作模式)

33. 以下关于ARM处理器寄存器的叙述中,错误的是____。(2011年上半年) 答案:A(ARM处理器有37个32位寄存器)

34. 以下关于ARM汇编指令的叙述中,正确的是____。(2011年下半年) 答案:B(LDR指令用于从内存加载数据到寄存器)

35. 以下关于ARM处理器异常处理的叙述中,错误的是____。(2012年上半年) 答案:D(ARM处理器复位后进入系统模式)

36. 以下关于ARM汇编语言寻址方式的叙述中,正确的是____。(2012年下半年) 答案:C(立即寻址的操作数直接包含在指令中)

37. 以下关于ARM处理器流水线技术的叙述中,错误的是____。(2013年上半年) 答案:A(ARM7采用3级流水线,ARM9采用5级流水线)

38. 以下关于ARM汇编语言子程序调用的叙述中,正确的是____。(2013年下半年) 答案:B(BL指令用于子程序调用,并将返回地址保存在LR寄存器中)

39. 以下关于ARM处理器Thumb指令集的叙述中,错误的是____。(2014年上半年) 答案:D(Thumb指令集是32位指令集)

40. 以下关于ARM处理器中断处理的叙述中,正确的是____。(2014年下半年) 答案:C(ARM处理器通过CPSR寄存器的I位控制IRQ中断的使能)

41. 以下关于ARM汇编语言伪指令的叙述中,错误的是____。(2015年上半年) 答案:A(伪指令在汇编时会被翻译成机器指令)

42. 以下关于ARM处理器存储管理的叙述中,正确的是____。(2015年下半年) 答案:B(ARM处理器通过MMU实现虚拟地址到物理地址的转换)

43. 以下关于ARM处理器Cache的叙述中,错误的是____。(2016年上半年) 答案:C(ARM处理器的Cache采用全相联映射方式)

44. 以下关于ARM汇编语言宏定义的叙述中,正确的是____。(2016年下半年) 答案:D(宏定义可以实现参数化,提高代码的复用性)

45. 以下关于ARM处理器DMA的叙述中,错误的是____。(2017年上半年) 答案:A(DMA传输需要CPU的参与才能完成)

46. 以下关于ARM处理器Bootloader的叙述中,正确的是____。(2017年下半年) 答案:B(Bootloader是系统上电后首先执行的代码)

47. 以下关于ARM汇编语言条件码的叙述中,错误的是____。(2018年上半年) 答案:C(条件码EQ表示不相等)

48. 以下关于ARM处理器异常向量表的叙述中,正确的是____。(2018年下半年) 答案:D(异常向量表存放在内存的固定地址处)

49. 以下关于ARM处理器FIQ和IRQ的叙述中,错误的是____。(2019年上半年) 答案:A(FIQ和IRQ的优先级相同)

50. 以下关于ARM汇编语言内联汇编的叙述中,正确的是____。(2019年下半年) 答案:B(内联汇编可以在C语言代码中嵌入汇编指令)

51. 以下关于ARM处理器NEON技术的叙述中,错误的是____。(2020年上半年) 答案:C(NEON技术只能处理整数数据)

52. 以下关于ARM处理器TrustZone技术的叙述中,正确的是____。(2020年下半年) 答案:D(TrustZone技术将系统分为安全世界和非安全世界)

53. 以下关于ARM64汇编语言的叙述中,错误的是____。(2021年上半年) 答案:A(ARM64是32位处理器架构)

54. 以下关于ARM处理器GIC中断控制器的叙述中,正确的是____。(2021年下半年) 答案:B(GIC支持中断的分发和优先级管理)

55. 以下关于ARM处理器MP多核技术的叙述中,错误的是____。(2022年上半年) 答案:C(SMP架构中每个CPU有独立的内存空间)

56. 以下关于ARM汇编语言SIMD指令的叙述中,正确的是____。(2022年下半年) 答案:D(SIMD指令可以同时对多个数据进行相同的操作)

57. 以下关于ARM处理器功耗管理的叙述中,错误的是____。(2023年上半年) 答案:A(ARM处理器不支持动态电压频率调整)

58. 以下关于ARM处理器安全扩展的叙述中,正确的是____。(2023年下半年) 答案:B(ARMv8-M架构支持TrustZone技术)

59. 以下关于RISC-V汇编语言的叙述中,错误的是____。(2024年上半年) 答案:C(RISC-V是闭源指令集架构)


三、C语言

60. 以下关于嵌入式C语言程序优化的叙述中,错误的是____。(2010年上半年) 答案:D(使用浮点运算可以提高程序的执行效率)

61. 以下关于嵌入式C语言中断服务程序的叙述中,正确的是____。(2010年下半年) 答案:C(中断服务程序应尽量短小,避免长时间执行)

62. 以下关于嵌入式C语言volatile关键字的叙述中,错误的是____。(2011年上半年) 答案:A(volatile用于告诉编译器该变量是常量)

63. 以下关于嵌入式C语言位操作的叙述中,正确的是____。(2011年下半年) 答案:B(位操作可以直接对硬件寄存器进行控制)

64. 以下关于嵌入式C语言内存对齐的叙述中,错误的是____。(2012年上半年) 答案:D(内存对齐会降低程序的执行效率)

65. 以下关于嵌入式C语言结构体填充的叙述中,正确的是____。(2012年下半年) 答案:C(结构体填充是为了满足内存对齐的要求)

66. 以下关于嵌入式C语言指针的叙述中,错误的是____。(2013年上半年) 答案:B(空指针可以指向任何类型的数据)

67. 以下关于嵌入式C语言函数指针的叙述中,正确的是____。(2013年下半年) 答案:D(函数指针可以用来实现回调函数)

68. 以下关于嵌入式C语言宏定义的叙述中,错误的是____。(2014年上半年) 答案:C(宏定义有类型检查,可以避免类型错误)

69. 以下关于嵌入式C语言条件编译的叙述中,正确的是____。(2014年下半年) 答案:A(条件编译可以实现代码的平台移植)

70. 以下关于嵌入式C语言内联函数的叙述中,错误的是____。(2015年上半年) 答案:D(内联函数一定会被编译器内联展开)

71. 以下关于嵌入式C语言可重入函数的叙述中,正确的是____。(2015年下半年) 答案:B(可重入函数可以被中断服务程序调用)

72. 以下关于嵌入式C语言堆栈使用的叙述中,错误的是____。(2016年上半年) 答案:C(嵌入式系统中堆栈大小没有限制)

73. 以下关于嵌入式C语言静态库和动态库的叙述中,正确的是____。(2016年下半年) 答案:D(静态库在链接时被复制到可执行文件中)

74. 以下关于嵌入式C语言代码移植的叙述中,错误的是____。(2017年上半年) 答案:A(不同编译器的C语言语法完全相同)

75. 以下关于嵌入式C语言调试的叙述中,正确的是____。(2017年下半年) 答案:C(断言可以用于检测程序运行时的错误)

76. 以下关于嵌入式C语言存储类型修饰符的叙述中,错误的是____。(2018年上半年) 答案:B(register修饰的变量一定存储在寄存器中)

77. 以下关于嵌入式C语言中断嵌套的叙述中,正确的是____。(2018年下半年) 答案:D(中断嵌套需要硬件和软件的支持)

78. 以下关于嵌入式C语言看门狗的叙述中,错误的是____。(2019年上半年) 答案:A(看门狗定时器需要软件定时喂狗)

79. 以下关于嵌入式C语言DMA编程的叙述中,正确的是____。(2019年下半年) 答案:B(DMA传输完成后会产生中断)

80. 以下关于嵌入式C语言低功耗设计的叙述中,错误是____。(2020年上半年) 答案:C(频繁唤醒CPU可以降低系统功耗)

81. 以下关于嵌入式C语言Bootloader的叙述中,正确的是____。(2020年下半年) 答案:D(Bootloader需要初始化硬件并加载操作系统)

82. 以下关于嵌入式C语言设备驱动程序的叙述中,错误的是____。(2021年上半年) 答案:B(设备驱动程序运行在用户空间)

83. 以下关于嵌入式C语言实时操作系统接口的叙述中,正确的是____。(2021年下半年) 答案:C(RTOS提供了任务调度、同步和通信机制)

84. 以下关于嵌入式C语言多线程编程的叙述中,错误是____。(2022年上半年) 答案:A(嵌入式系统不支持多线程编程)

85. 以下关于嵌入式C语言网络编程的叙述中,正确的是____。(2022年下半年) 答案:D(套接字编程可以实现网络通信)

86. 以下关于嵌入式C语言文件系统的叙述中,错误是____。(2023年上半年) 答案:C(嵌入式文件系统不支持文件的随机访问)

87. 以下关于嵌入式C语言GUI编程的叙述中,正确的是____。(2023年下半年) 答案:B(GUI编程需要处理用户的输入事件)

88. 以下关于嵌入式C语言安全编程的叙述中,错误是____。(2024年上半年) 答案:D(缓冲区溢出不会导致安全问题)


四、C++语言

89. 以下关于嵌入式C++语言特性的叙述中,错误的是____。(2010年上半年) 答案:D(嵌入式系统中不能使用C++的异常处理机制)

90. 以下关于嵌入式C++类封装的叙述中,正确的是____。(2010年下半年) 答案:B(类的封装可以隐藏实现细节,提高代码安全性)

91. 以下关于嵌入式C++继承的叙述中,错误的是____。(2011年上半年) 答案:A(C++只支持单继承,不支持多继承)

92. 以下关于嵌入式C++多态的叙述中,正确的是____。(2011年下半年) 答案:C(多态可以通过虚函数实现)

93. 以下关于嵌入式C++构造函数和析构函数的叙述中,错误的是____。(2012年上半年) 答案:D(析构函数可以有多个)

94. 以下关于嵌入式C++运算符重载的叙述中,正确的是____。(2012年下半年) 答案:B(运算符重载可以使类的操作更加直观)

95. 以下关于嵌入式C++模板的叙述中,错误的是____。(2013年上半年) 答案:C(模板只能在编译时使用,不能用于运行时多态)

96. 以下关于嵌入式C++标准模板库(STL)的叙述中,正确的是____。(2013年下半年) 答案:D(STL提供了常用的数据结构和算法)

97. 以下关于嵌入式C++命名空间的叙述中,错误的是____。(2014年上半年) 答案:A(命名空间不能嵌套定义)

98. 以下关于嵌入式C++引用和指针的叙述中,正确的是____。(2014年下半年) 答案:C(引用必须在定义时初始化,且不能改变绑定对象)

99. 以下关于嵌入式C++内联函数的叙述中,错误的是____。(2015年上半年) 答案:D(内联函数不能是类的成员函数)

100. 以下关于嵌入式C++友元函数的叙述中,正确的是____。(2015年下半年) 答案:B(友元函数可以访问类的私有成员)

101. 以下关于嵌入式C++纯虚函数和抽象类的叙述中,错误的是____。(2016年上半年) 答案:C(抽象类可以实例化对象)

102. 以下关于嵌入式C++智能指针的叙述中,正确的是____。(2016年下半年) 答案:D(智能指针可以自动管理动态内存的生命周期)

103. 以下关于嵌入式C++RAII机制的叙述中,错误是____。(2017年上半年) 答案:A(RAII机制只适用于内存管理)

104. 以下关于嵌入式C++移动语义的叙述中,正确的是____。(2017年下半年) 答案:B(移动语义可以避免不必要的拷贝,提高性能)

105. 以下关于嵌入式C++Lambda表达式的叙述中,错误是____。(2018年上半年) 答案:C(Lambda表达式不能捕获外部变量)

106. 以下关于嵌入式C++并发编程的叙述中,正确的是____。(2018年下半年) 答案:D(C++11提供了线程库支持多线程编程)

107. 以下关于嵌入式C++constexpr的叙述中,错误是____。(2019年上半年) 答案:B(constexpr函数中不能使用循环语句)

108. 以下关于嵌入式C++原子操作的叙述中,正确的是____。(2019年下半年) 答案:C(原子操作可以保证多线程访问的安全性)

109. 以下关于嵌入式C++协程的叙述中,错误是____。(2020年上半年) 答案:D(C++17已经正式支持协程)

110. 以下关于嵌入式C++模块(Modules)的叙述中,正确是____。(2020年下半年) 答案:B(C++20引入了模块机制,替代传统的头文件包含)

111. 以下关于嵌入式C++概念(Concepts)的叙述中,错误是____。(2021年上半年) 答案:A(Concepts是C++17引入的特性)

112. 以下关于嵌入式C++范围for循环的叙述中,正确是____。(2021年下半年) 答案:C(范围for循环可以遍历容器中的所有元素)

113. 以下关于嵌入式C++结构化绑定的叙述中,错误是____。(2022年上半年) 答案:D(结构化绑定只能用于tuple类型)

114. 以下关于嵌入式C++std::optional的叙述中,正确是____。(2022年下半年) 答案:B(std::optional可以表示可能不存在的值)

115. 以下关于嵌入式C++std::span的叙述中,错误是____。(2023年上半年) 答案:C(std::span拥有其所指向的数据)

116. 以下关于嵌入式C++std::format的叙述中,正确是____。(2023年下半年) 答案:D(C++20引入了std::format进行格式化输出)

117. 以下关于嵌入式C++std::expected的叙述中,错误是____。(2024年上半年) 答案:A(std::expected是C++17引入的特性)


核心知识点总结

章节核心考点
程序设计基础数据类型、运算符、控制结构、数组、字符串、函数、指针、结构体、共用体、枚举、typedef、预处理、文件操作、动态内存、递归、变量作用域、链表、栈队列、树、排序查找算法
汇编语言ARM体系结构、工作模式、寄存器、寻址方式、指令系统、异常处理、中断、流水线、存储管理、Cache、DMA、Bootloader、Thumb/ARM指令集、NEON、TrustZone、多核、GIC、RISC-V
C语言嵌入式特性、volatile、位操作、内存对齐、中断服务、可重入、代码优化、移植、调试、存储修饰符、DMA、低功耗、设备驱动、RTOS接口、多线程、网络、文件系统、GUI、安全编程
C++语言面向对象特性(封装继承多态)、构造函数析构函数、运算符重载、模板、STL、命名空间、引用、智能指针、RAII、移动语义、Lambda、并发编程、constexpr、原子操作、协程、C++20新特性