李sir_Blog

博客园 首页 联系 订阅 管理

随笔分类 -  面試

上一页 1 2 3 下一页

摘要:二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] val) { r = m; m = (m+l)/2; } else if(a[m] val) { l = m; m = (m+r)/2; } else return m; } return -1; //没有找到}写出在母串中查找子串出现次数的代码.int count1(char* str,char* s){ char* s1; char* s2; i 阅读全文
posted @ 2011-01-15 19:51 李sir 阅读(2003) 评论(0) 推荐(1) 编辑

摘要:1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n",d);return 0;}a) 写出程序输出b) 在一个可移植的系统中这种表达式是否存在风险?why?#include "stdio.h"int a=0; int b;static char c;int main(int argc,char *argv[]){char d=4;static short e;a++;b=100;c=(char)++a;e=(++d)++;printf("a=%d, b=%d, c=%d, d= %d 阅读全文
posted @ 2011-01-15 19:50 李sir 阅读(7062) 评论(0) 推荐(0) 编辑

摘要:1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)    #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL  我在这想看到几件事情:  1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。  3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。  4). 如果你在你的表达式中用到UL(表示无符号长整 阅读全文
posted @ 2011-01-15 19:47 李sir 阅读(2478) 评论(0) 推荐(1) 编辑

摘要:第1题: 考查对volatile关键字的认识#includesetjmp.hstaticjmp_bufbuf;main(){volatileintb;b=3;if(setjmp(buf)!=0){printf("%d",b);exit(0);}b=5;longjmp(buf,1);}请问, 这段程序的输出是(a) 3(b) 5(c) 0(d) 以上均不是第2题:考查类型转换main(){structnode{inta;intb;intc;};structnodes={3,5,6};structnode*pt=&s;printf("%d",*(int*)pt);}这段程序的输出是:(a) 3 阅读全文
posted @ 2011-01-15 19:45 李sir 阅读(1455) 评论(0) 推荐(0) 编辑

摘要:1.写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。#include stdio.h#include stdlib.h#include string.hint FindMax_NumStr(char *outputstr,char *i 阅读全文
posted @ 2011-01-15 19:43 李sir 阅读(1336) 评论(0) 推荐(0) 编辑

摘要:1.求组合数: 求n个数(1....n)中k个数的组合.... 如:combination(5,3) 要求输出:543,542,541,532,531,521,432,431,421,321,/*求组合数: 求n个数(1....n)中k个数的组合....如:combination(5,3)要求输出:543,542,541,532,531,521,432,431,421,321,*/#include stdio.h#include error.hint pop(int *);int push(int );void combination(int ,int);int stack[3]={0 阅读全文
posted @ 2011-01-15 19:40 李sir 阅读(2889) 评论(0) 推荐(0) 编辑

摘要:公共部分(50分)  1:作业调度程序从处于(B)状态的队列中选择适当的作业的作业投入运行。(3分)  A 运行 B 提交 C 完成 D后备  2:SQL语言中,删除一个表的命令是(B)(3分)  A CLEAR TABLE B DROP TABLE  C DELETE TABLE D REMOVE TABLE  3:ATM采用的线路复用方式为(C)(3分)  A 频分多路复用  B 同步时分多路复用  C 异步时分多路复用  D 独占信道  4:数据库中只存放视图的(C)(3分)  A操作  B 对应的数据  C 定义  D 限制  5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(10 阅读全文
posted @ 2011-01-15 19:38 李sir 阅读(9475) 评论(0) 推荐(0) 编辑

摘要:1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数;答://假设线性表的双向链表存储结构typedef struct DulNode{ struct DulNode *prior; //前驱指针 ElemType data; //数据 struct DulNode *next; //后继指针}DulNode,*DuLinkList;//删除操作Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e){ if(!(p=GetElemP_DuL(L,i))) //此处得到i位置的节点指针,如果有需要也得写出具体函数实现 ret 阅读全文
posted @ 2011-01-15 19:33 李sir 阅读(777) 评论(0) 推荐(0) 编辑

摘要:1.什么是中断?中断发生时cpu做什么工作? 中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。当外部中断,需要cpu暂停当前的任务,做相应的处理,cpu需要判断中断源,保存现场状态,以便能够处理完后继续执行中断的任务。2.CPU在上电后,进入操作系统的main()之前必须做什么工作? 过程如下: bios自举:检查硬件等读取MBR 转到MBR执行它的代码,它会检测活动分区把活动分区的引导扇区的引导代码装入内存运行引导代码引导代码装入该分区的操 阅读全文
posted @ 2011-01-15 19:22 李sir 阅读(1515) 评论(0) 推荐(0) 编辑

摘要:1.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2),具体是n*(n+1)/2个子数组;而且求一个长度为n的数组的和的时间复杂度为O(n)。因此这种思路的时间是O(n3)。解题思路:很容易理解,当我们加上一个正 阅读全文
posted @ 2011-01-15 18:49 李sir 阅读(979) 评论(0) 推荐(0) 编辑

摘要:二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] val) { r = m; m = (m+l)/2; } else if(a[m] val) { l = m; m = (m+r)/2; } else return m; } return -1; //没有找到}写出在母串中查找子串出现次数的代码.int count1(char* str,char* s){ char* s1; char* s2; i 阅读全文
posted @ 2011-01-15 18:38 李sir 阅读(721) 评论(2) 推荐(0) 编辑

摘要:题目:  已知strcpy函数的原型是:   char * strcpy(char * strDest,const char * strSrc);   1.不调用库函数,实现strcpy函数。   2.解释为什么要返回char *。 解说:  1.strcpy的实现代码   char * strcpy(char * strDest,const char * strSrc)   {   if ((strDest==NULL)||(strSrc==NULL)) //[1]   throw "Invalid argument(s)"; //[2]   char * strDestCopy=strDe 阅读全文
posted @ 2011-01-15 17:01 李sir 阅读(1628) 评论(0) 推荐(0) 编辑

摘要:(1)统计字符串中出现的子字符串数量#include "stdafx.h"void findcount(char* s1,char *s2);void findcount(char* s1,char *s2){ char * str1 = s1; char * str2 = s2; int count=0; while (*str1!='\0') { if (*str1==*str2&&*str1!='\0'&&*str2!='\0') { str1++; str2++; } else { str2= s2; str1++; } if (*str2=='\0') { count++; str2 阅读全文
posted @ 2011-01-15 15:57 李sir 阅读(446) 评论(0) 推荐(0) 编辑

摘要:简介  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。  线程互斥是一种特殊的线程同步。  实际上,互斥和同步对应着线程间通信发生的两种情况:  (1)当有多个线程访问共享资源而 阅读全文
posted @ 2011-01-13 19:17 李sir 阅读(650) 评论(0) 推荐(0) 编辑

摘要:4. MFC线程、消息队列与MFC程序的"生死因果"  分析MFC程序的主线程启动及消息队列处理的过程将有助于我们进一步理解UI线程与消息队列的关系,为此我们需要简单地叙述一下MFC程序的"生死因果"(侯捷:《深入浅出MFC》)。  使用VC++ 6.0的向导完成一个最简单的单文档架构MFC应用程序MFCThread:  (1) 输入MFC EXE工程名MFCThread;  (2) 选择单文档架构,不支持Document/View结构;  (3) ActiveX、3D container等其他选项都选择无。  我们来分析这个工程。下面是产生的核心源代码: MFCThread.h 文件clas 阅读全文
posted @ 2011-01-13 19:12 李sir 阅读(553) 评论(0) 推荐(0) 编辑

摘要:、创建和终止线程  在MFC程序中创建一个线程,宜调用AfxBeginThread函数。该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程。  工作者线程CWinThread *AfxBeginThread( AFX_THREADPROC pfnThreadProc, //控制函数 LPVOID pParam, //传递给控制函数的参数 int nPriority = THREAD_PRIORITY_NORMAL, //线程的优先级 UINT nStackSize = 0, //线程的堆栈大小 DWORD dwCreateFlags = 0, //线程的创建标志 LP 阅读全文
posted @ 2011-01-13 19:01 李sir 阅读(844) 评论(0) 推荐(0) 编辑

摘要:www.en37.com37英语学习网第一章   1.By using various coding techniques, groups of bits can be made to represent not only binary numbers but also other discrete symbols, such as decimal digits or letters of the alphabet.   应用多种编码技术,一组二进制数字不但可以表示二进制数据,而且还可以表示其它的离散符号,如十进制数字或字母表中的字母。   2.System software includes 阅读全文
posted @ 2011-01-10 13:20 李sir 阅读(1287) 评论(0) 推荐(0) 编辑

摘要:昨天遇到类内静态函数,本想自己整理下,谁知道已经有人整理的很好了,为此就不麻烦了,看了一篇就转贴在自己空间里,以便以后查询。C++的static关键字作者:韩耀旭C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include iostream.hvoid fn();static in 阅读全文
posted @ 2011-01-04 14:03 李sir 阅读(283) 评论(0) 推荐(0) 编辑

摘要:c与c++ static函数的区别static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register(C语言程序设计(第二版)谭浩强, 第174-175页)与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同auto类型分 阅读全文
posted @ 2011-01-04 13:35 李sir 阅读(826) 评论(0) 推荐(0) 编辑

摘要:const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 **************常量必须被初始化*************************cons的作用 (1)可以定义const常量 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查 例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改; (3)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错; 例如: void f(const in 阅读全文
posted @ 2011-01-04 13:03 李sir 阅读(339) 评论(0) 推荐(0) 编辑

上一页 1 2 3 下一页