


免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c 语言程序设计形成性作业一一、选择题1. 在每个 c 语言程序中都必须包含有这样一个函数,该函数的函数名为(a ) 。a mainb mainc named funtion2. c 语言原程序文件的缺省扩展名为(d)。 a cppb exec objd c3. 由 c 语言目标文件连接而成的可执行的缺省扩展名为(b )。a cppb exec objd c 4程序运行中需要从键盘输入多于一个数据时,各数据之间应使用(d )符号作为分隔符。a 空格或逗号b逗号或回车c回车或分号d 空格或回车5. 每个 c 语言程序的编译错误分为(b )类。a 1b 2c 3d 46. 设 x和 y 均为逻辑值,则x & y为真的条件是(a )。a 它们均为真b其中一个为真c它们均为假d 其中一个为假7设有语句“int a=12;a+=a*a; ”,则执行结束后,a 的值为( c)。a 12b 144c156d 2888 x0 & x=10的相反表达式为(a)。a x10b x10c x=0 | x0 & x10 9字符串“ a+b=12n ”的长度为( b )。a 6b 7c 8d 9 10在下列符号常量定义中。错误的定义语句格式为(c)。a const m1=10;b const int m2=20;cconst m3 10dconst char mark=3 11带有随机函数的表达式rand()%20 的值在( c)区间内,a 119b 120c019d 02012. 当处理特定问题时的循环次数已知时,通常采用(a )循环来解决。a forb whilecdo-whiled switch13. 在 switch 语句的每个case 块中,假定都是以break 语句结束的,则此switch 语句容易被改写为( b )语句。a forb ifc dod while14. for 语句能够被改写为(d)语句。a 复合b ifc switchd while 15下面循环语句执行结束后输出的i 值为( b )。for(int i=0;in/2)coutiendl;break;a n/2b n/2+1c n/2-1d n-1 16在下面循环w 语句中内层循环体s 语句的执行次数为(d ) 。for(int i=0;in;i+)for(int j=i;jn;j+)s;a n2b (n+1)/2c n(n-1)/2d n(n+1)/2 17在下面的do 循环语句中,其循环体被执行的次数为(a ) 。int i=0;do i+;while(i*i5 的相反表达式为 x+yb | b=5 的相反表达式为 a5 | by 逻辑值为 false 。35. 若 x=5,y=10 ,则 x=y 逻辑值为 true 。36假定 x=5 ,则执行“ a=(x?10:20); ”语句后 a 的值为 10 。37. 执行“ typedef intdatatype; ”语句后,在使用int定义整型变量的地方都可以使用 datatype 来定义整型变量。38. 在 switch 语句中,每个语句标号所含保留字 case后面的表达式必须是 整型 。39作为语句标号使用的 c 保留字 case和 default 只能用于 switch 语句的定义体中。40在 switch 语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止) 不停止 执行。41. 若 do 循环的“尾”为“while(+i10) ”,并且i 的初值为0,同时在循环体不会修改i的值,由循环体将被重复执行 10 次后正常结束。42. 当在程序执行到 break 语句时,将结束本层循环语句或switch 语句的执行。43. 在程序中执行到 return 语句时,将结束所在函数的执行过程,返回到调用该函数的位置。44. 在程序执行完 主(main) 函数调用后,将结束整个程序的执行过程,返回到操作系统或 c 语句集成开发环境界面窗口。三、写出下列每个程序运行后的输出结果1. #include void main()int x=5;switch(2*x-3)case 4:printf(%d ,x); case 7:printf(%d ,2*x+1);case 10:printf(%d ,3*x-1);break; default:printf(%s ,defaultn);printf(%sn,switch end.);输出结果为:11 14 switch end.press any key to continue2. #include void main()int i,s=0; for(i=1;i=6;i+)s+=i*i;printf(s=%dn,s);输出结果为:s=91.press any key to continue3. #include void main()int i,s1=0,s2=0; for(i=0;i10;i+)if(i%2)s1+=i; else s2+=i;printf(%d %dn,s1,s2);输出结果为:25 20.press any key to continue4. #include void main()int n=10,y=1; while(n-)y+;y+;printf(y=%dn,y);输出结果为: y=21.press any key to continue5. #include void main()int f,f1,f2,i; f1=f2=1;printf(%d %d ,f1,f2); for(i=3;i=10;i+)f=f1+f2;printf(%d ,f);if(i%5=0)printf(n); f1=f2;f2=f;printf(n);输出结果为:1 1 2 3 58 13 21 34 55press any key to continue6. #include #include void main()int i,n; for(n=2;n=20;n+)int temp=(int)sqrt(n);/sqrt(n)求出 n 的平方根并取整for(i=2;itemp)printf(%d ,n);printf(n);输出结果为:2 3 5 7 11 13 17 19press any key to continue7. #include #include const int m=20;void main()int i,c2,c3,c5; c2=c3=c5=0;for(i=1;i=m;i+)if(i%2=0)c2+; if(i%3=0)c3+; if(i%5=0)c5+;printf(%d %d %dn,c2,c3,c5);输出结果为:10 6 4press any key to continue8. #include #include const int m=20;void main()int i,s; for(i=1,s=0;i15;i+)if(i%2=0 | i%3=0)continue; printf(%d ,i);s+=i;printf(%dn,s);输出结果为:1 5 7 11 13 37 press any key to continuec 语言程序设计形成性考核册参考答案作业二一、选择题1.在下面的一维数组定义中,(c)语句有语法错误。a int a=1,2,3;b int a10=0;c int a;d int a5;n 2在下面的二维数组定义中,( c)语句是正确的。a int a5;b int a5;c int a3=1,3,5,2;d int a(10)3假定一个二维数组的定义语句为“ int a34=3,4,2,8,6;”,则元素 a12 的值为( c)。 a 2b 4c 6d 84假定一个二维数组的定义语句为“ int a34=3,4,2,8,6;”,则元素 a21 的值为( a )。a 0b 4c 8d 6 5将两个字符串连接起来组成一个字符串时,选用(c)函数。a strlen()b strcap()c strcat()d strcmp() 二、填空题1. 假定一维数组的定义为“char * a8; ”,则该数组所含元素的个数为 8 。2. 假定一维数组的定义为“char * a8; ”,则该数组所占存储空间的字节数为3. 假定二维数组的定义为“int a35 ”,则该数组所占存储空间的字节数为4. 假定二维数组的定义为“char amn; ”,则该数组所所含元素的个数为 32 。 60 。 m*n 。5. 假定二维数组的定义为“doubleamn;”,则每个数组元素的行下标取值范围在 0m-1 之间。6. 假定二维数组的定义为“doubleamn;”,则每个数组元素的列下标取值范围在 0n-1 之间。7. 使用“ typedef char bb1050;”语句定义 bb 为含有 10 行 50 列的二维字符数组类型。8. 存储字符a需要占用存储器的_1 个字节空间。9. 空字符串的长度为 0 。10. 存储一个空字符串需要占用 1 个字节。11. 字符串”数据”的长度为 11 。12. 用于存储一个长度为n 的字符串的字符数组的长度至少为 n+1 。13. strcmp 函数用于进行两个字符串之间的 大 小 比 较 。14. strcpy 函数用于把一个字符串 复制到 另一个字符数组空间中。15. 一个二维字符数组a1020 能够存储 10 个字符串。16. 一个二维字符数组a1020 能够存储的每个字符串的长度至多为三、写出下列每个程序运行后的输出结果1. #include void main() 19 .int a10=12,39,26,41,55,63,72,40,83,95;int i,i1=0,i2=0; for(i=0;i10;i+)if(ai%2=1)i1+;else i2+;printf(%d %dn,i1,i2);输出结果为:6 4 press any key to continue2. #include#include void main()int i;char *a5=student,worker,cadre,soldier,peasant; char *p1,*p2;p1=p2=a0;for(i=0;i0)p1=ai;if(strcmp(ai,p2)0)p2=ai;printf(%s %sn,p1,p2);输出结果为: worker cadre press any key to continue3. #includeint a10=4,5,6,15,20,13,12,7,8,9;void main()int i,s0,s1,s2; s0=s1=s2=0;for(i=0;i10;i+)switch(ai%3)case 0:s0+=ai;break; case 1:s1+=ai;break; case 2:s2+=ai;break;printf(%d %d %dn,s0,s1,s2);输出结果为: 42 24 33 press any key to continue4. #include void main()char a=abcdbfbgacd; int i1=0,i2=0,i=0; while(ai)if(ai=a)i1+;if(ai=b)i2+; i+;printf(%d %d %dn,i1,i2,i);输出结果为: 2 3 11 press any key to continue5. #include void main()inta34=1,2,7,8,5,6,10,6,9,12,3,4;int m=a00; int ii=0,jj=0;int i,j; for(i=0;i3;i+)for(j=0;jm)m=aij;ii=i;jj=j;printf(%d %d %dn,ii,jj,aiijj);输出结果为: 2 1 12 press any key to continue6. #includevoid main()inta,b; for(a=1,b=2;b50;)printf(%d %d ,a,b); a=a+b;b=a+b;printf(n);输出结果为: 1 2 3 5 8 13 21 34 press any key to continue四、写出下列每个函数的功能1. #include int sa(int a,int b)if(ab)return 1;else if(a=b)return 0;else return -1;函数功能为:根据实参a 大于、等于或小于实参b,返回 1,0 或-12. #include int sc(int a,int b,int c)if(a=b & a=c)return a; if(b=a & b=c)return b; return c;函数功能为:返回实参a、 b、c 中的最大数3. double sf(double x,int n) /n为大于等于0 的整数double p=1,s=1; for(i=1;i=n;i+)p*=x; s+=p/(i+1);return s;函数功能为:计算x+x2/2+x3/3+xn/(n+1) 的值4. #include int sc(int x)int a=(int)sqrt(x); int i=2; while(i=a)if(x%i=0)break; i+;if(i=0)return 0;else return 1;函数功能为:判断一个整数是否是素数5. #include void trans(int x)char a10; int i=0,rem; dorem=x%16;x=x/16;if(rem0)printf(%c,a-i); printf(n);函数功能为: 将一个整数化成十六进制数五、根据下列每个题目要求编写程序1. 编写一个函数,函数头格式为“void fun4(char *a , int b) ”,分别求出由字符指针a 所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b 的相应元素。#includevoid fun4(char* a,int b)doif(*a=0 & *a=9)b*a-48+;while(*a+);/*void main()char * a=122333444499888;int b10=0;fun4(a,b);for(int i=0;i10;i+)printf(%d ,bi);*/2. 编写一个函数,函数头格式为“double mean(double amn , int m , int n)”,要求返回二维数组amn 中所有元素的平均值,假定在计算过程是采用变量v 存放平均值。#include const int m=2,n=3;double mean(double amn, int m,int n ) double v=0;for(int i=0;im;i+)for(int j=0;jn;j+)v+=aij; return v/(m*n);/*void main()double a23=1,2,3,4,5,6;printf(%lfn,mean(a,2,3);*/3. 编写一个递归函数 “int ff(int a , int n)”,求出数组a 中所有元素n 个元素之积并返回。#include int ff(int a , int n)int mul=1;if(n=1)mul*=a0;else mul=an-1*ff(a,n-1); return mul;/*void main()inta6=1,2,3,4,5,6;printf(%dn,ff(a,6);*/4. 编写一个主函数,利用while 循环,求出并显示满足不等式1+1/2+1/3+1/n5 的最小 n 值。#include void main()double sum=0; int n=1; while(true)if(sum + 1/(double)n 5)break; elsesum += 1/(double)n;n+;printf(%d, %lfn,n,sum);5. 编写一个主函数,求满足不等式22+42+n21000 的最大 n 值,假定分别用i和 s 为取偶数值和累加值的变量,并限定使用do 循环编程。#include void main()int s=0,i=2; dos+=i*i; if(s+(i+2)*(i+2)=1000)break; else i+=2;while(true); printf(i=%d,s=%d,i,s);6. 编写一个主函数,计算并输出n 的值,其中n 值由键盘输入。#includevoid main()int s=0,n;printf( 请输入 n 的值: ); scanf(%d,&n);for(int i=1;i=n;i+)s+=i*i; printf(n=%d,s=%d,n,s);c 语言程序设计形成性考核册参考答案作业三1.在下面的( c)函数声明语句存在语法错误。a aa(int a,int b);b aa(int ,int)c aa(int a;int b)d aa(int a,int) 2在下面的(c)不能作为函数的返回类型。a voidb intc newd long 3下面正确的函数原型语句是(b )。a int function(void a);b void function(int);c int function(a);dvoid int(double a);4. 函数调用func(exp1,exp2),exp3*exp4-exp5) 中所含实参的个数为(b)个。a 1b 2c 4d 55. 下面的标识符中, ( c)是文件级作用域。a 函数形参b语句标号c外部静态类标识符d 自动类标识符6下面的标识符中, ( b )具有全局级作用域。a 函数形参b全局变量c内部静态类标识符d 自动变量符7. 假定p 是一个指向float 型数据的指针,则p+1 所指数据的地址比p 所指数据的地址大( c )字节。a 1b2c 4d 88. 假定 a 为一个字符数组名,则a8 的地址比该数组的首地址大(b )个字节。a 4b8c 16d 329. 假定 a 为一个数组名,则下面的(b )表示有错误。a aib *a+c *ad *(a+1)10. 用 calloc 函数创建具有10 个整型元素的一维数组的正确语句是(c)。a int *p=calloc(10,2);b int *p=callo(10;c int *p=calloc(10,4);d int *p=malloc(10);11. 假定变量m 定义为 “ int m=7;,则”定义p 的正确语句为(b ) 。a int p=&m;b int *p=&m;c int &p=*m;d int *p=m;12. 假定 k 是一个 double 类型的变量,则定义指向k 的变量 p 的正确语句为(b)。a double p=&k;b double *p=&k;c double &p=*k;d char*p= ” thank you!”;13. 假定一条定义语句为“inta10,x,*pa=a; ”,若要把数组a 中下标为3 的元素赋值给x,则不正确的语句为(d)。a x=pa3;b x=*(a+3);c a=a3;d x=*pa+3; 14假定有定义“int b10;int *pb; ”,则不正确的赋值语句为(c)。a pb=b;b pb=&b0;c pb=b+2;d pb=b5;15假定指针变量p 定义为“ int *p=new int(100);”,要释放 p 所指向的动态内存,应使用语句(d)。a deletep;b delete *p;c delete &p;d delete p; 16假定指针变量p 定义为“ int*p=calloc(30,sizeof(int);”,要释放p 所指向的动态内存,应使用语句(d)。a deletep;b deldete(p);c freep;d free(p); 1在 c 语言中,一个函数由函数头和 函数体 组成。2. 在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为 0 。3. 如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的c 保留字为为 static 。4. 如果一个函数直接或间接地调用自身,这样的调用被称为 递归 调用。5. 调用系统函数时,要先使用#include 命令包含该函数的原型语句所在 头 文 件 。6. 函数形参的作用域是该函数的 内 部 。7. 假定 p 所指对象的值为25, p+1 所指对象的值为46,则 *p+ 的值为 25 。8. 假定 p 所指对象的值为25, p+1 所指对象的值为46,则 *+p 的值为 46 。9. 假定 p 所指对象的值为25, p+1 所指对象的值为46,则执行“ *(p+); ”语句后, p 所指对象的值为 46 。10. 假定 a 是一个指针数组,则a+1 所指对象的地址比a 地址大 4 字节。11. 若要把一个整型指针p 转换为字符指针, 则采用的强制转换表达式为 (char*)p 。12. 假定一个数据对象为int* 类型,则指向该对象的指针类型为 int* 。13. 假定 p 是一个指向整数对象的指针,则用14. 若 p 指向 x,则 *p 与 x 的等价的。 &p 表示指针变量p 的地址。15. null是一个符号常量,通常作为空指针值,它值为 0 (ascii 码 0) 。三、写出下列每个程序运行后的输出结果1. #include void sb(char ch)switch (ch) case a:case a:printf(ww);break;case b:case b:printf(gg);break;case c:case c:printf(pp);break; default:printf(bb);break;void main()char a1=b,a2=c,a3=f; sb(a1);sb(a2);sb(a3);sb(a);printf(n);输出结果为:ggppbbwwpress any key to continue2. #include #includedouble sd(int a,int b,char op) double x;switch(op)case +:x=a+b;break; case -:x=a-b;break; case *:x=a*b;break;case /:if(b)x=(double)a/b;else exit(1); break;default:( 运算符错! n);exit(1);return x;void main()int x=20,y=8; printf(%3.2lf ,sd(x,y,-);printf(%3.2lf ,sd(x,y,*);printf(%3.2lf ,sd(x,y,/);输出结果为:12.00 160.00 2.50press any key to continue3. #include void wf(int x,int y)x=x+y; y=x+y;printf(subs:x,y=%d,%dn,x,y);void main()int x=18,y=23; printf(main:x,y=%d,%dn,x,y); wf(x,y);x=2*x; printf(main:x,y=%d,%dn,x,y);输出结果为: main:x,y=18,23 subs:x,y=41,64 main:x,y=36,23press any key to continue4. #include #include void fun(char ss); void main()char s15=567891234;fun(s); printf(%sn,s);void fun(char ss)int i,n=strlen(ss); for(i=0;in/2;i+)char c=ssi;ssi=ssn-1-i;ssn-1-i=c;输出结果为:432198765press any key to continue5. #includevoid insertsort(int a,int n)int i,j,x;for(i=1;i=0;j-)/为 x 顺序向前寻找合适的插入位置if(xaj)aj+1=aj;else break; aj+1=x;void main()int i;int a6=20,15,32,47,36,28;insertsort(a,6); for(i=0;i6;i+)printf(%d ,ai); printf(n);输出结果为:47 36 32 28 20 15press any key to continue6. #includevoid main()int a8=3,5,7,9,11,13,15,17;int i,*p=a; for(i=0;i8;i+);printf(%5d ,*p+);if( (i+1)%4=0 )printf(n);输出结果为:357911131517press any key to continue7. #include int la(int *a,int n)int i,s=0; for(i=0;in;i+)s+=ai;return s;void main()int a=5,10,15,20,25,30;int b=la(a,4); int c=la(a+2,3);printf(%d %dn,b,c);输出结果为: 50 60 press any key to continue8. #include int lb(int *a,int n)int i,s=1; for(i=0;in;i+)s*=*a+; return s;void main()int a=1,2,3,4,2,4,5,2;int b=lb(a,4)+lb(&a3,4);printf(b=%dn,b);输出结果为:b=184press any key to continue四、写出下列每个函数的功能1. #includeint wb(int a,int n,int x)for(int i=0;in;i+)if(ai=x)return 1;return 0;函数功能为:根据整型数组元素中是否能找到整数x,返回 1 或 02. #includeint wc(int a,int n,int k)int c=0;for(int i=0;i=k)c+; return c;函数功能为:返回数组中前n 个其值大于等于k 的元素之和3. #include #include #include const int n=10;int ff(int x,int y)int z;printf(%d + %d = ,x,y);scanf(%d,&z); if(x+y=z)return 1;else return 0;void main()int i,a,b,c=0;srand(time(0);/初始化随机数系列for(i=0;in;i+)a=rand()%20+1;/rand90 函数产生0-32767 之间的一个随机数b=rand()%20+1; c+=ff(a,b);printf( 得分: %dn,c*10);函数功能为:函数 ff让两个数相加,要求输入其和,判断结果是否正确。在主函数中用随机函数产生两个 20 以内的随机整数,通过10 次调用这个函数,算对一次得10 分,计算所得分4. int fun6(int m,int n,int b=2)if(mb & nb)return m*n;else if(m%b=0 & n%b=0)return b*fun6(m/b,n/b,b); else return fun6(m,n,+b);函数功能为:此函数带有一个默认参数,若使用默认值,则通过递归调用,返回前2 参数的最小公倍数;不使用默认值时,若最后一个参数不小于前2 个参数,则返回前2 参数之乘积; 否则,通过递归调用,返回前2 参数最小公倍数的n 倍数。5. #include #include void li(int n)int * a= 电脑商场特别版2 malloc(n*sizeof(int);int i; for(i=0;i=0;i-)printf(%d ,*(a+i);printf(n); free(a);函数功能为:将从键盘输入的n 个整数逆序输出6. #include int lk(double a,int n)double s=0;int i,m=0;for(i=0;in;i+)s+=ai; s/=n;for(i=0;i=s)m+; return m;函数功能为:求不小于数组元素之平均值的各元素之和(前n 个)c 语言程序设计形成性考核册参考答案作业四1. 假定有“ struct bookchar title40;float price;struct book *book;”,则不正确的语句为( a )。a struct book*x=malloc(book);b structbookx= “ c+programming ” ,27.0;c struct book *x=malloc(sizeof(book);d struct book *x=&book;2. 假定有“ struct bookchar title40;float price; book;”,则正确的语句为(b)。 a struct book x=&book;b struct book *x=&book;c struct book x=calloc(book);d struct book *x=book; 3表示文件结束的符号常量为(c)。a eofb eofceofd feof4. c 语言中系统函数fopen() 是( d)一个数据文件的函数。a 读取b写入c关闭d 打开5. 从一个数据文件中读入以换行符结束的一行字符串的函数为(b)。 a gets()b fgets()c getc()d fgetc() 6向一个二进制文件写入信息的函数fwrite() 带有( d)参数。a 1b 2c 3d 41. 假定一个结构类型的定义为“struct ainta,b;a*c; ”,则该类型的大小为 12 字节。2. 假定一个结构类型的定义为“ struct bint a5,char *b;”,则该类型的大小为 24 字节。3. 假定一个结构类型的定义为“struct dint a;unionint b;double c;struct d* d2;”,则该类型的大小为 20 字节。4. 假定要动态分配一个类型为struct worker 的具有 n 个元素的数组,并由r 指向这个动态数组,则使用语句的表达式为struct worker* r= (worker*)malloc(n*sizeof(worker); 。5. 假定要访问一个结构x 中的由 a 指针成员所指向的对象,则表示方法为 x.(*a) 。6. 假定要访问一个结构指针p 所指向对象中的b 指针成员所指的对象,则表示方法为 *(p-b) 7. 与结构成员访问表达式(*fp).score 等价的表达式是 fp-score 。三、写出下列每个程序运行后的输出结果1. #include struct workerchar name15; / 姓名int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公务员礼仪培训
- 口腔内消化教学课件
- 大班创意国画课件
- 门诊护理工作制度及流程
- 培训课件没思路的原因
- 培训课件发票
- 2025年度特色餐厅股权投资与品牌形象重塑合作协议
- 2025年科技项目绩效评估与咨询订购服务合同
- 2025年度生物科技项目投资佣金居间合作协议
- 2025年绿色智能家居直系亲属房屋置换与定制装修协议
- 麻醉药品应急处理制度及流程
- 电力设备运行与维护管理手册
- 附件2:慢病管理中心评审实施细则2024年修订版
- 【建筑专业】16J914-1公用建筑卫生间(完整)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 邮政市场业务员(中级)理论考试复习题库(附答案)
- DZ∕T 0070-2016 时间域激发极化法技术规程(正式版)
- 消化内镜进修总结汇报
- 兽医检验题库与答案
- 换电柜地租赁合同范本
- 影响安全生产的六种员工心理状态
评论
0/150
提交评论