分享
分销 收藏 举报 申诉 / 34
播放页_导航下方通栏广告

类型计算机软件基础(-)课后习题参考答案doc.doc

  • 上传人:精****
  • 文档编号:2552297
  • 上传时间:2024-05-31
  • 格式:DOC
  • 页数:34
  • 大小:96KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机软件 基础 课后 习题 参考答案 doc
    资源描述:
    第一章 一、简答题 1.参考书上第五页图1-7 2.因为C语言是强类型语言,语法规定必须先定义后使用,只有先定义,系统才能为其分配存储空间。 3.参考书上第二页 二、填空题 1. 算法 2. .C , .obj , .exe 3. 提出问题,构造模型,选择方法,编写程序,上机调试 4. 1 5. sin(35.0*3.14159/180) + x * cos(60.0*3.14159/180) 6. 6 7. 0 三、改错题 1. 参考书上第二页,算法与程序的区别 2. 只能定义为一种类型 3. 必须先定义,后使用 4. 可以随时修改 5. 只有char型变量才只存储一个字节 6. a还是实型变量 7. b中的值不丢失 8. i的类型不变 四、单选 1-5 BDCDC 6-10 DCBBD 11-15 CBADC 16-18 AAA 第二章 一、简答 1. 参考书上23页 2. while先判断,后执行,do while先执行,后判断,循环体至少执行一次 3. 参考书上29页 4. continue,结束本次循环 break,结束循环 区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环 二、填空题 1. 顺序结构,选择结构,循环结构 2. if else 和switch 3. 语句1语句2 , 语句2 4. 零 5. break , continue 6.1 , 0 7. 条件运算符, 双目 三、单选 1-5 ABDCC 6-10 DBBDA 11-15 CBCDA 16-20 ACAAD 21-25 CDCBB 26-29 BCCA 四、程序分析题 1. end 1end 2. num%10 max = t 3. j%3 4. 10, 12 五、编程题 1. #include <stdio.h> int main(){ char str[100] ; gets(str) ; int n1 , n2 , n3 , n4 , i ; n1 = n2 = n3 = n4 = 0 ; for(i = 0 ; str[i] != '\0' ; ++i) { if(str[i] >= 'A' && str[i] <= 'Z') ++n1 ; else if(str[i] >= 'a' && str[i] <= 'z') ++n2 ; else if(str[i] >= '0' && str[i] <= '9') ++n3 ; else ++n4 ; } printf("大写字母:%d\n" , n1) ; printf("小写字母:%d\n" , n2) ; printf("数字字符:%d\n" , n3 ) ; printf("其他字符:%d\n" , n4) ; return 0; } 2. #include <stdio.h> #include <stdlib.h> int main(){ int array[4] , min , max , i ; for(i = 0 ; i < 4 ; ++i) scanf("%d" , &array[i]) ; min = max = array[0] ; for(i = 1 ; i < 4 ; ++i) { if(array[i] < min) min = array[i] ; else if(array[i] > max) max = array[i] ; } printf("min = %d , max = %d\n" , min , max) ; return 0; } 3. #include <stdio.h> int main(){ float money , lixi ; int year ; scanf("%f %d" , &money , &year) ; switch(year) { case 1 : lixi = money * 0.63 / 100 ; break ; case 2 : lixi = money * 0.66 / 100 ; break ; case 3 : lixi = money * 0.69 / 100 ; break ; case 5 : lixi = money * 0.75 / 100 ; break ; case 8 : lixi = money * 0.84 / 100 ; break ; default : printf("输入错误\n") ; return -1 ; } printf("%f\n" , money + lixi) ; return 0; } 4. #include <stdio.h> int main(){ int x , y ; scanf("%d" , &x) ; if(x > 100) y = x + 8 ; else if(x < -10) y = -x + 8 ; else y = 0 ; printf("%d\n" , y) ; return 0; } 5. #include <stdio.h> int main(){ int i , j , k , m = 3 ; for(k = 5 ; k < 12 ; k += 2 , --m) { for(i = 0 ; i < m ; ++i) printf(" ") ; for(j = 0 ; j < k ; ++j) printf("*") ; printf("\n") ; } return 0; } 6. #include <stdio.h> int main(){ printf(" *****\n") ; printf(" * *\n") ; printf(" * *\n") ; printf("*************\n") ; return 0; } 第三章 一、简答 1. a:数组名,a[0] :数组第0号元素, &a[1]数组第1号元素的地址 2. 不同,”a”是字符串,末尾有一个’\0’ 3. 2 * 3 * 2 = 12个字节 二、填空题 1. 0 2. 按行存放 3. 1014 4.str[14] 5. ‘\0’ 三、改错 1. 是0 2. 只能是常量 3. 一定相同 4. 不会给错误信息 5. 没有提供字符串类型 6. 不等价,”ok”末尾有一个’\0’ 四、单选 1-5 DBCAC 6-10 CDDCB 11-13 CDC 五、程序分析题 1. AzyD 2. 123 3. 45 4. 4some string * test 5. 统计输入字符串中空格的个数 3 , 1 6. max < a[row][col] min > max min == max 7. a a sum/n x[i] < ave 8. a[i][j] != a[j][i] 1 9. j += 2 a[i] > a[j] 10. 1 2 4 5 6 0 0 0 0 0 1 2 3 4 5 6 0 0 0 0 六、编程题 1. #include <stdio.h> int main(int argc , char *argv[]) { int a[11] , i , n ; printf("请输入十个递增排列的数列:") ; for(i = 0 ; i < 10 ; ++i) scanf("%d" , &a[i]) ; printf("请输入要插入的数:") ; scanf("%d" , &n) ; for(i = 9 ; i >= 0 && a[i] > n ; --i) { a[i+1] = a[i] ; } a[i+1] = n ; printf("插入后数列为:") ; for(i= 0 ; i < 11 ; ++i) printf("%d " , a[i]) ; printf("\n") ; return 0 ; } 2. #include <stdio.h> #include <string.h> int main(int argc , char *argv[]) { char a[100] , b[100] , min , i ; scanf("%s %s" , a , b) ; min = 0 ; for(i = 1 ; a[i] != '\0' ; ++i) { if(a[min] > a[i]) min = i ; } strcat(b , a + min + 1) ; a[min + 1] = '\0' ; strcat(a , b) ; printf("%s\n" , a) ; return 0 ; } 3. #include <stdio.h> int main(int argc , char *argv[]) { char s1[100] , char s2[100] ; int i ; gets(s1) ; gets(s2) ; char *string1 = s1 , *string2 = s2 ; do{ i = (int)*string1 -(int)*string2; }while(*string1++ && *string2++ && (!i) ); for(i = 0 ; s1[i] != '\0' && s2[i] != '\0' && s1[i] == s2[i] ; ++i) ; printf("%d\n" , i) ; return 0 ; } 4. #include <stdio.h> int main(int argc , char *argv[]) { char s[100] ; int i ; gets(s) ; for(i = 0 ; s[i] != '\0' ; ++i) { if(i == 0 || (s[i-1] == ' ' && s[i] >= 'a' && s[i] <= 'z')) s[i] -= 32 ; } puts(s) ; return 0 ; } 5. #include <stdio.h> int main(int argc , char *argv[]) { char s1[100] , s2[100] ; int end , i ; gets(s1) ; gets(s2) ; for(end = 0 ; s1[end] != '\0' ; ++end) ; for(i = 0 ; s2[i] != '\0' ; ++i) s1[end++] = s2[i] ; s1[end] = '\0' ; puts(s1) ; return 0 ; } 第四章 一、简答题 1. 参考书上68页,69页,72页 2. 函数的返回值,函数的形参 3. 实参与形参之间是值传递的关系 二、填空题 1. 库 用户自定义 2. 3 3. gets() 4. strlen() 5. strcpy() 6. 全局 局部 7. 有返回值 无返回值 8. return 9. void 10. 前 11. 调用 三、改错 1. 表示不同的变量 2. 按照调用的先后顺序执行 3. 各自有自己的存储单元 4. 可以没有形参 5. 分配在动态存储区 6. 以该函数定义的返回值为准 7. 嵌套调用指函数调用函数 四、单选 1-5 BDACC 6-10 DAACC 11-13 BCC 五、程序分析题 1. j str[j-1] 2. 本题程序是错的,第五行,for(I = m + 1 ; i++)这里少东西,所以跳过 3. i < n x = fun(4) 4. 1: a = 1 , b = 1 2: a = 2 , b = 2 3: a = 3 , b= 3 六、编程题 1. int fun(int year) { if( year % 400 == 0|| (year % 4 == 0 && year % 100)) return 1 ; else return 0 ; } 2. #include <stdio.h> #include <math.h> void fun1(int a , int b , int c) { float t = sqrt(b * b - 4 * a * c) ; printf("x1 = %f , x2 = %f\n" , (-b + t) / 2.0 * a , (-b -t) / 2.0 *a) ; } void fun2(int a , int b , int c) { printf("x1 = x2 = %f\n" , -b/ 2.0 * a) ; } void fun3(int a , int b , int c) { printf("该方程没有实根") ; } int main(int argc , char *argv[]) { int a , b , c ; scanf("%d %d %d" , &a , &b , &c) ; if(b * b - 4 * a *c > 0) fun1(a , b , c) ; else if(b * b - 4 * a * c == 0) fun2(a , b , c) ; else fun3(a , b , c) ; return 0 ; } 3. #include <stdio.h> #include <math.h> int fun(int a[] , int n) { int i , j = 0 ; for(i = 1 ; i < n ; ++i) if(i % 3 == 0 && i % 7 == 0) a[j++] = i ; return j ; } int main(int argc , char *argv[]) { int a[100] , n , m , i ; scanf("%d" , &n) ; m = fun(a , n) ; for(i = 0 ; i < m ; ++i) printf("%f " , sqrt(a[i])) ; return 0 ; } 第五章 一、简答 1. 不一定,这要看指针的类型,比如 int * p ,则p + 1 就增加两个字节 2. 定义指针时表示定义的变量是指针类型,引用指针时,表示指针指针指向的变量 3. p + n , p – n ,其中n是int类型 二、填空题 1. 地址 2. & * 3. 指针 4. *p 5. 1006 6. malloc 7. a+i *(a+i) 8. 3 9. ‘b’ ‘\0’ 三、改错题 1. 只能存放同类型的变量的地址,比如int *只能存放int型变量的地址 2. 这个说法是正确的,没有错误 3. 不是,指的是指针所指向的变量的类型 4. 只能是同类型的指针或者&a这样的地址值 5. 是可以改变的 四、单选 1-5 CDDAA 6-10 BCDDD 五、程序分析题 1. *x t 2. r + b[u] *x 3. 10 4. CDG 5. 80,-20 6. 5 7. 55 1711717 六、编程题 1. #include <stdio.h> int main(int argc , char *argv[]) { char s[100] ; int i ; gets(s) ; for(i = 0 ; s[i] != '\0' ; ++i) ; printf("%d\n" , i) ; return 0 ; } 2. #include <stdio.h> int fun(char *s , char c) { int count = 0 ; for( ; *s != '\0' ; ++s) if(*s == c) ++count ; return count ; } int main(int argc , char *argv[]) { char s[100] , c ; gets(s) ; c = getchar() ; printf("%s %c\n" , s , c ) ; printf("%d\n" , fun(s , c)) ; return 0 ; } 3. #include <stdio.h> int main(int argc , char *argv[]) { char s[100] ; int i , n1 , n2 , n3 , n4 , n5 ; n1 = n2 = n3 = n4 = n5 = 0 ; gets(s) ; for(i = 0 ; s[i] != '\0' ; ++i) { if(s[i] >= 'A' && s[i] <= 'Z') ++n1 ; else if(s[i] >= 'a' && s[i] <= 'z') ++n2 ; else if(' ' == s[i]) ++n3 ; else if(s[i] >= '0' && s[i] <= '9') ++n4 ; else ++n5 ; } printf("大写字母:%d\n" , n1) ; printf("小写字母:%d\n" , n2) ; printf("空格:%d\n" , n3) ; printf("数字:%d\n" , n4) ; printf("其他字符:%d\n" , n5) ; return 0 ; } 第六章 一、简答题 1 比如定义 struct Student { char name[100] ; int age ; }stu ; 则stu.name , stu.age 即可引用结构体成员 2. 不是必须为所有的成员赋初值,因为语法上没有强制要求。 二、填空题 1. 21 &a[0] p->x a[1] 2. 1 3 3. “ab” “cd” 三、改错题 1. 可以同名 2. 可以含有 3. 不可以 四、单选题 BACBDD 五、程序分析题 1. Zhao 2. 10 x 3. 200 y 4、-> . 5、 36 40 20 6、max = person[i].age min = person[i].age 六、编程题 1. #include <stdio.h> struct Score { float s1 ; float s2 ; } ; int main() { struct Score stu ; scanf("%f %f" , &stu.s1 , &stu.s2) ; printf("%f\n" , (stu.s1 + stu.s2)/2.0) ; return 0 ; } 2. #include <stdio.h> struct Student { char stuNo[50] ; //学号 float s1 ; //期中成绩 float s2 ; //期末成绩 } ; int main() { struct Student stu[10] ; int i ; for(i = 0 ; i < 10 ; ++i) scanf("%s %f %f" , stu[i].stuNo , &stu[i].s1 , &stu[i].s2) ; for(i = 0 ; i < 10 ; ++i) { printf("学号:%s\n" , stu[i].stuNo) ; printf("期中成绩:%f\n" , stu[i].s1) ; printf("期末成绩:%f\n" , stu[i].s2) ; printf("平均成绩:%f\n" , (stu[i].s1 + stu[i].s2)/2.0) ; } return 0 ; } 第七章 一、简答题 1. D代表数据节点的集合,R是D上的关系 2. 逻辑结构是数据之间的外在关系,物理结构是数据在计算机内的存储表示 3. 参考第二页 4. 不是,还于算法的设计有关,一个好的算法可以降低时间复杂度 5. O(n) , O(lgn) , O(nlgn) , O(n的平方+1) , O(n3 – n2) , O(n5) , O(2的n次方) 二、填空题 1、逻辑 物理 逻辑 2、 时间复杂度 空间复杂度 3、 线性表 二叉树 图 4、 线性 5、 树型 6、 1 1 1 多 多 多 7、 O(n的平方) 8、O(n) O(n) 三、改错题 1、 无关 2、 有关 3、 无关 4、 不是,是外在的关系,与存储结构无关 四、单选 CCBCC 6题A选项改为n(n-1) 第八章 一、简答题 1、参考132页、135页、136页 2、 参考139页 3、 参考139页 4、 选择顺序存储结构,因为顺序表是随机存取,访问任意一个元素的时间复杂度为O(1) ; 5、选择链式存储,因为链表插入删除的开销小 6、循环单链表,循环双链表 7、单链表无法删除 循环单链表可以删除,时间复杂度为O(n) 循环双链表可以删除,时间复杂度为O(1) 二、填空题 1、 顺序存储 链式存储 2、 O(n) 3、O(n) O(1) 4、q->next = p->next p->next = q 5、 p->next s->data t 6、p->next = head->next head->next = p 7、 p->next->next 8、head->next = NULL 9、 p->prior s->next = p s 10、 O(1) 三、改错题 1、 一定相邻 2、 该说法是正确的 3、该说法是正确的 4、需要移动节点 5、不会发生溢出现象 6、 链表 四、单选 AABBA BCAB 10题为CDAB CB 五、程序分析 1、 删除单链表 2、 p->next != q->prior p = p->next q = q->prior 3、 count = 0 p = p->next 六、程序设计题 1. #include <stdio.h> #define MAX 100 struct Link { int data[MAX] ; int n ; }; int findMin(struct Link * p) { int min = 0 , i ; for(i = 1 ; i < p->n ; ++i) if(p->data[min] > p->data[i]) min = i ; return min ; } int main() { int i ; struct Link L ; scanf("%d" , &L.n) ; for(i = 0 ; i < L.n ; ++i) scanf("%d" , &L.data[i]) ; for(i = 0 ; i < L.n ; ++i) printf("%d " , L.data[i]) ; printf("最小值是: %d\n" , L.data[findMin(&L)]) ; return 0 ; } 2. #include <stdio.h> #define MAX 100 struct Link { int data[MAX] ; int n ; }; void insert(struct Link *p , int iValue) { int i = p->n - 1 ; while(p->data[i] > iValue) { p->data[i+1] = p->data[i] ; --i ; } p->data[i+1] = iValue ; ++p->n ; } int main(int argc , char *argv) { struct Link L ; int i , insertValue ; scanf("%d" , &L.n) ; for(i = 0 ; i < L.n ; ++i) scanf("%d" , &L.data[i]) ; scanf("%d" , &insertValue) ; insert(&L , insertValue) ; for(i = 0 ; i < L.n ; ++i) printf("%d " , L.data[i]) ; return 0 ; } 3. #define MAX 100 struct Link { int data[MAX] ; int n ; }; void deleteLink(struct Link *p) { int i , j , k ; for(i = 0 ; i < p->n ; ++i) { for(j = i + 1 ; p->data[j] == p->data[i] && j < p->n ; ++j) ; if(j != i + 1) { int temp = j - i - 1 ; for(k = i + 1 ; j < p->n ; ++j , ++k) p->data[k] = p->data[j] ; p->n -= temp ; } } }s 4. struct Node { int data ; struct Node *next ; }; int getLen(struct Node *p) { int n = 0 ; while(p != NULL) { ++n ; p = p->next ; } return n ; } 5. struct Node { int data ; struct Node *next ; }; void setNum(struct Node *p , int n1 , int n2) { while(p != NULL) { if(p->data = n1) p->data = n2 ; p = p->next ; } } 6. struct Node { int data ; struct Node *next ; }; struct Node * delNode(struct Node *list , int n) { int flag = 1 , i = 1 ; struct Node * p = list , *q = list->next ; if(n == 1) { list = list->next ; free(p) ; return list ; } while(q != NULL) { ++i ; if(i == n) { p->next = q->next ; free(q) ; q = p->next ; return list ; } q = q->next ; p = p->next ; } return list ; } 7. struct Node { int data ; struct Node *next ; }; struct Node * fun(struct Node *list) { struct Node * p = list , *q = list->next , * min , *pMin ; int temp ; min = list ; while(q != NULL) { if(q->data < min->data) { min = q ; pMin = p ; } p = p->next ; q = q->next ; } if(min != list) { pMin->next = min->next ; //删除最小节点 //将最小节点插入到list节点之后 min ->next = list->next ; list->next = min ; //交换list节点和min节点的值 temp = list->data ; list->data = min->data ; min->data = temp ; } return list ; } 8. struct Node { int data ; struct Node *next ; }; struct Node * fun(struct Node *list) { struct Node * p = list , *list2 = NULL , *q ; struct Node *rear = (struct Node *) malloc(sizeof(struct Node)) ; //循环链表的尾指针 rear->next = rear ; while(1) { q = p->next ; //保存下一个节点的地址 //头插法插入p p->next = rear->next ; rear->next = p ; p = q ; if(p == list) break ; } return rear ; } 第九章 一、简答题 1、 不同:栈是先进后出,队列是先进先出 相同:都是线性结构,都有顺序实现和链式实现两种 2、不能得到4 3 5 6 1 2的出栈序列,原因如下 1. 1 2 3 4依次进栈 2. 4 3 出栈 3. 5入栈 4. 5出栈 5. 6入栈 6. 6出栈 此时栈中元素为1,2。所以若1一定在2之后出栈。 同样的分析方法,可知,1 3 5 4 2 6的出栈序列是可以的。 3、共占5 * 6 × 4 = 120个字节 按行排序时,起始地址为1000 + 2*6 + 5 =1017 按列排序时,起始地址为 1000 + 5 * 5 + 2 = 1027 二、填空题 1、判栈满 添加元素 2、 判栈空 删除元素 3、 -1 m-1 4、空栈 空队 5、n-1 6、 1212 7、 三、改错题 1、这个说法是正确的 2、有存取限制 3、这个说法是正确的 4、 这个说法是正确的 5、练栈也是线性结构 四、单选 CBAC 5题的题意不清 BDCCA ABC 五、程序设计题 1. #include <stdio.h> #define MAX 100 struct Stack { int data[MAX] ; int top ; }; int pop(struct Stack * s) { if(s->top != -1) return s->data[s->top--] ; else { printf("Error") ; return -1 ; } } int push(struct Stack *s , int n) { if(MAX -1 != s->top) return s->data[++s->top] = n ; else { printf("Error") ; return -1 ; } } int main() { struct Stack s ; int i ; s.top = -1 ; for(i = 0 ; i < 10 ; ++i) push(&s , i) ; for(i = 0 ; i < 10 ; ++i) printf("%d " , pop(&s)) ; return 0 ; } 2. #include <stdio.h> #define MAX 100 struct Stack { int data[MAX] ; int top ; }; //栈的出栈 int pop(struct Stack * s) { if(s->top != -1) return
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:计算机软件基础(-)课后习题参考答案doc.doc
    链接地址:https://www.zixin.com.cn/doc/2552297.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork