没有合适的资源?快使用搜索试试~ 我知道了~
华为面试题,喜欢的可以学习
需积分: 0 0 下载量 43 浏览量
2022-11-09
10:30:52
上传
评论
收藏 132KB DOC 举报
温馨提示
试读
61页
华为面试题,喜欢的可以学习
资源推荐
资源详情
资源评论
1.请你分别画出 OSI 的七层网络结构图和 TCP/IP 的五层结构图。
答:OSI 七层网络结构图
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP 的五层结构图
应用层
运输层
网络层
数据链路层
物理层
2.请你详细地解释一下 IP 协议的定义,在哪个层上面?主要有什么作用?TCP 与 UDP
呢?
答:IP 是 Internet Protocol 的简称,是网络层的主要协议,作用是提供不可靠、无连接的数
据报传送。TCP 是 Transmit Control Protocol(传输控制协议)的缩写,在运输层,TCP 提供
一种面向连接的,可靠的字节流服务;UDP 是 User Datagram Protocol(用户数据报协议)
的缩写,在运输层,UDP 提供不可靠的传输数据服务
3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?
答:交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路
由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层即网络层设备,它根据I
P地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处
是控制能力强。
4.请问 C++的类和 C 里面的 struct 有什么区别?
答:struct 的成员的默认访问说明符为 Public,而 class 的成员的默认访问说明符为 Private。
其他没有区别
5.请讲一讲析构函数和虚函数的用法和作用。
答:析构函数是在对象生存期结束时自动调用的函数,用来释放在构造函数分配的内存。
虚函数是指被关键字 virtual 说明的函数,作用是使用 C++语言的多态特性
6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
答:一些变量在整个程序中都是可见的,它们称为全局变量。一些变量只能在一个函数中可
知,称为局部变量。这就是他们的区别。
在任何函数外面定义的变量就是全局变量,在函数内部定义的变量是局部变量,这是它们在
程序中的实现过程。
操作系统和编译器是根据程序运行的内存区域知道他们的,程序的全局数据放在所分配内存
的全局数据区,程序的局部数据放在栈区。
7.8086 是多少位的系统?在数据总线上是怎么实现的?
答:8086 的机器字长是 16 位,8086 使用 40 个引脚的 16 个做地址/数据复用引腿来传输数
据,一次读写过程由一个基本总线周期完成,它由 4 个时钟(CLK)周期组成,按时间顺序定
义为 T1、T2、T3、T4。在 T1 期间 8086 发出访问目的地的地址信号和地址锁存选通信号
ALE;T2 期间发出读写命令信号 RD、WR 及其它相关信号;T3 期间完成数据的访问;T4
结束该总线周期。可见,地址与数据信号不会同时出现在一个时钟(CLK)周期,二者可以分
时复用同一组引线。
、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一
个 age, 在些链表中删除学生年龄等于 age 的学生信息。
#include "stdio.h"
#include "conio.h"
struct stu{
char name[20];
char sex;
int no;
int age;
struct stu * next;
}*linklist;
struct stu *creatlist(int n)
{
int i;
//h 为头结点,p 为前一结点,s 为当前结点
struct stu *h,*p,*s;
h = (struct stu *)malloc(sizeof(struct stu));
h->next = NULL;
p=h;
for(i=0;i<n;i++)
{
s = (struct stu *)malloc(sizeof(struct stu));
p->next = s;
printf("Please input the information of the student: name sex no age \n");
scanf("%s %c %d %d",s->name,&s->sex,&s->no,&s->age);
s->next = NULL;
p = s;
}
printf("Create successful!");
return(h);
}
void deletelist(struct stu *s,int a)
{
struct stu *p;
while(s->age!=a)
{
p = s;
s = s->next;
}
if(s==NULL)
printf("The record is not exist.");
else
{
p->next = s->next;
printf("Delete successful!");
}
}
void display(struct stu *s)
{
s = s->next;
while(s!=NULL)
{
printf("%s %c %d %d\n",s->name,s->sex,s->no,s->age);
s = s->next;
}
}
int main()
{
struct stu *s;
int n,age;
printf("Please input the length of seqlist:\n");
scanf("%d",&n);
s = creatlist(n);
display(s);
printf("Please input the age:\n");
scanf("%d",&age);
deletelist(s,age);
display(s);
return 0;
}
2、实现一个函数,把一个字符串中的字符从小写转为大写。
#include "stdio.h"
#include "conio.h"
void uppers(char *s,char *us)
{
for(;*s!='\0';s++,us++)
{
if(*s>='a'&&*s<='z')
*us = *s-32;
else
*us = *s;
}
*us = '\0';
}
int main()
{
char *s,*us;
char ss[20];
printf("Please input a string:\n");
scanf("%s",ss);
s = ss;
uppers(s,us);
printf("The result is:\n%s\n",us);
getch();
}
射击运动员 10 发打中 90 环有多少种可能,请编写程序计算出来,并打印出结果,0 环和 10
环均有效
#include <iostream.h>
#include <stdlib.h>
int Record[10]={0,0,0,0,0,0,0,0,0,0}; //记录状态
int Num=0; //射中的总环数
long Total=0; //方案总数
//从第 n 个位置开始向后搜索满足条件的记录
void CalculateRing(int n,int CurNum)
{
if(n>9)
{
剩余60页未读,继续阅读
资源评论
李洛克07
- 粉丝: 91
- 资源: 65
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功