【考研计算机专业课】大连理工大学计算机专业必备笔试面试锦囊.docx

上传人:文*** 文档编号:68226070 上传时间:2022-12-27 格式:DOCX 页数:93 大小:112.33KB
返回 下载 相关 举报
【考研计算机专业课】大连理工大学计算机专业必备笔试面试锦囊.docx_第1页
第1页 / 共93页
【考研计算机专业课】大连理工大学计算机专业必备笔试面试锦囊.docx_第2页
第2页 / 共93页
点击查看更多>>
资源描述

《【考研计算机专业课】大连理工大学计算机专业必备笔试面试锦囊.docx》由会员分享,可在线阅读,更多相关《【考研计算机专业课】大连理工大学计算机专业必备笔试面试锦囊.docx(93页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、计算机专业必备笔试面试锦囊1 . static有什么用途?(请至少说明两种)1)在函数体,个被声明为静态的变量在这函数被调用过程中维持其值不变.2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但 不能被模块外其它函数访问。它是个本地的全局变量。3)在模块内,个被声明为静态的函数只可被这模块内的其它函数调用。那就是,这个 函数被限制在声明它的模块的本地范围内使用2 .引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。3 .描述实时系统的基本特性在特定时间内完成

2、特定的任务,实时性与可靠性。4 .全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。5 .什么是平衡叉树?左右子树都是平衡叉树且左右子树的深度差值的绝对值不大于1。6 .堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。7 .什么函数不能声明为虚函数?constructor函数不能声明为虚函数。8 .冒泡排序算法的时间复杂度是什么?时间复杂度是O(n人2).9 .写出float x与、零值比较的if语句。if(x0.000001&x-0.000001)10 . Internet采用哪种网络协议?该协议的主要层次结构?Tcp/ip协议主要层次结构

3、为:应用层/传输层/网络层/数据链路层物理层。11 . Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析协议)12 . IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和、子网掩码按位与上之后才能区分哪 些是网络位哪些是主机位。13 .用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。 写出C程序。循环链表,用取余操作做14 .不能做switch。的参数类型是:switch的参数不能为实型。Tag标签:C+,华为,笔试题华为C/C+笔试题(2)1 .某32位系统

4、下,C+程序,请计算sizeof的值#include #include void Foo ( char str100)printf(sizeof(str)=%d nn, sizeof(str) ); )main () (char str = ”;char *pl = str ;int n = 10;void *p2 = malloc( 100 );printf(sizeof(str)=%d n, sizeof(str);printf(sizeof(pl)=%d n, sizeof(pl);printf(sizeof(n)=%d n, sizeof(n);printf(nsizeof(p2)=%

5、d n, sizeof(p2);Foo(str); )答:(1)17 (2)4 (3) 4 (4)4 (5)42 .回答下面的问题(1)头文件中的ifndef/define/endif干什么用?预处理 答:防止头文件被重复引用(2) #include 和 #include filename.h有什么区别? 答: 对于#includefilename.h ,编译器从标准库路径开始搜索filename.h对于#include “filename.h”,编译器从用户的工作路径开始搜索filename.h(3)在C+程序中调用被C编译器编译后的函数,为什么要加extern、。声明?答:函数和变量被C+

6、编译后在符号库中的名字与C语言的不同,被extem ”C修饰的变 量和函数是按照(:语言方式编译和连接的。由于编译后的名字不同,C+程序不能直接调用C 函数0C+提供了一个C连接交换指定符号externC来解决这个问题。3 .回答下面的问题(1)请问运行Test函数会有什么样的结果?Void GetMemory(char *p, int num) ( *p = (char *)malloc(num); ) void Test(void) ( char *str = NULL; GetMemory(&str, 100); strcpy(str, hello”); printf(str); 答:输

7、出“hello”(2)请问运行Test函数会有什么样的结果?void Test(void) ( char *str = (char *) malloc(100); strcpy(str, hellO); free(str); if(str != NULL) ( strcpy(str, world); printf(str);答:输出、world”(3)请问运行Test函数会有什么样的结果?char *GetMemory(void)(char p = hello world;return p;)void Test(void)(char *str = NULL;str = GetMemory();

8、printf(str);)答:无效的指针,输出不确定4 .编写strcat函数已知 strcat 函数的原型是 char * strcat (char *strDestz const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C+ + /C的字符串库函数,请编写函数strcat答:VC源码:char * cdecl strcat (char * dst, const char * src)(char * cp = dst;while( *cp )cp+; /* find end of dst */while( *cp+ = *src+ )

9、; /* Copy src to end of dst */return( dst ); /* return dst */(2)strcat能把strSrc的内容连接到strDest,为什么还要char类型的返回值?答:方便赋值给其他变量5 .程序什么时候应该使用线程,什么时候单线程效率髙(1)耗时的操作使用线程,提髙应用程序响应(2)并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。(3)多CPU系统中,使用线程提髙CPU利用率(4)改善程序结构.个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。其他情况都使用单线程。6 .

10、C+ +中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?答:栈:存放局部变量,函数调用参数,函数返回值,函数返回地址。由系统管理堆:程序运行 时动态申请,new和malloc申请的内存就在堆上7 .关于内存对齐的问题以及sizof()的输出答:编译器自动对齐的原因:为了提髙程序的性能,数据结构(尤其是栈)应该尽可能地在自然 边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的 内存访问仅需要一次访问。8 . int i=10, j = 10, k=3; k* = i+j; k 最后的值是?答:60(此题考察优先级,实际写成:k* = (i+j);赋值运

11、算符优先级最低9 .动态连接库的两种方式?答:调用个DLL中的函数有两种方法:1 .载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使 得他们就像本地函数样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供 了载入DLL时所需的信息及DLL函数定位。2 .运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibrary或 LoadLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取 DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了

12、。如此即可避免导入 库文件了10 .函数模板与类模板有什么区别?答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由 程序员在程序中显式地指定。11 .Windows是内核级线程么。答:见下题12 . Linux有内核级线程么。答:线程通常被定义为个进程中代码的不同执行路线。从实现方式上划分,线程有两种类型: 、用户级线程”和、内核级线程。用户线程指不需要内核支持而在用户程序中实现的线程,其不 依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用 户线程。这种线程甚至在象DOS这样的操作系统中也可实现,但线程的调度需要用户程序完 成,

13、这有些类似Windows 3.x的协作式多任务。另外一种则需要内核的参与,由内核完成 线程的调度。其依赖于操作系统核心,由内核的内部需求进行创建和撤销,这两种模型各有其 好处和缺点。用户线程不需要额外的内核开支,并且用户态线程的实现方式可以被定制或修改 以适应特殊应用的要求,但是当个线程因I/O而处于等待状态时,整个进程就会被调度程 序切换为等待状态,其他线程得不到运行的机会;而内核线程则没有各个限制,有利于发挥多 处理器的并发优势,但却占用了更多的系统开支。Windows NT和OS/2支持内核线程。Linux支持内核级的多线程13B使用线程是如何防止出现大的波峰。答:意思是如何防止同时产生

14、大量的线程,方法是使用线程池,线程池具有可以同时提髙调度 效率和限制资源使用的好处,线程池中的线程达到最大数时,其他线程就会排队等候。14B写出判断ABCD四个表达式是否正确,若正确,写出经过表达式中a的值int a = 4;(A) a += (a + + );(B) a += ( +a);(C) (a+) += a;(D) (+a) += (a+);a = ?答:C错误,左侧不是个有效变量,不能赋值,可改为( +a) += a;改后答案依次为9,10,10,1115 . MFC中CString是类型安全类么?答:不是,其它数据类型转换到CString可以使用CString的成员函数Forma

15、t来转换16 . C+ +中为什么用模板类。答:(1)可用来创建动态增长和减小的数据结构(2)它是类型无关的,因此具有很髙的可复用性。(3)它在编译时而不是运行时检査数据类型,保证了类型安全(4)它是平台无关的,可移植性(5)可用于基本数据类型17 . CSingleLock是干什么的。答:同步多个线程对个数据类的同时访问18 .局部变量能否和全局变量重名?答:能,局部会屏蔽全局要用全局变量,需要使用:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用 到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两 个循环体内都定义个同名的局

16、部变量,而那个局部变量的作用域就在那个循环体内。19 .如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个 在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern 方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。20 .全局变量可不可以定义在可被多个C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋 初值,此时连接不会出错。21

17、.语句for( ; 1 ;)有什么问题?它是什么意思?答:无限循环,和while(l)相同。22 . dowhile 和 whiledo 有什么区别?答:前个循环一遍再判断,后一个判断以后再循环。23 .请写出下列代码的输出内容#include main ()(int a,bzczd;a=10;b=a+;c=+a;d=10*a+;printf (nb, c d: %d, %d, %d”, b, c d);return 0;)答:, 12, 120Tag标签:C+z华为,笔试,笔试题华为C/C+笔试题(3)1.找错#define MAX_SRM 256DSN get_SRM_no()(stati

18、c int SRM_no;int I;for (1=0; I=MAX_SRM)return (NULL_SRM);elsereturn SRM no;答:(1) . SRM_no没有赋初值(2) .由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_n。 变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static 声明(3) 出程序运行结果int sum(int a) (auto int c=0;static int b=3;c+=l;b+=2;return(a+b+C);)void main()(int I;int a=2;for(1

19、=0;I5;I+) (printf (n%d/ sum(a);)答:8,10,12,14,16该题比较简单。只要注意b声明为static静态全局变量,其值在下次调用时是可以保持住原来 的赋值的就可以。int func(int a)(int b;switch(a)(case 1: b=30;case 2: b=20;case 3: b=16;default: b=0;return b;则 func(l)=?答:func(l)=O因为没有break语句,switch中会一直计算到b=0。4.int a3;a0=0; a1=1; a2=2;int *p, *q;p=a;q=&a2;则 aq-p=?答

20、:aq-p=a2 = 2;这题是要告诉我们指针的运算特点5,定义int *a34,则变量占有的内存空间为:答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空 间为 3x4x4=48。6. CObject类中的析构函数为什么是虚函数面试SE时,很多公司喜欢问到虚函数相关。MFC类库中,CObject类的重要性不言自明的。 在CObject的定义中,我们看到个有趣的现象,即CObject的析构函数是虚拟的。在AFX.H中,CObject的定义:class CObject(public:/ Object model (types, destruction, alloc

21、ation)virtual CRuntimeClass* GetRuntimeClass() const;virtual CObject。; /virtual destructors are necessary);为什么MFC的编写者认为virtual destructors are necessary (虚拟的析构函数是必要 的)?在著名的VC教程”精通Visual C+ for Windows 95/NT”(电子工业版,1997年5 月版,胡俭,丘宗明等著)第99页中有这样一段话:、如果CObject的析构函数不是虚拟的,派生类就不会自动地得到虚拟的 析构函数,当对象 撤消时就会带来问题只

22、有当前类的析构函数得到调用而基类的析构函数就得不到调用 我认为这段解释是这本很不错的书中一个不应出现的严重错误。其意思是说:若:class CBasepublic:-CBase() ;;class CChild : public CBasepublic:-CChild() ;main ()Child c;return 0;上段代码在运行时,当栈框中的自动对象C被撤消时,只调用CChildO,而不调用CBase().我想但凡对C+继承性理论有所了解的人都会立刻指出这是错误的.由于在生成CChild对象c时,实际上在调用CChild类的构造函数之前必须首先调用其基类 CBase的构造函数,所以当撤

23、消c时,也会在调用CChild类析构函数之后,调用CBase类 的析构函数(析构函数调用顺序与构造函数相反)。也就是说,无论析构函数是不是虚函数,派 生类对象被撤消时,肯定会依次上调其基类的析构函数。那么为什么CObject类要搞一个虚的析构函数呢?仍以上面代码为例,如果main。中有如下代码:CBase * pBase;CChild c;pBase = &c;a 那么在、当pBase指针被撤消时,调用的是CBase的析构函数还是CChild的呢?显然是 CBase的(静态联编)。但如果把CBase类的析构函数改成virtual型,当pBase指针被 撤消时,就会先调用CChild类构造函数,

24、再调用CBase类构造函数。在这个例子里,所有对象都存在于栈框中,当离开其所处的作用域时,该对象会被自动撤消, 似乎看不出什么大问题。但是试想,如果CChild类的的构造函数在堆中分配了内存,而其析 构函数又不是virtual型的,那么撤消pBase时,将不会 调用CChild:CChild。,从而 不会释放CChild:CChild()占据的内存,造成内存泄露。而将CObject的析构函数设为virtual型,贝所有CObject类的派生类的析构函数都将自 动变为virtual型,这保证了在任何情况下,不会出现由于析构函数未被调用而导致的内存泄 露。这是MFC将CObject:CObject

25、。设为virtual型的真正原因。注意:析构函数可以为virtual型,构造函数则不能。Tag标签:C+,华为,笔试,笔试题华为C/C+笔试题(4)、判断题1、有数组定义加122 = 1,2,3);贝1冋0:|1的值为()。(正确)2、int (*ptr)。,则ptr是维数组的名字。(错误int (*ptr)。;定义一个指向函数的指 针变量)3、指针在任何情况下都可进行,号=,=运算。(错误)4、switch(c)语句中 c可以是 int,long,char,float,unsigned int 类型。(错,不能 用实形)二、填空题、在windows下,写出运行结果char str = Hel

26、lo;char *p=str;int n = 10;sizeof(str) = ()sizeof(p) = ()sizeof(n) = () void func(char str100)sizeof(str) = ()答案:6, 4, 4, 42、void getmemory(char *p, int num) *p=(char *) malloc(num);void test(void)(char *str=NULL;getmemory(&str,100);strcpy(str,hello); printf(str);)运行test函数有什么结果?() 答案:输出hello,但是发生内存泄漏

27、。 设 int arr = 6,7,8,9,10);int *ptr=arr;*(ptr+ + ) + = 123;printfC/d,%d”, *ptr, *( + + ptr);答案:8, 8o这道题目的意义不大,因为在不同的编译器里printf的参数的方向是不样的, 在vc6.0下是从有到左,这里先( + + ptr)后pt,于是结果为8, 8二、编程题1、不使用库函数,编写函数 int strcmp(char *sourcez char *dest)相等返回。,不等返回1;答案:、int stramp(char *source, char *dest)(assert(source ?

28、=NULL)&(dest?=NULL);int i,j;for(i=0; sourcei=desti; i+) if(sourcei=01 & desti=*0)return 0;else return -1;)答案:二、int strcmp(char *source, char *dest)while ( (*source != 、) & (*source = *dest)source+; dest+;)return ( (*source) - (*dest) ) ? -1 : 0; )2、写函数int fun(char *p)判断一字符串是否为回文,是返回!.,不是返回。,出错返 回:!答

29、案:、int fun(char *p) (if(p=NULL) return -1;else( int length = 0; int i = 0;int judge = 1;length = strlen(p);for(i=0; ilength/2; i+)|if(pi!=plength-l-i) judge = 0;break;)if(judge = 0) return 0;else return 1;答案:二、int fun(char *p) (int len = strlen(p) - 1; char *q = p + len;if (?P) return -1; while (p q

30、) if ( (*p+) ?= (*q) return 0; return 1;)Tag标签:C+,华为,笔试,笔试题华为C/C+笔试题(5)(一)初级题1 .什么是预编译,何时需要预编译: 答:(1)总是使用不经常改动的大型代码体(2)程序由多个模块组成,所有模块都使用组标准的包含文件和相同的编译选项。在这种情 况下,可以将所有包含文件预编译为个预编译头2 . char * const p char const * p const char *p 上述三个有什么区别?答:char * const p; /常量指针,p的值不可以修改char const * p; /指向常量的指针,指向的常量值

31、不可以改const char *p: 和 char const *p3.char strl = nabc;char str2 = abc;const char str3 = nabcn;const char str4 = nabcn;const char *str5nabcn;const char*str6 = nabcn;char *str7 = nabcn;char *str8 = abc”;cout (strl=str2)endl;cout (str3=str4)endl;cout (str5=str6)endl;cout (str7=str8)endl;结果是:0 0 str,str2

32、,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。4 .以下代码中的两个sizeof用法有问题吗?void Uppercase ( char str ) /将str中的小写字母转换成大写字母 (for( size_t i=0; isizeof(str)/sizeof(str0); +i ) if( ,a,=stri & stri(Y)?(Y):(X) 结尾没有;10 .嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。答:while(l)或者 for(;)11 .关键字static的作用是什么?答:定义静态变量12

33、 .关键字const有什么含意?答:表示常量不可以修改的变量。13 .关键字volatile有什么含意?并举出三个不同的例子?答:提示编译器对象的值可能在编译器未监测到的情况下改变。14 . int (*s10)(int)表示的是什么啊?答:int(*s10)(int)函数指针数组,每个指针指向个int func(int param)的函数。15 .有以下表达式:int a = 248; b=4; int const c=21; const int *d = &a;int const e=&b; int const *f const =&a;请问下列表达式哪些会被编译器禁止?为什么?答:*c=

34、32; d=&b; *d=43; e=34; e=&a; f=0x321f;16 .交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a = 5,b=3;答:有两种解法,种用算术算法,种用人(异或)a = a + b;b = a - b;a = a - b;ora = aAb;/Z 只能对 int,char,.b = aAb;a = aAb;ora A= b A = a;17 .#include #include void getmemory(char *p)(p=(char *) malloc(100);strcpy (p r nhello world1);)int main()

35、(char *str=NULL;ge tmemory(str);printf(%s/n,str);free(str);return 0;)答:程序崩溃,getmemory中的malloc不能返回动态内存,free。对str操作很危险18 .列举几种进程的同步机制,并比较其优缺点。答:原子操作、信号量机制、自旋锁、管程、会合、分布式系统20 .进程之间通信的途径答:共享存储系统、消息传递系统、管道:以文件系统为基础21 .进程死锁的原因和4个必要条件答:资源竞争及进程推进顺序非法:互斥、请求保持、不可剥夺、环路22 .死锁的处理答:鸵鸟策略、预防策略、避免策略、检测与解除死锁23,操作系统中进程

36、调度策略有哪几种?答:FCFS(先来先服务),优先级,时间片轮转,多级反馈24 .类的静态成员和非静态成员有何区别?答:类的静态成员每个类只有一个,非静态成员每个对象一个25 .纯虚函数如何定义?使用时应注意什么?答:virtual void f()=0;是接口,子类必须要实现26 .数组和链表的区别答:数组:数据顺序存储,固定大小 链表:数据可以随机存储,大小可动态改变27 . ISO的七层模型是什么? tcp/udp是属于哪层? tcp/udp有何优缺点?答:应用层、表示层、会话层、运输层、网络层、物理链路层、物理层tcp/udp属于运输层TCP服务提供了数据流传输、可靠性、有效流控制、全

37、双工操作和多路复用技术等。与TCP不同,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少tcp:提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好udp:不提供稳定的服务,包头小,开销小28 . (void *)ptr和(*(void*)ptr的结果是否相同?其中ptr为同一个指针答:(void *)ptr 和(*(void*)ptr 值是相同的29 .int main()int x=3;printf(%d,x);return 1;问函数既然不会被其它函数调用,为什么要返回1?答:main中,c标准认为。表示成功

38、,非。表示错误。具体的值是某中具体出错信息30 .要对绝对地址。xl。赋值,我们可以用(unsigned int*)0xl00000 = 1234;那么要是想让程序跳转到绝对地址是。xl。去执行,应该怎么做?答:*(void (*)( )0x100000 )(); 首先要将0X100000强制转换成函数指针,即:(void (*)0)0x100000,然后再调用它: (void (*)()0x100000)0;用 typedef 可以看得更直观些:typedef void(*)() voidFuncPtr; *(voidFuncPtr)0xl00000)();31 .已知一个数组table,用

39、个宏定义,求出数据的元素个数答:#define NTBL#define NTBL (sizeof(table)/sizeof(table0)32 .线程与进程的区别和联系?线程是否具有相同的堆栈? dll是否有独立的堆栈?答:进程是死的,只是一些资源的集合,真正的程序执行都是线程来完成的,程序启动的时候 操作系统就帮你创建了一个主线程。每个线程有自己的堆栈。DLL中有没有独立的堆栈,这个 问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只 有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL 没有自己独立的堆栈?如果DLL中

40、的代码是由DLL自己创建的线程所执行,那么是不是说 DLL有独立的堆栈?以上讲的是堆栈,如果对于堆来说,每个DLL有自己的堆,所以如果是从DLL中动态分配的 内存,最好是从DLL中删除,如果你从DLL中分配内存,然后在EXE中,或者另外一个DLL 中删除,很有可能导致程序崩溃33 .unsigned short A = 10;printf(A = %un, A);char c=128;printf(c = %dn,c);输出多少?并分析过程答:第一题,A =0xfffffff5,但输出的是 uint。所以输出 4294967285。第二题,c=OxlO,输出的是int,最髙位为1,是负数,所以它的值就是。xOO的补码就是128I所以输出128。这两道题都是在考察二进制向int或uint转换时的最髙位处理。(二)中级题1. -1,2,7,28126请问28和126中间那个数是什么?为什么?答:第一题应该是43-1=63规律是n人3-1(当n为偶数。,2, 4)n人3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com