简单c/c++笔试题

  
 
一、#include “filename.h”和#include 的区别
 
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件
 
#include 是指编译器将从标准库目录中开始查找此文件
 
 
 
二、头文件的作用
 
加强安全检测
 
通过头文件可能方便地调用库功能,而不必关心其实现方式
 
 
 
三、* , &修饰符的位置
 
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名
 
 
 
四、if语句
 
不要将布尔变量与任何值进行比较,那会很容易出错的。
 
整形变量必须要有类型相同的值进行比较
 
浮点变量最好少比点,就算要比也要有值进行限制
 
指针变量要和NULL进行比较,不要和布尔型和整形比较
 
 
 
五、const和#define的比较
 
const有数据类型,#define没有数据类型
 
个别编译器中const可以进行调试,#define不可以进行调试
 
在类中定义常量有两种方式
 
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值;
 
2、 用枚举代替const常量。
 
 
 
六、C++函数中值的传递方式
 
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference)
 
void fun(char c) //pass by value
 
void fun(char *str) //pass by pointer
 
void fun(char &str) //pass by reference
 
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构
 
函数的类型不能省略,就算没有也要加个void
 
 
 
七、函数体中的指针或引用常量不能被返回
 
Char *func(void)
 
{
 
char str[]=”Hello Word”;
 
//这个是不能被返回的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉
 
return str;
 
}
 
函数体内的指针变量并不会随着函数的消亡而自动释放
 
 
 
八、一个内存拷贝函数的实现体
 
void *memcpy(void *pvTo,const void *pvFrom,size_t size)
 
{
 
assert((pvTo!=NULL)&&(pvFrom!=NULL));
 
byte *pbTo=(byte*)pvTo; //防止地址被改变
 
byte *pbFrom=(byte*)pvFrom;
 
while (size-- >0)
 
pbTo++ = pbForm++;
 
return pvTo;
 
}
 
 
九、内存的分配方式
 
分配方式有三种,请记住,说不定那天去面试的时候就会有人问你这问题
 
1、 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。
 
2、 栈上分配,函数内的局部变量就是从这分配的,但分配的内存容易有限。
 
3、 堆上分配,也称动态分配,如我们用new,malloc分配内存,用delete,free来释放的内存。
十、内存分配的注意事项
 
用new或malloc分配内存时,必须要对此指针赋初值。
 
用delete 或free释放内存后,必须要将指针指向NULL
 
不能修改指向常量的指针数据
 
十一、内容复制与比较
 
//数组……
 
char a[]=”Hello Word!”;
 
char b[10];
 
strcpy(b,a);
 
if (strcmp(a,b)==0)
 
{}
 
//指针……
 
char a[]=”Hello Word!”;
 
char *p;
 
p=new char[strlen(a)+1];
 
strcpy(p,a);
 
if (strcmp(p,a)==0)
 
{}
 
十二、sizeof的问题
 
记住一点,C++无法知道指针所指对象的大小,指针的大小永远为4字节
 
char a[]=”Hello World!”
 
char *p=a;
 
count<
count<
而且,在函数中,数组参数退化为指针,所以下面的内容永远输出为4
 
void fun(char a[1000])
 
{
 
count<
}
 
十三、关于指针
 
1、 指针创建时必须被初始化
 
2、 指针在free 或delete后必须置为NULL
 
3、 指针的长度都为4字节
 
4、释放内存时,如果是数组指针,必须要释放掉所有的内存,如
 
char *p=new char[100];
 
strcpy(p,”Hello World”);
 
delete []p; //注意前面的[]号
 
p=NULL;
 
5、数组指针的内容不能超过数组指针的最大容易。
 
如:
 
char *p=new char[5];
 
strcpy(p,”Hello World”); //报错 目标容易不够大
 
delete []p; //注意前面的[]号
 
p=NULL;
 
十四、关于malloc/free 和new /delete
 
l malloc/free 是C/C+的内存分配符,new /delete是C++的内存分配符。
 
l 注意:malloc/free是库函数,new/delete是运算符
 
l malloc/free不能执行构造函数与析构函数,而new/delete可以
 
l new/delete不能在C上运行,所以malloc/free不能被淘汰
 
l 两者都必须要成对使用
 
l C++中可以使用_set_new_hander函数来定义内存分配异常的处理
 
十五、C++的特性
 
C++新增加有重载(overload),内联(inline),Const,Virtual四种机制
 
重载和内联:即可用于全局函数,也可用于类的成员函数;
 
Const和Virtual:只可用于类的成员函数;
 
重载:在同一类中,函数名相同的函数。由不同的参数决定调用那个函数。函数可要不可要Virtual关键字。和全局函数同名的函数不叫重载。如果在类中调用同名的全局函数,必须用全局引用符号::引用。
 
覆盖是指派生类函数覆盖基类函数
 
函数名相同;
 
参数相同;
 
基类函数必须有Virtual关键字;
 
不同的范围(派生类和基类)。
 
隐藏是指派生类屏蔽了基类的同名函数相同
 
1、 函数名相同,但参数不同,此时不论基类有无Virtual关键字,基类函数将被隐藏。
 
2、 函数名相同,参数也相同,但基类无Virtual关键字(有就是覆盖),基类函数将被隐藏。
 
内联:inline关键字必须与定义体放在一起,而不是单单放在声明中。
 
Const:const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
 
1、 参数做输入用的指针型参数,加上const可防止被意外改动。
 
2、 按值引用的用户类型做输入参数时,最好将按值传递的改为引用传递,并加上const关键字,目的是为了提高效率。数据类型为内部类型的就没必要做这件事情;如:
 
将void Func(A a) 改为void Func(const A &a)。
 
而void func(int a)就没必要改成void func(const int &a);
 
3、 给返回值为指针类型的函数加上const,会使函数返回值不能被修改,赋给的变量也只能是const型变量。如:函数const char*GetString(void); char *str=GetString()将会出错。而const char *str=GetString()将是正确的。
 
4、 Const成员函数是指此函数体内只能调用Const成员变量,提高程序的键壮性。如声明函数 int GetCount(void) const;此函数体内就只能调用Const成员变量。
 
Virtual:虚函数:派生类可以覆盖掉的函数,纯虚函数:只是个空函数,没有函数实现体;
 
十六、extern“C”有什么作用?
 
Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。
 
Extern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即可。
 
十七、构造函数与析构函数
 
派生类的构造函数应在初始化表里调用基类的构造函数;
 
派生类和基类的析构函数应加Virtual关键字。
 
不要小看构造函数和析构函数,其实编起来还是不容易。
 
#include
 
class Base
 
{
 
public:
 
virtual ~Base() { cout<< "~Base" << endl ; }
 
};
 
class Derived : public Base
 
{
 
public:
 
virtual ~Derived() { cout<< "~Derived" << endl ; }
 
};
 
void main(void)
 
{
 
Base * pB = new Derived; // upcast
 
delete pB;
 
}
 
输出结果为:
 
~Derived
 
~Base
 
如果析构函数不为虚,那么输出结果为
 
~Base
 
十八、#IFNDEF/#DEFINE/#ENDIF有什么作用
 
仿止该头文件被重复引用
 
 
转http://bbs.csai.cn/bbs/view.asp?Id={8DB2582C-97E1-428A-AD9C-358BCD02C506
 
 十九. 下列哪两个是等同的

int b;

A const int* a = &b;

B const* int a = &b;

C const int* const a = &b;

D int const* const a = &b; 



二十  内联函数在编译时是否做参数类型检查


二十一.三个float:a,b,c
问值
(a+b)+c==(b+a)+c
(a+b)+c==(a+c)+b
22把一个链表反向填空

23设计一个重采样系统,说明如何anti-alias 

24 某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统(
300M的CPU,50M的SDRAM)中运行,还需要优化吗?

25. 下面哪种排序法对12354最快
a quick sort
b.buble sort
c.merge sort

26. 哪种结构,平均来讲,获取一个值最快
a. binary tree
b. hash table
c. stack 


27 请问C++的类和C里面的struct有什么区别? 

28 请讲一讲析构函数和虚函数的用法和作用? 

29 全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的? 


30 一些寄存器的题目,主要是寻址和内存管理等一些知识。 

31 8086是多少尉的系统?在数据总线上是怎么实现的? 

32 多态。overload 和 override的区别。


<<Sony笔试题>>
33.完成下列程序

*

*.*.

*..*..*..

*...*...*...*...

*....*....*....*....*....

*.....*.....*.....*.....*.....*.....

*......*......*......*......*......*......*......

*.......*.......*.......*.......*.......*.......*.......*.......

#include <stdio.h>

#define N 8

int main()

{

  int i;

  int j;

  int k;

  ---------------------------------------------------------

  |                                     |

  |                                     |

  |                                     |

  ---------------------------------------------------------

  return 0;



34 完成程序,实现对数组的降序排序

#include <stdio.h>



void sort(              );



int main()

{

  int array[]={45,56,76,234,1,34,23,2,3}; //数字任//意给出

  sort(                 );

  return 0;

}



void sort(                  )

{

 ____________________________________

 |                                   |

 |                                   |

 |-----------------------------------------------------|

}

35费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方
法,但要说明你选择的理由。

#include <stdio.h>

int Pheponatch(int);



int main()

{

  printf("The 10th is %d",Pheponatch(10));

  return 0;

}



int Pheponatch(int N)

{

--------------------------------

|                     |

|                     |

--------------------------------

}

36下列程序运行时会崩溃,请找出错误并改正,并且说明原因。

#include <stdio.h>

#include <malloc.h>



typedef struct{

  TNode* left;

  TNode* right;

  int value;

} TNode;



TNode* root=NULL;



void append(int N);



int main()

{

  append(63);

  append(45);

  append(32);

  append(77);

  append(96);

  append(21);

  append(17); // Again, 数字任意给出

}



void append(int N)

{

TNode* NewNode=(TNode *)malloc(sizeof(TNode));

NewNode->value=N;



if(root==NULL)

{

  root=NewNode;

  return;

}

else

{

  TNode* temp;

  temp=root;

  while((N>=temp.value && temp.left!=NULL) || (N<temp. value && temp. right!=
NULL

))

  {

     while(N>=temp.value && temp.left!=NULL)

                temp=temp.left;

     while(N<temp.value && temp.right!=NULL)

                temp=temp.right;

  }

  if(N>=temp.value)

         temp.left=NewNode;

  else

         temp.right=NewNode;

  return;        

}




37 A class B network on the internet has a subnet mask of 255.255.240.0, what
is the maximum number of hosts per subnet       .

a. 240                  b. 255                  c. 4094                d. 6553


38 What is the difference: between o(log n) and o(log n^2), where both logari
thems have base 2       .

a. o(log n^2) is bigger                  b. o(log n) is bigger

c. no difference


39. For a class what would happen if we call a class’s constructor from with
the same class’s constructor       .

a. compilation error             b. linking error

c. stack overflow                          d. none of the above

40. “new” in c++ is a:       .

a. library function like malloc in c

b. key word                                    c. operator

d. none of the above

41. Which of the following information is not contained in an inode       .

a. file owner                                   b. file size

c. file name                                     d. disk address

42. What’s the number of comparisons in the worst case to merge two sorted li
sts containing n elements each       .

a. 2n           b.2n-1                 c.2n+1                d.2n-2

43. Time complexity of n algorithm T(n), where n is the input size ,is T(n)=T(
n-1)+1/n if n>1 otherwise 1 the order of this algorithm is       .

a. log (n)   b. n                     c. n^2                  d. n^n

44. The number of 1’s in the binary representation of 3*4096+ 15*256+5*16+3 a
re       .

a. 8                      b. 9                      c. 10           d. 12


45.设计函数 int atoi(char *s)。

46.int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 输出是多少?

47.解释局部变量、全局变量和静态变量的含义。

48.解释堆和栈的区别。

49.论述含参数的宏与函数的优缺点。 


50 以下三条输出语句分别输出什么?[C易]
char str1[]       = "abc";
char str2[]       = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5  = "abc";
const char* str6  = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?

51. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A?[C++中等]
答:
a. class B : public A { ……} // B公有继承自A,可以是间接继承的
b. class B { operator A( ); } // B实现了隐式转化为A的转化
c. class A { A( const B& ); } // A实现了non-explicit的参数为B(可以有其他带默认
值的参数)构造函数
d. A& operator= ( const A& ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉
强算一个

52. 以下代码中的两个sizeof用法有问题吗?[C易]
void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母
{
   for( size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )
       if( 'a'<=str && str<='z' )
           str -= ('a'-'A' );
}
char str[] = "aBcDe";
cout << "str字符长度为: " << sizeof(str)/sizeof(str[0]) << endl;
UpperCase( str );
cout << str << endl;

53. 以下代码有什么问题?[C难]
void char2Hex( char c ) // 将字符以16进制表示
{
   char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
   char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
   cout << ch << cl << ' ';
}
char str[] = "I love 中国";
for( size_t i=0; i<strlen(str); ++i )
   char2Hex( str );
cout << endl; 

54 以下代码有什么问题?[C++易]
struct Test
{
   Test( int ) {}
   Test() {}
   void fun() {}
};
void main( void )
{
   Test a(1);
   a.fun();
   Test b();
   b.fun();
}

55. 以下代码有什么问题?[C++易]
cout << (true?1:"1") << endl;

    以下代码能够编译通过吗,为什么?[C++易]
unsigned int const size1 = 2;
char str1[ size1 ];
unsigned int temp = 0;
cin >> temp;
unsigned int const size2 = temp;
char str2[ size2 ];

56. 以下代码中的输出语句输出0吗,为什么?[C++易]
struct CLS
{
   int m_i;
   CLS( int i ) : m_i(i) {}
   CLS()
   {
       CLS(0);
   }
};
CLS obj;
cout << obj.m_i << endl;

57. C++中的空类,默认产生哪些类成员函数?[C++易]
答:
class Empty
{
public:
   Empty();                          // 缺省构造函数
   Empty( const Empty& );            // 拷贝构造函数
   ~Empty();                         // 析构函数
   Empty& operator=( const Empty& ); // 赋值运算符
   Empty* operator&();               // 取址运算符
   const Empty* operator&() const;   // 取址运算符 const
};

58 以下两条输出语句分别输出什么?[C++难]
float a = 1.0f;
cout << (int)a << endl;
cout << (int&)a << endl;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么?
float b = 0.0f;
cout << (int)b << endl;
cout << (int&)b << endl;
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?


59. 以下反向遍历array数组的方法有什么错误?[STL易]
vector array;
array.push_back( 1 );
array.push_back( 2 );
array.push_back( 3 );
for( vector::size_type i=array.size()-1; i>=0; --i ) // 反向遍历array数组
{
   cout << array << endl;
}

60. 以下代码有什么问题?[STL易]
typedef vector IntArray;
IntArray array;
array.push_back( 1 );
array.push_back( 2 );
array.push_back( 2 );
array.push_back( 3 );
// 删除array数组中所有的2
for( IntArray::iterator itor=array.begin(); itor!=array.end(); ++itor )
{
   if( 2 == *itor ) array.erase( itor );
}

61. 写一个函数,完成内存之间的拷贝。[考虑问题是否全面]
答:
void* mymemcpy( void *dest, const void *src, size_t count )
{
   char* pdest = static_cast<char*>( dest );
   const char* psrc = static_cast<const char*>( src );
   if( pdest>psrc && pdest<psrc+cout ) 能考虑到这种情况就行了
   {
       for( size_t i=count-1; i!=-1; --i )
               pdest = psrc;
   }
   else
   {
       for( size_t i=0; i<count; ++i )
           pdest = psrc;
   }
   return dest;
}
int main( void )
{
   char str[] = "0123456789";
   mymemcpy( str+1, str+0, 9 );
   cout << str << endl;

   system( "Pause" );
   return 0;



62 线程与进程的区别

63:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?

64:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?


65:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?

66:请问C++的类和C里面的struct有什么区别?

67:请讲一讲析构函数和虚函数的用法和作用?

68:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?


69:一些寄存器的题目,主要是寻址和内存管理等一些知识。
70:8086是多少位的系统?在数据总线上是怎么实现的?

<<IBM>>
71.怎样用最快的方法判断链表是否有环?

72.c++中引用和指针有什么不同?指针加上什么限制等于引用?

73.做的项目,遇到的困难,怎样解决?

74.在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么
方法来区分那个开关控制那一盏灯.

75.有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分
钟的时间.

76.一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自
己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只
有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄.请问三个女儿的年
龄分别是多少?为什么?

77.操作符重载
class CMyObject:pulic CObject
{
Public:
CMyObject();
CMyObject &operator=(const CMyObject &my);
private:
CString strName;
int nId:
};
请重载赋值操作符


78.链表
Struct structList
{
int value;
structList *pHead;
}
Struct LinkedList *pMyList;
请编写删除链表的头、尾和第n个节点的程序


79.用Socket API制作一个聊天程序,通讯协议使用tcp/ip。要求有简单界面即可,支持多
人聊天。



80.如果有过工作经验,请说明在先前公司的工作以及离职原因(如无,请说明毕业后的个
人展望)


*************************************************************************** 
81 对于C++中类(class) 与结构(struct)的描述正确的为:
 A,类中的成员默认是private的,当是可以声明为public,private 和protected,结构中定
义的成员默认的都是public;
 B,结构中不允许定义成员函数,当是类中可以定义成员函数;
 C,结构实例使用malloc() 动态创建,类对象使用new 操作符动态分配内存;
 D,结构和类对象都必须使用new 创建;
 E,结构中不可以定义虚函数,当是类中可以定义虚函数.
 F,结构不可以存在继承关系,当是类可以存在继承关系.
答:A,D,F
***************************************************************************


***************************************************************************
82,两个互相独立的类:ClassA 和 ClassB,都各自定义了非景泰的公有成员函数 PublicFu
nc() 和非静态的私有成员函数 PrivateFunc();
  现在要在ClassA 中增加定义一个成员函数ClassA::AdditionalPunction(ClassA a,Cl
assB b);则可以在AdditionalPunction(ClassA x,ClassB y)的实现部分(函数功能体内部
)
   出现的合法的表达是最全的是:
   A,x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();
   B,x.PrivateFunc();x.PublicFunc();y.PublicFunc();
   C,x.PrivateFunc();y.PrivateFunc();y.PublicFunc();
   D,x.PublicFunc();y.PublicFunc();
答:B
***************************************************************************

***************************************************************************
83C++程序下列说法正确的有:
 A,对调用的虚函数和模板类都进行迟后编译.
 B,基类与子类中函数如果要构成虚函数,除了要求在基类中用virtual 声名,而且必须名
字相同且参数类型相同返回类型相同
 C,重载的类成员函数都必须要:或者返回类型不同,或者参数数目不同,或者参数序列的类
型不同.
 D,静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,但是析
构函数可以是虚函数.
答:A
 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 把一个链表反向,递归,非递归都写一遍。 1.试编写3个函数实现   (1)建立一个双向链表   (2)插入一个节点   (3)删除一个节点 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack 6.一个二叉树的三种遍历方法的输出结果 7.链表按升序打印每打印完一个节点就将该节点从链表中删除 8.选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用o(n)时间来做。 9. 用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。    10.给两个变量,如何找出一个带环单链表中是什么地方出现环的? 11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是什么? 任选一门语言,当场定义二叉排序树数据结构,写出两个函数:初始化,删除一个节点,20分钟 13. 递归的折半查找算法[不限语言] 14. 解释一下什么是B+树,如何实现B+树的查找和插入.(用图示) 15.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 13.排序方法比较 (intel) 排序方法 平均时间 最坏时间 辅助存储 直接插入排序 O(N2) O(N2) O(1) 起泡排序 O(N2) O(N2) O(1) 快速排序 O(Nlog2N) O(N2) O(Nlog2N) 简单选择排序 O(N2) O(N2) O(1) 堆排序 O(Nlog2N) O(Nlog2N) O(1) 归并排序 O(Nlog2N) O(Nlog2N) O(n) 基数排序 O(d(n+radix)) O(d(n+radix)) O(radix) 17.一个链表的操作,注意代码的健壮和安全性。要求: (1)增加一个元素; (2)获得头元素; (3)弹出头元素(获得值并删除)。 18.内排序算法 19.折半查找的复杂度,证明 20.sizeof()和strlen()的使用. 21.顺序存储结构的优点,散列法的思想是什么? 22.汉罗塔算法,不能递归... 23.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ; (1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) (2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序。 (3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序,这次要求用递归方法进行。 ( Autodesk) 24.编最优化Bubble(int *pIntArray,int L),要求:交换元素不能用临时变量,如果有序需要最优。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值