串行线路协议SLIP在数据报的开始处和结尾处都传一个END字符,如果IP报文中某个字符为END,为了避免产生歧义将如何处

题目
问答题
串行线路协议SLIP在数据报的开始处和结尾处都传一个END字符,如果IP报文中某个字符为END,为了避免产生歧义将如何处理?
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

从键盘上输入一个实数nu,利用字符串函数对该数进行处理,如果输出的内容不是字符End,则程序输出的内容是( )。 nu=InputBox("nu=") n$=Str$(nu) p=InStr(n$,".") if p>0 Then Print Mid$(n$,P) Else Print"END" End If

A.用字符方式输出数据nu

B.输出数据的整数部分

C.输出数据的小数部分

D.只去掉数据中的小数点,保留所有数字输出


正确答案:C

第2题:

对下述程序的判断中,正确的是( )。

#include<stdio.h>

main( )

{ char*p,s[256];

p=s ;

while(strcmp(s,"the end"))

{ printf("Input the strin9:");

gets(s);

while(*p)

putchar(*p++);

}}

A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止

B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止

C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作

D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串


正确答案:C
外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

第3题:

请编写函数fun(),其功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除。字符串中剩余的字符所形成的一个新的字符串放在t所指的数组中。

例如:s所指字符串中的内容为ABCDEFG12345,其中字符A,的ASCII码值虽为奇数,但元素所在的下标为偶数,因此必需删除;字符1的ASCII码值为奇数,所在数组中的下标也为奇数,不删除,最后t所指的数组中的内容应是135。

请勿修改主函数main和其他函数中的任何内容,仅在函数su的花括号中填写若干语句。

文件test 27_2.cpp的内容如下;

include <conio.h>

include <stdio.h>

include <iostream.h>

include <string.h>

void fun(char *s,char t[ ])

{

}

void main ( )

{

char s[100],t[100];

cout<<"Please enter string S: "<<end1;

gets(s);

fun(s, t);

puts(t);

}


正确答案:void fun(char *schar t[ ]) { int ij=0n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; }
void fun(char *s,char t[ ]) { int i,j=0,n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; } 解析:在解答本题时,首先要清楚一点:那就是在字符参与数值运算时,用的是其ASCII码值来进行计算。另外的一个考查点是判断某数是奇数的方法,即判断该数与2的余数是否为0。

第4题:

点对点协议PPP比串行线路协议SLIP具有哪些优点?


正确答案:(1)PPP支持在单根串行线路上运行多种协议,不只是IP协议;(2)每一帧都有循环冗余检验;(3)通信双方可以进行IP地址的动态协商(使用IP网络控制协议);(4)对TCP和IP报文首部进行压缩;(5) 链路控制协议可以对多个数据链路选项进行设置。

第5题:

串行线路协议SLIP在数据报的开始处和结尾处都传一个END字符,如果IP报文中某个字符为END,为了避免产生歧义将如何处理?


正确答案:如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它。0xdb这个特殊字符被称作SLIP的ESC字符。

第6题:

编写函数fun(),该函数的功能是从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。

例如:程序执行时输入字符串为turbo c and borland c++,从键盘上输入字符n,则输出后变为turbo c ad borlad c++。

如果输入的字符在字符串中不存在,则字符串照原样输出。

注意:部分源程序已存在文件test18_2.cpp中。

请勿改动主函数脚in和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

文件test18_2.cpp的内容如下:

include<stdio.h>

include<iostream.h>

include<conio.h>

void fun(char s[ ], int c)

{

}

void main ( )

{

static char str[ ]="turbo c and borland c++";

char ch;

cout<<"原始字符串:\n"<<str<<end1;

cout<<"输入一个字符:";

cin>>ch;

fun(str.ch);

cout<<"str="<<str<<end1;

}


正确答案:void fun(char s[] int c) { int i=0; char *p; p=s; while( *p) {if( *p!=c) {s[i]=*p; i++; } p++; } s[i]='\0'; }
void fun(char s[], int c) { int i=0; char *p; p=s; while( *p) {if( *p!=c) {s[i]=*p; i++; } p++; } s[i]='\0'; } 解析:本题考查用字符指针来控制字符数组中的元素。指针p初始化时应指向字符数组的首地址s,之后利用p逐个取得数组中的元素,然后用取得的字符逐个与要删除的字符进行比较,如果二者相同,则跳过该字符,去取下一个数组元素,这样最终得到的字符串中就把要删除的字符去掉了。最后不要忘记要手动地加上一个字符串结束标记‘\0’。

第7题:

阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。

【函数2说明】

本题中的函数encode()和decode()分别实现对字符串的变换和复原。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:

1.若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。

2.若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。

3.若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后续字符(包括后续字符是一个数字字符)重复复制n+1次到新字符串中。

4.以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串26a3t2的变换结果为666_a_tttt_2

复原函数decode()做变换函数encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。

假定调用变换函数encode()时的已知字符串中不包含下划线字符。

【函数2】

int encode(char*instr,char * outstr)

{

char*ip,*op,c;int k,n;

ip=instr;op=outstr;

while(*ip){

if (1) &&*(ip+1){

n= *ip -'0'+ 1;

c= *++ip;

for(k=0;k<=n;k++)

(2);

}

else (3);

*op++ ='-';

ip++;

}

if(op>outstr) (4);

*op='\0';

return op-outstr;

}

int decode(char * instr,char * outstr)

{char*ip,*op,c;int n;

ip=instr;op=outstr;

while(*ip){

c= *ip;n=0;

while(*ip==c && n<=10){ip++;n++;}

if (5) *op++='0'+n-1;

*op++=c;

if(* ip=='_',) (6);

}

* p='\0';

return op-outstr;

}


正确答案:(1)*ip>='0'&&*ip=='9'
(1)*ip>='0'&&*ip=='9' 解析:本小题部分判断字符是否是数字。

第8题:

对下述程序的判断中,正确的是()。includevoid main(){char *P,s[256];p=s;while(strcmp

对下述程序的判断中,正确的是( )。 #include<stdio.h> void main() {char *P,s[256]; p=s; while(strcmp(s,"the end")) {printf("Input the string:"); gets(s); while(*P) putchar(*p++);}}

A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止

B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止

C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作

D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串


正确答案:A
解析:strcmp(str1,str2)是比较字符串str1和sir2,当两字符串相等时,返回值为0,不相等时返回值为非0;所以此段程序的功能是在未接收到字符串“the end”时,读入字符并输出。

第9题:

串行线路协议SLIP是一种简单的帧封装方法,其存在哪些缺陷?


正确答案:1) 每一端必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。2) 数据帧中没有类型字段,如果一条串行线路用于SLIP,那么它不能同时使用其他协议。3) SLIP没有在数据帧中加上检验和。

第10题:

对下述程序的判断中,正确的是( )。

A)此程序循环接收字符串并输出,直到接收到字符串“the end”为止

B)此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止

C)此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作

D)此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串


正确答案:A

更多相关问题