给考二级C的网友:全国二级C语言教材(高等教育出版社)中

Code:
  1. 1./*教材p.97*/
  2. #include<stdio.h>
  3. main()
  4. {
  5. int*p,m,n;
  6. scanf("%d%d",&m,&n);
  7. if(m>n)
  8. p=&n;
  9. else
  10. p=&m;
  11. printf("%d/n",*p);
  12. }
  13. /*用指针指向两个变量,通过指针运算选出最小数*/
  14. **************************************************************************
  15. 2./*教材p.100*/
  16. #include<stdio.h>
  17. voidorder(int*a,int*b);
  18. main()
  19. {
  20. intm,n;
  21. order(&m,&n);
  22. printf("%d/n%d/n",m,n);
  23. }
  24. voidorder(int*a,int*b)
  25. {
  26. intx,y;
  27. scanf("%d%d",&x,&y);
  28. if(x<y)
  29. {
  30. *a=x;
  31. *b=y;
  32. }
  33. else
  34. {
  35. *a=y;
  36. *b=x;
  37. }
  38. }
  39. /*使调用函数中的第一个实参总是存放两个数中的较小的数,第二个存放较大的*/
  40. **************************************************************************
  41. 3./*教材p.101*/
  42. #include<stdio.h>
  43. int*max(int*);
  44. main()
  45. {
  46. intx,y;
  47. y=max(&x);
  48. printf("%d/n",y);
  49. }
  50. int*max(int*a)
  51. {
  52. intm,n;
  53. scanf("%d%d",&m,&n);
  54. if(m>n)
  55. *a=m;
  56. else
  57. *a=n;
  58. return*a;
  59. }
  60. /*输入两个数输出最大数*/
  61. **************************************************************************
  62. 4./*教材p.108*/
  63. #include<stdio.h>
  64. main()
  65. {
  66. inti,j,n=-1,x=0,y=0,a[30];
  67. for(i=0;i<=29;i++)
  68. {
  69. n+=2;
  70. a[i]=n;
  71. x++;
  72. if(x%10!=0)
  73. printf("%4d",a[i]);
  74. else
  75. {
  76. printf("%4d",a[i]);
  77. printf("/n");
  78. }
  79. }
  80. printf("/n");
  81. for(j=29;j>=-1;j--)
  82. {
  83. y++;
  84. if(y%10!=0)
  85. printf("%4d",a[j]);
  86. else
  87. {
  88. printf("%4d",a[j]);
  89. printf("/n");
  90. }
  91. }
  92. }
  93. /*给数组赋奇数,先每行10个正序输出,再每行10个逆序输出*/
  94. **************************************************************************
  95. 5./*教材p.112*/
  96. #include<stdio.h>
  97. int*sr(int*p)
  98. {
  99. inti=0;
  100. do
  101. {
  102. scanf("%d",p);
  103. i++;
  104. }
  105. while(*p>=0);
  106. returni;
  107. }
  108. main()
  109. {
  110. intn,a[100],j=0;
  111. j=sr(a);
  112. for(n=0;n<j;n++)
  113. printf("%4d",a[n]);
  114. }
  115. /*输入大于等于0的数,负数结束,并输出它们。*/
  116. **************************************************************************
  117. 6./*教材p.113*/
  118. #include<stdio.h>
  119. voidgb(char*p);
  120. main()
  121. {
  122. inti;
  123. chars[10];
  124. for(i=0;i<10;i++)
  125. s[i]=getchar();
  126. gb(s);
  127. }
  128. voidgb(char*p)
  129. {
  130. inti;
  131. for(i=4;i<10;i++)
  132. *(p+i)='*';
  133. for(i=0;i<10;i++)
  134. printf("%c",p[i]);
  135. printf("/n");
  136. }
  137. /*对有10个元素的字符型数组,从下标4开始,全部变为"*",其他不变.*/
  138. **************************************************************************
  139. 7./*教材p.117*/
  140. #include<stdio.h>
  141. #defineM8
  142. voiddx(int*);
  143. main()
  144. {
  145. inta[M]={10,20,30,40,50,60,70,80};
  146. dx(a);
  147. }
  148. voiddx(int*a)
  149. {
  150. inti,j,t,n;
  151. for(i=0;i<M-1;i++)/*处理好i和j初值与上界能使算法复杂度变小*/
  152. for(j=i+1;j<M;j++)
  153. if(a[i]<a[j])
  154. {
  155. t=a[i];
  156. a[i]=a[j];
  157. a[j]=t;
  158. }
  159. for(n=0;n<M;n++)
  160. printf("%d/n",a[n]);
  161. }
  162. /*逆序输出数组a*/
  163. /*此题应用冒泡排序,不能用首尾比较交换*/
  164. **************************************************************************
  165. 8./*教材p.118*/
  166. #include<stdio.h>
  167. #include<stdlib.h>
  168. #defineN50
  169. #defineM10
  170. voidtjgs(int*);
  171. main()
  172. {
  173. intstr[N],i;
  174. for(i=0;i<N;i++)
  175. str[i]=rand()%10;
  176. tjgs(str);
  177. }
  178. voidtjgs(int*str)
  179. {
  180. inti,k,j=0;
  181. for(k=0;k<M;k++)
  182. {
  183. for(i=0;i<N;i++)
  184. if(str[i]==k)
  185. j++;
  186. printf("%d:%d/n",k,j);
  187. j=0;/*j为记数的东西,所以当次记完后应重新赋值0,以便下次记数*/
  188. }
  189. }
  190. /*整形数组中的值在0至9范围内,统计每个整数个数*/
  191. **************************************************************************
  192. 9./*教材p.121*/
  193. #include<stdio.h>
  194. #defineN6
  195. int*px(int*);
  196. voidsc(int*,int);
  197. main()
  198. {
  199. intm=0,a[N]={5,7,4,2,8,6};
  200. m=px(a);
  201. sc(m,N);
  202. }
  203. int*px(int*a)
  204. {
  205. inti,k,t;
  206. for(k=0;k<N-1;k++)/*此处应正确给出k,i的初值及上界,才能使算法复杂度最小*/
  207. for(i=k+1;i<N;i++)
  208. if(a[k]>a[i])
  209. {
  210. t=a[k];
  211. a[k]=a[i];
  212. a[i]=t;
  213. }
  214. returna;
  215. }
  216. voidsc(inta[],intn)
  217. {
  218. inti;
  219. for(i=0;i<n;i++)
  220. printf("%4d",a[i]);
  221. printf("/n");
  222. }
  223. /*把数组中数由小到大排列*/
  224. **************************************************************************
  225. 10./*教材p.126*/
  226. #include<stdio.h>
  227. main()
  228. {
  229. inta[2][3],i,j;
  230. for(i=0;i<2;i++)
  231. for(j=0;j<3;j++)
  232. scanf("%d",&a[i][j]);
  233. for(i=0;i<2;i++)
  234. {
  235. for(j=0;j<3;j++)
  236. printf("%4d",a[i][j]);
  237. printf("/n");
  238. }
  239. }
  240. /*输出:123102030<CR>时
  241. 输出是否为:123
  242. 102030*/
  243. **************************************************************************
  244. 11./*教材p.132*/
  245. #include<stdio.h>
  246. #defineM7
  247. #defineN7
  248. main()
  249. {
  250. intm,n,a[M][N];
  251. for(m=0;m<M;m++)
  252. a[m][0]=1;
  253. for(n=0;n<N;n++)
  254. a[n][n]=1;
  255. for(m=2;m<M;m++)
  256. for(n=1;n<m;n++)
  257. a[m][n]=a[m-1][n-1]+a[m-1][n];
  258. for(m=0;m<M;m++)
  259. {
  260. for(n=0;n<=m;n++)
  261. printf("%4d",a[m][n]);
  262. printf("/n");
  263. }
  264. }
  265. /*打印出杨辉三角:
  266. 1
  267. 11
  268. 121
  269. 1331
  270. 14641
  271. 15101051
  272. 1615201561*/
  273. **************************************************************************
  274. 12./*教材p.133*/
  275. #include<stdio.h>
  276. #include<stdlib.h>
  277. #defineM10
  278. #defineN10
  279. main()
  280. {
  281. intm,n,t,k,a[M][N];
  282. for(m=0;m<M;m++)
  283. {
  284. for(n=0;n<N;n++)
  285. {
  286. a[m][n]=rand()%50;
  287. printf("%4d",a[m][n]);
  288. }
  289. printf("/n");
  290. }
  291. for(n=0;n<N;n++)
  292. {
  293. t=a[0][n];
  294. for(m=0;m<M;m++)
  295. if(a[m][n]<t)
  296. {
  297. t=a[m][n];
  298. k=m;
  299. }
  300. printf("min(%d):%d/n",t,k);
  301. }
  302. }
  303. /*找出方阵每列中最小元素,及所在行号*/
  304. **************************************************************************
  305. 13./*教材p.87*/
  306. #include<stdio.h>
  307. #include<ctype.h>
  308. inttj(int);
  309. main()
  310. {
  311. intx=0,y=0;
  312. y=tj(x);
  313. printf("y=%d/n",y);
  314. }
  315. inttj(inti)
  316. {
  317. charch;
  318. do
  319. {
  320. ch=getchar();
  321. switch(ch)
  322. {
  323. case'':i++;break;
  324. case'/n':i++;break;
  325. case'/t':i++;break;
  326. }
  327. }
  328. while(ch!='@');
  329. returni+1;
  330. }
  331. /*统计文章单词数,出现'@'时结束统计*/
  332. **************************************************************************
  333. 14./*教材p.149*/
  334. #include<stdio.h>
  335. #defineM1000
  336. intslength();
  337. main()
  338. {
  339. chara[M];
  340. intx=0;
  341. scanf("%s",a);
  342. x=slength(a);
  343. printf("%d/n",x);
  344. }
  345. intslength(char*s)
  346. {
  347. intm=0;
  348. while(1)/*使用while的永真循环,但return使循环结束.*/
  349. if(*(s+m)=='/0')
  350. returnm;
  351. elsem++;
  352. }
  353. /*利用编写的函数,使函数返回指针所指字符串长度*/
  354. /*注意:输入时别越界,越界系统并不包错,且照常统计,但如果再实现其他功能,则会影响结果。输入时空格是间隔符,使程序停止统计,且空格本身不被统计。*/
  355. **************************************************************************
  356. 15./*自己出的*/
  357. #include<stdio.h>
  358. main()
  359. {
  360. chara;
  361. while(a!='/n')
  362. {
  363. scanf("%c",&a);
  364. if(a>='A'&&a<='Z')
  365. printf("%c",a+32);
  366. else
  367. if(a>='a'&&a<='z')
  368. printf("%c",a-32);
  369. else
  370. if(a!='/n')/*如果此处不加这个条件,那么输出时总有"Error!"*/
  371. printf("Error!");
  372. else
  373. printf("/n");
  374. }
  375. }
  376. /*把文中的大小写字母相互转换,不是字母时输出错误提示*/
  377. **************************************************************************
  378. 16./*自己出的*/
  379. #include<stdio.h>
  380. #defineM100
  381. #defineN10
  382. main()
  383. {
  384. inti=0,k,m,t,x,y,a[M],b[N][N],c[N]={0},E=0,F=0,J=0;
  385. floatd[N]={0.0};
  386. for(k=1;k<1000;k++)
  387. {
  388. for(m=2;m<=k/2;m++)
  389. if(k%m==0)
  390. {
  391. t=0;
  392. break;
  393. }
  394. else
  395. t=1;
  396. if(t==0)
  397. ;
  398. else
  399. {
  400. if(i>=100)
  401. break;
  402. else
  403. a[i]=k;
  404. printf("a[%2d]=%3d/t",i++,k);
  405. }
  406. }
  407. printf("/n");
  408. for(i=0;i<M;i++)
  409. {
  410. printf("%d/t",a[i]);
  411. if((i+1)%10==0)
  412. printf("/n");
  413. }
  414. for(i=0;i<M;i++)
  415. {
  416. x=i/10;
  417. y=i%10;
  418. b[x][y]=a[i];
  419. }
  420. for(x=0;x<N;x++)
  421. {
  422. for(y=0;y<N;y++)
  423. c[x]+=b[x][y];
  424. d[x]=c[x]/N;
  425. printf("行和:c[%d]=%d/t行均数:d[%d]=%f/t",x,c[x],x,d[x]);
  426. }
  427. printf("/n");
  428. for(y=0;y<N;y++)
  429. {
  430. for(x=0;x<N;x++)
  431. c[y]+=b[x][y];
  432. d[y]=c[y]/N;
  433. printf("列和:c[%d]=%d/t列均数:d[%d]=%f/t",y,c[y],y,d[y]);
  434. }
  435. printf("/n");
  436. for(x=0;x<N;x++)
  437. E+=b[x][x];
  438. printf("左右对角线和:E=%d/n",E);
  439. for(x=0;x<N;x++)
  440. F+=b[x][(N-1)-x];
  441. printf("右左对角线和:F=%d/n/n",F);
  442. for(x=0;x<N;x++)
  443. for(y=0;y<N;y++)
  444. if(b[x][y]/100==3||(b[x][y]/10)%10==3||b[x][y]%10==3)
  445. J++;
  446. printf("含'3'的数字的个数:J=%d/n/n",J);
  447. }
  448. /*输出100个素数,然后按10*10矩阵输出,再输出行和、列和、行均数、列均数、对角线和;并统计含'3'的数字的个数*/
  449. /*素数定义:只能被一和本身整除的自然数*/
  450. **************************************************************************
  451. 17./*教材p.90题7.12*/
  452. #include<stdio.h>
  453. doublefun(double,int);
  454. main()
  455. {
  456. doublea,c;
  457. intb;
  458. scanf("%lf%d",&a,&b);
  459. c=fun(a,b);
  460. printf("(%f)%d=%f/n",a,b,c);
  461. }
  462. doublefun(doublex,inty)
  463. {
  464. inti;
  465. doublez=1.0;
  466. for(i=1;i<=y;i++)
  467. z*=x;
  468. returnz;
  469. }
  470. /*编一个函数求a的b次方*/
  471. **************************************************************************
  472. 18./*教材p.149*/
  473. #include<stdio.h>
  474. #defineM1000
  475. intslength(char*s);
  476. main()
  477. {
  478. intx;
  479. chara[M];
  480. scanf("%s",a);
  481. x=slength(a);
  482. printf("%d/n",x);
  483. }
  484. intslength(char*s)
  485. {
  486. intm=0;
  487. while(1)
  488. if(*(s+m)=='/0')
  489. returnm;
  490. else
  491. m++;
  492. }
  493. /*编写函数,使函数返回指针所指字符串长度。*/
  494. **************************************************************************
  495. 19./*教材p.149*/
  496. #include<stdio.h>
  497. #defineM1000
  498. voidscopy(char*s,char*t);
  499. main()
  500. {
  501. chara[M],b[M-1];
  502. scanf("%s",b);
  503. scopy(a,b);
  504. printf("%s/n",a);
  505. }
  506. voidscopy(char*s,char*t)
  507. {
  508. inti,n=0;
  509. while(t[n]!='/0')/*只要累计寻找或计数,那么就要用循环*/
  510. n++;
  511. for(i=0;i<n+1;i++)
  512. {
  513. s[i]=t[i];
  514. }
  515. }
  516. /*将指针t所指的字符串复制到指针s所指的存储空间中*/
  517. **************************************************************************
  518. 20./*教材p.150*/
  519. #include<stdio.h>
  520. #defineM1000
  521. intscomp(char*s1,char*s2);
  522. main()
  523. {
  524. chara[M],b[M];
  525. intx;
  526. scanf("%s%s",a,b);
  527. x=scomp(a,b);
  528. switch(x)
  529. {
  530. case1:printf("a>b/n");break;
  531. case0:printf("a=b/n");break;
  532. case-1:printf("a<b/n");break;
  533. }
  534. }
  535. intscomp(char*s1,char*s2)
  536. {
  537. inti,k,n=0,m=0;
  538. while(s1[n]!='/0')/*因为是计数所以用循环*/
  539. n++;
  540. while(s2[m]!='/0')
  541. m++;
  542. if(m>=n)
  543. k=m;
  544. else
  545. k=n;
  546. for(i=0;i<k;i++)
  547. {
  548. if(s1[i]>s2[i])
  549. return1;
  550. else
  551. if(s1[i]<s2[i])
  552. return-1;
  553. else
  554. continue;
  555. }
  556. return0;
  557. }
  558. /*编写函数,进行字符串比较。*/
  559. **************************************************************************
  560. 21./*教材p.150*/
  561. #include<stdio.h>
  562. #defineM40
  563. #defineN61
  564. main()
  565. {
  566. chara[M][N];
  567. inti,j,m=0,x=1;
  568. for(i=0;i<M;i++)
  569. {
  570. for(j=0;j<N-1;j++)/*此for循环内部不可以为每个字符串记字符的个数,因为每个字符串的个数都不一样.*/
  571. {
  572. scanf("%c",&a[i][j]);
  573. if(a[i][j]=='/n'||a[i][j]==''||a[i][j]=='/t')
  574. {
  575. a[i][j]='/n';/*把空格与制表符变成切断符*/
  576. break;
  577. }
  578. }
  579. if(a[i][0]=='/n')
  580. break;
  581. m++;
  582. }
  583. for(i=0;i<m;i++)
  584. {
  585. printf("%d:",x++);
  586. for(j=0;a[i][j]!='/n';j++)
  587. printf("%c",a[i][j]);
  588. printf("/n");
  589. }
  590. }
  591. /*从终端读入若干文本行(不超过40行,每行不超过60个字符),
  592. 遇空行结束输入,然后将此文本左侧加上行号后输出*/
  593. /*当连续出现换行符,空格,制表符时,则后面输入的不起作用*/
  594. **************************************************************************
  595. 22./*教材p.150*/
  596. #include<stdio.h>
  597. #defineM40
  598. #defineN61
  599. main()
  600. {
  601. chara[M][N];
  602. inti,j,m=0,n=0,x=1;
  603. for(i=0;i<M;i++)
  604. {
  605. for(j=0;j<N-1;j++)
  606. {
  607. //scanf("%c",&a[i][j]);
  608. a[i][j]=getchar();
  609. //n++;
  610. //这里n没有作用,字符串长度都不一样的
  611. //if(a[i][j]=='/n'||a[i][j]==''||a[i][j]=='/t')
  612. //字符串可以包含空字符,而且gets认为空格是字符,而%s认为空格是切断符。
  613. if(a[i][j]=='/n')
  614. break;
  615. }
  616. if(a[i][0]=='/n')
  617. break;
  618. m++;
  619. //必须换成串结束符,否则编译后结果错误
  620. a[i][j]='/0';
  621. }
  622. for(i=0;i<m;i++)/*应除去最后一行即(i<m-1),因为最后一行是空行*/
  623. {
  624. printf("%d:",x++);
  625. //for(j=0;j<n-1;j++)
  626. //printf("%c",a[i][j]);
  627. printf("%s/n",a[i]);
  628. }
  629. }
  630. /*从终端读入若干文本行(不超过40行,每行不超过60个字符),
  631. 遇空行结束输入,然后将此文本左侧加上行号后输出*/
  632. /*这是朋友在我的错误的基础上改的,且把空格与制表符当成字符*/
  633. **************************************************************************
  634. 23./*教材p.151*/
  635. #include<stdio.h>
  636. #include<string.h>
  637. #defineM100
  638. main()
  639. {
  640. chara[M][M],*t;
  641. inti,m=0;
  642. for(i=0;i<M;i++)
  643. {
  644. scanf("%s",a[i]);
  645. if(*a[i]=='@')
  646. break;
  647. m++;
  648. }
  649. t=a[0];
  650. for(i=1;i<m;i++)
  651. {
  652. if(strcmp(t,a[i])>=0)/*因为是终于最小的比较,所以是t而不是a[0]*/
  653. t=a[i];
  654. }
  655. printf("TheminStringis:%s/n",t);
  656. }
  657. /*从输入的若干字符串(不超过100个)中找出最小的串进行输出,当字符串为@时结束输入*/
  658. **************************************************************************
  659. 24./*教材p.151*/
  660. #include<stdio.h>
  661. #include<string.h>
  662. #defineM100
  663. main()
  664. {
  665. chara[M][M],*t;
  666. inti,j,m=0;
  667. for(i=0;i<M;i++)
  668. {
  669. for(j=0;j<M;j++)
  670. {
  671. a[i][j]=getchar();/*这样一来空格,制表符都是字符了,而不是间断符*/
  672. if(a[i][j]=='/n'||a[i][j]==''||a[i][j]=='/t')/*但这一句使空格,制表符又是间断符了*/
  673. break;
  674. }
  675. if(a[i][0]=='/n')
  676. break;
  677. m++;
  678. a[i][j]='/0';
  679. }
  680. t=a[0];
  681. for(i=1;i<m;i++)
  682. {
  683. if(strcmp(t,a[i])>=0)/*因为是终于最小的比较,所以是t而不是a[0]*/
  684. t=a[i];
  685. }
  686. printf("TheminStringis:%s/n",t);
  687. }
  688. /*从输入的若干字符串(不超过100个)中找出最小的串进行输出。*/
  689. /*受2009-06-20-004(2).c中的语句启发,自己在2009-07-07-001.c的基础上改编的。*/
  690. /*与2009-07-07-001.c除了程序语句有区别外,结束符也有区别:*/
  691. /*这个不用"@"字符串结束,而用回车结束*/
  692. **************************************************************************
  693. 25./*自己出的*/
  694. #include<stdio.h>
  695. main()
  696. {
  697. inti,j,k;
  698. for(k=0;k<4;k++)
  699. {
  700. for(i=0;i<k;i++)
  701. printf("");
  702. for(j=0;j<7-2*k;j++)/*注意2与k相乘时之间应加星号*/
  703. printf("*");
  704. printf("/n");
  705. }
  706. }
  707. /*打印倒三角*/
  708. **************************************************************************
  709. 26./*教材p.160*/
  710. #include<stdio.h>
  711. intfun(intm)
  712. {
  713. if(m==1)
  714. return1;
  715. else
  716. returnm*fun(m-1);
  717. }
  718. main()
  719. {
  720. intm,s;
  721. scanf("%d",&m);
  722. if(m<0)
  723. printf("Error!/n");
  724. else
  725. if(m==0)
  726. printf("(%d!)=1/n",m);
  727. else
  728. {
  729. s=fun(m);
  730. printf("(%d!)=%d/n",m,s);
  731. }
  732. }
  733. /*利用函数的递归调用,求一个数的阶乘*/
  734. **************************************************************************
  735. 27./*教材p.162*/
  736. #include<stdio.h>
  737. #include<math.h>
  738. doublefun(doublea,doublex0)
  739. {
  740. doublex1;
  741. x1=(x0+a/x0)/2.0;
  742. while(fabs(x1-x0)>1e-6)
  743. returnfun(a,x1);/*若此处不加return则下面returnx1返回的始终是x1的第一次的值。而不是最终求的x1的值。最终求的x1的值,确实求出来了在临时内存中,但没被返回。*/
  744. returnx1;
  745. }
  746. main()
  747. {
  748. doublea,x,x0=1.0;
  749. scanf("%lf",&a);
  750. if(a<0)
  751. printf("Error!/n");
  752. else
  753. x=fun(a,x0);
  754. printf("%lf/n",x);
  755. }
  756. /*根据此求平方根的迭代公式:x1=((x0+(a/x0))/2)求某数a的平方根*/
  757. **************************************************************************
  758. 28./*教材p.162*/
  759. #include<stdio.h>
  760. #include<math.h>
  761. doublefun(doublea,doublex0)
  762. {
  763. doublex1;
  764. x1=(x0+a/x0)/2.0;
  765. if(fabs(x1-x0)>1e-6)
  766. returnfun(a,x1);/*若此处不加return则下面returnx1返回的始终是x1的第一次的值。而不是最终求的x1的值。最终求的x1的值,确实求出来了在临时内存中,但没被返回。*/
  767. else
  768. returnx1;
  769. }
  770. main()
  771. {
  772. doublea,x,x0=1.0;
  773. scanf("%lf",&a);
  774. if(a<0)
  775. printf("Error!/n");
  776. else
  777. x=fun(a,x0);
  778. printf("%lf/n",x);
  779. }
  780. /*根据此求平方根的迭代公式:x1=((x0+(a/x0))/2)求某数a的平方根*/
  781. /*教材的原答案*/
  782. **************************************************************************

以上程序均为自己写的,属于原创!只是题目是书上的题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值