收藏 分销(赏)

C语言程序设计课程实验指导书.doc

上传人:二*** 文档编号:4497872 上传时间:2024-09-25 格式:DOC 页数:22 大小:160KB
下载 相关 举报
C语言程序设计课程实验指导书.doc_第1页
第1页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、语言程序设计课程实验指导书第一部分前言一、实验的目的学习程序设计课程不能满足于“懂得了”,满足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果。上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编写的程序的正确与否。程序设计课程上机实验的目的是:1加深对讲授内容的理解,尤其是一些语法规定。通过实验来掌握语法规则是行之有效的方法。2熟悉所用的操作系统。3学会上机调试程序。通过反复调试程序掌握根据出错信息修改程序的方法。4通过调试完善程序。二、实验前的准备工作1了解所用的计算机系统(包括编译系统)的性能和使用方法。2复习和

2、掌握与本实验有关的教学内容。3准备好上机所需的程序,切忌不编程或抄别人的程序去上机。4对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便上机时给予注意。5准备好调试程序和运行程序所需的数据。三、实验的步骤上机实验应一人一组,独立实验。上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。尤其对“出错信息”,应善于分析判断,找出出错的行,然后检查该行或其上一行。上机实验一般应包括以下几个步骤:1双击桌面Visual C+快捷方式进入Visual C+,或通过执行“开始=程序=Microsoft Visual Studio 6.0=Microsoft Visual

3、C+6.0”或执行文件C:Program FilesMicrosoft Visual StudioCOMMONMSDev98BinMSDEV.EXE。2单击“文件”菜单的“新建”命令。3在打开的“新建”对话框中选择“文件”标签。4选择C+ Source File,选择文件保存位置,然后在文件输入栏中输入文件名。如图所示:5输入源程序。6编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译编译连接运行若程序有错则找到出错行修改程序。7连接:若程序没有语法错误,则可按功能键或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),

4、进行连接生成可执行文件。8运行程序:按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。四、写好实验报告实验报告应包括以下内容:1实验目的。2实验内容。3程序清单。4运行结果。5对运行结果的分析,以与本次调试程序所取得的经验。五、实验任务与时间安排实验序号实验内容拟实验时间实验形式1C程序的运行环境与运行一个C程序2验证性2数据类型、运算符和表达式2验证性3最简单的C程序设计2验证性4选择结构程序设计2验证性5循环控制4验证性6数组4验证性7函数2验证性8编译预处理2验证性9指针2验证性10结构体、共用体6设计性11位运算2验证性12文件2验证性六、

5、教材C程序设计(第三版)潭浩强著清华大学第二部分实验内容实验一程序的运行环境和运行一个程序的方法一、实验目的1了解所用的计算机系统。2了解在该系统上如何进行编辑、编译、连接和运行一个程序。3通过运行简单的程序了解程序的特点。二、实验内容和步骤熟悉所用的系统。了解Windows资源管理器的使用方法:文件的查看、复制、运行等方法,Visual C+所在目录,文本文件的建立方法。2进入Visual C+,并新建一个C+源程序文件。3熟悉Visual C+的集成环境,了解各菜单项有哪些子菜单。4输入下面的程序(教材中的例.),注意区分大小写。#includevoid main()printf(This

6、 is a C program.n);编译并运行程序。5关闭工作区,新建一个程序,然后对教材中的例.重复中的操作(即只将程序改为例1.2中的程序,其它操作步骤相同)。6关闭工作区,新建一个程序,然后输入并运行一个需要在运行时输入数据的程序#includevoid main()int a,b,c;int max(int x,int y);printf(input a and b:);scanf(%d,%d,&a,&b);c=max(a,b);printf(nmax=%d,c);int max(int x,int y)int z;if(xy) z=x;else z=y;return(z);(1)运

7、行程序,若程序有错,则修改错误后继续运行程序,当没有错误信息时输入:2,5并按Enter键,查看运行结果。(2)将程序的第三行改为:int a;b;c;然后按F9看结果如何,将其修改为int a,b,c;将子程序max的第3,4行合并为一行,运行程序,看结果是否相同。7运行一个自己编写的程序,程序的功能是输出两行文字。实验二数据类型、运算符和表达式一、实验目的掌握语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以与对它们赋值的方法。2掌握不同数据类型之间赋值的规律。3学会使用的有关算术运算符,以与包含这些运算符的表达式,特别是自加()和自减()运算符的使用。4进一步熟悉程序的编辑、编译

8、、连接和运行的过程。二、实验内容和步骤输入并运行下面的程序#includevoid main()char c1,c2;c1=a;c2=b;printf(%c %c,c1,c2);()运行此程序()加入下面的一个语句作为“”前的最后一个语句:printf(%d,%dn,c1,c2);()将第行改为:int c1,c2;然后再运行程序,并观察结果是否相同。()将第行改为int c1,c2;将第4,行依次改为:c1=a;c2=b;c1=a;c2=bc1=300;c2=400;每改为一次后运行程序,观察结果。2分析教材第章习题3.6中的程序的运行结果,然后输入该程序并运行,将运行结果与前面分析的结果对

9、比。3输入并运行下面的程序#includevoid main()int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d,%dn,a,b);printf(%u,%un,a,b);printf(%u,%un,c,d);c=a=e;d=b=f;printf(%d,%dn,a,b);printf(%u,%un,c,d);请对照程序和运行结果分析:()将一个负整数赋给一个无符号的变量,会得到什么结果。画出它们在内存中的表示形式。()将一个大于32767的长整数赋给一个整型变量,会得到什么结果。画出它们在内存

10、中的表示形式。()将一个长整数赋给无符号的变量,会得到什么结果。画出它们在内存中的表示形式。4输入习题3.10()运行程序,注意i,j,m,n的值。()将第4,5行改为:m=i+;n=+j;再运行。()将程序改为:#includevoid main()int i,j;i=8;j=10;printf(%d,%dn,+i,+j);i=8;j=10;printf(%d,%dn,i+,j+);i=8;j=10;printf(%d,%dn,+i,i);i=8;j=10;printf(%d,%dn,i+,i);运行程序并分析运行结果。5按习题3.7的要求编程并上机运行:要将“China”译成密码,密码规律

11、是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c、c2、c3、c4、c5这5个变量的值分别为C,h,i,n,a,经过计算,使c、c2、c3、c4、c5分别变为:G,l,m,r,e,并输出.程序提示:main函数算法如下: 定义char型变量 c,c2,c3,c4,c5; 给字符型变量赋值 c1=c1+4;c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;输出c,c2,c3,c4,c5实验三最简单的程序设计一、实验目的1掌握语言中使用最多的一种语句

12、赋值语句的使用方法。2掌握各种类型数据的输入输出方法,能正确使用各种格式输出符。二、实验内容和步骤掌握各种格式输出符的使用方法。#includevoid main()int a,b;float d,e;char c1,c2;double f,g;long n,m;unsigned p,q;a=61;b=62;c1=a;c2=b;d=3.56; e=-6.87;f=3156890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf(a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn,a,b,c1,c2,d,e

13、);printf(f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un,f,g,m,n,p,q);(1)运行此程序并分析运行结果。(2)在此基础上,修改程序的第行:a=61;b=62;c1=a;c2=b;f=3156,890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析运行结果。(3)将行改为以下的scanf语句,即用scanf函数接收从键盘输入的数据:scanf(%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u,&a,&b,&c1,&c2,&d,&e,&f,&g,

14、&m,&n,&p,&q);运行程序(无错误的情况下)输入数据如下:61,62,a,b,3.56,-6.87,3156,890121,0.123456789,50000,-60000,32768,400002按习题38的要求编写程序并运行:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积,圆球表面积、圆球体积、圆柱体体积。用scanf输入数据,输出计算结果,输出时要有文字说明,取小数后2位数字。程序提示:#define PI 3.14159main算法如下定义float型变量 r,h,L,s1,s2,v1,v2;用scanf语句输入圆半径和圆柱高求圆周长、面积、圆球表面积、圆柱体体积输出圆周长

15、、圆面积、圆球表面积、圆球体体积程序中的用PI代替。3编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。实验四选择结构程序设计一、实验目的1了解语言表示逻辑值的方法。2学会正确使用逻辑运算符和逻辑表达式的方法。3熟悉if语句和switch语句。4结合程序掌握一些简单的算法。5学习调试程序的方法。二、实验内容本实验要求编程解决以下问题,然后上机调试运行程序。1用scanf函数输入x的值,求y的值。程序提示:main函数结构如下:定义实型变量x与y使用scanf函数输入x的值if x1 y=xelse if x=90grade=A

16、else if score=80grade=Belse if score=70grade=Celse if score=60grade=Delse grade=E输出百分制成绩和等级。(2)使用switch语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给scoreswitch(int(score/10)case 10:case 9: grade=A;break;case 8: grade=B;break;case 7: grade=C;break;case 6: grade=D;break;default: grade=E;break;输出

17、百分制成绩和等级3编程实现:输入一个不多于位的正整数,要求:()输出它是几位数,()分别输出每一位数字,()按逆序输出各位数字,如原数为,则应输出。应准备以下测试数据要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数;输入的数超过位;程序提示:main函数结构如下:定义long型变量num,int型变量c1,c2,c3,c4,c5输入一个不超过5位的正整数赋给numif num99999 输出:输入的数超过5位else if num0) printf(n%ld是一个5位数n

18、,num); printf(其各位分别为:%1d,%1d,%1d,%1d,%1dn,c1,c2,c3,c4,c5); printf(逆序输出为:%1d%1d%1d%1d%1dn,c5,c4,c3,c2,c1); else if(c20) 是4位数,输出其各位,格式与5位数类似else if(c30) 是3位数,输出其各位,格式与5位数类似else if(c40) 是2位数,输出其各位,格式与5位数类似else if(c50) 是1位数,输出其各位,格式与5位数类似4编程实现:输入个整数,要求按由小到大的顺序输出。得到正确结果后,修改程序使之按由大到小的顺序输出。main函数结构如下:int a

19、,b,c,d,t;输入4个整数:赋给a,b,c,d;if(ab) 交换a,bif(ac) 交换a,cif(ad)交换a,dif(bc) 交换b,cif(bd) 交换b,dif(cd) 交换c,d输出a,b,c,d实验五循环控制一、实验目的熟悉使用while语句,do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。二、实验内容上机完成习题6.1:输入两个正整数m和n,求出它们的最大公约数和最小公倍数。输入时,使mn,观察结果是否正确;再输入时使mn,观察结果是否正确;修改程序使对任何的整数都能得到正确的结果。程序提示:main结构

20、如下:int m,n,r,tm,tn;输入两个正整数赋给m,ntm=m;tn=n;if(m=1e-7)e=e+t; i+;p=p*i;t=1.0/p;输出e的值3编程求1到n中能被3或7整除的数之和。分别用for循环语句和while循环语句完成本题。程序提示:for循环语句的主要算法如下:for(i=1;i=n;i+) if i能被3或7整除sum=sum+iwhile循环语句的主要算法如下:while(i=1;i-)x=2*x+1实验六数组一、实验目的1掌握一维数组与二维数组的定义、赋值与输入输出方法。2掌握字符数组和字符串函数的使用。3掌握与数组有关的算法(特别是排序算法)二、实验内容用选

21、择法对个整数排序(从小到大)。个整数用scanf函数输入。程序提示:方法一:冒泡法。见例6.3方法二:选择法。输入10个整数存放到数组a的a0到a9中输出10个数for(i=0;i10;i+)min=i;for(j=i+1;jaj) min=j;交换ai与amin输出排序后的10个数2有个数存放在一个数组中,输入一个数要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出无此数,要找的数用scanf函数输入。程序提示:方法一:顺序查找法,即从数组的第一个数开始,将要找的数与数组中的数一一比较,直到找到为止。写出用此方法的程序。方法二:折半查找法,先对数组进行升序排序,每次

22、查找时,只将要找的数与数组中居中的数进行比较,若比居中的数小,再与前一半居中的数比较,否则,与后一半居中的数比较,如此类推,直到找到为止。用循环语句输入15个数调用排序算法对其进行排序while(flag)输入要查找的数loca=0;top=0;bott=N-1;if(numberaN-1) loca=-1;while(sign=1&top=0)mid=(bott+top)/2;if(number=amid)loca=mid; printf(找到了,数%d在数组的第%d位、n,number,loca+1); sign=0;else if(numberamid) bott=mid-1; else

23、 top=mid+1;if(sign=1|loca=-1) printf(n查无此数n);printf(n是否继续查找?(Y/N);scanf(%c,&c);getchar();printf(n);if(c=N|c=n) flag=0;3将两个串连接起来,不要用strcat函数。程序提示:分别输入二个串字符i指向第一个数组的最后一个空数组元素while(s2j!=0)s1i+=s2j+;s1i=0;输出连接后的字符串4找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。至少准备两组测试数据:()二维数组有鞍点9 80 205 4090 -60 96 1 21

24、0 -3 101 89()二维数组没有鞍点 9 80 205 40 90 -60 96 1 210 -3 101 89 45 54 156 7 用scanf函数从键盘输入数组的各元素的值,检查结果是否正确,题目未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。程序提示:输入矩阵flag2=0;/矩阵中无鞍点for(i=0;in;i+)/找第i行的鞍点max=ai0;maxj=0;用for循环语句找第i行的最大值存放在max中,其下标j保存到maxj中for(k=0,flag1=1;kakmaxj) flag1=0;/max不是该列的最小元素if(flag1)printf(n第%d行

25、第%d列的%d是鞍点n,i+,maxj+,max);flag2=1;/endforiif(!flag2) printf(n矩阵中无鞍点n);实验七函数一、实验目的1掌握定义函数的方法。2掌握函数实参与形参的对应关系以与“值传递”方式。3掌握函数的嵌套调用和递归调用的方法。4掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。5学会对多文件程序的编译和运行。二、实验内容(1为必做,2-5至少选做一个)写出一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应准备以下测试数据:17,34,2,0,分别输入数据,运行程序并检查结果是否正确。程序提示:求素数函数如下:int p

26、rime(int n)if n2 return 0for(i=2;in/2;i+)if n能被i整除return 0;return 1;main函数中输入一个整数赋给变量n,通过prime(n)判断其是否素数,若函数值为1则是素数否则不是素数。2用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。()把两个函数放在同一个程序文件中。()将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。程序提示:寻找最长单词的起始位置函数:int longest(char string)/n为字符串的长度,len为每个单词的长度/length为最长单词的长度,point

27、为最长单词的起始位置/函数返回最长单词的起始位置int len=0,i,n,length=0,flag=,place=0,point;n=strlen(string);for(i=0;i=length)length=len;place=point;len=0;return place;在main函数中输入一行字符,然后调用上面函数取得最长字符的开始位置,从该位置开始输入数组元素,直到输出的数组元素不是英文字母时止。3用递归法将一个整数n转换成字符串。例如输入483应输出字符串“4 8 3 ”。n的位数不确定,可以是任意的整数。程序提示:void convert(int n)int i;if(i

28、=n/10)!=0)convert(i);putchar(n%10+0);在main函数中输入一个整数,然后先输出该数的符号,然后调用函数convert(n)。4求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数。分别用下面的两种方法编程。()不用全局变量,在主函数中输入两个数和输出结果。()用全部变量的方法,数据的传递通过全部变量的方法。程序提示:使用下面函数求最大公因子,其中v为最大公因子,若将v设为外部变量,则可不使用return语句。int hcf(int u,int v)/求最大公因子int t,r;if(vu)t=u;u=v;v=

29、t;while(r=u%v)!=0)/余数r不为0时继续作辗转相除法u=v;v=r;return(v);5写一个函数,输入一个十六进制数,输出相应的十进制数。程序提示:输入时将十六进制数作为一个字符串输入,然后将其每一个字符转换成十进制数并累加,转换方法如下:if(si0&si=a&si=A&si=F)n=n*16+si-A+10;实验八编译预处理一、实验目的1掌握宏定义的方法。2掌握文件包含处理方法。3掌握条件编译的方法。二、实验内容定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。程序提示:使用以下宏定义:#define SWAP(a,b)

30、 t=b;b=a;a=t调用格式:SWAP(a,b);2设计输出实数的格式,包括:()一行输出一个实数,()一行内输出两个实数,()一行内输出三个实数。实数用%6.2f格式输出。用一个文件printf_format.h包含以上用#define命令定义的格式,编写一程序,将printf_format.h包含到程序中,在程序中用scanf函数读入三个实数给f,f2,f3,然后用上面定义的三格式分别输出:f1;f,f2;f,f2,f3。程序提示:使用以下宏定义:#define PR printf#define NL n#define Fs %f#define F %6.2f#define F1 F

31、NL#define F2 F t F NL#define F3 Ft Ft F NL然后再建立一个C程序,程序内容如下#include#includep_f.hvoid main()float f,f2,f3;PR(Input three floating numbers f,f2,f3:n);scanf(Fs,&f1);scanf(Fs,&f2);scanf(Fs,&f3);PR(NL);PR(Output one floating number each line:n);PR(F,f1);PR(F,f2);PR(F,f3);PR(NL);PR(Output two number each

32、line:n);PR(F2,f,f2);PR(NL);PR(Output three number each line:n);PR(F3,f,f2,f3);实验九指针一、实验目的1通过实验进一步掌握指针的概念,会定义和使用指针变量。2能正确使用数组的指针和指向数组的指针变量。3能正确使用字符串的指针和指向字符串的指针变量。4能正确使用指向函数的指针变量。5了解指向指针的指针的概念与其使用方法。二、实验内容以下程序要求使用指针处理。1 输入三个整数,按由小到大的顺序输出。运行无错后改为:输入三个字符串,按由小到大的顺序输出。程序提示:先排序,排序时交换两个数使用以下函数:void swap(in

33、t *pint *p2)int p;p=*p1;*p1=*p2;*p2=p;调用格式为:swap(&a,&b)可实现a与b的交换字符串的交换使用以下函数:void swap(char *p,char *p2)char p80;strcpy(p,p1);strcpy(p,p2);strcpy(p2,p);main函数结构如下:int n,n2,n3,*p,*p2,*p3;void swap(int *p,int *p2);输入三个数或三个字符串p,p2,p3分别指向这三个数if(n1n2) swap(p,p2);if(n1n3) swap(p,p3);if(n2n3) swap(p2,p3);输

34、出这三个数2将一个的矩阵转置,用一函数实现。在一主函数中用scanf函数输入以下矩阵元素:将数组名作为函数参数,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出转置后的矩阵。程序提示:使用下面函数实现矩阵转置void move(int *p)int i,j,t;for(i=0;i3;i+)for(j=i;j3;j+)t=*(p+3*i+j);*(p+3*i+j)=*(p+3*j+i);*(p+3*j+i)=t;main函数结构如下:int a33,*p,i;void move(int *p);用for循环语句输入矩阵p=&a00;move(p);输出矩阵3有n人围成一个圈,顺序排号

35、,从第一个人开始报数(从到报数),凡报到的人退出圈子,问最后留下的是原来第几号的那位。程序提示:报数程序段如下:for(i=0;in;i+)*(p+i)=i+1;i=0;/i为现正报数的人的编号k=0;/k为23计数时的计数变量m=0;/m为退出的人数while(mn-1)if(*(p+i)!=0)k+;if(k=3)/对退出的人的编号置0*(p+i)=0;k=0;m+;i+;if(i=n)i=0;4用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数的原型为:int strcmp(char *p,char *p2);设p1指向字符串s,p2指向字符串s2要求当两个字符相同时返回

36、,若两个字符串不相等,则返回返回它们二者第一个不同字符的ASCII码的差值。两个字符串s,s2由主函数输入,strcmp函数的返回值也由主函数输出。程序提示:使用以下函数进行比较:int strcmp(char *p,char *p2)int i=0;while(*(p1+i)=*(p2+i)if(*(p1+i+)=0) return 0;return *(p1+i)-*(p2+i);5写一个用矩形法求定积分的通用函数,分别求:说明:积分中用到的三个函数已在系统的数学函数库中,程序开头要加#include调用格式为sin(x),cos(x),exp(x)程序提示:求积分函数如下:float i

37、ntegral(float (*p)(float),float a,float b,int n)int i;float x,h,s;h=(b-a)/n;x=a;s=0;for(i=0;in;i+)x=x+h;s=s+(*p)(x)*h;return(s);调用格式:float(*p)(float);float fsin(float);p=fsin;c=integral(p,a,b,n);fsin函数如下:float fsin(float x)return sin(x);6用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数,n和各整数在主函数中输入,最后在主函数中输出。程序提示:排序函数如下:void sort(int *p,int n)int i,j,*temp;for(i=0;in-1;i+) for(j=i+1;j*(p+j)temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;main函数如下:void main()void sort(int *p,int n);int i,n,data

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服