成电信软程算I 雨课堂答案

电子科技大学:信息与软件工程学院

程序设计与算法基础I

雨课堂答案


选择题因为限制,直接展示正确答案的文本选项,蓝色加粗为解析

第一章 程序设计引论

计算机系统由硬件和软件构成,它们共同工作来运行应用程序(√)

程序员必须要关心底层硬件的细节。(×)[程序员不需要关心底层硬件,操作系统包裹了硬件的实现细节。]

C语言程序的源文件的扩展名是.cpp。(×) [ C语言程序的源文件的扩展名是.c,C++源文件程序的扩展名是.cpp]

汇编语言是高级程序设计语言。(×) [汇编语言是直接面向处理器(Processor)的、面向机器的程序设计语言,属于低级语言。]

预处理器(preprocessor)执行以#开头的指令,类似于编辑器,可以给程序添加或修改内容。(√)

第二章 C语言基础

Kenneth Thompson被尊称为UNIX之父,Dennis Ritchie被尊称为C语言之父。(√)

C语言是具有低级语言特点的高级程序设计语言。(√)

计算机最小存储计量单位是:bit(位)。(√)

计算机最基本存储计量单位是:Bytes(字节) 。(√)

第三章 C语言输入输出

转换说明与实际数据类型不一致,产生不正确的无意义值。(√)

/……/ 表示注释。注释只是给人看的,对编译和运行不起作用。(√)

以#开头的是语句。(×)[#开头的是指令。]

大花括号{ }是函数开始和结束的标志,可省略。(×) [大花括号{ }是函数开始和结束的标志,不可省略。]

C语言的语句以逗号结束。(×) [C语言的语句以分号结束。]

微软的Visual Studio,是个重量级的的集成开发环境,可对C程序进行编辑、编译、链接、执行和调试。(√)

扩展名是.h,表明这是一个头文件,C源代码中如用到标准输入输出函数时,就要包含头文件stdio.h。(√)

printf()函数用来显示格式化字符串(format String)的内容,显示的值可以是常量、变量或者表达式。(√)

格式化字符串包含普通字符和转换说明(conversion specification),转换说明以%开头。(√)

%d 表示把int型数值从二进制转换成十进制数字组成的字符串。(√)

C的编译器会自动检测格式串中转换说明的数量和类型是否和后面的变量一致。(×) [C的编译器不会检测格式串中转换说明的数量和类型是否和后面的变量一致。]

第四章 表达式

作业(一)

C语言中,除法运算符“/“操作数必须为整数,取余运算符”%“的操作数不需要为整数。(×) [C语言中,除法运算符“/“操作数可以是整数和浮点数,取余运算符”%“的操作数必须为整数,而且结果的符号与左操作数一致。]

假设:int i=2; printf("i=%d\n", i++); 运行结果:i=3(×) [运行结果:i=2]

假设i,a,b为int型变量,复合赋值表达式 i *= a-b 可以表示为 i = i *(a-b)。(√) [复合赋值运算右边视为一个整体]

表达式转变为语句的方法就是在表达式末尾添加分号。(√)

若x,i,j和k都是int型变量,则计算 x=(i=4,j=16,k=32) 表达式后,x的值是4。(×)  [(i=4,j=16,k=32)里面是”,“运算符,所以值为最后一个表达式的值,即为32,所以x=32。]

sizeof(float)是一个双精度型表达式 。(×) [这个函数的返回值(计算结果)是float类型所占的内存字节数。]

自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。(√)

作业(二)

下列语句中,符合语法的赋值语句是:(a=7+b,b++,a+7;)

假设 int i=1,j=1,k=1; i+= j += k; printf("%d %d %d", i, j, k); 则打印结果:(3 2 1)

若有定义 int x=3, y=2; 和 float a=2.5, b=3.5; 则表达式 (x+y)%2+(int)a/(int)b 的值是:(1)

C语言中,要求操作数必须是整型的运算符是:(%)[C 语言中,取余运算符 ”%“两边的操作数必须都为整数。]

设有以下语句:int x=10; x+=3+x%(-3); 则x的值是:(14)[ %操作符两个操作数如果一正一负,结果的符号与左操作数符号相同]

以下四个选项中哪一个是非法的算术表达式:(7%1.5=1 ) [C 语言中,取余运算符 ”%“两边的操作数必须都为整数。]

第五章 选择和分支

作业(一)

若 int a=3,b=2,c=1,f; 表达式 f=a>b>c 的值是0。(√) 【计算过程如下,a>b计算为真,然后计算 真(1)>c,结果为假0。】

设有变量定义:int a=10,c=9; 则表达式 (--a!=c++)?--a:++c 的值是11。(√) 【a自减变成9 ,c还是9,--a != c++ 条件不满足,结果值为0,取第3个表达式值。但在表达式1中C已经自增为10。++c ,c变成 11。】

在switch语句中,每一个case常量表达式的值可以相同。(×)

switch语句中,多个case语句可以共用一组执行语句。(√)

在switch语句中,执行break语句之后,就可以跳出switch语句,继续执行switch后面的语句。如果没有break语句,就会从一个分支继续到下一个分支。(√)

continue语句可以用于switch结构中。(×) 【continue语句只用在for、while、do-while等循环体中,与if条件语句一起使用,用来控制循环。】

若有条件表达式(exp)?a++:b--,则(exp!=0) 能完全等价于表达式(exp)。(√) 【在C语言中,非0的值表示真。】

在if-else语句中,else 总是与其前面最近的尚未配对的if结合(√)

逻辑或表达式 A||B中,如果表达式A和表达式B的值任意一个为“真”,则表达式A||B结果为“真”(1)。(√)

已知:a = 1,b = 1,则表达式: ! (a != b) 值为1。(√)

switch语句实现多分支选择结构中,default 语句为选择项,可有可无。另外,default 后面可以不加break语句。(√)

switch括号内的“表达式”,其值的类型可以是整数类型、字符类型或枚举类型,也可以是其他数据类型。(×) 【switch括号内的“表达式”,其值的类型应为整数类型、字符类型或枚举类型。】

作业(二)

以下if语句语法正确的是:(if(x>0){x=x+y;printf("%f",x);} else printf("%f",-x);)

有程序:

main(){

int a=5,b=1,c=0;

if (a=b+c)

printf("***\n");

else

printf("$$\n");}

该程序(输出:***)【注意条件表达式不是a= =b+c。】

以下程序的运行结果是:

main(){

int m=5;

if(m++>5)

printf("%d",--m);

else

printf("%d",m);

}

  6  [m先与5进行关系比较,然后进行增量运算,m值为6,因比较结果为假,执行else,输出为6,m为7。]

以下关于switch语句和break语句的描述中,哪个是正确的(在switch语句中,可以根据需要使用或不使用break语句)

以下关于运算符优先顺序的描述中正确的是:(赋值运算符<逻辑运算符<关系运算符<算术运算符)

下面程序的运行结果是:

include <stdio.h>
main(){
    int x=1,y=0,a=0,b=0;
switch(x){
case 1:
switch(y){
case 0:
a++;
break;
case 1:
b++;
break;
}
case 2:
a++;b++;
break;
}
printf("a=%d,b=%d",a,b);
}

(a=2,b=1)

第六章 循环

作业(一)

下面程序段中循环体的执行次数是4次。 int a=10,b=0; do{ b+=2; a-=2+b; } while(a>=0);(×)[ 应该是3次]

语句for(;;){循环体}和while(1){循环体}是等价的。(√)

在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。(√)

break语句只能用于循环语句中。(×)【break还可以用于switch语句。】

continue语句可以用于switch结构中。(×) 【continue语句只用在for、while、do-while等循环体中,与if条件语句一起使用,用来控制循环。】

作业(二)

设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则:(运行程序段后输出1)

下面哪个循环语句和其他不等价(假设循环体一样)?(for(i=0; i++<10; ) printf("%d\n", i););【for(i=0; i++<10; )的i在进入循环体之前已经加1了。】

C语言中while和do while循环的主要区别是:(do-while的循环至少无条件执行一次。)

下面有关for循环的正确描述是:(for循环的循环体可以包括多条语句,但必须用花括号括起来)

以下不是无限循环的语句为:(for(y=0,x=1;x>++y;x=i++) i=x;)

设i,j,k均为int型变量,则执行完下面的for循环后,k的值为:

      for(i=0,j=10;i<=j;i++,j--)k=i+j;

(10)

第七章 基本数据类型

作业一

不同的数据类型具有不同的存储长度、取值范围、允许的操作。(√)

缺省情况下,浮点常量以double类型存放。(√)

scanf函数读取字符时会自动跳过空白字符。(×)[ scanf函数读取字符时不会自动跳过空白字符,可以在“ %c”前面加空格强制scanf函数跳过空格。]

类型定义用于对另一个数据类型创建一个别名,相当于创建了一个新的类型。(×)[ 一个类型定义声明并没有创建一个新的类型,仅仅是对某个已有的类型增加一个新名称而已。]

getchar函数可用于循环中搜寻字符,也可用于跳过不确定数量的相同字符。(√)

常量又称为常数,是在程序运行过程中其值不能被改变的量。(√)[ 在C语言中,经常使用一个标识符来代表一个常量。也就是给常量命名,称为符号常量。]

整型变量包括有符号整型变量和无符号整型变量。整型变量在内存中占的字节数相同。(×)[ 整型变量在内存中占的字节数与所选的系统有关,规定long型整数不短于int型,short型整数不长于int型。]

C语言的基本数据类型包括整型数据、浮点型数据和字符型数据。(√)

在C语言中求字符串s的长度时,字符串中所含字符的个数称为字符串的长度,结束标志字符'\0'不参加计算。(√)

变量c是char类型,putchar(c); 的用法是正确的。(√)

作业二

在C语言中,字符型数据在内存中以什么形式存放(ASCII码)

以下哪一个是C语言提供的合法的数据类型关键字:(float)【signed为整型的修饰符】

在C语言中,数字029是一个:(非法数)【十进制常量包含数字0~9,不能以0开头;八进制常量包含数字0~7,必须以0开头,但不可能包含数字9。】

以下合法的赋值语句是:(x=y=100;)

对于char cx="\033"; 语句,正确的是:(cx存贮的ASCII码值是033,是用八进制表示的转义序列值。)

以下程序是关于整数的不同进制数表示及转换:

int main() {

print("%d %x %o\n",125,125,125);

return 0;

}

(125 7d 175) 【o八  x十六】

下列的浮点数合法的是:(2.33e-1)【e前e后必有数 e后必须为整数】

下面选项中合法的字符常量是:('X')

【字符常量是用单引号括起来的一个字符。A选项中,使用双引号,所以是错误的;C选项中,'abc'是字符串,字符常量只能是单个字符,不能是字符串;D选项中,以反斜线"\"开头的是转义字符。因此B选项正确。】

以下叙述中正确的是:(字符常量需要用单引号括起来。)B选项中,字符常量在内存中占1个字节;A选项中,转义字符是以反斜线"\"开头;D选项中,字符常量可以进行关系运算,不能参与数值运算。因此C选项正确】

以下叙述中正确的是:(对特殊字符,数字转义序列使用这些字符的八进制或十六进制值。)

第八章 数组

作业一

多维数组初始化时,如果内层的列表长度不足以填满数组的一行,则对该行剩余的元素进行随机初始化。(×)【对该行剩余的元素初始化为0。】

若有定义: double x[3][5];则x数组索引值第一维的下限为0,第二维的上限为5。(×)【第二维的上限为4。】

C语言使用字符数组来处理字符串时,定义的同时可以进行初始化。在用字符串常量初始化字符数组时,自动加结束标志\0。(√)

n个元素数组的索引是从1到n(×)【n个元素数组的索引是从0到n-1。】

字符数组的每个元素可存放一个字符,并且最后一个元素必须是'\0'字符。(×)【字符数组的最后一个元素可以不是'\0'字符。】

多维数组:int b[5][4][3]; 第一维的索引下标从0-4,第二维的索引下标从0-3,第三维的索引下标从0-2,共60个整型元素。(√)

一个数组只允许存储同种类型的变量。(√)

声明一个数组的方式是:类型定义符 数组名 [ 常量表达式 ];其中,常量表达式表示的是数组元素的个数。(√)

C语言中数组元素是由数组下标的索引值进行标注的,第一个元素的索引值是0。(√)

假定一个int型变量占用4个字节,若有定义: int x[10]={0,2,4}; 则数组x在内存中所占字节数是12。(×)【一维数组在内存中所占的字节数为:数组长度×sizeof(元素类型)。该数组有10个元素,所以答案是40。】

作业二

以下关于数组说法错误的是:(C的编译器会检测数组是否越界。)C的编译器不会检测数组是否越界。】

以下关于一维数组定义方法的说明错误的是:(数组下标从1开始)【数组下标从0开始】

数组int b[] = {[5] = 10, [23] = 13, [11] = 36, [15] = 29};包含了多少个元素:(24)

若数组a包含10个整数,假设每个整数用4字节存储,则sizeof(a)的值是:(40)

多维数组:int b[5][4][3];包含多少个元素:(60)【表示5个二维数组,每个二维数组包含4个一维数组元素,每个一维数组有3个整型元素;共60个整型元素。】

多维数组中,为了存取数组i行j列的元素,应该写成以下哪一种形式:(m[i][j])

以下叙述中正确的是:(在多维数组的初始化式中忽略掉内层的大括号是可以的)【注意数组的初始化不可以是空】

第九章 函数

作业一

C语言的main函数是程序开始时调用的第一个函数。(√)

在C语言中的函数体可以包含声明和语句。(√)

函数调用由函数名和跟随其后的实际参数列表组成,其中实际参数列表用方括号括起来。(×)【其中实际参数列表用圆括号括起来。】

实参和与其对应的形参占用独立的存储单元。(×)【实参可以是表达式,当实参为表达式时,实参并不单独占用独立的存储单元。

函数调用可以出现在执行语句中 ;出现在表达式中;作为函数的实参。(√)【注意函数调用不可以作为函数的形参。】

只有全局变量才有自己的作用域,函数中的局部变量没有作用域。(×)【局部变量也有作用域】

C语言中函数的定义可以嵌套,函数体内能包含另一个函数的定义。(×)【C语言中函数的定义都是相互平行、相互独立的,也就是说在函数定义时,函数体内不能包含另一个函数的定义,即函数不能嵌套定义,但可以嵌套调用。】

用户自己定义的函数只能调用库函数。(×)【也能调用自定义函数。】

实用的C语言源程序总是由一个或多个函数组成。(√)

如果函数改变了数组型形式参数的元素,那么这个改变会在相应的实际参数中体现出来。(√)

作业二

关于建立函数的目的,以下正确的说法是:(提高程序的可重用性)

定义函数时,函数名前面有void关键字,正确的说法是:(没有返回值)

函数调用fun((exp1,exp2),(exp3,exp4,exp5));这个语句含有实参的个数为(2)【该函数的实参是两个逗号表达式。】

一个函数返回值类型为double,有2个double类型形式参数,下列哪个函数原型不正确?(double average( a, double b);)

main() {increment(); increment(); increment(); } increment() {int x=0; x+=1; printf("%d",x); } 以上程序运行的结果是:(1 1 1)

以下叙述正确的是:(调用函数时,函数名必须与被调用的函数名称一样)【函数调用时,函数名称是区分大小写;函数名不允许用数字开头;在函数体中允许出现多个return语句,但是每次调用只能有一个return语句被执行。】

以下叙述正确的是:(C语言规定必须用main作为主函数名,程序将从此开始执行)【C语言中的主函数唯一为main()函数不能任意指定,所以B选项错误C语言从主函数main()开始,到主函数main()结束,所以C选项错误主函数必须写成小写的main,不能混淆大小写,所以D选项错误。】

在C语言程序中,main函数的位置:(任意)

C语言源程序的基本单位是:(函数)

一个C语言程序的执行是从:(main( )函数开始,直到main( )函数结束)

第十章 程序结构和变量作用域

作业一

C99 允许在程序块的任何位置声明变量。(√)

在函数体内声明的变量称为该函数的局部变量。(√)

形式参数没有自动存储期限。(×)【形式参数拥有和局部变量一样的性质:自动存储期限和块作用域。】

不同函数中不能使用相同变量名。(×)【不同函数中可以使用相同变量名。互不干扰,因为它们占用不同的内存单元】

在每次函数调用时,会对形式参数自动进行初始化。(√)

作业二

以下哪一个说法是错误的:(形参只有在函数内有效,作用域可以在函数外部。)【形参只有在函数内有效,也属于局域变量,作用域被限定在定义它的函数内部。】

以下说法错误的是:(在C程序中,相同的标识符只能表示相同的含义)【在C程序中,相同的标识符可以有不同的含义】

若函数中有定义语句:int k;,则:(这时k中值无定义)

以下叙述中正确的是:(局部变量说明为static存储数,其生存期将得到延长。)

在一个C语言源程序文件中所定义的全局变量,其作用域为:(所有函数的全部范围。)

以下叙述中正确的是:(当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改) 【复合语句可以包含多条语句,在其中可以定义局部变量,所以A错误花括号对{}不仅用来表示函数的开头和结尾,也可以用于表示复合语句,所以B错误C语言中的语句必须以分号";"结束,所以空语句表示为";",不是空行,所以C错误。】

以下叙述中正确的是:(在C程序中,模块化主要是通过函数来实现的)【C语言的源程序中对缩进没有要求,所以A选项错误C语言中区分大小写,main函数不能写成Main或_main,所以B选项错误一个C程序有且只有一个主函数,所以C选项错。】

以下叙述中正确的是:(赋值语句是一种执行语句,必须放在函数的可执行部分)

scanf与printf是函数不是语句 printf输出隐含右对齐 scanf和printf是C语言提供的输入输出函数,所以B错误。由printf输出的数据都隐含右对齐,所以A错误Printf输出数据所占的宽度由系统决定,所以D错误。】

为了使程序块中的变量具有静态存储期限,可以使用以下哪一个关键字声明变量:(static)

第十一章 指针

作业一

使用数组名作为指向数组第一个元素的指针可以简化指针算术运算,使得数组和指针更加通用。(√)

取地址运算符用于得到变量的地址;间接寻址运算符用于访问指针所指向的对象。(√)

当不希望作为实参传入函数的指针所指向的对象内容被修改时,可以使用const。(√)【使用const关键字确保函数不会修改指针参数所指向的对象!】

对一个并未指向数组元素的指针可以执行算术运算。(×)【对一个并未指向数组元素的指针是不能执行算术运算的。】

作业二

变量的指针,其含义是指该变量的:(地址)

若有int  a[10],p=a;,则p+5表示:(元素a[5]的地址)

对于语句int pa[5];下列描述中正确的是:(pa是一个具有5个元素的指针型数组,每个元素是一个int型指针)

若要对a进行++运算,则a应具有下面说明:(int b[10], a = b)

已有定义int k=2;int p1,p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是:(p2=k;)

第十二章 字符串

作业一

可以对字符串字面量进行修改。(×)【切记字符串字面量是常量,内容不可以修改。】

字符串必须以空字符结尾。(√)

以数组名作为=运算符的左操作数是非法的!(√)【数组名代表了数组的首地址,是个常量!】

strlen是用来求字符串长度的函数,字符串长度就是它所包含的字符个数(不包含空字符)。(√)

在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。(√)

作业二

若有说明:int a[3][4];则对a数组元素的正确引用是:(a[1+1][0])【在实际应用中a[2][4]这种应用方式实质上访问的是a[3][0],这是越界访问。】

以下对一维数组a的定义中正确的是(C89标准):(int a[5];)一维数组定义的一般形式为: 类型标识符   数组名[常量表达式]。其中,常量表达式可以是任意类型,一般为算术表达式,其值表示数组元素的个数,即数组长度

设有数组定义:char array[]="China";则strlen(array) 的值为:(5)

若二维数组y有m列,则排在y[i][j]前的元素个数为:(im+j)C语言中的二维数组按行存储。行标为i的元素前共有i行元素,元素个数为i*m,每行列标为j的元素前共有j个元素。因此,y[i][j]前的元素个数为i*m+j。】

若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是:(char s[]={"123\n"};)【字符数组中所存字符中有’\0’时,字符数组才能作为字符串使用。选项A是用字符常量对字符数组初始化,且最后一个元素的值为字符串结束标记(’\0’),所以数组s中存放的就是字符串"123";选项D是用字符常量对部分元素初始化,根据 C语言的规定,系统为第四个元素赋初值为空值,即'\0',所以数组s中存放的也是字符串" 123"。选项B是直接使用字符串"123"对字符数组初始化;选项C也是使用字符串初始化,但是字符串不是"123",而是"123\n"。】

以下叙述正确的是:(每个数组包含一组具有同一类型的变量。)                                                                           【A选项中,一条语句只能定义一个数组是不准确的,可以通过一条语句定义多个数组。C选项中,数组说明符的一对方括号中可以是整型常量,可以是整型常量表达式。D选项中,在引用数组元素时,下标表达式必须是整型的。因此B选项正确。】

以下叙述中正确的是:(语句int a[8] = {0}; 是合法的)【B选项,可以根据初始化式,确定数组元素大小。C选项char a[2] = {"A", "B"};不合法,应为char a[2] = {'A', 'B'};。D选项中,a是数组名,不能直接指向字符串“AB”所在的地址,可以修改为:char* a; a = "AB";。】

以下叙述中正确的是:(语句char str1[] = {'s', 't', 'r', '1', '\0'};用赋初值方式来定义字符串,其中,'\0'是必须的)【本题考查字符数组的相关操作,B选项中数组str1包含了5个元素,其中有结尾符,A选项中,str1的类型不是字符串类型,字符数组的最后一个元素可以不是'\0'字符。】

以下叙述中正确的是:(字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组)

假定一个int型变量占用4个字节,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占的字节数是:(40)【一维数组在内存中所占的字节数为:数组长度×sizeof(元素类型)。】

第十三章 预处理

以下有关宏替换的叙述不正确的是:(宏名必须用大写字母表示)【宏有如下特性:宏不占用时间/宏无类型/宏只是字符替换】

在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是:(先在源程序所在目录搜索,再按照系统设定的标准方式搜索。)

在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>括起时,寻找被包含文件的方式是:(直接按系统设定的标准方式搜索目录)

以下叙述中不正确的是:(C程序在执行过程中对预处理命令行进行处理。)

以下叙述中正确的是 :(宏替换不占用运行时间,只占用编译时间。)

第十四章 大型程序设计

分而治之是开发大型程序的基本思想。(√)

函数的结构化设计原则是:高内聚紧耦合。(×)【高内聚松耦合。】

大型程序必须有并且只能有一个源文件里有主函数,它是程序的入口。(√)

在程序中,通过宏定义用符号表示常量,可便于避免不一致性和打字错误。(√)

在程序设计中,函数的结构化设计原则是:松内聚,高耦合。(×)【应该是高内聚,松耦合。】

第十五章 结构、联合和枚举

数组的数据项中元素,类型必须相同;结构数据项的成员,类型不尽相同。(√)

typedef是定义结构类型的关键字。(√)

在一个时刻联合的成员可以有多个有效。(×)                                                                          【在一个时刻联合的成员只有一个有效。】

枚举常量的值可以是任意的整数, 没有特别的顺序。(√)

C语言主要有两大类数据类型标量类型和聚合类型。(√) 【标量类型:只含有单个数据项的类型 聚合类型:含有多个数据项的类型】

  • 18
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谨慎谦虚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值