C++语言程序设计复习资料
C语言程序设计期末复习

C语言程序设计期末复习
一、基础知识
1、变量和运算符
变量就是程序中用来保存信息的抽象容器,可以用来记录用户输入、
程序执行时间以及中间结果等信息
C语言允许使用者定义变量,分为基本类型变量和指针变量。
其中基本类型变量有:整型int,浮点型float,字符型char,双精
度型double,无符号整型unsigned等。
运算符是对变量进行运算的符号,C语言中的运算符大致可分为三大类:算术运算符,关系运算符和逻辑运算符。
其中算术运算符包括:+、-、*、/和%;关系运算符包括:>、>=、<、<=、==和!=;
逻辑运算符包括:&&,和。
2、流程控制
程序的流程控制是应用程序中最重要的结构,在C语言中可以通过控
制语句来控制程序的执行流程。
常用的控制语句有:if、goto、while、for、switch-case等。
if语句可以根据执行条件跳过执行部分语句,节省程序执行的时间。
goto语句可以跳转到指定的语句,实现循环执行流程。
while语句可以不固定有多少次操作,根据执行条件决定是否继续执行。
for语句可以更精确的表示循环次数,避免无意识的多次循环操作,从而提高程序运行效率。
switch-case语句可以根据变量的变化值,执行不同的操作,实现复杂的逻辑判断。
3、函数。
C程序设计复习资料含复习资料

C程序设计复习资料含复习资料一、C 语言基础1、数据类型C 语言中有多种数据类型,包括整型(int)、浮点型(float、double)、字符型(char)等。
了解不同数据类型的取值范围和存储方式是编程的基础。
例如,整型可以分为短整型(short int)、整型(int)和长整型(long int),它们的存储空间和取值范围各不相同。
2、变量和常量变量用于存储程序运行过程中可以改变的值,常量则是固定不变的值。
在 C 语言中,变量需要先声明后使用,常量可以用宏定义或者使用关键字 const 来定义。
3、运算符和表达式C 语言中的运算符包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)等。
掌握这些运算符的优先级和结合性,能够正确编写表达式。
例如,表达式 a = 5 + 3 2 的计算结果是 11,因为乘法运算符的优先级高于加法运算符。
4、控制结构(1)顺序结构:程序按照语句的先后顺序依次执行。
(2)选择结构:包括 ifelse 语句和 switch 语句,用于根据不同的条件执行不同的代码块。
(3)循环结构:有 for 循环、while 循环和 dowhile 循环,用于重复执行一段代码。
二、数组和指针1、数组数组是一组相同类型的变量的集合,可以通过下标来访问数组中的元素。
例如,定义一个整型数组 int arr5 ={1, 2, 3, 4, 5},可以通过 arr0来访问第一个元素 1。
2、指针指针是 C 语言中非常重要的概念,它是一个变量,用于存储另一个变量的地址。
通过指针可以间接访问变量的值,并且能够实现动态内存分配。
例如,int p; 定义了一个指向整型的指针 p,通过 p =&a; 可以将指针 p 指向变量 a 的地址,然后通过 p 来访问变量 a 的值。
三、函数1、函数的定义和调用函数是一段独立的代码块,用于完成特定的任务。
函数可以有返回值,也可以没有返回值。
C语言复习资料(含公共基础知识要点)全解

National Computer Rank Examination全国计算机等级考试成都新视野教育 教学研究部 编内部资料 仅限学员所含内容: C 语言程序设计复习资料 二级公共基础知识复习资料 考试注意事项 考试真题及答案第一部分C语言程序设计复习资料总体上必须清楚的:1.程序有3中基本结构: 顺序结构、选择结构和循环结构。
2.用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”;源程序经编译后生成后缀名为“.obj”的目标文件;再把目标文件与各种库函数连接起来,生成“.exe”的可执行文件。
3.main函数,又称主函数,每个C程序有且只有一个main函数;无论main函数在整个程序中的位置如何,程序总是从main函数开始执行、也从main函数结束。
读程序时应从main函数开始, 然后从上往下读(碰到循环做循环,碰到选择做选择)。
4.无论是数值数据还是非数值数据(如字符等)在计算机中均以二进制形式存储;由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用按权展开法进行,十进制转化为二进制、八进制、十六进制采用除R取余法(R可取2、8或16);数据的存放位置就是它的地址。
概念常考到的:1.编译预处理不是C 语言的一部分,不占运行时间,不要加分号。
2.每个C 语言程序中main 函数是有且只有一个。
3.在函数定义中不可以再定义函数、即不允许函数嵌套定义。
4.算法可以没有输入,必须要有输出。
5.break只能用于循环结构和switch语句中。
6.逗号运算符的级别最低。
7.任意合法的表达式一定有一个数值与它对应。
第一章C语言基础知识【考点1】C程序书写规范每条C语句的后面必须有一个分号,分号是语句的一部分;一行内可写多条语句,一个语句可以分成多行书写。
C程序中对字母的大小写是敏感的,如A与a是不同的标识符。
成人高考C语言程序设计(考试复习资料)

单项选择题导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。
本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。
在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。
对于掌握不准的问题,应该通过上机实验来检验。
【1.1】以下不正确的C语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
••• A) print B) i\am C) Pxq D) str_l••• _3d one_half My->book Cpp••• oodb start$it line# pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,include B) switch,typedef,continueC) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。
A) default B) register C) enum D) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF【1.9】执行语句printf("%x",-1);屏幕显示____。
C语言程序设计复习资料

C语言程序设计复习资料总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节 = 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
C程序设计期末复习知识点

C程序设计期末复习知识点1.C语言基础-了解C语言的历史和发展。
-了解C语言的特性,例如:面向过程、可移植性、高效性等。
-理解C语言的编译过程,包括预处理、编译、汇编和链接。
-掌握C语言的基本语法,包括变量定义、标识符命名规则、注释、运算符等。
2.数据类型-理解C语言的基本数据类型,包括整型、浮点型、字符型和布尔型。
-知道各种数据类型的取值范围和存储大小。
-理解数据类型之间的转换规则。
3.控制结构- 掌握条件语句,包括if语句、switch语句。
- 掌握循环结构,包括for循环、while循环和do-while循环。
- 了解循环控制语句,包括break和continue语句。
4.数组和指针-理解一维和多维数组,包括如何定义、初始化和访问数组元素。
-掌握指针的概念,包括如何定义和使用指针变量。
-理解指针和数组的关系,包括指针和数组之间的相互转换。
5.函数-理解函数的概念和作用,包括函数的定义、声明和调用。
-理解参数传递的方式,包括传值和传引用。
-理解局部变量和全局变量的作用域和生命周期。
-理解递归函数的原理和应用。
6.文件操作-了解文件的概念和类型。
-掌握文件的打开、关闭、读取和写入操作。
-知道如何创建文件、删除文件和改变文件属性。
-理解文件指针的使用,包括定位文件读写位置等。
7.结构体和联合体-理解结构体的概念,包括如何定义和使用结构体。
-掌握结构体成员的访问方式。
-了解联合体的概念和用途。
-知道结构体和联合体的区别。
8.动态内存分配- 了解动态内存分配和释放的方法,包括malloc、calloc和realloc函数。
-理解内存泄漏和内存溢出的概念和原因。
-知道如何使用指针来管理动态分配的内存。
9.字符串处理-理解字符串的概念,包括如何定义和使用字符串变量。
- 掌握字符串的输入和输出操作,包括fgets、fputs和printf函数。
- 掌握字符串的处理函数,包括strlen、strcpy、strcat、strcmp 等。
国家开放大学《C语言程序设计》复习资料

7.在一维数组的定义语句中,数组名前为元素类型关键字。(√) 8.假定二维数组的定义语句为 “double a[M][NJ;" ,则每个数组元素的列下标取值范围在 0-N-i 之间。 (√) 9.一个二维字符数组 a[10][20 」中存储每个字符串的最大长度为 190(√) 10.假定 a 是一个一维数组,则表达式, (a+i) 所对应的元素为 a[i-1],(×) 11.进行动态存储分配的。alloc() 函数带有两个参数。(√) 12.对于标识为 static 属性的变量,若没有对它进行初始化,则默认的初值为 10(×) 13.在 C 语言中一个结构类型的长度等于所含的所有数据成员类型的长度之和。(√) 14.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。(×) 15.当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。(×) 16.在 C 语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。( √ ) 17.一个 C 语言程序能够包含多个用户头文件。( √ ) 18.在定义一个变量时,不能够同时给它赋初值。( × ) 19. 表达式 (int)14.6%5 的值为 40 ( √) 20.若 x=5 , y=10 ,则 x>y 逻辑值为真。( × ) 21.当循环次数确定时, while 循环语句能够转换为 for 循环语句。( √ ) 22.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 23.在二维数组的定义语句中,不能给数组中每个元素赋初值。( × ) 24.对于一个长度为 n 的字符串,存储它的字符数组的长度至少为 no ( × ) 25.假定一个数据对象为 int *类型,则指向该对象的指针类型为 int *祷。( √ ) 26.进行动态存储分配的 malloc( )函数带有两个参数。( × ) 27.函数定义格式中的参数表被称为实参表。( × ) 28.在同一个结构类型的定义中,各数据成员名必须不同。( √ ) 29.在结构成员访问运算符中,点运算符(.)为双目运算符。( √ ) 30. 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。( × ) 31.在 C 语言程序中,只有一种使用注释语句的方法。( × ) 32.常数 3. 26 是双精度定点数。( √ ) 33. 表达式(f!oat)25/4 的值为 6 0 ( × ) 34. 已知 x= 一 25 ,则 fabsCx) 的值为一 25.0 0 ( × ) 35.while 循环是先判断循环条件,当条件为真时执行循环体。( √ ) 36.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 37.字符串允许为空,并且其长度为 0 0 ( √ ) 38. 一个二维字符数组 a[10][20] 中存储每个字符串的最大长度为 20 0 ( × ) 39.假定 a 是一个一维数组,则进行 a++ 运算是不允许的。 ( √ ) 40.在一个函数定义中,函数体是一条简单语句。 ( × ) 41,在 C 语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。 ( × ) 42.在结构类型的定义中,结构类型的作用域范围,与它的定义位置有关。( √ ) 43.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构指针变量。 ( × ) 44.在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。( √ ) 45. 对二进制文件进行读和写操作将使用不同的系统函数。( √ )
c语言程序设计复习资料

c语言程序设计复习资料C语言程序设计复习资料C语言是一门广泛应用于计算机科学领域的编程语言,它简洁高效的特性使得它成为了许多程序员的首选。
无论是初学者还是有一定编程基础的人,都需要不断巩固和复习C语言的知识。
本文将为大家提供一些C语言程序设计的复习资料,帮助大家巩固所学知识,提高编程能力。
一、基础知识回顾1. 数据类型:C语言中有多种数据类型,包括整型、浮点型、字符型等。
回顾这些数据类型的定义和使用方法,了解它们的特点和区别,对于编写正确的程序至关重要。
2. 运算符:C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等。
复习这些运算符的优先级和使用方法,能够帮助我们更加灵活地进行计算和判断。
3. 控制语句:控制语句是C语言中非常重要的一部分,包括条件语句、循环语句和跳转语句。
复习这些语句的语法和用法,能够帮助我们编写出更加高效和灵活的程序。
二、实践应用1. 编写简单的程序:通过编写一些简单的程序来巩固所学知识,比如实现一个计算器程序、编写一个简单的猜数字游戏等。
通过实践应用,我们能够更好地理解和掌握C语言的各种语法和特性。
2. 解决实际问题:将所学的知识应用到实际问题中,比如编写一个学生成绩管理系统、实现一个简单的文件管理程序等。
通过解决实际问题,我们能够更好地理解和掌握C语言的实际应用,提高编程能力。
三、深入学习1. 函数:函数是C语言中非常重要的一部分,它能够将程序分解为多个模块,使得程序更加模块化和可维护。
复习函数的定义和使用方法,了解函数的参数传递和返回值,能够帮助我们编写出更加复杂和可扩展的程序。
2. 数组和指针:数组和指针是C语言中非常重要的概念,它们能够帮助我们更好地处理和管理数据。
复习数组和指针的定义和使用方法,了解它们的特点和应用场景,能够帮助我们编写出更加高效和灵活的程序。
3. 结构体和文件操作:结构体和文件操作是C语言中比较高级的概念,它们能够帮助我们更好地组织和管理数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 C++语言概述1.2 单选题1.下列关于面向对象概念的描述中,错误的是(C)。
A.面向对象方法比面向过程方法更加先进B.面向对象方法中使用了一些面向过程方法中没有的概念C.面向对象方法替代了结构化程序设计方法D.面向对象程序设计方法要使用面向对象的程序设计语言2.下列各种高级语言中,不是面向对象的程序设计语言是(D)。
A.C++ B.JavaC.VB D.C3.下列关于类的描述中,错误的是(A )。
A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体4.下列关于对象的描述中,错误的是(C )。
A.对象是类的一个实例B.对象是属性和行为的封装体C.对象就是C语言中的结构变量D.对象是现实世界中客观存在的某种实体5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C )。
A.提取符是对右移运算符(>>)重载得到的B.插入符是对左移运算符(<<)重载得到的C.提取符和插入符都是双目运算符,它们要求有两个操作数D.提取符和插入符在输入/输出语句中不可以连用1.3 填空题1.C++语言具有面向对象方法中要求的三大特性:封装性、继承性和多态性。
2.C++程序中,有且仅有一个主函数。
3.C++程序是由类和函数组成的。
4.C++源程序的扩展名是cpp。
5.使用插入符进行标准输出文件输出时,使用的输出流对象名是cout 。
1.4 上机调试下列程序,并分析输出结果1.#include <iostream.h>void main(){int i,j;cout<<"Enter i j: ";cin>>i>>j;cout<<"i="<<i<<','<<"j="<<j<<endl;cout<<"i+j="<<i+j<<','<<"i*j="<<i*j<<endl;假定,输入数据如下:Enter x y:5✞9●答:i=5,j=9i+j=14,i *j=452.#include <iostream.h>int max(int,int);void main(){int a,b,c;a=5;b=8;c=max(a,b);cout<<"max("<<a<<','<<b<<")="<<c<<endl;}int max(int x,int y){return x>y?x:y;}答:max(5,8)=81.5 编译下列程序,修改所出现的错误,获得正确结果1.main(){cout<<"In main().\n"}答:修改后如下:#include <iostream.h>void main(){cout<<"In main().\n";}2.#include <iostream.h>void MAIN(){cin>>a;int b=a+a;cout<<"b=<<b<<\n";}答:修改后如下:#include <iostream.h>void main()int a;cin>>a;int b=a+a;cout<<"b=”<<b<<”\n";}3.#include <iostream.h>void main(){int i,j;i=5;int k=i+j;COUT<<"i+j="<<k<<endl;}答:#include <iostream.h>void main(){int i,j;j=10;i=5;int k=i+j;cout<<"i+j="<<k<<endl;}2.2 单选题1.下列变量名中,非法的是(C)。
A.A25 B.My_carC.My-str D.abc2.下列常量中,十六进制int型常量是( A )。
A.0x5f B.x2aC.046 D.7a3.下列常量中,不是字符常量的是(B)。
A.'\n' B."y"C.'x' D.'\7'4.在函数体内定义了下述变量a,a的存储类为(D)。
int a;A.寄存器类B.外部类C.静态类D.自动类5.下列关于变量存储类的描述中,错误的是(C)。
A.任何变量定义后都具有一个确定的存储类B.变量的存储类确定了变量的作用域和寿命C.定义变量时没有存储类说明符者一律为自动类D.内部静态类变量和外部静态类变量的存储类说明符都是static6.下列关于变量数据类型的描述中,错误的是(A)。
A.定义变量时int型数据类型可以省略B.变量的数据类型可以决定该变量占内存的字节数C.变量的数据类型是可以被强制的D.变量的数据类型是有高低之分的7.长双精度浮点型常量的后缀是(C)。
A.U B.FC.L D.无8.下列运算符中,不能用于浮点数操作的是(D)。
A.++ B.+C.*= D.&(双目)9.下列运算符中,优先级最高的是(A)。
A.*(双目)B.||C.>> D.%=10.下列运算符中,优先级最低的是(B)。
A.== B.?:C.| D.&&11.已知:int a(3);下列表达式中,错误的是(C )。
A.a%2==0 B.a--+2C.(a 2)++ D.a>>=212.已知:int b(5),下列表达式中,正确的是(D )。
A.b="a" B.++(b 1)C.b%2.5 D.b=3,b+1,b+213.下列关于类型转换的描述中,错误的是(C)。
A.类型转换运算符是(<类型>)B.类型转换运算符是单目运算符C.类型转换运算符通常用于保值转换中D.类型转换运算符作用于表达式左边14.下列表达式中,其值为0的是(A)。
A.5/10 B.!0C.2>4?0:1 D.2&&2||015.下列表达式中,其值不为逻辑值的是(A)。
A.算术表达式B.关系表达式C.逗号表达式D.逻辑表达式16.下列关于数组概念的描述中,错误的是(B)。
A.数组中所有元素类型是相同的B.数组定义后,它的元素个数是可以改变的C.数组在定义时可以被初始化,也可以不被初始化D.数组元素的个数与定义时的每维大小有关17.下列关于数组维数的描述中,错误的是(C )。
A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积18.下列关于数组下标的描述中,错误的是(B)。
A.C++语言中数组元素的下标是从0开始的B.数组元素下标是一个整常型表达式C.数组元素可以用下标来表示D.数组元素的某维下标值应小于该维的大小值19.下列关于初始值表的描述中,错误的是(C)。
A.数组可以使用初始值表进行初始化B.初始值表是用一对花括号括起的若干个数据项组成的C.初始值表中数据项的个数必须与该数组的元素个数相等D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值20.下列关于字符数组的描述中,错误的是(D)。
A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串21.下列关于字符串的描述中,错误的是(C)。
A.一维字符数组可以存放一个字符串B.二维字符数组可以存放多个字符串C.可以使用一个字符串给二维字符数组赋值D.可以用一个字符串给二维字符数组初始化22.已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是(B)。
A.a[0] B.a[1]C.a[2] D.a[3]23.已知:int ab[ ][3] = {{1, 5, 6}, {3}, {0,2}}; 数组元素ab[1][1]的值为(A)。
A.0 B.1C.2 D.324.已知:char s[ ]="abcd";输出显示字符'c'的表达式是(C)。
A.s B.s+2C.s[2] D.s[3]25.已知:char ss[ ][6]={"while", "for", "else", "break"};输出显示"reak"字符串的表达式是(B)。
A.ss[3] B.ss[3]+1C.ss+3 D.ss[3][1]2.3 填空题1.C++语言中,基本数据类型包含有整型、浮点型、字符型、空值型和布尔型。
2.变量的存储类可分为自动类、寄存器类、外邹类和静态存储类。
3.浮点型常量可分为单精度、双精度和长双精度浮点型常量。
4.结合性从右至左的运算符有单目运算符、双目运算符和赋值运算符。
5.条件表达式是由三目运算符组成的,该表达式的类型是由冒号左边和右边两个操作数中类型高的操作数类型决定的。
6.已知:double dd[ ][3]={{1.2, 2.4, 3.6}, {4.8, 5.2},{6.4}}; 这里dd是一个二维数组的数组名,该数组共有9个元素,每个元素的类型是double。
数组元素dd[0][0]的值是 1.2 ,dd[1][1]的值是5.2,数组元素dd[2][2]的值是0。
7.已知:char ss[ ][6]={"while", "break", "for", "else"}; 字符数组ss是二维数组,它的第1维大小应该是4 。
使用cout和<<输出字符串"for"时,对应的表达式是ss+2。
使用cout和<<输出字符串"break"的子串"reak"时,对应的表达式是ss[1]+1。