《C语言程序设计》二级学习资料(2017)

上传人:xins****2008 文档编号:157810543 上传时间:2022-10-01 格式:DOC 页数:112 大小:35.53MB
收藏 版权申诉 举报 下载
《C语言程序设计》二级学习资料(2017)_第1页
第1页 / 共112页
《C语言程序设计》二级学习资料(2017)_第2页
第2页 / 共112页
《C语言程序设计》二级学习资料(2017)_第3页
第3页 / 共112页
资源描述:

《《C语言程序设计》二级学习资料(2017)》由会员分享,可在线阅读,更多相关《《C语言程序设计》二级学习资料(2017)(112页珍藏版)》请在装配图网上搜索。

1、C语言程序设计学习资料C语言程序设计学习资料( 2016/2017 学年 )班 级: 学 号: 姓 名: 浙江万里学院基础学院计算机教学部C语言程序设计课程组2017年1月2C语言程序设计学习资料目 录理论资料(共14套试题) 12010年上半年等考真题 12010年下半年等考真题 62011年上半年等考真题 112011年下半年等考真题 172012年上半年等考真题 232012年下半年等考真题 282013年上半年等考真题 342013年下半年等考真题 402014年上半年等考真题 462014年下半年等考真题 522015年上半年等考真题 582015年下半年等考真题 652016年上半

2、年等考真题 712016年下半年等考真题 77上机资料 83程序改错题 83程序填空题 91程序设计题 1 97程序设计题 2 103理论资料2010年春浙江省高等学校计算机等级考试(二级C)一、程序阅读与填空(24小题,每小题3分,共72分)1.【程序说明】输入一整数,求它的各位数字之和及位数。如,17的各位数字之和是8,位数是2。运行示例:Enter an integer:-153sum = 8, count = 3【程序】#include main() int count = 0, in, sum = 0; printf(Enter an integer:); scanf(%d, &in

3、); if( (1) ) in = -in; do sum = sum + (2) ; (3) ; count+;while( (4) ); printf(sum = %d, count = %dn, sum, count); 【供选择的答案】(1) A. in = 0 B. in 0 C. in != 0 D. in 0(2) A. in / 10 B. in mod 10 C. in % 10 D. in(3) A. in = in % 10 B. in / 10 C. in = in / 10 D. in % 10(4) A. in % 10 != 0 B. in != 0 C. !in

4、 D. in / 10 != 02.【程序说明】输出 50 到 70之间的所有素数。要求定义和调用函数isprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。运行示例:53 59 61 67【程序】#include #include main() int i; int isprime(int m); for(i = 50; i = 70; i+) if( (5) ) printf(%d , i);int isprime(int m) int i, k; (6) k = (int)sqrt(double)m); for(i

5、= 2; i = k; i+) if(m % i = 0) (7) ; (8) ;【供选择的答案】(5) A. isprime (m) != 0 B. isprime (i) != 0 C. isprime (m) = 0 D. isprime (i) = 0(6) A. if(m != 1) return 1; B. if(m = 1) return 0; C. ; D. if(m = 1) return 1;(7) A. return 0 B. return 1 C. return i = k D. return (8) A. return 1 B. return 0 C. return

6、D. return i = k3.【程序说明】输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。要求定义和调用函数swap(x, y),该函数交换指针x和y所指向单元的内容。运行示例:Enter 6 integers: 6 1 8 2 10 97After swaped: 6 97 8 2 10 1【程序】void swap(int *x, int *y) int t; (9) ;main( ) int i, index, a10;printf(Enter 6 integers:); for(i = 0; i 6; i+) scanf(%d, &ai); (10) ; f

7、or(i = 1; i ai) (11) ; (12) ;printf(After swaped:); for(i = 0; i 6; i+) printf(%d , ai); printf(n); 【供选择的答案】(9) A. t = *x, *x = *y, *y = t B. t = x, x = y, y = t C. *t = *x, *x = *y, *y = *t D. &t = x, x = y, y = &t(10) A. index = 0 B. index = 5 C. index = index D. index = 1(11) A. aindex = ai B. i

8、= indexC. ai = aindex D. index = i(12) A. swap(aindex, a5) B. swap(*aindex, *a5) C. swap(a*index, a*5) D. swap(&aindex, &a5)4.【程序】#include #define T(c) (c) = 0) & (c) = 9) ? (c) - 0 : -1)void f1(char ch) switch(ch) case 0: printf(0); case 1: printf(1); case 2: printf(2); break; case 3: printf(3); de

9、fault: printf(9); printf(n);double f2() return (double)(5/2);double f3(int n) if(n = 1) return 1.0; else return 1.0 + 1.0/f3(n-1); main() printf(%d %dn, T(7), T(a); f1(1); printf(%.1fn, f2(); printf(%.3fn, f3(4);【问题】(13)程序运行时,第1行输出 (13) 。A. 7 -1 B. -1 7 C. 7 a D. -1 -1(14)程序运行时,第2行输出 (14) 。A. 1239 B

10、. 12 C. 1 D. 9(15)程序运行时,第3行输出 (15) 。A. 2.5 B. 2 C. 2.0 D. 3(16)程序运行时,第4行输出 (16) 。A. 1.000 B. 2.000 C. 1.500 D. 1.6675.【程序】 程序1#include main() int i, j, t, a34 = 1,2,3,4,5,6,7,8,9,10,11,12; for(i = 0; i 3; i+) for(j = 0; j = i/2; j+) t = aij, aij = ai3-j, ai3-j = t; printf(%dn, a01); printf(%dn, a22)

11、;程序2#include main( ) char str10 = 27; int i, number = 0; for(i = 0; stri != 0; i+) if(stri = 0 & stri = 0 & stri = 5) number = number * 6 + stri - 0; printf(%dn, number);【问题】(17)程序1运行时,第1行输出 (17) 。A. 3 B. 4 C. 1 D. 2(18)程序1运行时,第2行输出 (18) 。A. 12 B. 11 C. 10 D. 9(19)程序2运行时,第1行输出 (19) 。A. 2 B. 27 C. 23

12、 D. 16(20)程序2运行时,第2行输出 (20) 。A. 19 B. 140 C. 147 D. 26.【程序】#include main() int i, j; char ch, *p1, *p2, *s4=four,hello,peak,apple; for(i = 0; i 4; i+) p1 = p2 = si; ch = *(p1 + i); while(*p1 != 0) if(*p1 != ch) *p2 = *p1; p2+; p1+; *p2 = 0; for(i = 0; i 4; i+) printf(%sn, si);【问题】(21)程序运行时,第1行输出 (21

13、) 。A. our B. four C. fur D. fou(22)程序运行时,第2行输出 (22) 。A. ello B. hllo C. heo D. hell(23)程序运行时,第3行输出 (23) 。A. peak B. eak C. pek D. pak(24)程序运行时,第4行输出 (24) 。A. pple B. apple C. ale D. appe二、程序编写(每小题14分,共28分)1.编写程序,输入 100个整数,将它们存入数组a,求数组a中所有奇数之和。2.按下面要求编写程序:(1)定义函数total(n)计算 ,函数返回值类型是int。(2)定义函数main(),

14、输入正整数n,计算并输出下列算式的值。要求调用函数total( n)计算 。 2010年下半年浙江省高等学校计算机等级考试二级C程序设计试卷说明: 本试卷共6页,满分100分;考试时间为90分钟; 考生应将所有试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小题选项的对应位置上填“”。 考生应将所有试题的答案填写在答卷上。一、 程序阅读与填空(24小题,每小题3分,共72分)1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案【程序说明】输入5个整数,将它们从小到大排序后输出。运行示例:Enter an integer: 9 -9 3 6 0After sorted

15、: -9 0 3 6 9【程序】#include main() int i, j, n, t, a10;printf(”Enter 5 integers:”);for(i = 0; i 5 ; i+)scanf(”%d”, (1) );for(i = 1; (2) ; i+)for(j = 0; (3) ; j+)if( (4) ) t = aj, aj = aj+1, aj+1 = t;printf(”After sorted:”);for(i = 0; i 5 ; i+)printf(%3d, ai);【供选择的答案】(1) A、&ai B、ai C、*ai D、an(2) A、i 5 B

16、、i = 0 D、i 4(3) A、j 5i1 B、j 5i C、j 5 D、j = 5(4) A、aj aj-1C、aj aj+1 D、aj-1 aj+12阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案【程序说明】输出80到120之间的满足给定条件的所有整数,条件为构成该整数的每位数字都相同。要求定义和调用函数is(n)判断整数n的每位数字是否都相同,若相同则返回1,否则返回0。运行示例:88 99 111【程序】#include main() int i; int is(int n);for(i = 80; i = 120; i+)if( (5) )printf(%

17、d , i);printf(n);int is(int n) int old, digit;old = n % 10;dodigit = n % 10;if( (6) ) return 0 ; (7) n = n / 10;while( n != 0 ); (8) 【供选择的答案】(5) A、is(n) = 0 B、is(i) = 0 C、is(n) != 0 D、is(i) != 0(6)A、digit != n % 10 B、digit = oldC、old = n % 10 D、digit != old(7) A、digit = old; B、; C、old = digit; D、old

18、 = digit / 10;(8) A、return; B、return 1; C、return 0; D、return digit != old;3阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案【程序说明】输入一个以回车结束的字符串(少于80个字符),将其逆序输出。要求定义和调用函数reverse(a),该函数将字符串s逆序存放。运行示例:Enter a string: 1+2=3After reversed: 3=2+1【程序】#include void reverse(char *str) int i, j, n = 0;char t;while(strn !=

19、0)n+;for(i = 0, (9) ; i j; (10) ) t = stri, stri = strj, strj = t;main() int i = 0 ;char s80;printf(”Enter a string:”);while( (11) )i+;si = 0; (12) ;printf(“After reversed:“);puts(s);【供选择的答案】(9) A、j = n 1 B、j = n C、j = n - 2 D、j = n + 1(10)A、i+, j- B、i+, j+ C、i-, j+ D、i-, j-(11)A、si = getchar() B、(s

20、i = getchar() != nC、si != D、(si = getchar() != n)(12)A、reverse(*s) B、reverse(s) C、reverse(&s) D、reverse(str)4阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案【程序】#include #define S(x) 3 (x) = 0; n-) if(n % 2 != 0) continue;printf(”%d ”, n);printf(”n”);double f2(double x, int n) if(n = 1) return x;else return x *

21、f2(x, n-1);main( ) int a = 9;printf(%d %dn, a, S(a);f1(4);printf(%.1fn, f2(2.0, 3);printf(%d %dn, n, S(n);【问题】(13) 程序运行时,第1行输出 (13) 。A、0 1 B、9 1 C、0 0 D、9 0(14) 程序运行时,第2行输出 (14) 。A、3 1 B、4 2 0 C、4 3 2 1 D、0(15) 程序运行时,第3行输出 (15) 。A、8.0 B、2.0 C、4.0 D、3.0(16) 程序运行时,第4行输出 (16) 。A、0 1 B、3 1 C、0 0 D、3 05阅

22、读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案【程序】程序1#include main() int i, j;static int a44;for(i = 0; i 4; i+)for(j = 0; j = i; j+) if(j = 0 | j = i) aij = 1;else aij = ai-1j-1 + ai-1j;for(i = 2; i 4; i+) for(j = 0; j = i; j+)printf(“%d ”, aij);printf(”n”);程序2#include main() char str80;int i;gets(str);for(i =

23、 0; stri != 0; i+)if(stri = z) stri = a;else stri = stri + 1;puts(str);【问题】(17)程序1运行时,第1行输出 (17) 。A、1 B、1 1 C、1 2 1 D、1 3 3 1(18)程序1运行时,第2行输出 (18) 。A、1 B、1 1 C、1 2 1 D、1 3 3 1(19)程序2运行时,输入123,输出 (19) 。A、123 B、012 C、231 D、234(20)程序2运行时,输入sz,输出 (20) 。A、sz B、ty C、ta D、tz6阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个

24、正确答案【程序】#include main() int i,j;char ch, *s4=”tree”,”flower”,”grass”,”garden”, *p1, *p2;for(i = 0; i 4; i+) p2 = si;p1 = p2 + i;while(*p1 != 0)*p2 = *p1;p1+, p2+;*p2 = 0;for(i = 0; i 4; i+)printf(%sn,si);【问题】(21) 程序运行时,第1行输出 (21) 。A、ree B、ss C、tree D、e(22) 程序运行时,第2行输出 (22) 。A、flower B、ower C、wer D、l

25、ower(23) 程序运行时,第3行输出 (23) 。A、grass B、ss C、rass D、ass(24) 程序运行时,第4行输出 (24) 。A、en B、arden C、den D、garden二、程序编写(每题14分,共28分)1 输入100个整数,将它们存入数组a中,再输入一个整数x,统计并输出x在数组a中出现的次数。2 按下面要求编写程序:(1) 定义函数fact(n)计算n!,函数返回值类型是double。(2) 定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数fact(n)计算n!。(4)2012年上半年浙江省高等学校计算机等级考试二级C程序设计试卷

26、说明: 本试卷共6页,满分100分;考试时间为90分钟; 考生应将所有试题的答案填写在答卷上。 程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“”。一、 程序阅读与填空(24小题,每小题3分,共72分)1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案【程序说明】输入一个正整数m,判断它是否为素数。素数就是只能被1和自身整除的数。1不是素数,2是素数。运行示例:Enter m: 99 isnt a prime.Enter m: 7979 is a prime.【程序】#include #include main() int j, k, m ;printf

27、(Enter m:);scanf(”%d”, &m);k = sqrt(m);for( j=2; (1) ; j+ )if( (2) ) (3) ;if( j k & (4) )printf(%d is a prime.n, m);elseprintf(%d isnt a prime.n, m);【供选择的答案】(1) A、j k B、j m D、j n(2) A、m%j = 0 B、m%j = 0 C、m%j != 1 D、m%j = 1(3) A、return B、break C、go D、continue(4) A、m = 1 B、m != 2 C、m != 1 D、m = 22阅读下列

28、程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案【程序说明】输入一个正整数n1,再输入第一组n1个数,这些数已按从小到大排序。输入一个正整数n2,随即输入第二组n2个数,它们也按从小到大排序。两组数合并,合并后的数应按从小到大的顺序排列。要求定义和调用merge(list1, n1, list2, n2, list, n),其功能是将数据list1的前n1个数和list2的前n2个数共n个数合并存入数组list,其中list1的前n1和list2的前n2个数分别按从小到大的顺序排列,合并后的数组list的前n个数也按从小到大的顺序排列。运行示例:Enter n1: 6Enter

29、6 integers: 2 6 12 39 50 99Enter n2: 5Enter 5 integers: 1 3 6 10 35Merged: 1 2 3 6 6 10 12 35 39 50 99【程序】void merge(int list1,int n1,int list2,int n2,int list, (5) ) int i, j, k; (6) while( i n1 & j n2) if( (7) ) listk = list1i+; else listk = list2j+; k+; while( i n1) listk+ = list1i+; while( j n2)

30、 listk+ = list2j+; (8) ;#include main()int i, n1, n2, n, list1100, list2100, list100;printf(Enter n1:);scanf(%d, &n1);printf(Enter %d integers:, n1);for(i=0; i n1; i+) scanf(%d, &list1i);printf(Enter n2:);scanf(%d, &n2);printf(Enter %d integers:, n2);for(i=0; i n2; i+) scanf(%d, &list2i);merge(list1

31、, n1, list2, n2, list, &n);printf(Merged: );for(i=0; i n; i+)printf(%d , listi);【供选择的答案】(5) A、int &n B、int n C、n D、int *n(6) A、i=j=0; B、i=j=k=1; C、i=j=k=0; D、k=0(7) A、list1k list2j B、list1i list2jC、list1i list2k D、list1i = list2j(8) A、*n=k B、return n1+n2 C、n=k D、return k3阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑

32、选一个正确答案【程序说明】为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则:小写字母z变换成为a,其他字母变换成为该字符ASCII码顺序后1位的字符。输入一个字符串(少于80个字符),输出相应的密文。要求定义和调用函数encrypt,该函数将字符串s变换为密文。运行示例:Enter the sring: hello hangzhouAfter being encrypted: ifmmp!ibohaipv【程序】#include #include main() char line80;printf(”Input the string: ”);gets(line);

33、(9) ;printf(“After being encrypted: %sn“, line);void encrypt(char *s) int i;for( i=0; (10) ; i+)if( si = z ) (11) ;else (12) ;【供选择的答案】(9) A、encrypt(line) B、encrypt(line)C、encrypt(&line) D、encrypt(*line)(10)A、si = 0 B、i80C、si != 0 D、i=80(11)A、si=A B、si=bC、si=si+1; D、si=a(12)A、si=si-1; B、si=P;C、si=si+

34、1; D、si=a4阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案【程序】#include main( ) int a=5, i=0; char s10 = abcd;printf(%d %dn, 1a3, !a);printf(%d %dn, a2, a&1);while(si+ != 0) putchar(si);printf(n%dn, i);【问题】(13) 程序运行时,第1行输出 (13) 。A、1 1 B、0 0 C、0 1 D、1 0(14) 程序运行时,第2行输出 (14) 。A、20 1 B、20 5 C、10 1 D、10 5(15) 程序运行时,第

35、3行输出 (15) 。A、abcd B、abc C、Abcd0 D、bcd(16) 程序运行时,第4行输出 (16) 。A、4 B、6 C、0 D、55阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案【程序】程序1#include main() int n, s = 1 ;scanf(%d, &n);while( n != 0 )s *= n%10 ;n /= 10 ;printf(“%dn”, s);程序2#include main() char c;while( (c = getchar() != 0 )switch(c) case 1:case 9: continu

36、e;case A: putchar(a);continue;default: putchar(c);【问题】(17)程序1运行时,输入1234,输出 (17) 。A、0 B、1 C、24 D、10(18)程序1运行时,输入0,输出 (18) 。A、0 B、1 C、24 D、10(19)程序2运行时,输入A1290,输出 (19) 。A、a2 B、aA129 C、A129 D、A1290(20)程序2运行时,输入B1340,输出 (20) 。A、B340 B、B34 C、B1340 D、B1346阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案【程序】#include ma

37、in() int i,j;staticint a44;for(i = 0; i 4; i+) for(j = 0; j = i) aij = i+1;printf(%d, aij);printf(n);【问题】(21) 程序运行时,第1行输出 (21) 。A、0000 B、0111 C、1111 D、0011(22) 程序运行时,第2行输出 (22) 。A、2222 B、1111 C、0111 D、0222(23) 程序运行时,第3行输出 (23) 。A、0022 B、2200 C、1234 D、0033(24) 程序运行时,第4行输出 (24) 。A、0004 B、4000 C、0003 D

38、、4321二、程序编写(每题14分,共28分)1输入2个正整数m和n(1m6,1n6),然后输入矩阵a(m行n列)中的元素,分别计算并输出各行元素之和。2按下面要求编写程序:(1) 定义函数fun(x)计算x2-3.14x-6,函数返回值类型是double。(2) 输出一张函数表(如下表所示),x的取值范围是-10,+10,每次增加1,y= x2-3.14x-6,要求调用函数fun(x)计算x2-3.14x-6。xy-10125.40-9103.26946.741062.60挑选 上机资料程序改错题一、要求说明: 该程序中标有“/* 1 */”、“/* 2*/”、“/* 3*/”、“/* 4

39、*/”等部分为需要程序改错的标志,其下一行程序语句有错误。需根据程序的功能自行改错,并调试运行程序;二、注意事项: 1. 在改错时,不得删除改错标志(如:“/* 1 */”等),在该改错标志下方的下一行,根据程序功能改错;调试运行程序。 2. 不得加行、减行、加句、减句。三、程序功能:1 输入x和正数eps,计算多项式 的和,直到末项的绝对值小于eps为止。#include #include void main() double x,eps,s=1,t=1; /* 1 */ float i=1; /* 2 */ scanf(%f%f,&x,&eps); do i+;/* 3 */ t=t*x/

40、i; s+=t; /* 4 */ while(fabs(t)eps); printf(%fn,s);2 程序运行时,若输入a,n分别为3,6,则输出下列表达式的值: 3+33+333+3333+33333+333333#include void main() int a,n,i; long s=0,t; /* 1 */ scanf(%d%d,a,n); /* 2 */ t=1; /* 3 */ for(i=1;in;i+) t=t*10+a; /* 4 */t=t+s; printf(%ldn,s);3 程序运行时输入n,输出n的所有质数因子。例如:输入n为60,则输出 60=2*2*3*5#

41、include void main() int n,i; /* 1 */ scanf(%f,&n);printf(%d=,n); /* 2 */ n=2;/* 3 */ while(n0) if(n%i=0) printf(%d*,i); /* 4 */ n=n*i; else i+;printf(b n);4 程序运行时输入整数n,则输出n的各位数字之和。例如:输入n=1308,则输出12;n=-3204,则输出9#include void main() /* 1 */ int n,s; scanf(%d,&n); /* 2 */ n=0) /* 4 */ s=s+n/10; n=n/10;

42、 printf(%dn,s);5 程序运行时,输入10个数,分别输出其中的最大值和最小值。#include void main() float x,max,min; int i; /* 1 */ for(i=0;imax) max=x; if(xmin) min=x; /* 4 */ printf(%f,%fn,Max,Min);6 输入n,再输入n个点的平面坐标,则输出那些距离坐标原点不超过5的点的坐标值。#include #include #include void main() int i,n; struct axy float x,y; /* 1 */ struct axy a; /* 2 */ scanf(%d,n); a=(struct axy*) malloc(n*sizeof(struct axy); for(i=0;in;i+) scanf(%f%f,&ai.x,&ai.y); /* 3 */ for(i=1;i=n;i+) if(sqrt(pow(ai.x,2)+pow(ai.y,2)y); 7 循环输入x,n,调

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!