C语言强化训练1答案.pdf_第1页
C语言强化训练1答案.pdf_第2页
C语言强化训练1答案.pdf_第3页
C语言强化训练1答案.pdf_第4页
C语言强化训练1答案.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习一: 1. 用户输入M,N值,从1 至N开始顺序循环数数,每数到M输出该数值,直至全部输 出。写出C程序。 循环链表,用取余操作做 2.不能做switch()的参数类型是: switch 的参数不能为实型。 3. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 4. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 2) 不存在指向空值的引用,但是存在指向空值的指针。 5. 描述实时系统的基本特性 答案:实时系统的基本特性为:时间约束性、可预测性、可靠性、与外部环境的交互作用。 实时系统的新特性:多任务类型、约束的复杂性、具有短暂超载的特点 实时系统(Real-time operating system,RTOS):一个实时系统是指计算的正确性不仅依 赖系统计算的逻辑结果, 还依赖于产生这个结果的时间。 实时系统能够在指定或者确定的时 间内完成系统功能和外部或内部、 同步或异步时间做出响应的系统。 因此实时系统应该在事 先定义的时间范围内识别和处理离散事件的能力; 系统能够处理和储存控制系统所需要的大 量数据。 POSIX 1003.b 作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务 实时系统根据其对于实时性要求的不同, 可以分为软实时和硬实时两种类型。 硬实时系统指 系统要有确保的最坏情况下的服务时间, 即对于事件的响应时间的截止期限是无论如何都必 须得到满足。 比如航天中的宇宙飞船的控制等就是现实中这样的系统。 其他的所有有实时特 liaoweidong 性的系统都可以称之为软实时系统。 如果明确地来说, 软实时系统就是那些从统计的角度来 说,一个任务(在下面的论述中,我们将对任务和进程不作区分)能够得到有确保的处理时 间, 到达系统的事件也能够在截止期限到来之前得到处理, 但违反截止期限并不会带来致命 的错误,像实时多媒体系统就是一种软实时系统。 一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于 CPU 和其他资源进 行有效的调度和管理。在多任务实时系统中,资源的调度和管理更加复杂 实时系统的特点: 一、时间约束性 实时系统的任务具有一定的时间约束(截止时间)。根据截止时间,实时系统的 实时性分为“硬实时”和“软实时”。硬实时是指应用的时间需求能够得到完全满足,否 则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如在航空航 天、军事、核工业等一些关键领域中的应用。软实时是指某些应用虽然提出时间需 求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如监控系 统等和信息采集系统等。 二、可预测性 可预测性是指系统能够对实时任务的执行时间进行判断,确定是否能够满足任 务的时限要求。由于实时系统对时间约束要求的严格性,使可预测性称为实时系统 的一项重要性能要求。除了要求硬件延迟的可预测性以外,还要求软件系统的可预 测性,包括应用程序的响应时间是可预测的,即在有限的时间内完成必须的工作; 以及操作系统的可预测性,即实时原语、调度函数等运行开销应是有界的,以保证 应用程序执行时间的有界性。 liaoweidong 三、可靠性 大多数实时系统要求有较高的可靠性。在一些重要的实时应用中,任何不可靠 因素和计算机的一个微小故障,或某些特定强实时任务(又叫关键任务)超过时限, 都可能引起难以预测的严重后果。为此,系统需要采用静态分析和保留资源的方法 及冗余配置,使系统在最坏情况下都能正常工作或避免损失。可靠性已成为衡量实 时系统性能不可缺少的重要指标。 四、与外部环境的交互作用性 实时系统通常运行在一定的环境下,外部环境是实时系统不可缺少的一个组成 部分。计算机子系统一般是控制系统,它必须在规定的时间内对外部请求做出反 应。外部物理环境往往是被控子系统,两者互相作用构成完整的实时系统。大多数 控制子系统必须连续运转以保证子系统的正常工作或准备对任何异常行为采取行 动。 早期的实时系统功能简单,包括单板机、单片机,以及简单的嵌入式实时系统等,其调度过 程相对简单。随着实时系统应用范围的不断扩大,系统复杂性不断提高,实时系统具有以下 新特点。 1多任务类型多任务类型 在实时系统中,不但包括周期任务、偶发任务、非周期任务,还包括非实时任务。实时 任务要求要满足时限, 而非实时任务要求要使其响应时间尽可能的短。 多种类型任务的混合, 使系统的可调度性分析更加困难。 2约束的复杂性约束的复杂性 任务的约束包括时间约束、资源约束、执行顺序约束和性能约束。时间约束是任何实时 系统都固有的约束。 资源约束是指多个实时任务共享有限的资源时, 必须按照一定的资源访 问控制协议进行同步, 以避免死锁和高优先级任务被低优先级任务堵塞的时间 (即优先级倒 置时间) 不可预测。 执行顺序约束是指各任务的启动和执行必须满足一定的时间和顺序约束。 例如,在分布式端到端(end-to-end)实时系统很重,同一任务的各子任务之间存在前驱/ 后驱约束关系, 需要执行同步协议来管理子任务的启动和控制子任务的执行, 使它们满足时 间约束和系统可调度要求。性能约束是指必须满足如可靠性、可用性、可预测性、服务质量 (Quality of Service,QoS)等性能指标。 3具有短暂超载的特点具有短暂超载的特点 在实时系统中,即使一个功能设计合理、资源充足的系统也可能由于一下原因超载: 1) 系统元件出现老化,外围设备错误或系统发生故障。随着系统运行时间的增长,系统元 件出现老化,系统部件可能发生故障,导致系统可用资源降低,不能满足实时任务的时 间约束要求。 liaoweidong 2) 环境的动态变化。由于不能对未来的环境、系统状态进行正确有效地预测,因此不能从 整体角度上对任务进行调度,可能导致系统超载。 3) 应用规模的扩大。原先满足实时任务时限要求的系统,随着应用规模的增大,可能出现 不能满足任务时限要求的情况,而重新设计、重建系统在时间和经济上又不允许。 在特定时间内完成特定的任务,实时性与可靠性 6. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈 7. 什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于 1 8. 堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源 9. 冒泡排序算法的时间复杂度是什么? O(n2) 10. 写出float x 与“零值”比较的if语句。 if(x0.000001 a=10; b=a+; c=+a; d=10*a+; printf(“b,c,d:%d,%d,%d“,b,c,d); return 0; 答:10,12,120 20、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什 么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以 static 就构成了静态的全局变量。全局变量 本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无 不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个 源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了 其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用 它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因 此可以避免在其它源文件中引起错误。 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的 生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为 内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使 用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static 全局变量与普通的全局变量有什么区别:static 全局变量只初使化一次,防止在其他 文件单元中被引用; liaoweidong static 局部变量和普通局部变量有什么区别:static 局部变量只被初始化一次,下一次依据 上一次结果值; static 函数与普通函数有什么区别:static 函数在内存中只有一份,普通函数在每个被调用 中维持一份拷贝 21、设有以下说明和定义: typedef union long i; int k5; char c; DATE; struct data int cat; DATE cow; double dog; too; DATE max; 则语句 printf(“%d“,sizeof(struct date)+sizeof(max);的执行结果 是:_52_ 22、队列和栈有什么区别? 队列先进先出,栈后进先出 23、写出下列代码的输出内容 #include int inc(int a) return(+a); int multi(int*a,int*b,int*c) return(*c=*a*b); typedef int(FUNC1)(int in); typedef int(* INC)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) INCp= int temp =p(arg1); fun( printf(“%dn“,*arg2); liaoweidong main() int a; show(multi,10, return 0; 答:110 24、请找出下面代码中的所以错误 说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” 1、#include“string.h“ 2、main() 3、 4、 char*src=“hello,world“; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=srclen; 10、 while(len- - !=0) 11、 d+=s- - ; 12、 printf(“%s“,dest); 13、 return 0; 14、 答: 方法 1: liaoweidong int main() char* src = “hello,world“; int len = strlen(src); char* dest = (char*)malloc(len+1);/要为0 分配一个空间 char* d = dest; char* s = /指向最后一个字符 while( len- != 0 ) *d+=*s-; *d = 0;/尾部要加0 printf(“%sn“,dest); free(dest);/ 使用完,应当释放空间,以免造成内存汇泄露 return 0; 方法 2: #include #include main() char str=“hello,world“; int len=strlen(str); char t; for(int i=0; i #include int main(void) long l; char *str = “98765432“; l = atol(lstr); printf(“string = %s integer = %ldn“, str, l); return(0); 28.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C+中应用什么实现? liaoweidong c 用宏定义,c+用 inline 29.软件测试都有那些种类? 黑盒:针对系统功能的测试 白合:测试函数功能,各函数接口 30.确定模块的功能和模块的接口是在软件设计的那个队段完成的? 概要设计阶段 31.enum string x1, x2, x3=10, x4, x5, x; 问x=0x801005,0x8010f4 ; ; 9.unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 请问p1+5= ; p2+5= ; 二.找错题: 1.请问下面程序有什么错误? int a602501000,i,j,k; for(k=0;k=1000;k+) for(j=0;j250;j+) for(i=0;i60;i+) aijk=0; 把循环语句内外换一下 2.#define Max_CB 500 void LmiQueryCSmd(Struct MSgCB * pmsg) liaoweidong unsigned char ucCmdNum; for(ucCmdNum=0;ucCmdNumMax_CB;ucCmdNum+) ; 死循环 3.以下是求一个数的平方的程序,请找出错误: #define SQUARE(a)(a)*(a) int a=5; int b; b=SQUARE(a+); 三.问答题: 1.IP Phone的原理是什么? IPV6 2.TCP/IP通信建立的过程怎样,端口有什么作用? 三次握手,确定是哪个应用程序使用该协议 3进程和线程的差别。 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论