下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 .ia 写出 floatx 与“零值”比较的 if 语句。if(x-0.000001)说明:一个浮点数在存储时只能保证的有效数字是 7 位,我们应当避免在 C 语言中将一个很大的数和一个很小的数直接相加或者相减,否则就会丢失小的数”,比如:#includevoidmain(void)floata=1.3,b=0.3;printf(%.18f,a+b);getch();2 .已知一颗树的后序遍历结果为:CEFHDGIBA,中序遍历结果为:HCFEAGDBI,则前序遍历为:AHFCEBGDI三种顺序 TLR(根左右)、 LTR(左根右)和 LRT(左右根)根据根访问的位置不同分别被称为前序遍历
2、、 中序遍历和后序遍历。前序遍历的规律是:输出根结点,输出左子树,输出右子树;中序遍历的规律是:输出左子树,输出根结点,输出右子树;后序遍历的规律是:输出左子树,输出右子树,输出根结点AHFCEBGDIA.3 .编写一个整数拆分的算法,即把一个数拆分为若干个质数(也称素数)相乘,如果被拆分数为 30,则结果为:2*3*5素数:只能被 1 或自身整除的整数。从 2 到 Sqrt(这个数)去除这个数,如果有任何一个除得开就不是素数,否则就继续判断intprime(intn)intm;for(m=2;m24)人 0 xff)、if 等比较两参数的大小#defineMAX(a,b)9.行为的一个规则叫
3、做程序,程序在 CPU 上执行时所发生的活动称为进程10.进程的三个状态:执行状态,就绪状态,阻塞状态11.PCB(ProcessControlBlock 进程控制块)是系统感知进程存在的唯一标志进程控制块PCB,线程控制块TCB进程控制块 PCB(ProcessControlBlock):存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个 PCB,在创建进程时,建立 PCB,伴随进程运行的全过程,直到进程撤消而撤消。在不同的操作系统中对进程的控制和管理机制不同,PCB 中的信息多少也不一样,通常 PCB 应包含如下一些信息。1、进程标识
4、符 name:每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX 系统中就是一个整型数。在进程创建时由系统赋予。2、进程当前状态 status:说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待磁盘 I/O 完成队列等等。3、进程相应的程序和数据地址,以便把 PCB 与其程序和数据联系起来。4、进程资源清单。列出所拥有的除 CPU 外的资源记录,如拥有的 I/O 设备,打开的文件列表等。5、进程优先级 priority:进程的优先级反映进程的紧迫程序,通常
5、由用户指定和系统设置。UNIX 系统采用用户设置和系统计算相结合的方式确定进程的优先级。6、CPU 现场保护区 cpustatus:当进程因某种原因不能继续占用 CPU 时(等待打印机),释放 CPU,这时就要将 CPU的各种状态信息保护起来,为将来再次得到处理机恢复 CPU 的各种状态,继续运行。7、进程同步与通信机制用于实现进程间互斥、同步和通信所需的信号量等。8、进程所在队列 PCB 的链接字根据进程所处的现行状态,进程相应的 PCB 参加到不同队列中。PCB 链接字指出该进程所在队列中下一个进程 PCB 的首地址。9、与进程有关的其他信息。如进程记账信息,进程占用 CPU 的时间等。1
6、2 .在操作系统中,线程是调度和分派的基本单位,而进程是拥有资源的基本单位13 .临界资源(criticalresource):当一个资源被一个用户占用后,就加锁禁止其他用户进入同时使用该资源,即一次仅允许一个进程访问的资源p=&slen;/*改为:p=&slen-1;*/reverse(s,p);printf(Reversethestringwewillget:n%sn,s);getch();return0;18 .voidgetmemory(char*p)p=(char*)malloc(100);strcpy(p,helloworld);intmain()char*str=
7、NULL;getmemory(str);printf(%sn,str);free(str);return0;#includevoidgetmemory(char*p)*p=(char*)malloc(100);strcpy(*p,helloworld);intmain(void)char*str=NULL;getmemory(&str);printf(%sn,str);free(str);return0;19 .#include“string.hintmain()char*src=hello,world;char*dest=NULL;intlen=strlen(src);dest=(c
8、har*)malloc(len);char*d=dest;char*s=srclen;while(len-!=0)d+=s-;printf(%s,dest);return0;)#include#includestring.hintmain()char*src=hello,world;char*dest=NULL;intlen=strlen(src)+1;char*d=NULL;/char*s=src;dest=(char*)malloc(len);d=dest;while(len-!=0)*(d+)=*(src+);printf(%s,dest);return0;)【简述题】20 .一个二叉树
9、,它的第 8 层节点数最多是多少?答:1288-1=72A7=12821 .static,const,volatile 有什么用途?static 修饰局部变量的作用:作用域为函数内部有效,生存期为整个程序运行期间。static 修饰全局变量的作用:作用域为当前源文件内部有效,生存期为整个程序运行期间。static 修饰函数的作用:内部函数,局限于当前源文件内部互相调用。constunsignedchara;作用:常量unsignedcharconsta;作用:同上,常量unsignedchar*constp;作用为指针 p 为常量不能被改变,而指针 p 所指向的存储空间上的值可以改变。cons
10、tunsignedchar*p;作用为指针 p 本身值可以被改变, 而指针 p 所指向的存储空间上的值不可以改变。volatile 强制编译器重新访问制定的存储空间。在多线程应用中被几个任务共享的变量、特殊功能寄存器访问、中断函数种访问的变量等情况下使用22 .在 16 环境下,C 语言中 int、float、double、long、char、unsignedint 分别占多少个字节?int2 字节float4 字节double8 字节long4 字节#includevoidmain()(printf(sizeof(int):%dn,sizeof(int);printf(sizeof(long
11、):%dn,sizeof(long);printf(sizeof(double):%dn,sizeof(double);printf(sizeof(float):%dn,sizeof(longdouble);printf(sizeof(char):%dn,sizeof(char);printf(sizeof(unsignedint):%dn,sizeof(unsignedint);23 .全局变量和局部变量在内存中是否有区别?如果有,是什么区别?答:全局变量都是静态变量,被分配在 RAM 中的数据区域。局部变量是动态变量被分配在栈区域。24 .什么是平衡二叉树?答:平衡二叉树又称 AVL 树。
12、它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过 1。25 .队列和栈有什么区别?答:栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。从数据 Z勾的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的限定”。栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊性,栈必须按后进先出”的规则进行操作,而队列必须按先进先出
13、”的规则进行操作。26 .malloc 和 free 的用法。答:请参考语法书http:/ NULL,防止程序后面不小心使用了它。C、这两个函数应该是配对。如果申请后不释放就是内存泄露;如果无故释放那就是什么也没有做。释放只能一次,如果释放两次及两次以上会出现错误(释放空指针例外,释放空指针其实也等于啥也没做,所以释放空指针释放多少次都没有问题)。D、虽然 malloc()函数的类型是(void*),任何类型的指针都可以转换成(void*),但是最好还是在前面进行强制类型转换,因为这样可以躲过一些编译器的检查。27 .结构体和共用体的区别?char1 字节unsignedint2 字节答:1、
14、共用体的成员共用一块内存区,结构体的成员有个自独立的内存区。共用体的成员,对一个进行修改就会影响别的成员的值,而结构体则不会。2、结构体所占用的内存空间为其成员所需空间总和而共用体所占用的空间只为其所需内存最大的成员的内存。3、共用体所有成员头地址相同,每次只有最后一次附值的成员有效28 .简答指针和数组之间的关系。答:29 .简述平衡二叉树及相关知识。答:.en/SFXX/chazhao/chazhao7.3.2.html30 .进程和线程的概念及区别。答:http:/blog.sina.eom.en/s/blog_48f44e1701009fho.
15、html1、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行2、进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独
16、立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。31 .简述 TCP/IP 通信的流程。答:依次说明每一层上的协议的作用。每一层上都会根据不同的协议封装一些包信息。32 .函数原型 fune(inta,intb,inte
17、,intd),如果传入 fune(1,2,3),则 a,b,e,d 分别是多少?答:fune(inta,intb,inte,intd=0)如果按照上面的情况进行函数声明的话 d 在没有对应实参彳 1 得情况下为 0,如果有对应的参数值那就为该值。33 .指出语句 unsignedinta=100;while(a-0)break;的问题所在。答:a-改为一 a,否则就变为无限循环了。【判断题】34 .任何的指针运算都包含=运算错比如 p+35 .默认的函数声明都是 extern,变量声明都是 auto 错36 .结构体的大小和变量的顺序没有关系。错37 .全局变量和局部变量都存储在数据段。错局部
18、变量存储在栈区域【编程题】38 .在指定字符串中寻找是否出现相同的子字符串。比如 ABCABCDEF 这个字符串,如果我们指定子字符串长度是 3,那么就会匹配到 ABC 这个子字符串出现了两次。 但如果是 AAAADEF,我们指定子串长度是 3,那么就不会匹配到子字符串。#include#includeintstr_str(constunsignedchar*source,constunsignedchar*find);intmain(void)unsignedcharSrc_buffer100=0;unsignedcharFind_buffer100=0;unsignedchar*p1=Sr
19、c_buffer;unsignedchar*p2=Find_buffer;intcount=0;charlen_val;inti=0;intch=0;printf(Pleaseenterstring:n);for(i=0;i0)&(len_val9)break;printf(valuerangeis19n);len_val=len_val-0 x30;while(len_val-!=0)*p2+=*p1+;count=str_str(Src_buffer,Find_buffer);if(count!=0)(printf(findtimesis%d,count);)else(printf
20、(cantfindstring!);)getch();return0;)intstr_str(constunsignedchar*source,constunsignedchar*find)(unsignedchar*s=source;unsignedchar*f=find;intcount=0;while(*source!=0)(s=source;if(*s=*f)(while(*s=*f)&(*s!=0)(s+;f+;)if(*f=0)(count+;source=s-1;)if(*s=0)(returncount;)f=find;)source+;)returncount;)39
21、.判断一个整数是否为回文,例如 123454321。#includeintmain(void)unsignedcharbuffer100=0;inti=0;intlen=0;unsignedcharch=0;while(1)printf(请输入字符串:n);for(i=0;i100;i+)ch=getchar();if(ch=n)break;bufferi=ch;len=strlen(buffer);for(i=0;i(len-1)i+)if(bufferi!=bufferlen-1-i)break;if(i=(len-1)/2)printf(是回文!n);elseprintf(不是回文!n);40,分解一个整数为质因数的乘积,例如 90=2*3*3*5。#includei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年一师开学考试试题及答案
- 2025年支书培训考试题目及答案
- 2025年担保企业面试真题及答案
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试参考试题(浓缩500题)及参考答案详解(综合卷)
- 2025劳动合同,全日制劳动合同范本
- 2025年焦作中考物理试卷及答案
- 2025药用植物种植买卖合同书
- 2025通信工程承包合同
- 员工涨工资合同(标准版)
- 2025房地产项目合作协议合同范本
- 集装箱购销合同协议
- 2025年入党积极分子培训考试试卷及答案(共五套)
- 2025年上半年艺术创作意识形态工作报告范文
- 电力公司新闻通讯工作培训
- 2025年湖南高速铁路职业技术学院单招职业技能考试题库必考题
- 2025修缮沥青道路工程合同
- 2025年阜新高等专科学校单招职业技能测试题库及答案一套
- 下肢深静脉血栓的评估与预防
- 合同合规培训
- 内镜下套扎术护理配合
- GB/T 31771-2024家政服务母婴护理服务质量规范
评论
0/150
提交评论