收藏 分销(赏)

C语言程序的设计自学指导书.doc

上传人:二*** 文档编号:4708643 上传时间:2024-10-10 格式:DOC 页数:28 大小:112KB 下载积分:5 金币
下载 相关 举报
C语言程序的设计自学指导书.doc_第1页
第1页 / 共28页
本文档共28页,全文阅读请下载到手机保存,查看更方便
资源描述
《C语言程序设计》自学指导书 自学学时:64学时 推荐教材:《C语言程序设计》 宝明等主编,人民邮电,2009年1月第1版 参考资料: 1、《C程序设计》(第三版) 谭浩强主编,清华大学 2、《C语言程序设计教程》 明主编,交通大学 3、《C语言程序设计教程》 基温主编,高等教育 4、《C语言程序设计》 何钦铭等主编,科技 考核方式:平时作业×30%+笔试(闭卷)×70% 第一章 C语言概述 一、本章自学容与要求: 1、了解C语言的发展与特点。 2、理解和掌握C语言源程序书写规则。 3、掌握C语言源程序在Turbo C、Visual C++或者C-Free环境中的上机步骤。 二、重点与难点: 本章重点在于了解并掌握C语言程序的上机操作步骤,难点在于把握C语言源程序的结构和书写规则。 三、学习方法指导: 选择并熟悉一个C语言程序运行环境,掌握C语言程序的编辑、编译、连接和运行等步骤。 四、典型例题介绍: 1、C语言的程序由 一 个主函数和 若干 个子函数组成。程序的执行总是从 主 函数开始,不管它放在哪个位置。 2、简述C语言程序的开发和运行步骤。 答:C语言程序的开发和运行步骤包括编辑、编译、连接和运行等几个步骤,如下图所示。 编辑 start f.c 编译 语法错? f.obj 连接、运行 逻辑错? f.exe end Source Object Executable 有 有 无 无 五、复习思考题: 教材C语言概述章节习题。 第二章 C语言程序设计基础 一、本章自学容与要求: 1、熟悉C语言的3种基本数据类型(整型、实型、字符型)常量的表示和变量的定义与使用。 2、掌握标准格式输入输出函数和字符输入输出函数的使用。 3、了解各种常用运算符与表达式,掌握各类数据的混合运算规则。 4、掌握赋值运算特点和复合赋值表达式等。 (1)数据类型 了解C语言的数据类型分类,掌握常用的3种基本数据类型——整型、实型和字符型。 (2)常量与变量 a、常量与变量的概念 b、3种基本数据类型常量的表示 c、3种基本数据类型变量的定义与输入输出 (3)运算符与表达式 a、了解各种常用的运算符与运算特点,注意与数学中的运算区别 b、掌握表达式的概念与其表达式的求值 (4)数据运算 注意数据在运算过程中类型的转换。 二、重点与难点: 重点:3种基本数据类型常量和变量的使用,各种类型数据混合运算规则和常用运算符的运算特点。 难点:各种类型数据的混合运算以与根据要求进行格式输入和输出。 三、学习方法指导: 通过上机实验,掌握C语言基本数据类型与运算以与格式输入输出函数的使用。 四、典型例题介绍: 1、若有以下类型说明语句: int a; char ch1; float b; 则表达式 a+ch1-b的结果的类型是( D )。 A. char B. int C. float D. double 2、 下面正确的字符常量是( B )。 A. “x” B. ‘y’ C. ‘/\” D. ‘’ 3、 在C语言中,要求运算对象或运算量必须是整型的运算符是( D )。 A. / B. * C. != D. % 4、 设a,b都是整型变量,为了使a=4,b=8。函数scanf(“a=%d,b=%d”,&a,&b)执行时,正确的数据输入是( C )。 A. a=4 b=8 B. a=4,8 C. a=4,b=8 D. a=b=4,8 5、设a,b都是整型变量,且a=5,b=10,则函数printf(“%d,%d\n”,a++,++b)的输出结果是( B )。 A. 5,10 B. 5,11 C. 6,10 D. 6,11 6、字符串常量是用一对 双引号 括起来的字符序列。 7、设x是int型变量,且x=10,则表达式x*=3+4的值是 70 ,表达式x/=x+x的值是 0 。 8、下面程序的输出结果是什么? #include <stdio.h> main() {int i, j, m=0, n=0; i = 8; j = 10; m+= i++; n-=--j; printf(“i=%d,j=%d,m=%d,n=%d”, i, j, m, n); } 答:程序的输出结果是: i=9,j=9,m=8,n=-9 五、复习思考题: 教材程序设计基础章节习题。 第三章 C语言程序控制结构 一、本章自学容与要求: 1、了解利用一些基本要素(常量,变量,运算符,表达式等)构成程序的基本成份。 2、掌握关系运算和逻辑运算的特点。 3、利用if语句和switch语句进行选择结构程序的设计。 4、掌握循环结构的基本概念,利用3种循环语句进行循环结构程序设计。 (1)算法与程序 a、了解算法的概念 b、掌握算法的流程图表示 (2)三种基本结构 a、了解结构化程序设计的特点 b、掌握正确的逻辑表达方式 c、熟练掌握if语句和switch语句的使用 d、了解三种循环语句的特点,掌握用循环实现一些常用算法 二、重点与难点: 重点:逻辑表达式的组织;条件语句的格式和功能;循环语句的格式、功能以与特点。 难点:算法的概念;建立正确逻辑思维能力,合理进行选择结构和循环结构程序设计。 三、学习方法指导: 复习相关的数学知识,通过习题和上机实验初步掌握C语言程序设计。 四、典型例题介绍 1、程序填空。编程计算1到100之间的奇数之和与偶数之和。 #include <stdio.h> main() { int even_sum,odd_sum,j,i; even_sum = odd_sum =0; for(i=0;i<=100;i+=2) { even_sum +=i; _j=i+1___; odd_sum +=j; } printf("sum of evens is %d\n", even_sum); printf("sum of odds is %d\n", odd_sum -101); } 2、程序填空。从键盘上输入两个正整数x,y,求它们的最大公约数。例如:如果从键盘上输入24,36,程序的输出应为:最大公约数是 : 12。 #include <stdio.h> main() { int x,y,t,i; printf("Please enter two numbers:"); scanf("%d,%d",&x,&y); if(x < y) {t = x; x = y; y = t;} t = x % y; while( t!=0 ) { x = y; y = t ; t = x % y; } printf("最大公约数是: %d",____y___); } 3、编程,统计1~500之间能被2和3整除的数的个数。 #include <stdio.h> main() {int count=0,i; for(i=1;i<=500;i++) if(i%2==0&&i%3==0) count++; printf(" 符合要求的数有%d个。\n",count); } 4、输入三角形的三条边a、b、c,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为:area=,其中s=(a+b+c)/2。 #include <stdio.h> #include <math.h> main() { float a,b,c,s,area; printf(“Input a,b,c:”); scanf(“%f%f%f”,&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%.2f\n”,area); } else printf(“无效的边长!”); } 5、编写程序,输入一个整数,求它的各位数字之和与位数。例如,34的各位数字之和是7,位数是2;-123的各位数字之和是6,位数是3。 #include <stdio.h> main() { int x,m,n=0,s=0; printf(" x= "); scanf("%d",&x); if(x<0)x=-x; do { m=x%10; /* 求出该数的个位数 */ s=s+m; n++; x=x/10; } while(x!=0); printf(" 位数是:%d\n",n); printf(" 各位数字之和是:%d\n",s); } 6、使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6。 …… #include <stdio.h> #include <math.h> main( ) { int s; float n, t, pi; t=1; pi=0; n=1.0; s=1; while((fabs(t)) > = 1e-6) { pi = pi+t; n = n+2; s = -s; t = s/n; } pi=pi*4; printf(“pi=%10.6f\ n”, pi ); } 7、中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? #include <stdio.h> main() { int cock,hen,chicken; for(cock =0; cock <=20; cock ++) for(hen =0; hen <=33; hen ++) {chicken =100- cock - hen; if((5* cock +3* hen + chicken /3)==100&&( chicken %3==0)) printf("%5d%5d%5d\n", cock, hen, chicken); } } 8、编程,求S=1!+3!+5!+…+11!。 #include <stdio.h> main() { double p,s=0; int i,j; for(i=1;i<=11;i=i+2) { p=1; for(j=1;j<=i;j++) /* 求i! */ p=p*j; s=s+p; } printf(“ s=%.2f”,s); } * *** ***** ******* ***** *** * 9、编程,打印输出以下图形: #include <stdio.h> main() { int i,j,k; for(i=1;i<=4;i++) /* 控制输出前4行*号 */ { for(j=1;j>=4-i;j++) /* 输出第一个*号前的空格 */ printf(" "); for(j=1;j<=2*i-1;j++); /* 输出*号 */ printf("*"); printf("\n"); } for(i=3;i>=1;i--) /* 控制输出后3行*号 */ { for(j=1;j>=4-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } } 10、按如下形式打印九九乘法表的一部分。 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 #include <stdio.h> main() { int i,j,k; clrscr(); for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf("%3d *%3d =%3d",i,j,i*j); printf("\n"); } } 五、复习思考题: 教材程序结构章节习题。 第四章 数组 一、本章自学容与要求: 1、掌握数组的概念,了解数组的特点。 2、掌握一维数组的定义和引用,理解一些常用的算法,如排序、查找等。 3、了解二维数组的定义和应用。 4、理解字符型数组的意义和引用,熟悉常用的字符串函数。 (1)数组的概念 a、了解数组在程序设计中的作用 b、理解数组的概念,把握其特点 (2)一维数组 a、了解一维数组的定义与初始化 b、理解常用的排序、求最大(小)值等算法 c、掌握利用循环语句访问一维数组元素的方法 (3)二维数组 a、了解二维数组的定义与初始化 b、理解二维数组表示矩阵进行的相关计算 c、掌握利用二重循环语句访问二维数组元素的方法 (4)字符数组 a、了解字符、字符串和字符数组的联系与区别 b、掌握字符数组的定义与初始化 c、掌握常用的字符串处理函数的用法 (5)数组应用举例 a、熟悉数组应用的特点 b、理解常用的算法,如排序、查找、求最大(小)值与统计等 二、重点与难点: 重点:数组的定义,赋初值以与数组与循环语句相结合进行的程序设计。 难点:数组的存储形式,数组名的使用,尤其是字符数组的引用。 三、学习方法指导: 复习第三章容,通过习题和上机实验,掌握数组与循环结构紧密结合的程序设计特点。 四、典型例题介绍: 1、编程,用冒泡排序对10个整数进行降序排列。 #include <stdio.h> main( ) { int a[10]; int i, j , t; /*输入10个整数到数组a中*/ printf ("Input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf ("\n"); /*用冒泡排序法对数组a中的10个数进行降序排序*/ for(i=1; i<10; i++) for(j=0; j<=9-i; j++) /* a[0]到a[9-i]围的数进行一趟冒泡排序 */ if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } /*依次输出排序后的10个整数*/ printf ( "The sorted numbers are:\n"); for(i=0;i<10;i++) printf("%d _ _",a[i]); } 2、编程,用选择排序对10个整数进行升序排列。 #include <stdio.h> main( ) { int a[10]; int i, j , p, temp; /*输入10个整数到数组a中*/ printf ("Input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d", &a[i]); for(i=0; i<9; i++){ p=i; /* 从a[i]到a[9]围求最小元素的位置 */ for(j=i+1; j<10; j++) if(a[j]<a[p])p=j; if(p!=i){ /* 若最小元素不是a[i],则将其与a[i]交换 */ temp=a[p];a[p]=a[i];a[i]=temp; } } printf ("The sorted numbers are:\n"); for(i=0; i<10; i++) printf("%d _ _”,a[i]); } 3、已知10个学生的英语成绩,从键盘输入1个成绩,查找是否有此成绩。如果找到,则输出找到的位置,否则输出“not found”。 #include <stdio.h> main( ) { int a[10], x; int i; /*输入10个学生成绩到数组a中*/ printf ("Input 10scores:\n"); for(i=0; i<10; i++) scanf("%d", &a[i]); /*输入待查找的成绩到变量x中*/ printf ("Input x:\n"); scanf("%d", &x); /*在查找表中顺序查找x*/ for(i=0; i<10; i++) if(a[i]= = x) break; /*输出查找结果*/ if(i<10) printf("%d is in %d\n",x,i); else printf("not found\n"); } 4、已知10个学生的高考总成绩,输出最高分。 #include <stdio.h> main( ) { float score[10], maxscore; int i; /*输入10个学生的高考总成绩到数组score中*/ printf ("Input 10scores:\n"); for(i=0; i<10; i++) scanf("%f", &score[i]); /*变量maxscore赋值为第一个学生的成绩*/ maxscore=score[0]; /*求最高分*/ for(i=1; i<10; i++) if( score[i]>maxscore) maxscore=score[i]; /*输出最高分*/ printf("maxscore=%6.1f\n",maxscore); } 5、输入20个学生的成绩,要求统计并输出优秀(大于等于85)、与格(60~84)和不与格(小于60)的学生人数。 #include <stdio.h> main( ) { int mark[20], g, p, f,i; g=p=f=0; printf("Enter scores:\n"); for(i=0; i<20; i++) scanf ("%d", &mark[i]); /*统计优秀、与格和不与格的学生人数*/ for(i=0; i<20; i++) if(mark[i] >= 85) g++; else if (mark[i] >= 60) p++; else f++; /*输出统计结果*/ printf("优秀人数:%d\n", g); printf("与格人数:%d\n", p); printf("不与格人数:%d\n", f); } 6、从键盘任意输入一行字符(不超过80个),统计其中的英文字母、数字、空格以与其它字符的个数。 #include <stdio.h> main( ) { char string[80]; int letter, digit, blank, other, i; letter=digit=blank=other=0; /*输入一行字符*/ printf("Enter string:\n"); gets(string); /*按要求统计各类字符的个数*/ for(i=0; string[i]!= '\0'; i++) if('a'<=string[i]&& string[i]<= 'z'||'A'<=string[i]&& string[i]<= 'Z') letter++; else if('0'<=string[i]&& string[i]<= '9') digit++; else if(string[i]== '') /*当前字符为空格*/ blank++; else other++; /*输出统计结果*/ printf("英文字母个数:%d\n", letter); printf("数字个数:%d\n", digit); printf("空格个数:%d\n", blank); printf("其它字符个数:%d\n", other); } 7、求一个5*5矩阵主对角线和副对角线元素总和。 #include <stdio.h> main( ) { int i,j; int a[5][5],sum=0; /*输入5*5矩阵*/ printf("Input 25 numbers:\n "); for(i=0; i<5; i++) for(j=0; j<5; j++) scanf("%d", &a[i][j]); /*求主对角线和副对角线元素总和*/ for(i=0; i<5; i++) sum+=a[i][i]+ a[i][4-i]; /*输出求和结果*/ printf("The sum is: "); printf("%d\n",sum-a[2][2]); } 8、输入一个以回车键结束的字符串(少于80个字符),删除其中除英文字母和数字字符以外的其它字符。 #include <stdio.h> main() { char str[80]; int i,k=0; printf("Input a string:\n"); gets(str); /*删除字符串中除英文字母和数字字符以外的字符*/ for(i=0; str[i]!='\0'; i++) if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z' ||str[i]>='0'&&str[i]<='9'){ str[k]=str[i]; /* 保留字符串中的英文字母和数字字符 */ k++; } str[k]='\0'; printf("Output new string:\n"); puts(str); } 9、有3× 4矩阵,求出其中最大元素所在的行号和列号。 #include <stdio.h> main( ) { int i, j, r=0,c=0, max; int a[3][4] = { {1,2,3,4}, {9,8,4,6}, {-10,10,-5,2} }; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) { max=a[i][j]; r=i; c=j; } printf(“max=%d,row=%d, col=%d\n”,max,r,c); } 10、打印以下的辉三角形(要求打印出10行)。     1       1  1       1  2  1       1  3  3  1       1  4  6  4  1       1  5  10 10 5  1 ……………………………… #include <stdio.h> main() { int a[10][10],i,j; /*第0列与主对角线上的元素值均赋为1*/ for(i=0; i<10; i++) a[i][0]=a[i][i]=1; /*计算下三角阵中除第0列与主对角线上元素以外的其他元素的值*/ for(i=2; i<10; i++) for(j=1; j<i; j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; /*输出辉三角形*/ for(i=0; i<10; i++){ for(j=0; j<=i; j++) printf("%4d",a[i][j]); printf("\n"); } } 五、复习思考题: 教材数组章节习题。 第五章 函数 一、本章自学容与要求: 1、理解函数的概念,了解模块化程序设计的特点。 2、掌握函数定义的一般形式以与函数的调用。 3、理解函数调用过程中参数传递的实质。 4、明确变量的作用域与存储属性。 (1)函数概述 a、了解模块化程序设计的特点 b、理解函数的概念 (2)函数定义的一般形式 a、掌握函数定义的一般形式 b、了解函数的声明方式 (3)函数的参数传递方式 a、理解形式参数和实际参数的概念 b、了解普通变量作实参时值传递的方式 c、了解数组元素作实参与数组名作实参的本质区别 (4)函数的调用 a、掌握函数调用的方式 b、了解函数调用的过程 (5)函数的嵌套调用与递归调用 a、掌握函数的嵌套调用特点 b、理解递归的特点 c、了解函数的递归调用 (6)变量的作用域与存储类别 a、了解变量的作用域 b、掌握局部变量与全局变量的特点 c、了解变量的生存期 d、掌握静态局部变量的特点 二、重点与难点: 重点:函数的定义和调用,变量的作用域与存储属性。 难点:在函数调用过程中参数单向传值概念以与变量的作用域与存储属性。 三、学习方法指导: 通过一定数量的习题和上机实验,掌握函数的定义和调用,学习进行模块化程序设计。通过运行程序与程序验证,掌握局部变量与全局变量的使用,并了解静态局部变量的存储属性。 四、典型例题介绍: 1、编写一个求圆面积的函数Area,该函数有一个形式参数r,类型为float,返回值类型也为float。在主函数中输入一个圆的半径,调用Area函数求出该圆的面积并输出。 #include <stdio.h> float Area(float r) { float s; s=3.14*r*r; return s; } main() { float a,b; printf("请输入一个圆的半径:"); scanf("%f",&a); b=Area(a); printf("该圆的面积=%.2f\n",b); /*保留2位小数*/ } 2、输入x,计算并输出下列分段函数f(x)的值。可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs()和幂函数pow()。 | 2x+5| x<0 f(x)= (x+1)1/2 0<=x<2 (x+2)3 x>= 2 #include <stdio.h> #include <math.h> float f(float x); main() { float x; printf("请输入一个数:"); scanf("%f",&x); printf("y=%.2f\n",f(x)); } float f(float x) { float y; if (x<0) y=fabs(2*x+5); else if (x<2) y=sqrt(x+1); else y=pow(x+2,3) ; return y; } 3、编写一个函数power(x,n),求x的n次方,其中,x是实数,n为正整数。 #include <stdio.h> double power(double x,int n); void main(void) { int x,n; printf("请输入2个数:"); scanf("%f%d",&x,&n); printf("%f的%d次方=%f\n",x,n,power(x,n)); } double power(double x,int n) { int i; double s=1; for(i=1;i<=n;i++) s=s*x; return s; } 4、编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 #include <stdio.h> #include <math.h> int prime(int n); main() { int i; for(i=100;i<=200;i++) if (prime(i)) printf("%d ",i); } int prime(int n) { int i; for(i=2;i<=sqrt(n);i++) if(n%i==0) break; if(i>sqrt(n)) return 1; else return 0; } 5、用递归法编写一个函数long fact(int n),求n!的值。 #include <stdio.h> long fact(int n); main() { int x; printf("请输入一个整形数:"); scanf("%d",&x); printf("%d的阶乘为%ld\n",x,fac(x)); } long fact(int n) { long t; if(n==0||n==1) t=1; else t=n*fac(n-1); return t; } 6、分别利用递归法和数组法求Fibonacci数列的前40项,比较两种方法的运行效率。其中Fibonacci数列F(n)的定义为: F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)。 (1)用递归法求Fibonacci数列的前40项源程序如下: #include <stdio.h> long fib(int n); main() { int i; for(i=1;i<=40;i++) { printf ("%12ld",fib(i)); if(i%5==0) printf ("\n"); } } long fib(int n) { long f; if(n==1||n==2) f=1; else f=fib(n-1)+fib(n-2); return f; } (2)用数组法求Fibonacci数列的前40项源程序如下: #include <stdio.h> main() { int i,f[40]={1,1}; for(i=2;i<40;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<40;i++) { printf ("%12d",f[i]); if((i+1)%5==0) printf ("\n"); } } 从运行结果来看,两种方法的结果是一样的,但是用递归的运行效率要慢的多。 五、复习思考题: 教材函数章节习题。 第六章 指针 一、本章自学容与要求: 1、理解指针与指针变量的基本概念。 2、掌握各种数据类型指针的定义和引用。 3、熟悉地址运算和指针运算的特点。 (1)指针的概念 a、掌握指针与指针变量的概念 b、了解指针变量的特点 (2)指针变量与变量 a、掌握指针变量的定义 b、了解指针变量的引用 c、理解指针变量作函数参数的数据传递方式 d、掌握用指针变量间接引用其所指向的变量 (3)指针与数组 a、了解指向数组的指针变量 b、掌握用指针变量访问数组元素的方法 c、进一步了解数组名作实参时函数调用的数据传递方式 (4)指针与字符串 a、了解指向字符串的指针变量的定义与引用 b、明确字符型指针变量处理字符串与字符数组的区别 (5)指针数组与指向指针的指针 a、了解字符型指针数组的定义和引用 b、了解指向指针的指针变量的定义和引用 二、重点与难点: 重点:各类指针变量的定义和引用。 难点:指向数组的指针和指针数组的引用。 三、学习方法指导: 结合第五章,通过上机实验,掌握指针变量的定义和引用;通过程序运行结果的比较,理解普通变量作实参与指针变量作实参的区别。 四、典型例题介绍: 1、输入3个整数,按从小到大的顺序输出。 #include<stdio.h> main() { int a,b,c,temp; int *p1,*p2,*p3; p1=&a; p2=&b; p3=&c; printf(“input a,b,c:”); scanf(“%d%d%d”,p1,p2,p3); if(*p1>*p2){ temp=*p1; *p1=*p2; *p2=temp; } if(*p1>*p3){ temp=*p1; *p1=*p3; *p3=temp; } if(*p2>*p3){ temp=*p2; *p2=*p3; *p3=temp; } printf(“a=%d,b=%d,c=%d\n”,*p1,*p2,*p3); } 2、将具有10个元素的一维数组中的数据倒置。 #include<stdio.h> main() { int a[10],
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

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

客服