PTA-武汉理工大学C理论课学习及答案一


第一次在CSDN上写博客(markdown用的不好,排版可能不好看),只是想将这篇文章作为一个学习笔记和实验,分享下。如果有哪里说错了,欢迎指出。

客观题

运算符和表达式

判断

1-1 假设k是整型变量,计算表达式1/k 后结果的数据类型是整型。
T

小数部分会直接被砍掉,可以理解为数学里的取整函数。如 1/3 = 0


1-2 表达式(x == 0)与表达式(!x)等价。
T

结合if()函数理解,括号内的判定条件


1-3 表达式 (3<x<5) 的值恒为1。
T

解析:根据C语言运算符顺序,从左向右。
第一步,计算 3 < x 结果为 1 或者 0;
再将 1 或 0 与 5 比较。易知结果恒为1;


1-4 字符‘\0’的ASCII码值是0。
T

1-5 C 语言的标识符由字母、数字和其他任意字符组成。
F

百度:C 语言的标识符


1-6 若变量定义为double x;,则x % 2是符合C语言语法的表达式。
F

1-7 若变量定义为int x, y; ,则x + y = 22是符合C语言语法的表达式。
F

1-8 是关系运算符,用于比较两个操作数是否相等;而 = 是赋值运算符,表示对变量赋值。
T

1-9 C程序中,用一对大括号{}括起来的多条语句称为复合语句,复合语句在语法上被认为是一条语句。
T

尤其注意再循环语句中的大括号范围。强烈建议对算法结构不是很清楚的同学再写循环语句时都写大括号,框明范围 。


1-10 C语言中,数字字符’1’的值(ASCII码)就是数字1。
F

在以整形表示的方式下为49;


1-11 C语言中,大写字母’M’的ASCII码值比小写字母 'm’的ASCII码值大。
F

1-12 以下C语言表达式的值为“真”。
'D' - 'A' == 'd' - 'a'
T

1-13 表达式 !x 等价于x != 1。
F

等价于`(x == 0)

1-14 s(s-a)(s-b)(s-c) 是合法的C语言表达式。
F

1-15 表达式 !!6的值是6。
F

值为 1 。C语言运算符顺序


1-16 若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为 2 31 − 1 2^{31}-1 2311
T

4个字节,每字节8位,一共32位。还有一个符号位。


1-17 表达式 (z=0, (x=2)||(z=1),z) 的值是1。
F

值为 0 ;C语言逗号运算符(,)


1-18 与float型数据相比,double型数据的精度高,取值范围大。
T

1-19 语句printf("%.2f",1.0/3);输出为0.33。
T

选择

2-1 若有:double x,y,a,b; , 与代数式(xy)/(ab)不等价的C语言表达式是( )

A.xy/ab
B.xy/a/b
C.x
y/(ab)
D.x/(a
b)*y
A

2-2 表达式:(int)((double)7/2)-7%2的值是( )。

A.0
B.2
C.3
D.4
B

2-3 设int x=25,a=1,b=10;,则条件表达式x>2?a+10:b的值是( ) 。

A.1
B.10
C.11
D.25
C

C语言条件运算符(?:)


2-4 对于数学表达式 2 x + ( a + b ) ÷ s i n 2 x 2x+(a+b)÷sin^2x 2x+(a+b)÷sin2x,对应的C表达式是( )。

A.2x+(a+b)/sin(x)*sin(x)
B.2*x+(a+b)/sin(x)^2
C.2*x+a+b/(sin(x)*sin(x))
D.2*x+(a+b)/sin(x)/sin(x)
D

2-5 C 语言程序中可以对程序进行注释,注释部分必须用什么符号括起来?

A.{ 和}
B.[和 ]
C.*/ 和 /*
D./* 和 */
D

2-6 逻辑运算符两侧运算对象的数据类型( )。

A.只能是 0 或 1
B.只能是 0 或非 0 正数
C.只能是整型或字符型的数据
D.可以是任何类型的数据
D

2-7 以下标识符中,不合法的是( )。

A.4d
B._8_d
C.Int
D.key
A

解析:标识符不能以数字开头,另外C语言区分大小写,C项 Int 与关键字 int 不同


2-8 若有char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。

A.float
B.char
C.double
D.int
C

在同一个表达式中,C语言数据类型double>float>int>char,即这些数据类型都有时,自动转换为优先级大的数据类型。C语言数据类型转换


2-9 在C语言中,要求运算数必须是整型的运算符是( )。

A.%
B./
C.<
D.!
A

2-10 表达式( )的值是0。

A.3/5
B.3<5
C.3%5
D.3/5.0
A

2-11 已知字母’A’的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch=‘A’+‘7’-‘3’;后,ch的ASCII值为( )。

A.68
B.‘E’
C.‘D’
D.69
D

解析:题目所问是ch的ASCII值,对应的是'A'的值65,加上字符7与字符3的差值4,结果是69。


2-12 如果变量 x、y 已经正确定义,下列哪个选项的语句不能正确将x、y的值进行交换?

A.t=x, x=y; y=t;
B.x=x+y, y=x-y, x=x-y;
C.x=t, t=y, y=x;
D.t=y, y=x, x=t;
C

2-13 若int w=4,x=3,y=2,z=1;,则条件表达w>x?w:y>z?y:z的值是( ) 。

A.4
B.3
C.2
D.1
A

解析:转换有

int p; //将要被赋值的变量
if(w > x){
	p = w;
}
else{
	if(y > z){
	p = y;
	}
	else{
	p = z;
	}
}

2-14 设 int a=2, b=0, c=-1;,则表达式 a < b || b < c && b 的值是( )

A.-1
B.0
C.1
D.2
B

解析:从左至右耐心计算


2-15 设:int a=4, b=3, c=2, d=1, m=1, n=3;,执行 ( m=a>b>c) && (n=c>d) 后 n 的值为( )

A.1
B.2
C.3
D.4
C

根据程序运行结果来看&&后的语句未能运行
在这里插入图片描述我并不清楚其中的具体原因,出于探究的精神,我增加了变量k;
在这里插入图片描述
可以看见 k 值为 0,那么有可能是对于&&运算符来说当前一个表达式为 0 时就结束不判断后一个表达式了呢?
将程序稍微改一下;
在这里插入图片描述
根据图片很容易得到结论,猜想成立。
对于&&运算符来说,当前一个表达式为 0 时就结束不判断后一个表达式。


2-16

1.选择结构

判断

1-1 在 if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
T
补充:if语句的三种形式

  1. if

if(判断条件)
{为真时执行语句1;语句2;…}//单条语句可以不用花括弧

  1. if-else

if(判断条件)
{同上}//单条语句可以不用花括弧
else
{同上}//同上

  1. if-else if

if(判断条件)
{同上}
else if (条件1){}
else if (条件2){}

else (条件n){}

1-2 在switch语句中,每一个的case常量表达式的值可以相同。
F

解析:switch相当于是跳转。类比函数,一个自变量x只能对应一个y。case中的语句相当于是完成跳转的条件,若case(盒子)出现相同值则会出现同时两个盒子中的东西都放出。
实际上,在vscode中会直接报错。(转载) switch语句的具体用法 (转载)case重复报错图

1-3 case语句后如没有break,顺序向下执行。
T

1-4 执行以下程序段后,y的值为-1。

x = 4; 
if (x < 0){ 
    y = -1;
}else if (x = 0){
    y = 0;
}else{ 
    y = 1;}  

F

解析:最后的值是y=1

1-5 在switch语句中,不一定使用break语句。
T

解析:不使用break只会使程序不会跳出,参见switch语句的具体用法

1-6 省略else的if语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就什么也不做。

if (表达式)
语句1

T
1-7 如果变量已经正确定义,则执行以下程序段后,x的值不变。

x = 4; 
if (x < 0){ 
    y = -1;
}else if (x = 0){
    y = 0;
}else{ 
    y = 1;}

F

解析:结果是x=0在第4行代码中已给x赋值

1-8 在switch语句中,必须使用default。
F

解析:不用default只会使得额外的值不能被显出(没有任何反应)

1-9 设变量已正确定义,以下是合法的switch语句。

switch(choice){         
    case choice == 1: price = 3.0; break; 
    case choice == 2: price = 2.5; break;
    case choice == 3: price = 4.0; break;
    case choice == 4: price = 3.5; break;
    default: price = 0.0; break;
}

F

解析:case中的变量值只能是整数常量值,不能有多余的符号。

选择

2-1 如果要表示a 等于 0 时执行 if ( )后的语句,则在if后一对括号中的表达式不能写为( )
C解析(转载)

2-2 当a=5,b=8,c=6,d=4,x=0 时,执行完下面一段程序后x的值是( )

if(a<b)
if(c<d) x=1;
else if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;

用缩进整理一下:

if(a<b)
	if(c<d) 
	x=1;
	else if(a<c)
		if(b<d) 
		x=2;
		else x=3;
	else x=6;
else x=7;

C

解析:得到x=3

2-3 对下面的程序,以下正确的判断是( )
题目图片

A

解析:第六行分句后else无if匹配。C语言if else语句详解

2-4 在嵌套使用if语句时,C语言规定else总是( )
B

解析:与上题相同

2-5 在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是()

int main(void)
{     int  a,b,s,t;
      scanf("%d,%d",&a,&b);
      s = 1; t = 1;
      if(a > 0) s = s + 1;
      if(a > b) t = s + t;
      else if(a == b) t = 5;
      else t = 2 * s;
      printf("t=%d\n",t);    
      return 0;}

C

解析:逆推可得

2-6 能正确表示逻辑关系"a≥10 或 a≤0"的C语言表达式是()
D

运算符说明结合性举例
&&与运算,双目,对应数学中的“且”左结合1&&0、(9>3)&&(b>a)
||或运算,双目,对应数学中的“或”左结合1||0、(9>3)||(b>a)
!非运算,单目,对应数学中的“非”右结合!a、!(2<5)

2-7 下列条件语句中,功能与其他语句不同的是
D 解析:前三个的语义是若变量a为真(这里可以结合bool类型理解;1即使真,0是假),输出x;反之输出y
2-8 若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句是
D

解析:A.switch后多了个;;
   B.标签重复,break未作为单独语句使用;
   C.case标签后必须是常量

2-9 有定义语句“int a=1,b=2,c=3,x;”,则以下各程序段执行后,x的值不为3的是
C

解析:特别注意B项,当在if中的条件成立后后面的elseelse if语句都不执行

2-10 语句if(x=0) y=1; else y=2;与( )等价。
B

解析:题中语句是把x赋值为0再判断,这个if永远不会成立

2-11 设变量已正确定义,以下( )与其它switch语句不等价。
C

解析:题中只提已定义,当出现case之外的情况时,C项变量会被赋予随机值。

2-12 设变量已正确定义,以下( )与其它switch语句不等价。
D

2-13 已知int x=10,y=20,z=30;以下语句:if(x<y) z=x; x=y; y=z;执行后x,y,z的值是( )。
C

2-14 将以下if-else语句补充完整,正确的选项是( )。

if(x >= y){
   printf("max = %d\n", x);
____________
   printf("max = %d\n", y);}

C 原因见补充



2.循环结构

判断

1-1 在多层循环中, 一个break语句只向外跳一层。
T

1-2 for语句的一般形式如下,其中的表达式1只执行一次。

for (表达式1; 表达式2; 表达式3) 
    循环体语句 

T

1-3 循环体如包括有一个以上的语句,则必须用一对大括号{}括起来,组成复合语句,复合语句在语法上被认为是一条语句。
T

1-4 以下程序段的功能是计算20的阶乘。

int i;
double product;
product = 0;
for (i = 1; i <= 20; i++){ 
   product = product * i;
}

F

解析:变量product最初被赋予的是0,最终结果为0。

1-5若变量已正确定义,以下while循环结束时,i的值为11。

i = 1;
while (i <= 10){
    printf("%d\n", i);
}

F

1-6 若变量已正确定义,执行以下while语句将陷入死循环。

i = 1;
while (i <= 10);
    i++;

T

解析:当i大于10时跳出循环。但当while()后有分号,不能进入i++
补充:a++与++a的区别
a++与++a单独使用时两者无区别,当参与赋值运算时。如图示
在便于理解的要求上我们不妨把上述式子转化一下
b = a++ 即 {c = a,a=a+1,b = c;}
b = ++a 即 {a = a+1,b = a;}
比较上式可以发现在运算a++中实际上先创建了一个副本来储存这个值。深层次原因可以参照C语言中a++与++a的区别

1-7 若变量已正确定义,执行以下程序段,输入负数时,循环结束。

total = 0;
scanf ("%d", &score);
while(score >= 0){   
    total = total + score; 
    scanf ("%d", &score); 
}

F

解析:个人认为这是个文字游戏,输入负数时不能进入循环,故没有循环结束的说法。(真是无聊。。。)

1-8 do - while语句的一般形式如下,其中的循环体语句至少执行一次。
T


1-9 while语句和do - while语句的一般形式分别如下,其主要区别是:while 语句先判断循环条件,只有条件满足才进入循环,如果一开始条件就不满足,则循环一次都不执行。而do - while语句先执行循环体,后判断循环条件,所以无论循环条件的值如何,至少会执行一次循环体。
T


1-10 以下两个程序段等价,其功能是计算 s=1+2+…+10。

/* 程序段A*/
s = 0;
i = 1;
while(i <= 10){
    s = s + i;
    i++;
}
/* 程序段B */
s = 0;
i = 1;
while(1){
    if(i > 10){
        break;}
    s = s + i;
    i++;
}

F

解析:简要的说吧,break只能跳出一层循环

1-11 在循环中使用break语句或者continue语句,其作用是相同的。
F
C语言break和continue的区别

1-12 执行以下while语句,将出现死循环。

s = 0;
i = 1;
while(1){
    if(i > 10){
        continue;
    }
    s = s + i;
    i++;}

T

解析:当i大于10后会在if语句中不断循环


1-13 在嵌套循环(多层循环)中, 每一层循环都应该使用自己的循环变量,以免互相干扰。
F

个人认为视实际情况而定


选择

2-1 执行while语句时,要想执行循环体的语句,则括号中表达式要满足的条件是?( )
C

解析:计算机内部运行二进制,只有0与1,而while执行判断式非0时的语句,如 ‘5’,在二进制表示为101,故执行;另,负数也可执行,负数实际是可以理解为一个带符号位的正整数(在int范围内),其在二进制中的表达也不为0,故执行while中的语句。

2-2 下列程序段执行后s的值为( )。
如图示
D

解析:a++与++a的区别
与上题相似,主要靠循环判断的问题当while中的语句为0时结束循环当if中的语句为 “0” 时执行else,反之执行if


2-3 设有程序段

int m=0;
while (m=1)
     m=0;

则下面描述中正确的是( )。
B(无限循环)

解析:赋值语句表达式为1,为真,在while中的表达式判断恒为真,循环体一直执行,是死循环。


2-4 以下描述中错误的是( ) 。

A.在do-while循环中,是先执行循环体,再进行判断
B.do-while的循环体可以是复合语句
C.do-while的循环体执行次数不可能为0
D.do-while由do开始,用while结束,在while(表达式)后面不能写分号

D

语法规范,= =


2-5 下面程序的功能是在输入的一批正数中求最大者,输入0结束循环。则在下划线处应填写的语句是()。
如图示
C

2-6 若程序执行时的输入数据是3564<回车>,则下述程序的输出结果是( ) 。
在这里插入图片描述D

解析:getchar()详细用法
解这题要先看看ASCII码表,数字的ASCII码是连续的、cs是整形、switch-case 后没有break程序向下执行。
了解以上这几点后这题的答案就很容易得出了。

2-7 若变量已正确定义,要求程序段完成求n!的计算,不能 完成此操作的程序段是哪一个?( )
A.

for(i=1,p=1;i<=n;i++)
p*=i;

B.

for(i=1;i<=n;i++)
{ p=1; p*=i; }

C.

i=1;
p=1;
while(i<=n)
{ p*=i; i++; }

D.

i=1;
p=1;
do{
p*=i; i++;
} while(i<=n);

B

解析:B项中每一次循环都对 p 赋初始值 1。故不能达到计算 n!的效果。

2-8int i,j;,则for(i=j=0; i<10||j<8; i+=2,j++)控制的循环体的执行次数是( )8
A


2-9 以下程序段的循环次数是( )
在这里插入图片描述
A


2-10 语句for (表达式1; ; 表达式3)等价于?( )
A.for ( 表达式1; !0 ; 表达式3 )
B.for ( 表达式1; 0 ; 表达式3 )
C.for ( 表达式1; 表达式1; 表达式3 )
D.for ( 表达式1; 表达式3; 表达式3 )
A

解析:先上图
在这里插入图片描述
空了中间的表达式后,判断恒真,是死循环

2-11 以下不会构成死循环的语句或语句组是( )
A.n=0; do {++n;} while(n=1);
B.n=5; while(n>0);{n- -;}
C.n=0; while(n){n++;}
D.for(n=0,i=1; i<5;n++) n+=i;
D

解析:A、在做一次++n后,whilen再赋值为1;而赋值语句为真;故为死循环。
B、while后有分号,判断n>0后未能执行到n- -;而是一直判断;
C、不会进循环

2-12 下面程序段执行后,n的值是( )。

D(5)

解析:提示当i不为2的倍数时n只加一次(只运行一次n++)if(i%2) continue;会使跳过do——while中的n++

2-13 有整型变量a和b,若运行以下程序段时从键盘输入:16,10<回车>,循环结束时变量a、b的值分别为( )。
在这里插入图片描述C( 2 2 )

解析:可以先写成这样在这里插入图片描述在草稿本上用列表的方法来计算,当a==b时退出。实际上这个算法稍加改进就可以得到更相减损术,不过在求最大公约数方面也还是没有辗转相除法高效就是了=.=。

2-14 下面的这个循环的循环次数是( )。
for(int i=0,j=10; i=j=10; i++,j--)
B(无限次)

中间一句错了。中间一句为赋值后再赋值,由于赋值是一个从右向左的计算故最终结果是j = 10i = 1。判断恒成立,死循环。

2-15 假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段功能等价的赋值语句是()。

s = a;  
for(b = 1; b <= c; b++) 
      s = s + 1; 

B(s = a + c;)

解析:代码为将b分解为一个一个的 1 与a相加。

2-16 循环 for(i=0, j=5; ++i!=–j; ) printf(“%d %d”, i, j); 将执行_____。

D (无限次)

当循环执行三次后将判断 2 与 3 否相等;此后++i将与- -j相差越来越大,是死循环。


2-17 语句for (表达式1; ; 表达式3)等价于?( )
B2-10

2-18 下列程序段的功能是

#include <stdio.h>
int main (void)
{
    int i, s = 0;
    for (i = 1; i < 10; i += 2)
        s += i + 1;
    printf("%d\n", s);
    return 0;
}

D(自然数1~10中的偶数之和)


2-19 以下程序段( )的功能是计算n的阶乘,假设计算结果不超过双精度范围
A、int i, n;double product;scanf("%d", &n);product = 0;for (i = 1; i <= n; i++){ product = product * i; }
B、int i, n, product;scanf("%d", &n);product = 1;for (i = 1; i <= n; i++){ product = product * i; }
C、int i, n; double product; scanf("%d", &n); for (i = 1; i <= n; i++){ product = product * i; }
D

A、product初始化错误
B、product定义未满足双精度
C、product为初始化,一般编译器初始化为 0


2-20 以下( )循环并非重复5次?
C、int i;for (i=0; i<=5; i++) {}
C

2-21 下列叙述中正确的是()。
A.break 语句只能用于 switch 语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break 语句只能用在循环体内和 switch 语句体内
D.在循环体内使用 break语句和 continue 语句的作用相同
C


2-22 运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为()。

int main(void)
{  
      int  m, n;
      printf("Enter m,n;");   
      scanf("%d%d", &m,&n);
      while (m != n)
      {   while (m > n)       m = m - n;
          while (n > m)       n = n - m;    
      }
      printf("m=%d\n",m);    
      return 0;
}

C(m=1)

2-13


2-23 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是

for (i = 5; i; i--)
    for (j = 0; j < 4; j++) {...}

A(20)

解析:内层循环次数×内层循环次数


这篇有点长了分到另一篇去。

3.数组与指针等

  • 210
    点赞
  • 683
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值