题目详情

阅读下列说明和 C 函数,填补函数中空缺,将解答填入答案纸对应栏目内。【说明】函数 isLegal(char*ipaddr)功能是判断以点分十进制数表示 iPV4 地址是否合法。参数 ipadddr 给出表示 iPV4 地址字符串首地址,串中仅含数字字符和“.”。若 iPV4 地址合法则返回1,否则反馈 0.判定伟合法条件是:每个十进制数值位于整数区间[0,25],两个相邻树之间用“.”分隔,共 4 个数、3 个“.”。;例如,192.168.0.15、1.0.0.1 是合法,192.168.1.256、1.1..1是不合法。【函数】int isLegal (char*ipaddr)﹛int flag;int cur Val; //curVal 表示分析出一个十进制数int decNum=0,dotNum=0; //decNum 用于记录十进制数个数//dotNum 用户记录点个数Char*p=()for(;*p;p++) ﹛curVal=0;flag=0While (isdigit(*p))﹛ //判断是否伟数字字符CurVal=()+*p-′0′;()flag=1;﹜if(curVal>255)﹛return 0;﹜if (flag)﹛()﹜if(*p==′.′)dotNum++;﹜﹜if ()﹛return 1;﹜return 0;﹜

正确答案及解析

正确答案
解析

(1)ipaddr(2)curval*10(3)p++(4)decNum++(5)decNum==4 && dotNum==3

【解析】

此题判断IPV4地址是否合法,主要是判断其每个十进制数大小和总个数以及“.”个数来进行判别。首先用isdigital函数判断是否为十进制数,是则保留值。指针移到地址下一个字符。每找到一个十进制数都需要和前一次找到值进行组合,即前一次结果要乘以10。每找完一个完整数字和“.”都需要记录,所以要有decNum++和dotNum++。最后,如果IP地址正确,则返回1。即:decNum=4和dotNum=3时成立。

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +