C语言题库指针

C语言指针练习题集
这是一篇关于C语言指针的练习题集,包含了选择题和程序设计题,涉及指针的基础操作、字符串处理、函数指针等方面的知识,旨在帮助读者深入理解和掌握C语言中的指针用法。

第六章  指针

一、单项选择

1.若已定义char s[10];则在下面表达式中不表示s[1]的地址是(   )。

A.&s[1]

B.&s[0]+1

C.s+1

D.s++

2.下面程序段的运行结果是(   )。

   char a[ ]=”language” , *p ;

   p=a ;

   while (*p!='u') { printf(“%c”,*p-32); p++ ; }

A.language

B.langUAGE

C.LANGUAGE

D.LANG

3.下面能正确进行字符串赋值操作的是(   )

A.char s[5]={'A','B','C','D','E'};

B.char s[5]={"ABCDE"};

C.char *s ; s="ABCDE" ;

D.char *s; scanf("%s",s) ;

4.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是(    )。

A.p2=c;

B.c=*p1+*p2;

C.p1=p2;

D.c=*p1*(*p2);

5.已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是(    )。

A.*p=max(a,b);

B.*p=max;

C.p=max;

D.p=max(a,b);

6.以下正确的叙述是(    )。

A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定

B.当main函数带有形参时,传给形参的值只能从命令行中得到

C.若有说明: int main(int argc,char **argv),则argc的值必须大于1

D.C语言允许main函数带形参,形参名只能是argc和argv

7.若有定义:int (*p)[4];则标识符p(    )。

A.是一个指针数组名

B.定义不合法

C.是一个指向整型变量的指针

D.是一个指针,它指向一个含有四个整型元素的一维数组

8.设有程序段:char s[ ]="china"; char *p ; p=s ;则下面叙述正确的是()。

A.*p与s[0]相等

B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等

D.s和p完全相同

9.下面程序段的运行结果是(  )。

char *s=”abcde” ;

s+=2 ; printf(“%s”,s);

A.字符'c'的地址

B.不确定

C.cde

D.字符'c'

10.下面判断正确的是()。

A.char str[10]={"china"}; 等价于 char str[10]; str[ ]={"china";}

B.char c[4]="abc",d[4]="abc"; 等价于 char c[4]=d[4]="abc" ;

C.char *a="china"; 等价于 char *a; *a="china" ;

D.char *s="china"; 等价于 char *s; s="china" ;

11.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是(    )

A.数组s中的内容和指针变量p中的内容相等

B.*p与s[0]相等

C.s数组长度和p所指向的字符串长度相等

D.s和p完全相同

12.已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是(  )

void print_value(int *x)

{  printf(“%d\n”,++*x); }

A.24

B.23

C.25

D.26

13.若有说明:int *p,m=5,n;以下程序段正确的是( )

A.p = &n ; *p = m ;

B.p=&n ;scanf("%d",&p);

C.p = &n ;scanf("%d",*p);

D.scanf("%d",&n); *p=n ;

14.变量的指针,其含义是指该变量的(  )

A.值

B.地址

C.一个标志

D.名

15.已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(  )

A.ptr2=k;

B.k=*ptr1+*ptr2;

C.k=*ptr1*(*ptr2);

D.ptr1=ptr2

16.8882.若要对a进行自增运算,则a应具有下面说明(   )。

Int b[10],*a=b;

二、程序设计

1.8885. /*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */

#include <string.h>

#include <stdio.h>

void  fun  (char *a)

{

/************Begin*************/

/************End**************/

}

int main()

{

  char s[81];

  FILE *in,*out;

  int i;

  printf("Enter a string :\n");

  gets(s);

  fun(s);

  printf("The string after deleted:\n");

  puts(s);

  /******************************/

  in=fopen("in21.dat","r");

  out=fopen("out21.dat","w");

  for(i=0;i<8;i++)

  {

      fscanf(in,"%s",s);

      fun(s);

      fprintf(out,"%s\n",s);

  }

  fclose(in);

  fclose(out);

  /******************************/

  return 0;

}

【参考代码】

    int i=0;

    char *p=a;

    while(*p&&*p=='*')

    {

        a[i]=*p;i++;p++;

    }

    while(*p)

    {

        if(*p!='*')

        {

            a[i]=*p;i++;

        }

        p++;

}

    a[i]='\0';

2.8863. /*请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。

一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include<string.h>

#include<stdio.h>

#define N 80

int fun(char *s)

{

 /************Begin*************/

/*************End*************/

}

int main()

{

  FILE *wf,*in;

  char line[N];

  int num=0;

  printf("Enter a string:\n ");

  gets(line);

  num=fun(line);

  printf("The number of word is:%d\n\n ",num);

/******************************/

 in=fopen("in19.dat","r");

  wf=fopen("out19.dat","w");

  fgets(line,81,in);

  fprintf(wf,"%d",fun(line));

  fclose(wf);

  fclose(in);

/*****************************/

  return 0;

}

【参考代码】

    int i,j=0;

for(i=0;s[i]!='\0';i++)

        if(s[i]!=' '&&(s[i+1]==' '||s[i+1]== '\0'))

/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/

            j++;

    return j;/*返回单词个数*/

3.8860. /*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G*******。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */

#include <stdio.h>

void  fun  (char *a)

{

/************Begin**************/

/************End*************/

}

int main()

{

  FILE *wf,*in;

  int i;

  char s[81],t[81]="****A*BC*DEF*G*******";

  printf("Enter a string :\n");

  gets(s);

  fun(s);

  printf("The string after deleted:\n");puts(s);

/******************************/

  in=fopen("in18.dat","r");

  wf=fopen("out18.dat","w");

  for(i=0;i<8;i++)

  {

      fscanf(in,"%s",t);

      fun(t);

      fprintf(wf,"%s\n",t);

  }

  fclose(in);

  fclose(wf);

/*****************************/

 return 0;

【参考代码】

    char *p=a;

    while(*p=='*')

        p++;

/*指针p指向字符串第一个字母*/

    for(;*p!='\0';p++,a++)

*a=*p;

    *a='\0';

4.8852. /*请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。

回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。

注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include <stdio.h>

#define N 80

int fun(char str[])

{

    /***************Begin************/

/*************** End ************/

}

int main()

{

     char s[N];

     FILE *out,*in;

char test[][80]={"1234321","123421","123321","abcdCBA"};

     int i;

     printf("Enter a string : ");

     gets(s);

     printf("\n\n");

     puts(s);

     if(fun(s))

        printf("YES\n");

     else

        printf("NO\n");

     /************************************/

    in=fopen("in12.dat","r");

    for(i=0;i<4;i++)

    fscanf(in,"%s",test[i]);

     out=fopen("out12.dat","w");

     for(i=0;i<4;i++)

        if(fun(test[i]))

            fprintf(out,"YES\n");

        else

            fprintf(out,"NO\n");

    fclose(in);

     fclose(out);

     /************************************/

  return 0;

}

【参考代码】

int fun(char str[])

{

    int i,n=0,fg=1,j=0;

    while (str[j])

    {

        n++;

        j++;

    }

    for(i=0;i<n/2;i++)

/*循环比较字符*/

        if(str[i]==str[n-1-i]);

    /*相同,什么都不作*/

        else

/*不同,直接跳出循环*/

        {

            fg=0;

            break;

        }

    return fg;

}

5.8862. /*请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位依次放在c数的百位和个位上。

例如,当a=45,b=12,调用该项函数后,c=4152。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */

#include <stdio.h>

#include <conio.h>

void fun(int a ,int b,long *c)

{

  /************Begin************/

/************End***************/

}

int main()

{

  int  a,b,i; 

  long c;

  FILE *out,*in;

  printf("Input a ,b: ");

  scanf("%d%d",&a,&b);

  fun(a,b,&c);

  printf("The result is :%ld\n",c);

  /******************************/

  in=fopen("in20.dat","r")

  out=fopen("out20.dat","w");

  for(i=10;i<20;i++)

  {

   fscanf(in,"%d %d",&a,&b);

    fun(a,b,&c);

    fprintf(out,"%d\n",c);

  }

fclose(out);

fclose(in);

/******************************/

return 0;

}

【参考代码】

*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;

6.8880. /*请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include <string.h>

#include <stdio.h>

#define N 81

void fun(char*s)

{

/************Begin*************/

/************End**************/

}

int main()

{

     char a[N];

     FILE *out,*in;

     printf("Enter a string:");

     gets(a);

     printf("The  original string is:");

     puts(a);

     fun(a);

     printf("\n");

     printf("The string after modified:");

     puts(a);

     strcpy(a,"Hello World! This is a first C program!");

     fun(a);

     /******************************/

      in=fopen("in17.dat","r");

      fgets(a,81,in);

     out=fopen("out17.dat","w");

     fprintf(out,"%s",a);

     fclose(out);

       fclose(in);

     /******************************/

      return 0;

}

【参考代码】

    char ch;

    int i,m,n;

    i=0;

    m=n=strlen(s)-1;

    while(i<(n+1)/2)

    {

        ch=s[i];

        s[i]=s[m];

        s[m]=ch;

        i++;

        m--;

}

三、程序改错

1.9812. /*下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:*/

#include<conio.h>

#include<stdio.h>

/**********ERROR**********/

void fun(char *s,int a,int b)

{

    while(*s)

    {

        if(*s>='A' && *s<='Z')

/**********ERROR**********/

            a++;

        if(*s>='a' && *s<='z')

/**********ERROR**********/

            b++;

        s++;

    }

}

int main()

{

    char s[100];

    int upper=0,lower=0;

    printf("\nplease a string :");

    gets(s);

    fun(s,&upper,&lower);

    printf("\n upper=%d lower=%d\n",upper,lower);

    return 0;

【改错1】void fun(char *s, int *a, int *b)

【改错2】(*a)++;

【改错3】(*b)++;

2.9332. /*下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。

例如,输入THIs is a boot,则应输出是1 0 2 2 0。请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */

#include  <stdio.h>

/**********ERROR**********/

fun(char *s, int num[5])

{ int k, i=5;

  for(k=0;k<i;k++)

/**********ERROR**********/

num[i]=0;

  for(;*s;s++)

      { i=-1;

/**********ERROR**********/

        switch(s)

           { case 'a': case'A':{i=0;break;}

             case 'e ': case 'E':{i=1;break;}

             case 'i': case 'I':{i=2;break;}

             case 'o': case 'O':{i=3;break;}

             case 'u': case 'U':{i=4;break;}

           }

       if(i>=0)

       num[i]++;

      }

}

int main()

{ char s1[81]; int num1[5], i;

printf("\nPlease enter a string: ");

gets(s1);

  fun(s1, num1);

  for(i=0;i<5;i++) printf("%d ",num1[i]);

printf("\n");

return 0;

}

【改错1】void fun(char *s, int num[5])

【改错2】num[k]=0;

【改错3】switch(*s)

3.8876. /*下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:*/

#include  <stdlib.h>

#include  <conio.h>

#include  <string.h>

#include  <stdio.h>

#define N 80

int fun(char *s,char *t)

{ int n;

  char *p, *r;

n=0;

  p=&s[0];

/**********ERROR**********/

  *r=t;

  while(*p)

{

    if(*r==*p)

    {

        r++;

        if(*r=='\0')

        {  

            n++;

/**********ERROR**********/

            【1】;

        }

    }

    p++;

  }

  return n;

}

int main()

{char a[N],b[N]; int m;

 system("CLS");

 printf("\nPlease enter string a: ");

gets(a);

 printf("\nPlease enter substring b: ");

gets(b);

 m=fun(a,b);

 m=printf("\nThe result is :m=%d\n",m);

return 0;

}

【改错1】r=t;

【改错2】r=t;

4.8853. /*下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,

平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64

则低于平均分的学生人数为4(平均分为75.5625)。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序: */

#include <stdlib.h>

#include <stdio.h>

#define N 20

int fun(float *s, int n,float *aver)

{ float ave ,t=0.0;

  int count=0,k,i;

  for(k=0;k<n;k++)

/**********ERROR**********/

      t=s[k];

  ave=t/n;

  for(i=0;i<n;i++)

      if(s[i]<ave) count++;

/**********ERROR**********/

  *aver=&ave;

  return count;

}

int main()

{ float s[30],aver;

  int m,i;

  printf("\nPlease enter m: ");

  scanf("%d",&m);

  printf("\nPlease enter %d mark :\n",m);

  for(i=0;i<m;i++) scanf("%f",s+i);

  printf("\nThe number of students :%d\n",fun(s,m,&aver));

printf("Ave=%f\n",aver);

return 0;

}

【改错1】t=t+s[k];

【改错2】*aver=ave;

5.8855. /*给定程序中函数fun的功能是:把主函数中输入的3个数,最大的放在 a中,最小的放在c中,中间的放在b中。

例如,输入的数为:55 12 34,

输出结果应当是:a=55.0 , b=34.0 , c=12.0。

请改正程序中的错误,使它能得出正确结果。

给定源程序:*/

#include <stdio.h>

void fun(float *a,float *b,float *c)

{

/**********ERROR**********/

float *k;

if( *a<*b )

{   k=*a; *a=*b; *b=k; }

/**********ERROR**********/

if( *a>*c )

{   k=*c; *c=*a; *a=k; }

if( *b<*c )

{   k=*b; *b=*c; *c=k; }

}

int main()

{   float a,b,c;

printf("Input a b c: "); scanf("%f%f%f",&a,&b,&c);

printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);

fun(&a,&b,&c);

printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);

return 0;

}

【改错1】float k;

【改错2】*a<*c

6.8866. /*下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:*/

#include <stdio.h>

#include <stdlib.h>

/**********ERROR**********/

void fun(int a,b)

{ int t;

/**********ERROR**********/

  t=b;b=a;a=t;

}

int main()

{int a,b;

printf("Enter a, b: ");

scanf("%d%d",&a,&b);

  fun(&a, &b);

  printf("a=%d  b=%d\n ", a,b);

 return 0;

}

【改错1】void fun(int *a,int *b)

【改错2】t=*b;*b=*a;*a=t;

7.8872. /*下列给定的程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序: */

#include <stdio.h>

#define N 20

void fun(int a[],int n)

{int i,j,t,p;

 for(j=0;j<n-1;j++)

/**********ERROR**********/

   {p=j

    for(i=j;i<n;i++)

       if(a[i]<a[p]) 

/**********ERROR**********/

          p=j;

    t=a[p]; a[p]=a[j]; a[j]=t; 

   }

}

int main()

{int a[N]={9,6,8,3,-1},i,m=5;

 printf("排序前的数据:");

 for(i=0;i<m;i++)  printf("%d",a[i]);

printf("\n");

 fun(a,m);

 printf("排序后的顺序:");

 for(i=0;i<m;i++) printf("%d",a[i]);

printf("\n");

return 0;

}

【改错1】p=j;

【改错2】p=i;

四、程序填空

1.8887. /*请补充main函数,该函数的功能是:从键盘输入两个字符串并分别保存在字符数组str1和str2中,

用字符串str2替换字符串str1前面的所有字符。注意:str2的长度不大于str1,否则需要重新输入。

例如,如果输入str1="abced",str2="fk",则输出"fkced"。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:*/

#include <stdlib.h>

#include<stdio.h>

#include <string.h>

int main()

{

     char str1[81],str2[81];

     char *p1=str1,*p2=str2;

     do

     {

        printf(" Input str1 \n");

        gets(str1);

        printf(" Input str2 \n");

        gets(str2);

/**********FILL**********/

     }while(1);

/**********FILL**********/

     while(2)

        *p1++=*p2++;

     printf(" Display str1 \n");

/**********FILL**********/

     puts(3);

return 0;

}

【空1】strlen(str1)<strlen(str2)

【空2】*p2

【空3】str1

2.8886. /*给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。

例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:*/

#include <stdio.h>

void fun(char *s )

{

     int i,j,n;

     for(i=0;s[i]!='\0';i++)

/**********FILL**********/

     if(s[i]>='0'   [1]  s[i]<='9')

    {

        n=0;

/**********FILL**********/

        while(s[i+1+n]!=[2)

            n++;

        for(j=i+n+1;j>i;j--)

/**********FILL**********/

        s[j+1]=   [3]    ;

        s[j+1]='*';

            i=i+1;

        }

}

int main()

{

    char s[60]="ba3a54cd23a";

    printf("\n the original string is: %s\n",s);

    fun(s);

    printf("\nthe result is: %s\n",s);

return 0;

}

【空1】&&

【空2】0

【空3】s[j]

3.9335. /*请补充函数fun,该函数的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖。注意:字符串的长度最长允许为79。

注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编若干表达式或语句。

试题程序: */

#include  <stdlib.h>

#include  <stdio.h>

#include  <string.h>

void fun(char s[],int n) 

{

 char a[80],*p;

 int i;

/**********FILL**********/

 p=1;  

 for(i=0;i<n;i++)  a[i]= '*';

 do

{

/**********FILL**********/

a[i]=2;

    i++;

/**********FILL**********/

 }while(3);

 a[i]=0;

 strcpy(s,a);

}

int main()

{

int n;char s[80];

printf("\nEnter a string: ");gets(s);

 printf("\nThe string:%s\n",s);

 printf("\nEnter n (number of*):");

 scanf("%d",&n);

 fun(s,n);

 printf("\nThe string after inster:%s\n",s);

return 0;

}

【空1】 p=s;

【空2】a[i]=*p++;

【空3】*p

4.8864. /*请补充main函数,该函数的功能是:从键盘输入若干字符放到一个字符数组中,当按回车键时结束输入,

最后输出这个字符数组中的所有字符。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:*/

#include <stdlib.h>

#include <stdio.h>

int main()

{

     int i=0;

     char s[81];

     char *p=s;

     printf(" Input a string \n");

     for(i=0;i<80;i++)

     {

        s[i]=getchar();

        if(s[i]=='\n')

/**********FILL**********/

            1;

     }

/**********FILL**********/

     s[i]=2;

     printf(" display the string \n");

     while(*p)

/**********FILL**********/

        putchar(3);

return 0;

}

【空1】break

【空2】0

【空3】*p++

5.8879. /*下面程序是实现两数的交换,如输入5  9,输出9  5。*/

#include<stdio.h>

void swap(int *p1, int *p2);

int main()

{  

int a,b;

    int *point1,*point2;

/**********FILL**********/

    scanf("%d %d",   [1]   );

    point1=&a;  point2=&b;

/**********FILL**********/

    swap(    [2]     );

printf("\n%d,%d\n",a,b);

return 0 ;

}

void swap(int  *p1, int  *p2)

{   int p;

    p=*p1;

/**********FILL**********/

    [3]     ;

    *p2=p;

}

【空1】&a,&b

【空2】&a,&b

【空3】*p1=*p2

注:加粗的为正确选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

殿君不是殿军

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

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

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

打赏作者

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

抵扣说明:

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

余额充值