博客软件怎么用笔试机器人笔试题目打印?

图解如何用打印机套打快递单
相信淘宝上大多数卖家都是使用手工填写快递单的,这样的做法有一些不好的地方:
  1.手工填写容易填写错误,如果当时发现了就只能涂改或换一张单子。涂改会让买家感觉卖家不专业,如果换一张单子,呵呵,有一些快递公司的快递单是要钱哟。
  2.有的卖家使用电脑很熟练,但至于写字嘛,呵呵,那实在是不敢恭维。最起码我就是这样的人。(别扔鸡蛋呀,我没说你,我只是说有的......什么?你就是有的那一部分人?那就更应该好好看看我这遍文章了!呵呵)
  3.呵呵,第三嘛,就是效率低下呀!相信每天填写大量的快递单的钻石级卖家来说对于这一点应该是深有体会
  4.……
  还有更多,就不一一列举了,各位自己体会应该都比较深,正面就切入正题--如何用打印机打印快递单。
  一、方式
  用打印机打印快递单一般有两种方式:
  1.使用专用软件,通过针式打印机来打印
  优点:效率高,使用方便快捷
  缺点:现在这一类软件还不多,且基本上无免费软件,都是需要收费或是试用的。根据我在网上查找的经验来看,很多软件甚至安装后不能正常运行。
  举例:
  《信封大师》,至本贴发表时,最新版本为V5.22版,分专业版与企业版,区别在于专业版中没有电话等相应信息,也就是说比较适合打印信封。而企业版中增加了电话、传真等管理信息,比较适合用来打印快递单。
  该软件自己已经附带了一些常见信封格式模板和EMS及邮政快递的快递单模板。对于其他快递公司快递单,可通过自定义模板来实现。一次定义后,可反复多次使用,方便快捷。同时该软件可对联系进行分类、分组管理。
  个人认为其部分功能仍需要加强,但总体来说已经不错了。
  该软件属共享软件,可到网上查找,具体网址我就不说了,免得有做广告嫌疑。虽然我跟做者非亲非故。呵呵!
  2.使用编辑排版软件,通过针式打印机打印快递单
  优点:免费(在这儿我们就不讨论正版还是D版的问题了),在一定程度上也可以做到方便快捷,而且在多数人都会一些基本操作,不少人还很精通。
  缺点:每次需要手工在页面上输入文字(当然有些排版软件可以省略),如果快递单格式改动或更换快递公司,则需要重新制作。
  最常用的该类软件应该就是Microsoft Office中的WORD了。
对于专用软件打印快递单的方式,我们就不介绍了,本篇中主要跟大家讨论一下如何使用第二种方法来打印快递单,具体我们用WORD(本人使用的同WORD2003)来举例。
  二、需要具备的硬件条件
  1.针式打印机一台
  从上面两种方法来看,要想打印快递单,针式打印机是必备条件之一。原因是快递单多是使用多联复写式纸张,即我们俗称的压感打印纸。而打印压感打印纸,只能使用针式打印机。
  2.扫描仪一台
  非必备,因为需要将快递单扫描到电脑中去。如果你没有,那么把快递单拿到其他有扫描仪的地方扫描一下,然后把文件复制到自己的电脑中去也行。
  这一步是实现套打的关键
  3.小尺
  用来量快递单的尺寸,非必备,借一个也行,用完记得还了。
  4.编辑排版软件
  我们这儿当然就指WORD了,这是必备,因为每次打印都会用到呀!(别告诉我你没有,没有就装一个。什么,你不知道到哪儿找?我晕!你还是用臭鸡蛋砸我吧,我不活了!)
  三、准备工作
  1.用尺子量出快递单的长度与宽度,对于带孔纸,连孔眼边缘一起算上。要求尽可能精确。当然尺子在不同季节的热胀冷缩导致的误差可以忽略。(谁?又扔我......)
  2.选一张完好平整的快递单放入扫描仪中扫描成黑白图像,解析度不需要太高,一般100就行了。当然如果你想看得清楚点,用灰度扫描或是彩色扫描也行。当然这样扫描出来的图像会大一点,处理起来也会相对慢一点,如果你的计算机够劲,使用真彩色都行。将图片保存为JPG格式,该格式会比BMP、PIC等格式产生的文件大小要小得多。
  当然,扫描仪的具体使用用不在本贴介绍范围之类!(喂,我警告你哟,你扔我第三次了,再扔我到你们家蹭饭吃......)
  四、正式制作模板
  1.正确的安装针式打印机,并设置该打印机为“默认打印机”。
  2.用WORD新建一个空白文档,相信大家都会,就不详细说了。
  3.根据你刚才量得的快递单的长度与宽度设置页面大小。
  方法:(菜单)“文件”->“页面设置”->“纸张”->在“宽度”中输入快递单的宽度(单位:厘米)->在“长度”中输入快递单的长度(单位:厘米)如图:
  4.设置页边距均为0
  方法:在上图的基出上选择“页边距”->在“上”、“下”、“左”、“右”边距中均输入0->“确定”
确定后有可能会弹出一个对话框,如图:
不用管他,直接点击“忽略”即可。接着WORD的文档页面会如下图所示:
  如果此时你看到的页面大小与如图所示不一样,那将视图设置为页面视图。
  5.插入你刚才扫描的图片。
  方法:(菜单)“插入”->“图片”->“来自文件”
  经过以上操作会弹出如图的对话框:
  在该图“查找范围”中找到存放你刚才扫描的图片的文件夹,然后选中你的图片文件,点击“插入”按钮。接着会出现如下图所示:
  6.对手稿到页面中的图片进行相应的调整
  在图片上右击鼠标,然后在弹出的菜单中选择“设置图片格式”,会弹出如下图的对话框:
  选择“版式”->“衬于文字下方”->“大小”选项卡->取消“锁定纵横比”中的勾->在“高度”中输入你开始量得的快递单的“高度”->在“宽度”中输入你开始量得的快递单的“宽度”->点击“确定”。
  接着会出来如下图的界面:
  用鼠标拖动图片,使图片能正好覆盖整个页面。如下图:
  7.插入“文本框”
  方法:(菜单)“插入”->“文本框”->“横排”->在页面相应的位置拖出一个文本框
  如图:
  适当的调整文本框的位置与大小,以及内部文字的大小及字体(个人喜欢楷体,严肃且不失活泼),然后将鼠标指针移到文本框的边线上变成十字箭头时右击,在弹出的菜单中选择“设置文本框格式”,此时会弹出一个新的对话框,如图:
选择“颜色与线条”->在“填充”“颜色”中选择“无填充色”->在“线条”“颜色”中选择“无线条色”->点击“确定”按钮。
  此时该文本框会如图所示,各位可与上面图中的文本框比较一下,看看有什么区别,呵呵:
  按上面所述的方法将其他需要插入文本框的地方都做好,做完这一切工作时,你会发现,而面上只看到一个文本框。不过没关系,当你用鼠标在相应的地方单击时,那个地方的文本框就会出现。
  8.正面就可以在文本框中填入相应的地址、电话等信息了,如图
  9.对文本框及其中的文字做适当的调整,直到自己满意为止。
  10.用鼠标点击图片边缘部分,然后按下键盘上的“Delete”键,将图片删除。如图:
  11.下面就可以上机试打。
  如果你跟快递公司揽件员关系好的话,可以跟他要一些废单用来试打,否则可以找一些比较透明的纸张裁成跟快递单一样的大小用来试打。试打后可将透明的纸张蒙在快递单上观察对位是否准确。
  12.根据试打的结果对页面中的文本框的位置进行调整。
  注意:如果是整体位置不准备,那可以对这些文本框进行一次性全部选定,然后进行位置的微调,微调时按住Ctrl键,再使用光标键移动文本框的位置。
  如果仅仅是个别文本框位置不准确,那只需要对这些个别的文本框调整即可。
  第11、12两个步骤是一个反复尝试的过程,也是整个过程中最痛苦的过程。一定要有耐心。最终你肯定可能得到你满意的结果。
  尝试满意后,对于页面中的文字不要删除,然后保存文件,下次打印其他地址时,只需要对这些文字进行修改即可。
  四、总结:
  该方法还有改进的空间:
  1.可以将该文档保存为WORD模板,以后调用更为方便
  2.如果将该方法与WORD的“合并文档”功能集合起来用则更为方便,不需要对每次更改数据,只需要将经常联系的买家地址保存在WORD中,每次调用即可。
  3.尚有一些考虑不周全的地方,目前本人还没有好的解决方法
  以上是本人对于套打的一些经验,不仅仅可以用于快递单的打印,还适用于其他套打的需要。如本人的结婚请柬也是用此方法打印的。
  文笔粗陋,还请淘友们指正。
  使用过程中如有问题,可与我联系,互相探讨。我的联系方法见签名档
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。新浪网技术部笔试题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
新浪网技术部笔试题
中国教育在线|
总评分0.0|
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢软件笔试题(1)
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用"::"。局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?
答:extern,可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答:可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。
4、语句for( ;1 ;)有什么问题?它是什么意思?
答:死循环,无限循环,和while(1)相同。
5、do……while和while……do有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环。
6、请写出下列代码的输出内容
nclude&stdio.h&
int a,b,c,d;
printf("b,c,d:%d,%d,%d",b,c,d);
答:10,12,120
判断题(对的写T,错的写F并说明原因,每小题4分,共20分)
1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
2、int (*ptr) (),则ptr是一维数组的名字。
答:错误,ptr是一个函数指针。
3、指针在任何情况下都可进行&, &,
&=, &=, = =运算。
答案:错误。如果不谈比较的意义,答案是肯定的。就算在没有赋初值得时候也是可以比较的。比较的意义:不同类型的指针不强制类型转换
(没有意义),没有意义的指针(比方说同类型的没有初始化的指针)比较(没有意义)。一般不在相同的存储区域(堆、栈、静态存储空间)内
(没有意义)。因为函数指针就不能这样操作。只有当指针指向一个函数的时候不能对它进行这些操作。
4、switch(c) 语句中c可以是int, long, char, float, unsigned
int 类型。
答:错误,因为C只可以是整型。
5、#define print(x)& printf("the
no, "#x",is ")
答:正确!简单说,它的意思就是使用参数被双引号包住。#@是使参数用引号包住。##是粘结。
填空题(共30分)
1、在windows下,写出运行结果,每空2分,共10分。
char str[ ]= "Hello";
sizeof(str) =(&
sizeof(p)&
sizeof(n)&
void func(char str[100])
sizeof(str)=(&&
void setmemory(char **p, int num)
*p=(char *) malloc(num);
void test(void)
char *str=NULL;
setmemory(&str,100);
strcpy(str,"hello");
printf(str);
运行test函数有什么结果?(hello)10分
设int arr[]={6,7,8,9,10};
&&*(ptr++)+=123;
&&printf("%d,%d",*ptr,*(++ptr));
10分//先计算++ptr,指针变动,就输出两个了
编程题(第一小题20,第二小题30分)
1、& 不使用库函数,编写函数int
strcmp(char& *source, char *dest)
&相等返回0,不等返回-1;
int strcmp(char *source, char *dest)
while(*source==*dest &&
*source!='\0' && *dest!='\0')
if(*source=='\0' &&
*dest=='\0')
&&& return
&&& return
int strcmp(char *source, char *dest)
while(*source++ == *dest++);
&&& return
*(--source) - *(--dest);
int strcmp(char *source, char *dest)
while ( (*source != '/0')
&& (*source == *dest))
source++; dest++;
return ( (*source) - (*dest) ) ? -1 : 0;
2、&&&&&&&
写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1
int fun(char *p)
int len = strlen(p) - 1;
char *q = p +
if (!p) return -1;
while (p & q)
if ((*p++) != (*q--))
1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。
应用层 ……………应用层 …………数据
表示层 ……………应用层 …………数据
会话层 ……………应用层 …………数据
传输层 ……………传输层 …………段
网络层…………… 互联网层……… 包
数据链路层 ………网络接口层 ……帧
物理层 ……………网络接口层 ……比特流
2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?
IP协议(Internet
Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能,包括IP数据报规定互连网络范围内的IP地址格式。
IP是网络层协议,工作在数据链路层的上面。
IP协议的作用就是向传输层(TCP层)提供统一的IP包,即将各种不同类型的MAC帧转换为统一的IP包,并将MAC帧的物理地址变换为全网统一的逻辑地址(IP地址)。这样,这些不同物理网络MAC帧的差异对上层而言就不复存在了。正因为这一转换,才实现了不同类型物理网络的互联。
TCP和UDP都是传输层协议.
TCP(Transmission Control
Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立连接。
UDP(User Data
Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。
3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?
交换机 通过二层寻址 存储 转发 碎片隔离 等实现
路由器是通过三层路由查找IP方式实现。
交换机在二层实现,路由在三层
交换机是在数据链路层实现的路由器在网络层实现。
4.请问C++的类和C里面的struct有什么区别?
C++中的类有构造函数,析构函数,继承等等。
C中的struct中,没有构造函数等C++类才有的元素。
然而,C++中的class和struct基本上是等同的,除了一点
它们数据成员的默认访问权限是不同的。
class的默认访问权限为private,而struct为public.
5.请讲一讲析构函数和虚函数的用法和作用。
假设有一个名为A的类,那么A的析构函数为如下形式
&A::~A(){}, 没有参数也无返回值。
析构函数主要作用是在对象销毁前释放其占用的资源。
要将类的成员函数定义为虚函数,只需在函数声明前加上关键字virtual.
虚函数的作用是为了实现多态,可以在运行时决定具体调用哪个函数(动态绑定)。
6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
全局变量和局部变量的区别主要在于它们的作用域和生存期不同。
全局变量对于整个程序均可见,而局部变量只对它所在的函数或者语句块可见。
全局变量的生存期与程序的生存期相同,而局部变量的生存期在退出函数或语句块后便结束。
通过将全局变量和局部变量置于内存中不同的段来实现的,全部变量存放与全局数据区,局部变量位于栈内。
操作系统和编译器识别变量的过程不清楚,麻烦哪位补充一下。
一些变量在整个程序中都是可见的,它们称为全局变量。一些变量只能在一个函数中可知,称为局部变量。这就是他们的区别。
在任何函数外面定义的变量就是全局变量,在函数内部定义的变量是局部变量,这是它们在程序中的实现过程。
操作系统和编译器是根据程序运行的内存区域知道他们的,程序的全局数据放在所分配内存的全局数据区,程序的局部数据放在栈区。
7.8086是多少位的系统?在数据总线上是怎么实现的?
8086是16位的系统
8086地址总线有20位,CPU有1M的寻址空间,然而8086只有16位,为了能够寻址1M内存空间,必须通过分段来完成,即:物理地址=16位的段基址左移4位
+ 16位的段内偏移量,这样就可以寻址全部的地址空间了。
----****----auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。C语言中,在函数体的某程序段内说明auto存储类型的变量时可以省略关键字auto。
----****----static:称为静态存储类型,在C语言中,既可以在函数体内,也可在函数体外说明static
存储类型的变量。在函数体内说明的static
存储类型的变量也是一种局部变量,与auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行静态变量就不会随着说明它的程序段的结束而消失,static类型的变量只被初始化一次,且变量的值有继承性。
----****----register称为寄存器型,使用register关键词说明的变量主要目的是想将所说明的变量放入寄存器存储空间中,我们知道寄存器数量有限,且位于CPU的内部,这样可以加快程序的运行速度。但正因为寄存器的资源相对较少,所以编译器会判断程序所指定的需要放在寄存器中的内容有没有必要放入寄存器中去,也就是说,编译器来决定是否将指定内容放入到寄存器中,如果没有没有必要放入寄存器中,就使用auto类型作处理。
----****----
volatile表明某个变量的值可能在外部被改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。它可以适用于基础类型如:int,char,long......也适用于C的结构和C++的类。当对结构或者类对象使用volatile修饰的时候,结构或者类的所有成员都会被视为volatile。关键字在多线程环境下经常使用,因为在编写多线程的程序时,同一个变量可能被多个线程修改,而程序通过该变量同步各个线程。
读程序,写结果:
int func(int a)
switch(a) {
case 1: b=30;
case 2: b=20;
case 3: b=16;
default: b=0;
}则func(1)=?答:func(1)=0,因为没有break语句,switch中会一直计算到b=0。这是提醒我们不要忘了break。呵呵。
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
则a[q-p]=?答:a[q-p]=a[2]=2;这题是要告诉我们指针的运算特点。
定义 int **a[3][4],
则变量占有的内存空间为:_____答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空间为3&4&4=48。
1.static有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
1.限制变量的作用域。2.设置变量的存储域。
2.引用与指针有什么区别?
引用必须被初始化,指针不必。
引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
3. 描述实时系统的基本特性
答 、在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
全局变量储存在静态数据区,局部变量在堆栈。
5.什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。
6.堆栈溢出一般是由什么原因导致的?
没有回收垃圾资源。
7.什么函数不能声明为虚函数?
只有类的成员函数才能说明为虚函数;2:静态成员函数不能是虚函数;3:内联函数不能为虚函数;4:构造函数不能是虚函数;5:析构函数可以是虚函数,而且通常声明为虚函数。
8.冒泡排序算法的时间复杂度是什么?
时间复杂度是O(n^2)。
9.写出float x 与“零值”比较的if语句。
if(x&0.000001&&x&-0.000001)
10.Internet采用哪种网络协议?该协议的主要层次结构?
Tcp/Ip协议,主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。
11.Internet物理地址和IP地址转换采用什么协议?
ARP (Address Resolution Protocol)(地址解析協議)
12.IP地址的编码分为哪俩部分?
IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
13.不能做switch()的参数类型是:
switch的参数不能为实型。
14、队列和栈有什么区别?
答 :队列先进先出,栈后进先出
15.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
答 :c用宏定义,c++用inline
某32位系统下, C++程序,请计算sizeof 的值(5分).
int n = 10;
sizeof ( p ) = ?(1)
sizeof ( n ) = ?(2)
void Foo ( char str[100]){
sizeof( str ) = ?(3)
void *p = malloc( 100 );
sizeof ( p ) = ?(4)
答:4& (指针类型的长度都是4个字节)
(int类型4个字节)
(传到函数里面的是指针,还是4个字节)
(指针,或叫地址就是4个字节)
回答下面的问题. (4分)
(1).头文件中的 ifndef/define/endif 干什么用?预处理
答:防止头文件被重复引用
(2). #include
&filename.h&和 #include “filename.h”
有什么区别?
答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。
(3).在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?
答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern
"C"修饰的变量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C
连接交换指定符号extern“C”来解决这个问题。
5. 编写strcat函数(6分)
已知strcat函数的原型是char *strcat (char *strDest, const
char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
(1)不调用C++/C 的字符串库函数,请编写函数 strcat
答: VC源码:
char * __cdecl strcat (char * dst, const char *
char * cp =
while( *cp )
while( *cp++ = *src++ !=‘\0’) ;
return( dst );
(2)strcat能把strSrc 的内容连接到strDest,为什么还要char *
类型的返回值?
答:方便赋值给其他变量
1.MFC中CString是类型安全类么?
答:不是,其它数据类型转换到CString可以使用CString的成员函数Format来转换.
2.C++中为什么用模板类。
答:(1)可用来创建动态增长和减小的数据结构
(2)它是类型无关的,因此具有很高的可复用性。
(3)它在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无关的,可移植性
(5)可用于基本数据类型
3.CSingleLock是干什么的。
答:同步多个线程对一个数据类的同时访问.
4.程序什么时候应该使用线程,什么时候单线程效率高。
答:1.耗时的操作使用线程,提高应用程序响应
2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。
3.多CPU系统中,使用线程提高CPU利用率
4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
其他情况都使用单线程。
5.Windows是内核级线程么。
答:见下一题
6.Linux有内核级线程么。
答:线程通常被定义为一个进程中代码的不同执行路线。从实现方式上划分,线程有两种类型:“用户级线程”和“内核级线程”。用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。这种线程甚至在象
DOS 这样的操作系统中也可实现,但线程的调度需要用户程序完成,这有些类似 Windows 3.x
的协作式多任务。另外一种则需要内核的参与,由内核完成线程的调度。其依赖于操作系统核心,由内核的内部需求进行创建和撤销,这两种模型各有其好处和缺点。用户线程不需要额外的内核开支,并且用户态线程的实现方式可以被定制或修改以适应特殊应用的要求,但是当一个线程因
而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不到运行的机会;而内核线程则没有各个限制,有利于发挥多处理器的并发优势,但却占用了更多的系统开支。Windows
NT和OS/2支持内核线程。Linux 支持内核级的多线程。
7.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?
答:栈: 存放局部变量,函数调用参数,函数返回值,函数返回地址。由系统管理;堆:
程序运行时动态申请,new 和 malloc申请的内存就在堆上。
8.使用线程是如何防止出现大的波峰。
答:意思是如何防止同时产生大量的线程,方法是使用线程池,线程池具有可以同时提高调度效率和限制资源使用的好处,线程池中的线程达到最大数时,其他线程就会排队等候。
9.函数模板与类模板有什么区别?
答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定。
10.一般数据库若出现日志满了,会出现什么情况,是否还能使用?
答:只能执行查询等读操作,不能执行更改,备份等写操作,原因是任何写操作都要记录日志。也就是说基本上处于不能使用的状态。
11. SQL Server是否支持行级锁,有什么好处?
答:支持,设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性,行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。
12. 关于内存对齐的问题以及sizeof()的输出
答:编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。
13.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现?
答:将操作多个表的操作放入到事务中进行处理
13.TCP/IP 建立连接的过程?(3-way shake)
答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
14.ICMP是什么协议,处于哪一层?
答:Internet控制报文协议,处于网络层(IP层)
15.触发器怎么工作的?
答:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、 INSERT、
DELETE 这些操作时,数据库就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL
语句所定义的规则。
16.winsock建立连接的主要实现步骤?
答:服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。客户端:socker()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。
17.动态连接库的两种方式?
答:调用一个DLL中的函数有两种方法:
1.载入时动态链接(load-time dynamic
linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。
2.运行时动态链接(run-time dynamic
linking),运行时可以通过LoadLibrary或LoadLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。
18.IP组播有那些好处?
答:Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播技术的核心就是针对如何节约网络资源的前提下保证服务质量。
19.什么是预编译,何时需要预编译?
答案: 预编译又称为预处理 , 是做些代码文本的替换工作。
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。
20.char *char const *const char *p
上述三个有什么区别?
答案: char * //常量指针,p的值不可以修改 char const *
p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p一样。
21.char str1[] = "abc"; char str2[] = "abc";
const char str3[] = "abc"; const char str4[] = "abc"; const char
*str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char
*str8 = "abc"; cout & & ( str1 ==
str2 ) & & cout
& & ( str3 == str4 ) &
& cout & & (
str5 == str6 ) & & cout
& & ( str7 == str8 ) &
结果是:0 0 1 1
str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。
a[5]={1,2,3,4,5};&&&
int *ptr=(int
*)(&a+1);&&&
printf("%d,%d",*(a+1),*(ptr-1));
答案:2,5 。*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5。
&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)
int *ptr=(int *)(&a+1);
则ptr实际是&(a[5]),也就是a+5 原因如下:
&a是数组指针,其类型为 int (*)[5];
而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同 a是长度为5的int数组指针,所以要加
5*sizeof(int) 所以ptr实际是a[5]
但是prt与(&a+1)类型是不一样的(这点很重要) 所以prt-1只会减去sizeof(int*)
a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].
23.请问以下代码有什么问题:
char *str=&a;
strcpy(str,"hello");
printf(str);
答案:没有为str分配内存空间,将会发生异常。问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。
char* s="AAA";
&&&&&&&&&&
printf("%s",s);
printf("%s",s);
有什么错?
答案:"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。 cosnt
char* s="AAA"; 然后又因为是常量,所以对是s[0]的赋值操作是不合法的。
25关键字static的作用是什么?答案:定义静态变量
26关键字const有什么含意?答案:表示常量不可以修改的变量。
27关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。
28.int (*s[10])(int) 表示的是什么啊?
答案:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int
param)的函数。
29.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
答案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b = a - a
or a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a
30.c和c++中的struct有什么不同?
答案:c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private.
31.列举几种进程的同步机制,并比较其优缺点。
答案:& 原子操作
信号量机制&&&
管程,会合,分布式系统
32.进程死锁的原因?
答案:资源竞争(系统资源不足)及进程推进顺序非法。
33.死锁的4个必要条件是什么?
答案:互斥、请求保持、不可剥夺、环路。
34.死锁的处理策略?
答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁
操作系统中进程调度策略有哪几种?
答案:FCFS(先来先服务),优先级,时间片轮转,多级反馈
36.类的静态成员和非静态成员有何区别?
答案:类的静态成员每个类只有一个,非静态成员每个对象一个
。一般说来静态成员是属于类所有的非静态成员则属于类的实例。
37.纯虚函数如何定义?使用时应注意什么?
答案:virtual void f()=0; 是接口,子类必须要实现。
38.数组和链表的区别?
答案:数组-数据顺序存储,大小固定;链表-数据可以随机存储,大小可动态改变。
39.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?
答案:应用层/表示层/会话层/运输层/网络层/物理链路层/物理层。
tcp /udp属于运输层。TCP
服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。与 TCP 不同, UDP 并不提供对 IP
协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。
tcp: 提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好.
udp: 不提供稳定的服务,包头小,开销小。&
40、要对绝对地址0x100000赋值,我们可以用 (unsigned
int*)0x100000 = 1234;
那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
答案:*((void (*)( ))0x100000 ) ( );
首先要将0x100000强制转换成函数指针,即: (void (*)())0x100000 然后再调用它: *((void
(*)())0x100000)(); 用typedef可以看得更直观些: typedef void(*)() voidFuncP
*((voidFuncPtr)0x100000)();
41、线程与进程的区别和联系? 线程是否具有相同的堆栈?
dll是否有独立的堆栈?
答案:进程是死的,只是一些资源的集合,真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮你创建了一个主线程。每个线程有自己的堆栈。
DLL中有没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈?以上讲的是堆栈,如果对于堆来说,每个DLL有自己的堆,所以如果是从DLL中动态分配的内存,最好是从DLL中删除,如果你从DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃
42、unsigned short A = 10;
printf("~A = %u\n", ~A); char c=128; printf("c=%d\n",c);
输出多少?并分析过程。
答案:第一题,~A =0xfffffff5,int值
为-11,但输出的是uint。所以输出
第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128。这两道题都是在考察二进制向int或uint转换时的最高位处理。&
43、用两个栈实现一个队列的功能?要求给出算法和思路!
答案:设2个栈为A,B, 一开始均为空. 入队: 将新元素push入栈A; 出队:
(1)判断栈B是否为空; (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;
(3)将栈B的栈顶元素pop出;这样实现的队列入队和出队的。
44、在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?
答案:函数名: atol 功 能: 把字符串转换成长整型数 用 法: long atol(const
char *nptr); 程序例: #include &stdlib.h&
#include &stdio.h& int main(void) {
char *str = ""; l = atol(lstr); printf("string = %s
integer = %ld\n", str, l); return(0); }
45、软件测试都有那些种类?
答案:黑盒:针对系统功能的测试&&&
白合:测试函数功能,各函数接口
46、确定模块的功能和模块的接口是在软件设计的那个队段完成的?
答案:概要设计阶段
1.Ethternet链接到Internet用到以下那个协议?&
A.HDLC;B.ARP;C.UDP;D.TCP;E.ID&
2.属于网络层协议的是:&
A.TCP;B.IP;C.ICMP;D.X.25&
3.Windows消息调度机制是:
&A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;
答案:b,a,c
1.IP Phone的原理是什么? 答案:IPV6
2.TCP/IP通信建立的过程怎样,端口有什么作用?答案:三次握手,确定是哪个应用程序使用该协议
3、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
答案:全局变量(外部变量)的说明之前再冠以static
就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,
当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,
在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝.
4、队列和栈有什么区别?
答案:队列先进先出,栈后进先出&
华为笔试网络题-选择题
层模型中,网络层的功能有( )
A.确保数据的传送正确无误&
B.确定数据包如何转发与路由
C.在信道上传送比特流&&&
D.纠错与流控
2.FDDI 使用的是___局域网技术。( )
A.以太网;&&&
B.快速以太网;&&&
C.令牌环;&&&
D.令牌总线。
3.下面那种LAN
是应用CSMA/CD协议的()
A.令牌环&&&
C.ETHERNET&&&
4.TCP 和UDP 协议的相似之处是
A.面向连接的协议&&&
B.面向非连接的协议&&
&C.传输层协议&&&
D.以上均不对
5.应用程序PING
发出的是___报文.( )
请求报文。&&& B.TCP
应答报文。&&&
C.ICMP 请求报文。& D.ICMP 应答报文。
6.以下说法错误的是(多) ( )
A.中继器是工作在物理层的设备&&
&B.集线器和以太网交换机工作在数据连路层
C.路由器是工作在网络层的设备&&&
D.桥能隔离网络层广播
7.当桥接收的分组的目的MAC地址在桥的映射表中没有对应的表项时,采取的策略是(
A.丢掉该分组&
B.将该分组分片&&&
C.向其他端口广播该分组&&&
D.以上答案均不对
8.LAN Switch 在网络层次模型中的地位(
A.物理层&&&
B.链路层&&&
C.网络层&&&
D.以上都不是
9.小于___的TCP/UDP端口号已保留与现有服务一一对应,此数字以上的端口号可自由分配。(
A.199&&&&&
&C.1024&&&&&
10.当一台主机从一个网络移到另一个网络时,以下说法正确的是 (
A.必须改变它的IP 地址和MAC
B.必须改变它的IP 地址,但不需改动MAC 地址
C.必须改变它的MAC 地址,但不需改动IP
地址&&& D.MAC
地址.IP 地址都不需改动
1、防火墙是怎么实现的?
防火墙就是在请求进入计算机或者服务器之前做了一个判断,看看是不是不断访问并且审核响应请求次数就是这样简单。知识其中很多知识需要了解,大概原理就是这样。
2、用C语言写一个递归算法求N!
float fac(int n)
printf("n&0,dataerror!");
else if(n==0 || n==1) f=1;
else f=fac(n-1)*n;
return(f);
上海华为的一道关于指针方面的编程题
3、int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int*
A, int nSize),使A把0移至后面,非0整数移至
数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)
#include&& "stdafx.h"
#include&& "assert.h"
Func(int*&&
int&& nSize)
assert(A&&
&&for(int i=0, *p = A, *q,
nVi&nSi++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
=&& nSize)
&&&&&&&&&&&
return&& -1;
for(++i;i&nSi++)
&&&&&&&&&&&
if(*(++p)&&
&&&&&&&&&&&&&&&&&
nLeft=nSize&&
for(i=0;&&
&&&&&&&&&&&
*q++&& =0;
return&& nV
4、随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数。
unsigned char Symmetry (long n)
i=n; temp=0;
while(i) //不用出现长度问题,将数按高低位掉换
&&&&&&&&&&
temp=temp*10+i;
&&&&&&&&&&
return(temp==n);
5、求2~2000的所有素数.有足够的内存,要求尽量快
int findvalue[2000]={2};
static int find=1;
bool adjust(int value)
assert(value&=2);
if(value==2)
for(int i=0;i&=i++)
&&&&&&&&&&
if(value%findvalue[i]==0)
&&&&&&&&&&
findvalue[find++];
选择题:(每题2分,共100分)
1、以下属于物理层的设备是( )
A、中继器&&&&&
B、以太网交换机&&&&
C、桥&&&&&&
2、在以太网中,是根据(
)地址来区分不同的设备的。&&&
A、LLC地址&&&&&
B、MAC地址&&&&&&&&
C、IP地址&& D、IPX地址
3、以下为传输层协议的是()
A、IP&&&&&&&&&&
B、ICMP&&&&&&&&&&&&
C、UDP&&&&
D、SPX &&&
4、以下对MAC地址描述正确的是()
A、由32位2进制数组成&&&&&&&&&&&&&
B、由48位2进制数组成
C、前6位16进制由IEEE负责分配&&&&&
D、后6位16进制由IEEE负责分配
5、以下属于数据链路层功能的是()
A、定义数据传输速率&&&&&&&&&&&&&&&&
B、定义物理地址
C、描述网络拓扑结构&&&&&&&&&&&&&&&&
6、IEEE802.3u标准是指()
A、以太网&&&&&&&&&&
B、快速以太网&&&&&&&&&
C、令牌环网&&&&&&&&&&&&
7、如果要将两计算机通过双绞线直接连接,正确的线序是()
A、1--1、2--2、3--3、4--4、5--5、6--6、7--7、8--8
B、1--2、2--1、3--6、4--4、5--5、6--3、7--7、8--8
C、1--3、2--6、3--1、4--4、5--5、6--2、7--7、8--8
D、两计算机不能通过双绞线直接连接
8、在V.35和V.24规程中,控制信号RTS表示()
A、数据终端准备好; B、数据准备好;
C、数据载体检测;&&
D、请求发送;& E、清除发送。
9、路由器作为网络互连设备,必须具备以下哪些特点。()
A、至少支持两个网络接口&&&&&&&&&
B、协议至少要实现到网络层
C、至少支持两种以上的子网协议&&
D、至少具备一个备份口
E、具有存储、转发和寻径功能&&&&&&
F、一组路由协议
G、必须有较高的协议处理能力
10、路由器的作用有()
A、异种网络互连
&&&&&&&&&&&&
B、子网间的速率适配
C、连接局域网内两台以上的计算机&&&
D、隔离网络,防止网络风暴,指定访问规则(防火墙)&&&&&&&&&&
E、子网协议转换&&&
F、加快网络报文的传递速度&&&&&&
G、路由(寻径):路由表建立、刷新、查找
H、报文的分片与重组
11、调用上一条历史命令的快捷键是()
A、CTRL-P&&&
B、CTRL-O&&&
C、ALT-P&&&
12、交换机工作在OSI七层的哪一层?()
A、一层&&&
B、二层&&&
C、三层&&&
D、三层以上
13、以下对CSMA/CD描述正确的是( )
A、在数据发送前对网络是否空闲进行检测&&&
B、在数据发送时对网络是否空闲进行检测
C、在数据发送时对发送数据进行冲突检测&&&
D、发生碰撞后MAC地址小的主机拥有发送优先权
14、以下对STORE AND FORWARD描述正确的是( )
A、收到数据后不进行任何处理,立即发送&&&
B、收到数据帧头后检测到目标MAC地址,立即发送
C、收到整个数据后进行CRC校验,确认数据正确性后再发送
D、发送延时较小&&&
E、发送延时较大
15、以下对交换机工作方式描述正确的是( )
A、可以使用半双工方式工作&&&
&&&&&&&&&&&
&&&B、可以使用全双工方式工作
C、使用全双工方式工作时要进行回路和冲突检测&&
&D、使用半双工方式工作时要进行回路和冲突检测
16、VLAN的主要作用有()
A、保证网络安全&&&
B、抑制广播风暴&&&
C、简化网络管理&&&
D、提高网络设计灵活性
17、在交换机中用户权限分为几个级别( )
18、在路由器的配置过程中查询以S开头所有命令的方法是()
A、直接使用?&&&
C、S ?&&& D、DIR
19、第一次配置路由器时可以使用的方法为( )
A、使用CON口本地配置&&&
B、使用CON口远程配置&&&
C、使用AUX口远程配置&&&
D、使用TELNET远程配置
20、在何种状态下可以为路由器改名()
A、普通模式&&&
B、超级模式&&&
C、全局模式&&&
D、接口模式
21、某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有
26台计算机,每个子公司在一个网段中,则子网掩码应设为()。
A、255.255.255.0&&&
B、255.255.255.128&&&
C、255.255.255.192&&&
D、255.255.255.224
22、与10.110.12.29 mask
255.255.255.224属于同一网段的主机IP地址是()。
A、10.110.12.0&&&
B、10.110.12.30&&&
C、10.110.12.31&&&
D、10.110.12.32
23、ARP协议的作用是()
A、将端口号映射到IP地址&&&
B、连接IP层和TCP层&&
C、广播IP地址&&&
D、将IP地址映射到第二层地址
24、当路由器接收的IP报文的TTL值等于1时,采取的策略是()
A、丢掉该分组&&&
B、将该分组分片&&&
C、转发该分组&&&
D、以上答案均不对
25、在NetWare 网络中,客户需要访问某个类型的服务器时,首先要发送一个
()广播报文来寻找服务器
26、IPX地址网络地址有()个字节
C、4&&& D、6
27、对于帧中继描述正确的是( )
A、使用具有本地意义的DLCI描述PVC&&&
B、使用具有全局意义的DLCI描述PVC
C、使用具有本地意义的DLCI描述SVC&&&
D、使用具有全局意义的DLCI描述SVC
28、对于INVERSE ARP的描述正确的是( )
A、通过广播方式解析对端网络地址&&&
B、通过多播方式解析对端网络地址
C、通过LMI信令解析对端网络地址&&&
D、通过广播方式解析对端DLCI
29、下列对于PAP协议描述正确的是( )
A、使用两步握手方式完成验证&&&
&B、使用三步握手方式完成验证
C、使用明文密码进行验证&&&
D、使用加密密码进行验证
30、X.25与帧中继对比描述正确的是()
A、X.25是面向连接的协议,传输正确性、稳定性高于帧中继
B、X.25具有两层结构,较帧中继简单
C、X.25对于IP而言传输效率低于帧中继
D、X.25可以提供比帧中继更多的服务
31、X.25使用映射的作用是()
A、映射本地IP到对端端口值,以便路由器发送数据时确认发送端口
B、映射本地IP到本地端口值,以便路由器发送数据时确认发送端口
C、映射对端IP到本地端口值,以便X.25交换网络查找数据发送路径
D、映射对端IP到对端端口值,以便X.25交换网络查找数据发送路径
32、各个路由协议衡量路由的好坏标准是( )
A、路由&&&
B、路由器优先级&&&
C、路由权&&&
D、包转发率
33、以下是基于链路状态算法的动态路由协议是()
B、ICMP&&&
C、IGRP&&&
34、三种路由协议 RIP 、OSPF 、IGRP
各自得到了一条到达目标网络,在华为路由器默认情况下,网络最终选选定()路由作为最优路由。
B、OSPF&&&
C、IGRP&&&
D、静态路由
35、路由环问题会引起()
A、循环路由器&&&
B、慢收敛&&&
C、路由器重起&&&
D、路由不一致
36、OSPF 协议适用于基于 IP 的( )
A、大型网络&&&
B、中小型网络&&&
C、更大规模的网络&&&
D、isp与isp之间
37、在rip中metric等于()为不可达
38、对于ISDN BRI描述正确的是()
A、2B+D&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
C、使用同轴电缆作为物理传输介质&&&
&D、使用普通电话线作为物理传输介质
39、设置话机模拟入呼叫时需要检查的被叫号码或子地址的命令是()
pots1-answer&&&
pots2-answer&&&
answer1&&&
D、isdn answer2
40、使能DDR的命令是()
A、Access-list&&&
in-band&&&
C、Dialer-group&&&
D、Dialer-list
44、RIP 协议适用于基于 IP 的()
A、大型网络&&&
B、中小型网络&&&
C、更大规模的网络&&&
D、isp与isp之间
45、以下的协议中,哪些是面向连接的协议( )。
B、Ethernet&&&
D、Frame-relay
题目:请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。用c语言编写(不能用数字转换成字符串)。
#include&stdio.h&
#include&math.h&
//函数havesamenum确认num是否满足条件
int havesamenum(int num)
&int i=0,j;
&char a[10] = {0};
&while(num&0)
& a[j]+=1;
& num=num/10;
&while(a[i]&=1&&i&10)
&if (i&10)
& return 1;
& return 0;
void main(void)
&& int i,j,m;
&m=(int)sqrt(99999);
&for(i=1;i&m;i++)
if (1==havesamenum(j))
printf("m\t",j);
}2 写出程序删除链表中的所有接点
void del_all(node *head)
while(head!=NULL)
free(head);
cout&&"释放空间成功!"&&
8、光缆的基本结构由缆芯、加强元件和护套组成。
9、常用的光缆结构形式有层绞式光缆、束管式光缆、骨架式光缆和带状式光缆。
10、在网状网的拓扑结构中,N个节点完全互连需要N(N-1)/2 条传输线路。
11、在星型网的拓扑结构中,N个节点完全互连需要N-1 条传输线路。
12、ATM技术是电路交换技术和分组交换技术的结合。
Struct和Union内存存储问题
1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍;
2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma
pack修饰的情况,关于struct请详细参考另外一个帖子。
3,这里所说的struct和union的对齐,是指其作为其他复杂对象中的元素的时候要求的对齐,对于本身大小的计算并没有关系。本身的大小只和其所包含的基本元素的对齐有关系。
&char a[9]; //对齐大小是1,大小是9个字节
& //对齐大小是4,大小是4个字节
所以该union的对齐大小是4个字节;大小为大于等于max(9,4)=9并为4的整数倍,所以是12字节。
union U1_Another
&char a[9]; //对齐大小是1,大小是9个字节
& //对齐大小是8,大小是8个字节
所以该union的对齐大小是8个字节,大小是大于等于9并为8的整数倍,即为16字节;
&U1 //对齐大小是4个字节,大小是12字节
& //对齐大小是8个字节,大小是8字节
所以该union的对齐大小是8个字节,大小是16;
&char a[13];
//对齐大小是1字节,位置是[0,12]
//对齐大小是8字节,位置是[16,23]
所以该结构体是8字节对齐,大小为24个字节;
&S1 //对齐大小是8字节,位置是[0,23]
&U1 //对齐大小是4字节,位置是[24,35]
所以该结构体的对齐大小是8字节,大小是40字节;
※winsock建立连接的主要步骤
服务器端:socket()建立套接字,绑定bind()并监听listen(),用accept()等待客户端连接.
客户端:socket()建立套接字,连接connect()服务器,连接上后使用send()和recv(),在套接字上读写数据,直至数据交换完毕,closesocket()关闭套按字.
服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接.该新产生的套接字使用send()和recv()读写数据,直至数据交换完毕,closesocket()关闭套接字.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 机器人教师笔试题目 的文章

 

随机推荐