全国计算机等级考试四级嵌入式系统开发工程师模拟题完整全套(无答案)

合集下载

2020年计算机四级嵌入式系统开发工程师模拟题及答案.doc

2020年计算机四级嵌入式系统开发工程师模拟题及答案.doc

2020年计算机四级嵌入式系统开发工程师
模拟题及答案
1、什么是嵌入式系统?其特点有些什么?
答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。


特点:
1)是专用的计算机系统,用于特定的任务;
2)资源较少,可以裁减;
3)功耗低,体积小,集成度高,成本低;
4)使用实时操作系统;
5)可靠性要求更高,具有系统测试和可靠性评估体系;
6)运行环境差异大
7)大部分程序固化在ROM中;
8)较长的生命周期;
9)嵌入式微处理器通常包含专用调试电路
2、嵌入式系统的BooTLoader的功能是什么?
答:BootLoader是系统加电后、操作系统内核或用户应用
程序运行之前,首先必须运行的一段程序代码。

通过这段程序,为终调用操作系统内核、运行用户应用程序准备好正确的环境。

(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。

)。

计算机等级考试四级嵌入式系统真题库(12套全)

计算机等级考试四级嵌入式系统真题库(12套全)

计算机等级考试四级嵌入式系统真题库(12套全)全国计算机等级考试四级嵌入式系统开发真题库第1套一、单项选择题操作系统部分1.在进行操作系统设计时,下列哪一个是构造操作系统的方法?A.网络式结构B.并行式结构C.微内核结构D.主从式结构2.在不同类型的操作系统中,批处理操作系统的缺点是A.缺少交互性B.不能并发运行C.CPU利用率低D.周转时间太长3.在下面列出的计算机操作中,只能在操作系统内核态下运行的是A.关机B.读文件C.设置时间D.屏蔽中断4.引入中断技术可以使计算机的运行效率得到提高,下列哪一项对中断响应顺序产生影响?A.中断优先级B.时间片大小C.特权指令D.中断向量5.操作系统提供给用户用于应用程序编程的唯一接口是A.系统调用B.运行平台C.编程开发环境D.中断服务程序6.下列各种数据对象中,与进程具有一一对应关系的是A.程序B.进程控制块C.动态库D.堆栈7.某个进程由多个线程组成,其中一个线程被调度程序选中投入运行,其他的线程有的位于就绪队列,有的被阻塞,则此时该进程的状态是A.运行状态B.就绪状态C.挂起状态D.阻塞状态8.UNIX操作系统中,fork()系统调用用于创建进程。

仔细阅读、分析下列程序,假设程序正确运行并创建子进程成功,那么,输出到屏幕的正确结果是main(){pid_t pid;pid = fork();if (pid = = 0) printf ("Hello World\n");else if (pid > 0) printf ("Hello World\n");A.什么都没有B.1行Hello WorldC.2行Hello WorldD.3行Hello World9.在Pthread线程包中,线程操作pthread_join的含意是A.创建一个新的线程B.撤销一个线程C.等待一个特定的线程退出D.参加一个新的线程10.下列各种情况中,一定不会引起进程调度的操作是A.一个进程完成工作后被撤销B.一个进程从运行状态变成了阻塞状态或就绪状态C.一个进程从阻塞状态变成了就绪状态D.一个进程从就绪状态变成了运行状态11.下列活动中,哪一种活动只存在同步关系?A.某年某月某日某航班的订票B.球队举行足球比赛C.汽车装配流水线上的各道工序D.公共复印室复印机的使用12.用P、V操作管理临界区时,把信号量mutex的初值设定为1。

计算机四级嵌入式题库

计算机四级嵌入式题库

嵌入式开发:第一套在进行操作系统设计时,下列哪一个是构造操作系统的方法?A) 网络式结构B) 并行式结构C) 微内核结构√D) 主从式结构在不同类型的操作系统中,批处理操作系统的缺点是A) 缺少交互性√B) 不能并发运行C) CPU利用率低D) 周转时间太长在下面列出的计算机操作中,只能在操作系统内核态下运行的是A) 关机B) 读文件C) 设置时间D) 屏蔽中断√引入中断技术可以使计算机的运行效率得到提高,下列哪一项对中断响应顺序产生影响?A) 中断优先级√B) 时间片大小C) 特权指令D) 中断向量操作系统提供给用户用于应用程序编程的唯一接口是A) 系统调用√B) 运行平台C) 编程开发环境D) 中断服务程序下列各种数据对象中,与进程具有一一对应关系的是A) 程序B) 进程控制块√C) 动态库D) 堆栈某个进程由多个线程组成,其中一个线程被调度程序选中投入运行,其他的线程有的位于就绪队列,有的被阻塞,则此时该进程的状态是A) 运行状态√B) 就绪状态C) 挂起状态D) 阻塞状态UNIX操作系统中,fork()系统调用用于创建进程。

仔细阅读、分析下列程序,假设程序正确运行并创建子进程成功,那么,输出到屏幕的正确结果是main(){pid_t pid;pid = fork();if (pid = = 0) printf ("Hello World\n");else if (pid > 0) printf ("Hello World\n");else printf ("Hello World\n");}A) 什么都没有B) 1行Hello WorldC) 2行Hello World√D) 3行Hello World在Pthread线程包中,线程操作pthread_join的含意是A) 创建一个新的线程B) 撤销一个线程C) 等待一个特定的线程退出√D) 参加一个新的线程下列各种情况中,一定不会引起进程调度的操作是A) 一个进程完成工作后被撤销B) 一个进程从运行状态变成了阻塞状态或就绪状态C) 一个进程从阻塞状态变成了就绪状态D) 一个进程从就绪状态变成了运行状态√下列活动中,哪一种活动只存在同步关系?A) 某年某月某日某航班的订票B) 球队举行足球比赛C) 汽车装配流水线上的各道工序√D) 公共复印室复印机的使用用P、V操作管理临界区时,把信号量mutex的初值设定为1。

全国资格考试计算机等级考试四级嵌入式工程师真题含详细解析版.doc

全国资格考试计算机等级考试四级嵌入式工程师真题含详细解析版.doc

全国资格考试计算机等级考试四级嵌入式工程师真题含详细解析版计算机等级考试四级嵌入式工程师选择题1.采用多道程序设计技术,能有效地提高系统的下列哪一个性能 A 并发性B 灵活性 C 可靠性 D 兼容性A【解析】并发运行是指在计算机系统中同时存在若干个运行着的程序,各进程均处于已开始运行与结束之间,宏观上各进程并行运行,正是多道程序设计技术的出现使得程序的并发执行成为可能。

故选择A选项。

2.除了进程线程管理、存储管理、文件系统外,下列哪一个是属于操作系统的必要组成部分 A 设备管理 B 资源管理C 运行时系统D 虚拟化模块A 【解析】操作系统位于底层硬件与用户之间,是两者沟通的桥梁。

用户可以通过操作系统的用户界面,输入命令。

操作系统则对命令进行解释,驱动硬件设备,实现用户要求。

以现代观点而言,一个标准个人电脑的OS应该提供以下的功能进程管理;内存管理;文件系统;网络通讯;安全机制;用户界面;驱动程序硬件设备管理。

故选择A选项。

3.若用户编程需要打印输出,他可使用下列操作系统提供的哪一种系统调用A write B printf C output D list A【解析】write会把参数buf所指的内存写入count个字节到参数fd所指的文件内。

当然,文件读写位置也会随之移动。

故选择A选项。

4.用户程序需要关闭中断响应,他必须首先A 发起访管中断 B 调用系统函数自我阻塞 C 保护现场 D 获取中断状态A【解析】关闭中断响应指令属于特权指令,用户程序不能直接执行,必须要使CPU陷入核心态,由操作系统来执行该特权指令,因此该程序必须先发起访管中断,这是让CPU由用户态向核心态转换的方法。

故选择A选项。

5.关于操作系统的结构,下列特性中,哪一个不是微内核结构的特点 A 清晰的单向依赖和单向调用性 B 较高的灵活性和可扩充性 C 提高了操作系统的可靠性 D 更适合于分布式系统A【解析】微内核操作系统的优点(1)提高了系统的可扩展性;(2)增强了系统的可靠性;(3)可移植性;(4)提供了对分布式系统的支持;(5)融入了面向对象技术。

计算机四级《嵌入式系统开发工程师》试题及答案

计算机四级《嵌入式系统开发工程师》试题及答案

计算机四级《嵌入式系统开发工程师》试题及答案2016计算机四级《嵌入式系统开发工程师》试题及答案计算机等级四级是对计算机的熟练程度以及掌握程度进行评估的一种国家型等级考试。

为了帮助考生们更好、更有准备地参加考试,下面是店铺为大家搜索整理的关于《嵌入式系统开发工程师》试题及答案,欢迎参考练习,希望对大家有所帮助!想了解更多相关信息请持续关注我们店铺!1、什么是嵌入式系统?其特点有些什么?答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

”特点:1)是专用的计算机系统,用于特定的任务;2)资源较少,可以裁减;3) 功耗低,体积小,集成度高,成本低;4)使用实时操作系统;5) 可靠性要求更高,具有系统测试和可靠性评估体系;6)运行环境差异大7)大部分程序固化在 ROM中;8) 较长的生命周期;9)嵌入式微处理器通常包含专用调试电路2、嵌入式系统的BooTLoader的功能是什么?答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。

通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。

(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。

)3、目前嵌入式操作系统有哪些?答:1)µC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统 ;5)Symbian操作系统4、构造嵌入式开发环境有哪几种形式?答:1)交叉开发环境 ;2)软件模拟环境 ;3)评估电路板5、嵌入式系统开发的基本流程?答:1)系统定义与需求分析;2)系统设计方案的初步确立;3)初步设计方案性价比评估与方案评审论证;4)完善初步方案、初步方案实施;5)软硬件集成测试;6)系统功能性能测试及可靠性测试。

计算机四级嵌入式题库定稿版

计算机四级嵌入式题库定稿版

计算机四级嵌入式题库精编W O R D版IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】嵌入式开发:第一套在进行操作系统设计时,下列哪一个是构造操作系统的方法?A) 网络式结构B) 并行式结构C) 微内核结构√D) 主从式结构在不同类型的操作系统中,批处理操作系统的缺点是A) 缺少交互性√B) 不能并发运行C) CPU利用率低D) 周转时间太长在下面列出的计算机操作中,只能在操作系统内核态下运行的是A) 关机B) 读文件C) 设置时间D) 屏蔽中断√引入中断技术可以使计算机的运行效率得到提高,下列哪一项对中断响应顺序产生影响?A) 中断优先级√B) 时间片大小C) 特权指令D) 中断向量操作系统提供给用户用于应用程序编程的唯一接口是A) 系统调用√B) 运行平台C) 编程开发环境D) 中断服务程序下列各种数据对象中,与进程具有一一对应关系的是A) 程序B) 进程控制块√C) 动态库D) 堆栈某个进程由多个线程组成,其中一个线程被调度程序选中投入运行,其他的线程有的位于就绪队列,有的被阻塞,则此时该进程的状态是A) 运行状态√B) 就绪状态C) 挂起状态D) 阻塞状态UNIX操作系统中,fork()系统调用用于创建进程。

仔细阅读、分析下列程序,假设程序正确运行并创建子进程成功,那么,输出到屏幕的正确结果是main(){pid_t pid;pid = fork();if (pid = = 0) printf ("Hello World\n");else if (pid > 0) printf ("Hello World\n"); else printf ("Hello World\n");}A) 什么都没有B) 1行Hello WorldC) 2行Hello World√D) 3行Hello World在Pthread线程包中,线程操作pthread_join的含意是A) 创建一个新的线程B) 撤销一个线程C) 等待一个特定的线程退出√D) 参加一个新的线程下列各种情况中,一定不会引起进程调度的操作是A) 一个进程完成工作后被撤销B) 一个进程从运行状态变成了阻塞状态或就绪状态C) 一个进程从阻塞状态变成了就绪状态D) 一个进程从就绪状态变成了运行状态√下列活动中,哪一种活动只存在同步关系?A) 某年某月某日某航班的订票B) 球队举行足球比赛C) 汽车装配流水线上的各道工序√D) 公共复印室复印机的使用用P、V操作管理临界区时,把信号量mutex的初值设定为1。

计算机等级考试四级嵌入式工程师8

计算机等级考试四级嵌入式工程师8

计算机等级考试四级嵌入式工程师8选择题1.从计算机应用角度来看,操作系统的主要作用是提供A) 人机交互接口B) 软件开发基础C) 第一道安全防线D) 虚拟机和扩展机A【解析】操作系统是管理和控制计算机硬件与软件资源的计算机程序,是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。

故选择A选项。

2.共享性是操作系统的特征之一,下列共享设备中,哪种设备可以共享但是不能被抢占使用?A) CPUB) 打印机C) 硬盘D) 内存B 【解析】只有共享设别才能被抢占,打印机是独享设备,不能被抢占,CPU、硬盘、内存属于共享设备,可以被抢占。

故选择B选项。

3.内核态和用户态是用于操作系统运行安全而设置的一种状态标志,其含义是指A) 操作系统所处的状态B) CPU在运行时所处的状态C) 内存在运行时所处的状态D) 安全系统所处的状态B【解析】在处理器的存储保护中,主要有两种权限状态,一种是核心态(管态),也被称为特权态;一种是用户态(目态)。

核心态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。

故选择B选项。

4.外部I/O设备向处理器发出的中断信号又称为A) 中断请求B) 中断断点C) 中断屏蔽D) 中断优先级排队A【解析】"紧急事件"须向处理器提出申请(发一个电脉冲信号),要求"中断",即要求处理器先停下"自己手头的工作"先去处理"我的急件",这一"申请"过程,称中断请求。

故选择A 选项。

5.编写程序时通常会使用过程调用和系统调用,下列选项中,系统调用不能实现的功能是A) 从当前程序跳转到调用程序B) 调用程序多次嵌套与递归C) 调用程序一般与当前程序有关D) 调用结束后返回原程序B【解析】由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口。

是应用程序同系统之间的接口。

计算机四级嵌入式系统开发工程师试题及答案

计算机四级嵌入式系统开发工程师试题及答案

计算机四级嵌入式系统开发工程师试题及答案一什么是嵌入式系统?其特点有些什么?答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

”特点:1)是专用的计算机系统,用于特定的任务;2)资源较少,可以裁减;3) 功耗低,体积小,集成度高,成本低;4)使用实时操作系统;5) 可靠性要求更高,具有系统测试和可靠性评估体系;6)运行环境差异大7)大部分程序固化在ROM中;8) 较长的生命周期;9)嵌入式微处理器通常包含专用调试电路嵌入式系统的BooTLoader的功能是什么?答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。

通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。

(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。

)二目前嵌入式操作系统有哪些?答:1)µC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统;5)Symbian操作系统构造嵌入式开发环境有哪几种形式?答:1)交叉开发环境;2)软件模拟环境;3)评估电路板三嵌入式系统开发的基本流程?答:1)系统定义与需求分析;2)系统设计方案的初步确立;3)初步设计方案性价比评估与方案评审论证;4)完善初步方案、初步方案实施;5)软硬件集成测试;6)系统功能性能测试及可靠性测试。

什么是可编程片上系统?答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC.它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国计算机等级考试四级嵌入式系统开发工程师模拟题完整全套(无答案)一、编程开发能力:1、用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题);写一个“标准”宏MIN函数,这个宏输入两个参数并返回较小的一个。

2、用变量a给出下面的定义:(1)一个整型数(An integer);(2)一个指向整型数的指针(A pointer to an integer);(3)一个指向指针的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer);(4)一个有10个整型数的数组(An array of 10 integers);(5)一个有10个指针的数组,该指针是指向一个整型数的(A array of 10 pointers to integers);(6)一个指向有10个整型数组的指针(A pointer to an array of 10 integers);(7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument re turns an integer);(8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of 10 pointers to functions that take an integer argum ent and return an integer);3、关键字volatile有什么含义?并举出三个不同的例子。

4、嵌入式系统总是要用户对变量或寄存器进行位操作,给定一个整型变量a,写两段代码,第一个设置a 的bit 3,第二个清除a 的bit 3,在以上操作中,要保持其他位不变。

5、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点,在某工程中,要去设置一绝对地址为0x67a9的整型变量的值为0xaa66。

编译器是一个纯粹的ANSI编译器,写代码去完成这一任务。

6、中断是嵌入式系统中的重要组成部分,这导致了很多编译开发商提供一种扩展——让标准C支持中断,具有代表性的是,产生一个新的关键字:__interrupt,下面的代码就使用了__interrupt去定义了一个中断子程序(ISR),请评论下这段代码的__interrupt,double compute_area(double radius) {double area=PI*radius*radius; print f("\n Area"=%f,area); return area; }7、尽管不像非嵌入式计算机那样常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的,那么嵌入式系统中,动态分派内存可能发生的问题是什么?8、关键字static 的作用是什么?9、#include 与#include "file.h"的区别? 10、请说出const 与#define 相比,有何优点?二、嵌入式系统编程:1、进程与线程有什么区别?2、操作系统有哪几个特征?最主要的特征是什么?虚拟存储器有哪几个特征?其最本质的特征是什么?3、库函数的调用和系统调用的区别?4、Linux进程间通行方式有哪几种以及各自的特点?5、Linux中四层网络模型?IP的各种类型的范围?6、在Linux系统中,造成死锁的原因有哪些?7、Linux网络编程中主要使用的API有哪些以及网络服务器模型的种类? 8、简述对Linux的认识(特点,优势)。

三、嵌入式平台开发1、bootloader 是什么?bootloader的stage1和stage2分别做的工作有哪些?2、Linux内核版本命名的规则?3、Linux设备文件有哪几类?4、Linux文件系统的种类有哪些以及使用特点?5、嵌入式系统移植的主要工作步骤是什么?四、编程能力实测1、编写一个C函数,将“I am from shanghai”倒置为“shanghai from am I”即将句子中的单词位置倒置,并不改变单词内部结构。

2、请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出。

一.1、简答题。

下面的题目必须全部答对才给分(20分):1、如何在C中初始化一个字符数组。

2、如何在C中为一个数组分配空间。

3、如何初始化一个指针数组。

4、如何定义一个有10个元素的整数型指针数组。

5、 s[10]的另外一种表达方式是什么。

6、 GCC3.2.2版本中支持哪几种编程语言。

7、要使用CHAR_BIT需要包含哪个头文件。

8、对(-1.2345)取整是多少?9、如何让局部变量具有全局生命期。

10、C中的常量字符串应在何时定义?11、如何在两个.c文件中引用对方的变量。

12、使用malloc之前需要做什么准备工作。

13、realloc函数在使用上要注意什么问题。

14、strtok函数在使用上要注意什么问题。

15、gets函数在使用上要注意什么问题。

16、C语言的词法分析在长度规则方面采用的是什么策略?17、a+++++b所表示的是什么意思?有什么问题?18、如何定义Bool变量的TRUE和FALSE的值。

19、C语言的const的含义是什么。

在定义常量时,为什么推荐使用const,而不是#define。

20、C语言的volatile的含义是什么。

使用时会对编译器有什么暗示。

一.2、问答题。

1、———————————————————–“匈牙利命名法”有什么优缺点?(2分)2、———————————————————–下面x, y, *p的值是多少,有什么问题?(2分)int x, y, z = 2;int *p=&z;x=sizeof*p;y=x/*p; /* x=?, *p=?, y=?, 有什么问题?*/3、———————————————————–下面的语句是什么意思?如何声明或定义才使它们更易懂?(10分)int (*foo())();int (*foo())[];int (*foo[])();(*(void(*)())0)();void (*signal(int,void(*)(int)))(int);4、———————————————————–本题(2分)。

一般使用malloc时,需要进行强制类型转换,如:char *s; s = (char *)malloc(31);下面中???该如何填写,才可以正确执行强制类型转换?int (*monthp)[31]; monthp = (???)malloc(31);5、———————————————————–关于C语言运算符优先级的记忆技巧是什么?(2分)/* 下面r的值是多少 */int hi, low, r;hi=7;low=3;r=hi<<4+low;6、———————————————————–指针和数组的区别是什么?用一个简单的声明把它们区分开。

(2分)指针和数组的声明在什么情况下是相同的?(2分)7、———————————————————–C语言的左值(lvalue)和右值(rvalue)的含义是什么?(2分)8、———————————————————–为什么C语言可以实现printf(char *format, …)这样可变参数的调用形式?这样有什么缺点?(2分)9、———————————————————–说明C语言中术语”声明”"定义”"原型”的含义?(2分)10、———————————————————–举一个例子,说明使用assert和防错代码的区别。

(5分)11、———————————————————–对语句 if else 与操作符 ? : 使用场合的比较。

(2分)12、———————————————————–编写一个函数,输入一个的整型数字,可以选择按照8/10/16进制输出字符串。

注意边界值。

(5分)13、———————————————————–本题(2分)。

下面是一个16×16的黑白图标:static unsigned short stopwatch[] = {0×07c6,0×1ff7,0×383b,0×600c,0×600c,0xc006,0xc006,0xdf06,0xc106,0xc106,0×610c,0×610c,0×3838,0×1ff0,0×07c0,0×0000,};如何修改声明,可以使之在源代码中形象地表现出图形的模样。

14、———————————————————–说出可以使用calendar[11][30]变量的四种类型定义。

(5分)如:int calendar[12][31]; /* 二维数组 */15、———————————————————–使用strcmp,当字符串相同时会返回’\0′。

但’\0′一般作为逻辑假,因此下面的语句不容易理解:if (!strcmp(s, “string”)) return EQUATION;如何经过简单修改,使之更易懂?(2分)16、———————————————————–编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。

(5分)17、———————————————————–在树和图这些数据结构中,通常使用指针来组织数据。

如果我们要把这些数据保存到文件中,指针是没有意义的。

我们该如何解决这个问题。

(2分)18、———————————————————–用2种不同的方法计算long变量的”1″bit的个数。

(2分)19、———————————————————–任意给出一个C的基本数据类型,如何编码判断这个数据类型是有符号还是无符号的?(2分)不得上机实验,写出下面代码的输出。

解释这个行为是标准定义的,还是依赖实现的。

(2分)int i;for (i = 0; i < 10; i++) {int j = i;printf (”%d\n”, j);}20、———————————————————–列出5种以上你所看过的C编程的书籍,并写简要书评。

(5分)对C的评价。

如果要你改造一把菜刀,使之更加安全,你是否会使用这样的菜刀,为什么?(5分)一.3、分析题。

本题(各5分)。

假设下面代码中的变量都是合法变量,调用外部的函数都是正确的。

回答几个问题:这些代码意图要干什么?是否有问题?如果有问题,该如何修改,或者如何避免类似错误发生?如果没有问题,如果代码有输出,输出是什么?1、———————————————————–int isvowel (char c){return c==’a’’’’’’’’||c==’e’’’’’’’’||c==’i’’’’’’’’||c==’o’’’’’’’’||c==’u’’’’}2、———————————————————–while (c==’\t’||c=’‘||c==’\n’)c=getc(f); 3、———————————————————–/* 当x=2, y=3, z=? */if (x==0)if (y==0)z=-1;elsez=x+y; 4、———————————————————–/* 处理网络事件 */void process_network_code(int x, int y){/* 选择modes_pointer资源 */switch (line) {case THING1:/* 处理异常1#, 使用老的modes_pointer资源 */ doit1();break;case THING2:/* 处理异常2#, 需要重新启动服务 */if (x == STUFF) {/* 重新申请modes_pointer资源,没有初始化 */ do_first_stuff();/* 在这种条件下,有些资源不用重新申请 */if (y == OTHER_STUFF)break;/* 申请剩下的资源,并初始化 */do_later_stuff();}/* 初始化modes_pointer资源 */initialize_modes_pointer();break;default:/* 处理普通事件, 使用老的modes_pointer资源 */ processing();}/* 使用modes_pointer资源,处理事件 */use_modes_pointer();}5、———————————————————–int is_gb2312_char(char c1, char c2){if (c1 >= 0xa1 && c2 >= 0xa1)return 1;elsereturn 0;}6、———————————————————–下面x, y的值是多少,有什么问题?int x = 10, y = 3;x ^= y;y ^= x;x ^= y;/* x=?, y = ? */7、———————————————————–int days[]={31,28,31,30,31,30,31,31,30,31,30,31,};int calendar[12][31];int (*monthp)[31];int *dayp;int i;memset(calendar, 0, sizeof(calendar));i = 0;for (monthp = calendar; monthp < &calendar[12]; monthp++) { for (dayp = *monthp; dayp < &(*monthp)[31]; dayp++) {if (dayp - *monthp < days[calendar - monthp]) {*dayp = i++ % 7 + 1;}}}8、———————————————————–void printnum(long n){if (n < 0) {putchar(’-’’’’’’’’);n = -n;}if (n >= 10) {printnum(n/10);}putchar (”0123456789″[n%10]);}9、———————————————————–void * memchr(void *pv, unsigned char ch, size_t size) {unsigned char *pch = (unsigned char *) pv;unsigned char *pchEnd = pch + size;while (pch < pchEnd) {if (*pch == ch)return (pch);pch++;}return NULL;}10、———————————————————–void * memchr(void *pv, unsigned char ch, size_t size) {unsigned char *pch = (unsigned char *) pv;unsigned char *pchPlant = pch + size;unsigned char chSave = *pchPlant;*pchPlant = ch;while (pch != ch) {pch++;}*pchPlant = chSave;return ((pch == pchPlant) ? NULL : pch);}一.4、综合编程题。

相关文档
最新文档