已知有若干个 IP 地址的信息存放于数组 ip 中,请先判断每个 IP 地址的合法性,若该 IP 地址合法,请指出该地址所属的地址类型并存放到文件“ d : \c\ipadress.txt ”中。请在答题卡上写出 1~4 表示的内容以完善程序(每空 3 分,共 12 分) 说明:( 1 )合法的 IP 地址必须满足 4 都小于 256 。 ( 2 ) IP 地址类见下面分类: A 类地址:首在 1~127 B 类地址:首在 128~191 C 类地址:首在 192~223 D 类地址:首在 224~239 E 类地址:首在 240~247 ( 3 ) isdigit ( ch )的功能是:检查 ch 是否是数字字符,是则返回 1 ,不是则返回 0. #include #include #include int main() { char ip[5][16]={"192.168.1.1","10.0.0.1","127.256.0.1","172.16.2.5","226.226.260.1"}; int b[4],i,j,n,f,sum,t; char c[5]={'A','B','C','D','E'}; FILE *fp; if( _____________________________________)//1空 {printf("File open error\n"); exit(0);} for(i=0;i<5;i++) { j=0;n=0;f=1; while(ip[i][j]!='\0') {if(isdigit(ip[i][j])) { sum=0; while(isdigit(ip[i][j]&&ip[i][j]!='\0') ______________________ ; //2空 b[n++]=sum; } if(ip[i][j]!='\0') j++; } for(j=0;j<4;j++) if(b[j]>255){f=0;break;} if(f==1) {if(b[0]>0&&b[0]<=127) t=0; else if(b[0]<=191) t=1; else if(b[0]<=223) t=2; else if(b[0]<=239) t=3; else t=4; fprintf(fp," %s ",ip[i]); fprintf(fp," 属于 %c 类地址 \n", );//3空 } } //4空 return 0 ; }