1、第二部分技术测试,我考的是软件,那题啊70%都是操作系统,晕死,诸多都忘掉了,尚有包括图像,软件工程,网络,汇编语言,C,C++, 第一部分是单项选择:系统测试是对什么的测试( 系统测试(System Test, ST)是将通过测试的子系统装配成一个完整系统来测试。);软件详细设计是对什么的设计;等等诸多 第二部分多项选择: 中断:CPU正常运行程序时,因为微处理器内部事件或外设祈求,引起CPU中断正在运行的程序,转去执行祈求中断的外设或内部事件的中断服务子程序,中断服务子程序执行完成,再返回被中断的程序,这一过程称为中断。利用中断能够防止不停检测外部设备状态,提升CPU效率。中断源:内
2、部中断(INT n)和外部中断.发觉中断就转去执行,但要先保护中断点(目前CS,IP和PSW入栈),然后到中断服务子程序,完成后返回断点处继续执行。中断向量表:中断服务子程序的入口地址放在中断向量表中。中断优先级,允许中断嵌套。中断屏蔽:CPU有软件设置对中断源的中断祈求不于响应。中断响应时间:发出中断开始到执行中断服务子程序之前。 千兆以太网和迅速以太网的区分,迅速以太网包括10M,100M,1000M;千兆以太网是迅速以太网里的一个. 点对点协议都有哪几个(ppp,hdlc,x.25,atm) 城域网建设: 虚继承和接口的区分:虚函数继承是为了实现多态。多态性是为了实现将接口和实现
3、进行分离。纯虚函数是的类是抽象类,抽象类不会定义默认的拷贝结构函数。虚拟继承是为了实现多重继承。处理子类继承中调用父类含糊的概念。 图像的格式等等诸多(.bmp .jpeg .dif .gif .pcx .pcon,) 第三部分简答: (1)线程是什么,还进程的区分? 1 线程,和进程的区分 进程是具备一定独立功效的程序有关某个数据集合上的一次运行活动,进程是系统进行资源分派和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组存储器和栈),
4、不过它可与同属一个进程的其他的线程共享进程所拥有的所有资源. 一个线程能够创建和撤消另一个线程;同一个进程中的多个线程之间能够并发执行.当进程退出后该进程所产生的所有线程都会被强制退出并清除。线程是比进程更小的处理模块。进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区分在于:简而言之,一个程序最少有一个进程,一个进程最少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提升了程序的运行效率。线程在执行过程中与进程还是有区分的。每个独立的线程有一个程序运
5、行的入口、次序执行序列和程序的出口。不过线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分能够同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分派。这就是进程和线程的重要区分。 2 进程间的通信怎样实现? 目前常用的进程间的通信方式有:信号,信号量,消息队列,共享内存。信号和信号量是不一样的,他们都可用来实现同时和互斥,但前者是使用信号处理器来进行的,后者是使用P,V操作来实现的。消息队列是比较高级的一个进程间通信措施,因为它真的能够在进程间传送message,一
6、个消息队列能够被多个进程共享(如linux下的IPC),假如一个进程的消息太多,一个消息队列放不下,也能够用多于一个消息队列。共享消息队列的进程所发送的消息除了message自身尚有一个标志,这个标志能够指明该消息是哪个进程或者哪类进程接收。每一个共享消息队列的进程针对这个队列也有自己的标志,能够用来申明自己的身份。 3 在网络编程中设计并发服务器,使用多进程与多线程有什么区分? 用多进程时每个进程有自己的地址空间,线程则共享地址空间。所有其他区分都是由此而来:1速度:线程产生速度快,线程间通信快,切换快,因为它们在同一个地址空间内。2:资源利用率:线程的资源利用率比很好。 (2)实时录
7、制音频出现差错的原因,怎样改进。 (3)static的作用:首先static的最重要功效是隐藏,其次因为static变量存储在静态存储区,因此它具备持久性和默认值0。详细:隐藏,当我们同时编译多个文献时,所有未加static前缀的全局变量和函数都具备全局可见性。static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static能够控制变量的可见范围,说到底static还是用来隐藏的。static的第三个作用是默认初始化为0。其实全局变量也具备
8、这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点能够减少程序员的工作量。 (4)死锁预防和死锁预防的区分。 是计算机系统中多道程序并发执行时,两个或两个以上的进程因为竞争资源而导致的一个相互等候的现象(僵局),如无外力作用,这些进程将永远不能再向前推进。产生死锁的四个必要条件:⑴互斥条件:进程访问的是临界资源,那个资源一次只能被一个进程所使用。⑵不剥夺条件:一个资源仅能被占有它的进程所释放,而不能被其他进程剥夺。⑶部分分派:(祈求和保持条件)一个进程在祈求新的资源的同时,保持对某些资源的占有。⑷环路等候条件:存在一个进程的环路链,
9、链中每一个进程占用有着某个或某些资源,又在等候链中的另一个进程占有的资源。依照生产死锁的四个必要条件,只要使用其中之一不能成立,死锁就不会出现。但必要条件1是由设备的固有特性所决定的,不但不能变化,相反还应加以确保,因此实际上只有三种措施。防止死锁与预防死锁的区分在于,预防死锁是设法最少破坏产生死锁的必要条件之一,严格地预防死锁的出现。防止死锁,它是在进程祈求分派资源时,采取银行家算法等预防系统进入不安全状态。 第四部分编两个小程序: (1)用指针实现输入偶数输出1+1/2+1/4+1/6+....+1/n;输入奇数,输出1+1/3+1/5+1/7+....+1/n; (2)用汇编实现冒
10、泡排序 一直到快一点才做完啊,真的很伤脑筋啊 中兴笔试题目 公共题:1、数据库中 XXX 和XXX操作可恢复数据库。undo redo 吧? 更新日志前undo 更新日志后redo能够回复数据库。 2、数据库的核心是XX。数据库管理系统/书上是数据库 3、头文献中<> 和“”的区分? <>是编译器从标准库途径开始寻找“”是从用户途径开始寻找 4、定义一个宏,输入两个参数,输出积。#define Mutil(a,b) ((a)*(b)) 1、18分的题: char *GetMemory(void) { char p[] = "hello world";
11、return p; } void Test(void) { char *str = NULL; str = GetMemory(); printf(str); }请问运行Test 函数会有什么样的成果? 答:也许是乱码。因为GetMemory 返回的是指向“栈内存” 的指针,该指针的地址不是 NULL,但其原先的内容已经被清除,新内容不可知。 2、析构函数什么时候运行,实现什么功效? 析构函数是在类生命周期结束的时候由系统自动调用。如一个对象的作用域结束的时,或者是一个对象使用new动态结构时,在使用delete释放它时,delete会调用它。功效是释放一个对
12、象的存储空间。析构函数没有返回值,没有参数,不能重载。 7、全局变量和局部变量的区分。 全局变量:全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其他文献中的代码)都能够使用。全局变量不受作用域的影响,问题能够使用的(也就是说,全局变量的生命期一直到程序的结束)。假如在一个文献中使用extern核心字来申明另一个文献中存在的全局变量,那么这个文献能够使用这个数据。局部变量:局部变量出目前一个作用域内,它们是局限于一个函数的。局部变量常常被称为自动变量,因为它们在进入作用域时自动生成,离开作用域时自动消失。核心字auto能够显式地阐明这个问题,不过局部变量默以为auto,因此没有必要
13、申明为auto。 1:作业调度程序从处在( D)状态的队列中选择适当的作业的作业投入运行。(3分) A 运行 B 提交 C 完成 D后备 2:SQL语言中,删除一个表的命令是(B )(3分) A CLEAR TABLE B DROP TABLE C DELETE TABLE// D REMOVE TABLE 答:TRUNCATE清空表,SQL中删除表只有DROP命令。Delete删除数据是DML,DROP是DDL,REVOKE是DCL. 3:ATM采取的线路复用方式为(C )(3分) A 频分多路复用B 同时时分多路复用C 异步时分多路复用D 独占信道ATM:
14、Asynchronous Transfer Mode 异步传输方式。 4:数据库中只存储视图的(C )(3分) A操作 B 对应的数据 C 定义 D 限制 5:什么是虚拟设备?为何在操作系统中引入虚拟设备?(10分) 答:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的逻辑设备。 6:TCP为何采取三次握手来建立连接,若采取二次握手能够吗,请阐明原因?(16分) 答: TCP对话通过三次握手来初始化。三次握手的目标是使数据段的发送和接收同时;告诉其他主机其一次可接收的数据量,并建立虚连接。T
15、CP要提供可靠的服务。 三次握手的简单过程:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等候服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完成,客户端和服务器进入ESTABLISHED状态,完成三次握手。采取二次握手能够不?不能够。二次握手不可行,因为:假如因为网络不稳定,虽然客户端此前发送的连接祈求以抵达服
16、务方,但服务方的同意连接的应答未能抵达客户端。则客户方要重新发送连接祈求,若采取二次握手,服务方收到重传的祈求连接后,会以为是新的祈求,就会发送同意连接报文,并新开进程提供服务,这么会导致服务方资源的无谓浪费。 7:什么是分布式数据库?(12分) 答:分布式数据库系统一般使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整拷贝副本,并具备自己局部的数据库,位于不一样地点的许多计算机通过网络相互连接,共同组成一个完整的、全局的大型数据库。 这种组织数据库的措施克服了物理中心数据库组织的弱点。首先,减少了数据传送代价,因为大多数的对数据库的访问操作都是针
17、对局部数据库的,而不是对其他位置的数据库访问;其次,系统的可靠性提升了诸多,因为当网络出现故障时,仍然允许对局部数据库的操作,并且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很轻易实现。然而有些功效要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,并且甚至抵消许多其他的优点。 分布式数据库系统重要特点: · 多数处理就地完成; · 各地的计算机由数据通信网络相联系。 · 克服了中心数据库的弱点:减少了数
18、据传输代价; · 提升了系统的可靠性,局部系统发生故障,其他部分还可继续工作; · 各个数据库的位置是透明的,以便系统的扩充; · 为了协调整个系统的事务活动,事务管理的性能花费高; 数据分片 类型:(1)水平分片:按一定的条件把全局关系的所有元组划提成若干不相交的子集,每个子集为关系的一个片段。(2)垂直分片:把一个全局关系的属性集提成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。 (3)导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。 (4)混合分片:以上三种措施的混合。能够先水平分片再垂直分片,或先垂直分片再水平
19、分片,或其他形式,但他们的成果是不相同的。 条件: (1)完备性条件:必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。 (2)可重构条件:必须确保能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。 (3)不相交条件:要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。 数据分派方式 (1)集中式:所有数据片段都安排在同一个场地上。 (2)分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。 (4)全复制式:数据在每个场地
20、重复存储。也就是每个场地上都有一个完整的数据副本。 (5)混合式:这是一个介乎于分割式和全复制式之间的分派方式。 C++部分(50分) 1:设有“int w[3][4];”,p是与数组名w等价的数组指针,则pw的初始化语句为int **p=w; 或者int (*p)[4]=w; 2:要使引用pr代表变量“char *p”,则pr的初始化语句为char *&pr = p(3分) 3:“零值”能够是0,0.0,FALSE或者“空指针”。例如int变量n与“零值”比较的if语句为:if(n==0),则BOLL flag与“零值”比较的if语句为if(!a);float x与“零
21、值”比较的if语句为:const float m=0.000001; if((x>=m&&x<=m) 。(6分) 4:社有如下语句:(3分) Int x; () *px=0; 则选择如下哪条语句可将x值置为0。 A int *px; B int const *px=&x; C int const px=&x; D const int *px=&x; 答:正确答案:int *const px = &x;(B) 5:设viod f1(int *m,long&n);int a;long b;则如下调用合法的是(B )(3分) A f1(a,b) B f
22、1(&a,b)
C f1(a,&b) D f1(&a,&b)
6:请写出如下代码的运行成果(6分)
Int main(){int a,b,c,d; a=0; b=1 ;c=2; d=3; printf(“%d”,a+++b+c+++d++);}
答:6 运算后a=1 b=1 c=3 d=4;
7:写出下面函数的功效(12分)
Template 23、且是逆序互换。
8写一段代码判断一个单向链表中是否有环。(14分)
给出如下结构
Struct node
{steuct *next;
};
Typedef stuct node Node;
答:设置两个游标p1,p2。P1 24、in the singly linked list sll or not. */
int find_circle(list sll)
{
list fast = sll;
list slow = sll;
if (NULL == fast)
{
return -1;
}
while (fast && fast->next)
{
fast = fast->next->next;
slow = slow->next;
if (fast == slow)
25、
{
return 1;
}
}
return 0;
}
3、简述电路互换和分组互换的区分及优缺陷。
见宝典里面的网络和通信文献夹
从csdn论坛我近六个月的搜集中选出10道有代表性的题目,难度基本上是逐渐加大.对数组,指针,数据结构,算法,字符串,文献操作等问题都有覆盖.重要以c语言的实现为主,也有c++的题.大家能够先做做这10道题,测试一下自己的水平.
1. 下面这段代码的输出是多少(在32位机上).
char *p; char *q[20]; char *m[20][20]; int 26、 (*n)[10];
struct MyStruct
{
char dda;
double dda1;
int type ;
};
MyStruct k; printf("%d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k));
答案:4,80,1600,4,24我以为最后一题应当是16
(1)char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} };
for(int i=0;i<12;i++)
printf("%d ",a 27、[0][0][i]);
在空格处填上适宜的语句,次序打印出a中的数字
(2)char **p, a[16][8];
问:p=a是否会导致程序在以后出现问题?为何?
答:没有问题,只是使用时要小心,p是指向指针的指针。A是数组的首地址也是指针。
3.用递归方式,非递归方式写函数将一个字符串反转.
函数原型如下:char *reverse(char *str);
答:非递归方式:
char *reverse(char *str)
{
if(str!=NULL)
{
int length = strlen(str);
28、 for(int i=0;i 29、int i;
if(i==1)
str[i] = '\0';
return str[i];
。。。。
}
4.strcpy函数和memcpy函数有什么区分?它们各自使用时应当注意什么问题?
答:strcpy函数:拷贝字符串,遇到‘\0’结束,删去’\0’并结束拷贝。 memcpy函数:拷贝任何数据。并不是所有的数据都以NULL结束,因此要给其指定拷贝数据的长度。
5.写一个函数将一个链表逆序.
答:typedef struct node{
int data;
struct node* next;
30、
}node;
node* reverse(node* head)
{ node* p1,*p2,*p2;
if(head!=NULL||head->next!=NULL)
{ p1=head;
P2=p1->next;
While(p2){
P3=p2->next;
P2->next=p1;
P1=p2;
P2=p3;}
head->next=NULL;
head=p1;
return head;
}
6一个单链表,不懂得长度,写一个函数迅速找到中间节点的位置.
你设两个指针一个移动速度是令一个 31、两倍就能够了吧,第一个NULL了 第2个就是中间节点了
答:typedef struct linknode
{
int a;
struct linknode *next;
}linknode;
linknode *findmiddle(linknode *head)
{
linknode *fast,*low,*p;
if(head==NULL)
{
return NULL;
}
P=head;
low=p->next;
fast=p->nex 32、t->next;
while(!(p=fast->next)&&!p->next)
{
low=low->next;
fast=fast->next;
}
return low;
}
7 写一个函数找出一个单向链表的倒数第n个节点的指针.(把能想到的最佳算法写出).
答:两个指针,第一个先于第二个n个位置。
LinkNode IsLoopList(LinkNode *head,int n)
{
LinkNode *p1,*p2,*p3;
P1 = head;
33、
While(n-->=0)
{ //实现p3早于p1 n个位置
P3= p2->next;
P2 = p3;
}
While(p3->next!=NULL)
{
P3 = p3->next;
P1 = p1->next;
}
Return p1; //当p3抵达结尾时,后于p3n个位置的就是倒数第n个节点。
}
8补充一题:给你一个单向链表的头指针,也许最后不是NULL终止,而是循环链表。题目问你怎么找出这个链表循环部分的第一个节点。例如下面的链表: 0 -> 1 -> 2 -> 3 -> 4 34、 -> 5 -> 6 -> 7 -> 8 -> (3) 循环,就应当返回结点3的位置。 当然尽也许用少的空间和时间是题目标要求。
答:这个题目和本来的判断链表是不是循环链表的问题有某些区分的,本来是要证明链表是不是循环的,目前的是已知某部分是循环的要求找到这个循环的头结点.
我想到的措施是,从头开始一次取出把链表中的结点组成另一个链表,判断这个链表是不是循环的,第一个满足条件的头结点就是了.
例如以上面的测试数据为例:
第一次取出:
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> (3)
第二次取出:
1 -> 2 -> 3 -> 4 - 35、> 5 -> 6 -> 7 -> 8 -> (3)
第三次取出:
2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> (3)
以此类推.
10.判断链表是否循环;
答:bool IsLoopList(LinkNode *head)
{
LinkNode *p1= head,*p2= head;
if(head ->next==NULL)//只包括头节点,且头节点的next为NULL阐明肯定不是循环链表
return false;
do{
p1=p1->next; //步长为1
p2=p2->next->next; / 36、/步长为2
}while(p2 && p2->next && p1!=p2);
if(p1==p2)
return true;
else
return false;
}
11.用递归算法判断数组a[N]是否为一个递增数组。
答:递归算法:
#include 37、i = 0; i < N; i++)
{
scanf("%d", &a[i]); //输入数组元素。
}
flag = Judgment(a); //调用递归函数
if (flag == 1)
{
printf("increment array.\n");
}
else if (flag == 0)
{
printf("no increment array.\n");
}
getch();
return 0;
}
in 38、t Judgment(int a[])
{
static i = 0; //注意这个是静态变量,必须用static
if(i < N - 1)
{
if (a[i] > a[i + 1])
{
return 0; }
i++;
Judgment(a);
}
return 1;
}
非递归算法:
#include 39、
int Judgment(int a[], int num);
//main函数和递归算法同样
int Judgment(int a[], int num)
{
static i = 0, flag = 1;
for(i=0; i 40、
1. 简述一个 Linux 驱动程序的重要流程与功效。
My Answer:设备驱动程序是操作系统内核和机器硬件之间的接口,它为应用程序屏蔽硬件的细节,一般来说,Linux的设备驱动程序需要完成如下功效: (1)初始化设备; (2)提供各类设备服务; (3)负责内核和设备之间的数据互换; (4)检测和处理设备工作过程中出现的错误。
2. 请列举一个软件中时间换空间或者空间换时间的例子。
My Answer:
有两个互换的措施:
void swap(int a, int b)
{
int c; c=a; a=b; b=a;
}
和
41、void swap(int a, int b)
{
a=a+b; b=a-b; a=a-b;
}
编程打印出如下图案:
1 30 29 28 27 26 25 24
2 31 52 51 50 49 48 23
3 32 53 66 65 64 47 22
4 33 54 67 72 63 46 21
5 34 55 68 71 62 45 20
6 35 56 69 70 61 44 19
7 36 57 58 59 60 43 18
8 37 38 39 40 41 42 17
9 10 11 12 13 14 42、15 16
中兴笔试题:
1、打字程序
要求:(1)随即产生一个字符串,每次产生的字符串内容,长度都不一样
(2)依照(1)的成果,输入字符串,判断输入是否正确,输出正确率
(3)具备输入输出界面
2、文本编辑器
要求:(1)编辑文本
(2)包存,打开指位置的文本文献
(3)具备输入输出界面
3、加密
要求:(1)输入任一段明文M,以及密钥K
(2)依照下一公式将其转换为密问C
Ci=mi K,其中i=0,1,……n-1,K为密钥 43、
(3)具备输入输出界面
4、进制转换器
要求:(1)可输入二进制、八进制、十进制、十六进制;
(2)可将已输入的数转换成其他进制的数
(3)具备输入输出界面。
在一个表里,有诸多字段,每个字段的值有诸多重复的,让你用写个SQL语句,把每个字段中出现次数最多的值列出来,并在这个值的前面加上一个-1(假如包括到多张表,请把别的表中的重复数据也一并修改) 例如有年龄和工资两个字段,里面出理次数最多的是18和3000,找出来并改成-118和-13000
3、 ISO七层结构
物理层 数据链路层 网络层 传输层 会话层 表 44、示层 应用层
5、 数据库查询优化问题
6、 编写程序:键盘输入一系列数字(-1结束),输出到aabb.bat文献中
11从一个或几个基本表(或视图)导出的表,它与基本表不一样,是一个虚表。
数据库中只存储视图的定义,而不存储视图对应的数据,这些数据仍存储在本来的基本表中。所有基本表中的数据发生变化,从视图中查询出的数据也随之变化。
视图一经定义,就能够和基本表同样被查询、删除,也能够在一个视图上再定义新的视图,但对视图的更新(增加、修改、删除)操作则有一定的限制。
1.对数据库的一张表进行操作,同时要对另一张表进行操作,怎样实现??
答案:将操作多个表的操作放入到事务中进 45、行处理
简答题:4分/题
1。unix文献系统采取了三级索引结构存储和管理文献,现设一个物理块大小为1kb,每
个索引表项大小为3字节,请问要查找一个大小为8mb的文献中的内容,最多需要进行几
级间接寻址?并阐明理由。
2。mac子层和llc子层各有何功效?为何要把数据链路层分为mac和llc两个子层?
3。进程和程序的区分。
4。在网络中有两台主机a和b,通过路由器和其他互换机设备连接起来,已经确认物理连
接正常无误,怎样来测试这两台机器是否连通。假如不通,怎样判断故障点?怎样排除
故障?
应用题:7分/题
1。写出迅速排序算法。
2。编写一个函数fn(), 46、传入一个字符串参数,查找里面有无相同的字符,有的话返
回1,否则返回0。两种措施 ,一是效率最高的,二是最节约内存的。
华为C语言笔试题(附答案)
03月23日 星期日 17:14
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用"::"局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内能够定义多个同名的局部变量,例如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、怎样引用一个已经定义过的全局变量?
答:extern 能够用引用头文 47、献的方式,也能够用extern核心字,假如用引用头文献方式来引用某个在头文献中申明的全局变理,假定你将那个变写错了,那么在编译期间会报错,假如你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不能够定义在可被多个.C文献包括的头文献中?为何?
答:能够,在不一样的C文献中以static形式来申明同名全局变量。能够在不一样的C文献中申明同名的全局变量,前提是其中只能有一个C文献中对此变量赋初值,此时连接不会犯错。
4、语句for( ;1 ;)有什么问题?它是什么意思?
答:无限循环,和while(1)相同。
5、do… 48、…while和while……do有什么区分?
答:前一个循环一遍再判断,后一个判断以后再循环。
6、请写出下列代码的输出内容
#i nclude 49、互连的标准协议.
18.Internet物理地址和IP地址转换采取什么协议?
ARP (Address Resolution Protocol)(地址解析協議)
ping命令使用了什么协议?ICMP协议 因此位于网络层
19.IP地址的编码分为哪俩部分?
在IP地址的这四部分中,又能够提成两部分,一部分是网络号Network(用来标识网络),一部分是主机号(标识在某个网络上的一台特定的主机)。
C编程中辨别大小写。
中兴通讯C++/C笔试题(答案1)-04-26 19:31C++/C试题的答案与评分标准
3、const 有什么用途?(请最少阐明两种)(5分)
答:(1)能够定 50、义 const 常量(2)const能够修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,能够预防意外的变动,能提升程序的健壮性。
5、请简述如下两个for循环的优缺陷(5分)
for (i=0; i






