C语言期末考试复习PTA数据类型及表达式-分支结构程序-循环结构-数组经典选择题

news2024/11/17 0:42:14

 目录

 

 

第一章:C语言数据类型和表达式

第一题:

第二题:

第三题:

第四题:

第五题:

第六题:

第七题:

第八题:

第九题:

第二章:分支结构程序设计

第一题:

第二题:

第三题:

第四题:

第五题:

第六题:

第七题:

第八题:

第九题:

第三章:循环结构

第一题:

第二题:

第三题:

第四题:

第五题:

第六题:

第四章:数组

第一题:

第二题:

第三题:

第四题:

第五题:

第六题:

第七题:

第八题:

第九题:

第十题:

第十一题:

第十二题:


 

 

第一章:C语言数据类型和表达式

第一题:

设x 、y均为f1oat型变量,则以下不合法的赋值语句是 ( )。


A.
x*=y+8;


B.
x=y=0;


C.
y=(x%2)/10;


D.
y=1+x;

分析:对于c,取余运算两边必须是整型;

第二题:

下面四个选项中,均是合法整形常量的选项是( )


A.
160 、 -0xffff 、 011


B.
-01 、 986,012 、 0668


C.
-0xcdf 、 01a 、 0xe


D.
-0x48a 、 2e5 、 0x

分析:首先你要知道十六进制的数怎么表示,它是以0x为前缀使用 0-9 和 A-F(或 a-f)这些字符来表示数字 0-15,然后八进制是以0为前缀,使用数字 0-7 来表示数字 0-7

所以b错在0668,八进制中出现了8,

c错在01a,八进制出现了字母

d错在2e5,是一个浮点数,不是整数,0x是不完整的十六进制表示

第三题:

表达式

下面的程序段将输出 ▁▁▁▁▁。

double pi = 22 / 7, r = 2, g;
g = 2 * pi * r;
printf("%.2f\n", g);

A.
12.57


B.
0.00


C.
12.00


D.
13.00

分析:

22/7,因为双方都是整数,所以得出结果也是整数不会保留小数,所以22/7=3,然后最后是输出12.00

第四题:

为表示“a和b都不等于0”,应使用的C语言表达式是()。


A.
(a!=0) || (b!=0)


B.
a || b


C.
!(a=0)&&(b!=0)


D.
a && b

分析:首先读懂题,翻译成a和b都不等于0时为真,所以d肯定对

接下来分析a,b,c

a用||逻辑符,就是只要两边一个满足就为真,那么a不等于0是为真,这个时候b可以为0,照样表达式成立

b同上

c的表达式就已经错了,因为()里面表达式应该是判断,而不是进行赋值

第五题:

设 x、y、t均为int型变量,则执行语句:x=y=3; t= ++x || ++y; 后,y的值为____。


A.
1


B.
不定值


C.
3


D.
4

 

分析:执行语句t=++x || ++y;,根据短路逻辑运算符的特性,如果第一个表达式的值为真(非零),则不会执行第二个表达式。先把++x赋给t之后,这个表达式为真不会进行++y。

第六题:

设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )


A.
n=(n*100+0.5)/100.0


B.
n=n*100+0.5/100.0


C.
n=(n/100+0.5)*100.0


D.
m=n*100+0.5,n=m/100.0

分析:这道题看起来抽象,其实原理很简单,举个例子

假设n的值为3.4567。

按照选项A的表达式,首先计算 3.4567 * 100 = 345.67,将小数点后两位的数值变为整数部分。

接着加上0.5,得到 345.67 + 0.5 = 346.17,进行了四舍五入运算。

最后将结果除以100.0,得到 346.17 / 100.0 = 3.4617,将整数部分转换回小数点后两位的数值。

因此,选项A的表达式 (n*100+0.5)/100.0 能够实现将n中的数值保留小数点后两位,并进行四舍五入运算。

第七题:

表达式

下面的程序段将输出 ▁▁▁▁▁ 。

int n = 4, s;
s = 1 / 2 * n * (n + 1);
printf("%d\n", s);

A.
10


B.
0.025


C.
0.625


D.
0

思路:

写这种题,要明白优先运算的优先顺序,看s,先算小括号里的,然后从左至右一次运算,即先算1/2,但是1和2是整数运算得出0.5然后取整变成0,因此会输出0.

第八题:

表达式(x%3)等价于表达式( )。


A.
x%3 == 2


B.
x%3 == 0


C.
x%3 == 1


D.
x%3 != 0

 

 思路:

写这种题记住一点,无需想太多,要想表达式x%3成立,那么x%3的结果就不能为0,因为我们规定表达式值为0就为假,因此表达式等价D。

第九题:

下列不合法的用户标识符是


A.
j2_KEY


B.
_8_


C.
4d_a


D.
Double

思路:用户标识符遵循特定规则:

  1. 用户标识符只能包含字母(大小写敏感)、数字和下划线。
  2. 用户标识符不能以数字开头。
  3. 用户标识符不能包含空格或其他特殊字符。

因此选C

第二章:分支结构程序设计

第一题:

若a为int类型,且其值为3,则执行完表达式a+= a-= a*a后,a的值是__。


A.
9


B.
-3


C.
6


D.
-12

思路:

明白运算符的优先顺序,*的优先级高于=和+,因此先从a*a开始运算,a的值为3,a*a=9,然后,a-=9,相当于a=a-9,这个时候a还是3,然后3-9=-6即把-6赋给了a,然后a这个时候的值为-6,然后进行最后一语句,a+=-6,a这个时候是-6,这个表达式相当于a=a-6,所以最后a=-12;

 

 

第二题:

定义int score = 75; 则表达式 80 > score > 70 的值是:


A.
0


B.
true


C.
1


D.
false

思路:

从左至右依次进行,首先80>75为真,那么这个时候表达式返回1,即变成1>70为假,所以返回0

第三题:

下列运算符中优先级最低的是__.


A.
II


B.
>=


C.
~


D.
!=

思路:这里给大家整这道题,也是想给大家总结这个运算符的优先级,记住常见的。

4112528002e9414f89efe3022c94f3e3.png

67cf2a6ec8ab4a4788f29372ba7cfc39.png

37dd18c2f3ac4fedab7c7ab270f26ac0.png

观察规律,一目运算符>二目运算符>三目运算符,算术运算符就是+ - * / 这些,关系运算符就是> < 这些,并且记住赋值运算符比 逗号运算符强。

因此这道题选择A

第四题:

设有定义:

int a = 1, b = 2, c = 3, d = 4, m = 2, n = 2;
则执行表达式

(m = a > b) && (n = c > d);
后,n的值为____。


A.
0


B.
3


C.
1


D.
2

 

思路:

由上述介绍了运算符的优先级,那么这道题就如同探囊取物,看表达式,先是a>b,即1>2,为假,返回0,即变成m=0,就是把0赋给了m,表达式为真,然后呢c>d即3>4为假返回0,0赋给了n为真,所以n等于0 对吗?不对,为什么?错就错在你还未理解&&这个运算符,必须两边同时成立才为真,但当左边的表达式为假的时候,他根本不会进行第二个表达式的运算,所以n还是原来的值2,因此这道题为D

这就是逻辑运算符的短路原则,对于||只要第一个操作数为假则不会进行第二个操作数.

对于逻辑或运算符 ||,如果第一个操作数为真(非零),则整个表达式的值为真,不会再计算第二个操作数。只有当第一个操作数为假(0)时,才会计算第二个操作数。

 

 

第五题:

设 int x=1, y=1; 表达式(!x||y--)的值是( )。


A.
-1


B.
0


C.
1


D.
2

思路:

根据上题给大家介绍的逻辑运算符的短路规则,这道题很easy了吧

在这个表达式中,x 的值为 1,非零,所以 !x 为假(0)。因此,整个表达式 (!x || y--) 的值取决于 y-- 的结果。

y-- 表示先将 y 的值赋给表达式,然后再将 y 的值减 1。由于后缀自减运算符的优先级较低,所以 y-- 的值为 1,并且 y 的值被减 1 变为 0。

因此,(!x || y--) 的值为 0 || 1,即 1

答案是 C. 1。

 

第六题:

已知int i, a; 执行语句i=(a=2*3,a*5),a+6;后,变量i的值是( )。


A.
6


B.
30


C.
36


D.
12

思路:

还是考察运算符的优先级,之前给大家介绍=的优先级比 , 高,因此先执行逗号表达式a=2*3,a*5,其中a首先被赋值为6,然后计算a*5返回结果30,所以整个逗号表达式的值是30。接着,将这个值赋给变量i,即i=30

最后,执行语句a+6,但并没有把其结果赋给任何变量,所以该语句的执行对i的值没有影响。

因此,变量i的值是30,选项B正确。

 

第七题:

若变量已正确定义,表达式 (j=3, j++) 的值是____。


A.
5


B.
4


C.
6


D.
3

思路:

在表达式(j=3, j++)中,逗号操作符,会先执行左边的表达式j=3,将3赋值给变量j,然后再执行右边的表达式j++

但是需要注意的是,后置递增运算符++会在整个表达式执行完之后才生效。所以在这个表达式中,尽管执行了j=3的赋值操作,但是j++的递增操作并没有影响到整个表达式的值。

因此,表达式(j=3, j++)的值是3,选项D正确。

 

第八题:

设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d 的结果为( )。


A.
3


B.
4


C.
2


D.
1

思路:

对于这种多目运算的怎么分析?

答案就是一步步来,首先我们把这个值带进去,1<2为真所以a为表达式的值不执行后面。这里给大家延申一些,如果我是说如果,a<b为假的话,那么就会执行c<d,然后根据c<d是否为真进行判断是执行a还是执行d

 

第九题:

假设所有变量均为整型,则表达式(a = 2, b = 5, b++, a+b)的值是( )


A.
2


B.
7


C.
6


D.
8

思路:

在这个表达式中,首先执行 a = 2,将 2 赋给变量 a。然后执行 b = 5,将 5 赋给变量 b。接下来执行 b++,将 b 的值增加 1,此时 b 的值为 6。最后执行 a + b,即 2 + 6,结果为 8。

因此,表达式 (a = 2, b = 5, b++, a+b) 的值为 8。

在这里大家可能会有疑问,为什么不是7,因为b++只要不执行这个语句的时候b已经变成了6。如果说是还在b++这个语句里面,就是先用6然后再加1

 

第三章:循环结构

第一题:

下面这段程序,若scanf输入k的值为50,则程序将循环有限次,在打印输出有限行之后,程序将正常结束。

#include <stdio.h>
int main(){
    int k;
    scanf("%d", &k);
    int i=100;
    while(i > k){
        printf("%d ", i);
        i++;
    }
    return 0;
}

思路:

这道题,可能很多人都是一知半解,觉得i>k为真,并且i还自增,必然一直循环下去,但是要知道int类型的数据所表达的范围有限。

在这段程序中,如果 scanf 输入的 k 值为 50,并且 i 的初始值为 100,循环条件 i > k 成立,循环体内的语句会被执行。

每次循环中,会打印输出 i 的值,并将 i 的值递增 1。由于 i 是使用整型变量声明的,整型变量在大多数系统中的范围是有限的。当 i 递增到超过整型变量所能表示的最大值时,整型溢出会发生。

对于大多数系统来说,int 类型的范围是 -2,147,483,648 到 2,147,483,647。当 i 的值增加到超过这个范围时,它将溢出并变成一个负值。

因此,当 i 递增到超过 int 类型所能表示的最大值时,循环会终止,程序将正常结束。

 

第二题:

下面这段程序中的循环将是无限循环,程序将始终运行、无法结束(假设运行该程序的计算机系统永远不会发生意外情况而崩溃或断电)。

#include "stdio.h"
int main(){
    for(long num=1; num>0; num++)
        printf("%ld\n", num);
    return 0;
}

思路:

这道题也是与上道题,同理

 

第三题:

下列程序段输出结果为 ____。

下列程序段输出结果为 ____。

int a=1,b=2,c=2,t;
while(a<b<c) {    t=a; a=b; b=t; c--;    }
printf( "%d,%d,%d", a, b, c);

思路:

首先看while循环条件,a<b即1<2为真返回1,变成1<c,即1<2为真然后进入循环体

然后看循环体前三条语句实际就是把a和b的值进行了交换,没看明白的可以画个图模拟一下,然后c--,这个时候c的值变成了1,接着再次进行循环条件的判断,a<b,因为a和b的值已经交换了,所以变成了2<1即为假,返回0,所以变成了0<c,c的值为1,所以0<1即为真,那么再次进入循环体,然后再次把a和b的值交换,这个时候a再次变成1b再次变成2,c再次--,c就变成了0,所以最终输出2,1,0

 

第四题:

 

对于循环while(!e) 语句,!e等价于____。


A.
e!=1


B.
e==0


C.
e!=0


D.
e==1

思路:

之前的内容讲过类似的,再次整出这道题想大家都整,明白,看懂代码,以后可能也需要写出这样的代码。

这次由大家自行解答,若有问题回到前文再看解析。

第五题:

设有程序段

int m=20; while (m=0) m=m++;
则下面描述中正确的是( )。


A.
循环体语句一次也不执行


B.
循环体语句执行一次


C.
while 循环执行 10 次


D.
循环是无限循环

思路:

这道题和前面的类似,答案由你来书写。

第六题:

执行下面的程序后变量a的值是

#include <stdio.h>
int main(void)
{
    int a, b;
    for (a = 1, b = 1; a <= 100; a++) {
        if (b > 10)break;
        if (b % 3 == 1) {
            b += 3;
            continue;
        }
        b -= 3;
    }
    printf("%d\n", a);
    return 0;
}

A.
8


B.
5


C.
7


D.
6

思路:

这道题考察就是简单循环的理解,建议大家重新理一遍这道题的逻辑,不要直接用编译器来求答案,理解代码的逻辑。看懂代码。

 

第四章:数组

第一题:

在对数组全部元素赋初值时,不可以省略行数,但能省略列数。


T

F

思路:

对于二维数组,行数可以省略,列数不能省略,举个例子,arr[][3]={{1,2},{1,2,3}},省略了行数,并不影响我们的理解,明显可以得出行数为2。列数不能省略,如果不指定列数, 它就不能知道一行放几个数据了。

第二题:

若有定义float a[6]={1,2,3};,则数组中含有3个元素。


T

F

 

思路:

数组有6个元素,只不过只指定了前三个元素,那么后三个元素的值。

后三个元素的值不确定。

第三题:

调用strcmp函数比较字符串大小时,通常较长的字符串会较大。


T

F

思路:

字符串比较大小是按照字典序来比较,不是说字符串长就大。

第四题:

一维数组定义的一般形式如下,其中的数组长度是一个整型常量表达式,给定数组的大小。

类型名 数组名[数组长度];

T

F

思路:

记住即可,数字长度只能放常量不能放变量,比方说int a=100,arr[a]={0} 是错误的。因为a是变量。

第五题:

若字符数组s1和s2中均已正确存储字符串,则可以使用 if(s1>s2) 进行两字符串大小的比较。


T

F

思路:

不能直接通过关系运算符进行比较,除非在c++里面,可以通过strcmp来比较。

第六题:

一维数组定义的一般形式如下:

类型名 数组名[数组长度];
数组元素引用的一般形式如下:

数组名[下标]
在引用数组元素时,下标的合理取值范围是[0,数组长度-1],下标不能越界。


T

F

思路:

这个大家记住即可,答案为T

第七题:

"a" 和 'a'是等价的。


T

F

思路:

第一个是字符串,第二个是字符元素

第八题:

下面描述正确的是


A.
字符个数多的字符串比字符个数少的字符串大


B.
字符串“ STOP”和“STOP”相等


C.
字符串“That”小于字符串“The”


D.
两个字符串所包含的字符个数相同时才能比较字符串

思路:

看c因为第一个和第二个字符都相同,比较第三个,因为a的ascll小于e的ascll所以,第一个字符串小于第二个。

第九题:

以下关于二维数组初始化的说法,正确说法的个数是( )

(1)语句int a[2][3]={0}; 能将int型数组a中的每个元素全部初始化为0。

(2)语句int a[2][3]=0; 能将int型数组a中的每个元素全部初始化为0。

(3)语句int a[2][3]; 能将int型数组中a的每个元素全部初始化为0。

(4)语句int a[2][3]={{1,2},{3,4},{5,6}};能将int型数组元素a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]依次初始化为1,2,3,4,5,6。

(5) 语句int a[][3]={1,2,3,4,5,6};能将int型数组元素a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]依次初始化为1,2,3,4,5,6。

(6)语句int a[][3]={{1,2,3},{4,5,6}};能将int型数组元素a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]依次初始化为1,2,3,4,5,6。

思路:

正确说法的个数是3。

(1)语句int a[2][3]={0}; 能将int型数组a中的每个元素全部初始化为0。—— 对,

(2)语句int a[2][3]=0; 能将int型数组a中的每个元素全部初始化为0。—— 错误,这种语句是错误的,无法用这种方式对二维数组进行整体赋值。

(3)语句int a[2][3]; 能将int型数组中a的每个元素全部初始化为0。—— 错误,这种方式只会在栈上分配空间,但不会对每个元素进行初始化。

(4)语句int a[2][3]={{1,2},{3,4},{5,6}};能够将int型数组元素a[0][0],a[0][1],a[1][0],a[1][1],a[0][2],a[1][2]依次初始化为1,2,3,4,5,6,因此是原来的选项是错的

(5) 语句int a[][3]={1,2,3,4,5,6};能将int型数组元素a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]依次初始化为1,2,3,4,5,6。—— 对,。

(6)语句int a[][3]={{1,2,3},{4,5,6}};能将int型数组元素a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]依次初始化为1,2,3,4,5,6。—— 正确,这种方式可以对二维数组进行逐个初始化。



第十题:

对于定义 char str[] = "abc\000def\n"(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:


A.
3 ,9


B.
3 ,11


C.
12 ,13


D.
3 ,4

思路:

对于定义 char str[] = "abc\000def\n"; ,字符串 str 的长度 len 是指有效字符的个数,不包括字符串结束符 \0。数组 str 的大小 size 则是指整个数组占用的内存空间大小。

在这种情况下,字符串 str 的长度 len 为 3,因为 "abc" 是由三个有效字符组成。

数组 str 的大小 size 可以通过使用 sizeof 运算符来获取。sizeof 运算符返回的是数组在内存中所占用的字节数。

因为 str 是一个字符数组,所以它占用的内存空间大小等于每个元素的大小乘以元素的个数。每个字符元素的大小为 1 字节。

因此,数组 str 的大小 size 取决于编译器和操作系统的实现。通常情况下,它将是 11 字节(包括字符串结束符 \0)。

并且\0和\n看作是一个字符,字符串末尾还有一个\0为显示。

第十一题:

有说明语句int  a[4][5]; ,则a[2]+3表示__。


A.
a数组行下标为2、列下标为3的元素的值


B.
a数组第3行的首地址


C.
a数组第2行的首地址


D.
a数组行下标为2、列下标为3的元素的地址

思路:

a[2]+3实际上表示a数组第3行的首地址,并且向后偏移3个元素的地址。因此,a[2]+3可以表示a数组行下标为2、列下标为3的元素的地址。

所以,选项D.a数组行下标为2、列下标为3的元素的地址是正确的答案。

第十二题:

以下定义语句中不正确的是__。


A.
int y[5]={0,1,3,5,7,9};


B.
double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};    


C.
char c1[]={'1', '2', '3', '4', '5'};    


D.
char c2[]={'\x10', '\xa', '\x8'};

思路:

很明显A的数组越界了,因为数组下标从0,开始,最终最大也是y[4],只能存五个元素,而出现了6个就会越界。

 

 

最后,笔者能力有限,如有错误,请指出,一定改正一起进步。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1295454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发一款属于自己的校园跑腿小程序 手把手带你写同城跑腿 代取快递 代买东西 代寄快递 含骑手端 管理员端 用户端 校园圈子论坛

今天开始带大家开发一款属于自己的校园跑腿同城跑腿小程序。 第一章讲技术点和效果图&#xff0c;如果你看完效果图觉得不错&#xff0c;可以认真跟着石头哥学习。 第二章教大家如何快速部署项目&#xff0c;如果你只是为了部署源码只需要学习第二章即可。 第三章开始就是带着…

【Java 基础】25 比较器

文章目录 1.什么是比较器2.比较器的种类1&#xff09;Comparable2&#xff09;Comparator4&#xff09;组合比较器 总结 1.什么是比较器 比较器是用于对对象进行比较的工具 比较器允许开发者定义对象之间的顺序&#xff0c;使得排序和比较操作更加灵活。 还记得我们之前学的数…

SpringAOP专栏二《原理篇》

上一篇SpringAOP专栏一《使用教程篇》-CSDN博客介绍了SpringAop如何使用&#xff0c;这一篇文章就会介绍Spring AOP 的底层实现原理&#xff0c;并通过源代码解析来详细阐述其实现过程。 前言 Spring AOP 的实现原理是基于动态代理和字节码操作的。不了解动态代理和字节码操作…

Sql Server Management Studio连接Mysql

目标 已知mysql连接参数&#xff08;地址和用户&#xff09;&#xff0c;期望通过Microsoft Sql Server Management Studio &#xff08;以下简称MSSSMS&#xff09;连接Mysql&#xff0c;在MSSSMS中直接查询或修改Mysql中的数据。 下载MySql Connector/ODBC并安装&#xff0c…

Python configparser 模块:优雅处理配置文件的得力工具

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 配置文件在软件开发中扮演着重要的角色&#xff0c;而Python中的 configparser 模块提供了一种优雅而灵活的方式来处理各种配置需求。本文将深入介绍 configparser 模块的各个方面&#xff0c;通过丰富的示例代码…

力扣(LeetCode)-1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

一个简单的 postman设置接口关联让我措施了大厂的机会

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…

好莱坞明星识别

一、前期工作 1. 设置GPU from tensorflow import keras from tensorflow.keras import layers,models import os, PIL, pathlib import matplotlib.pyplot as plt import tensorflow as tfgpus tf.config.list_physical_devices("GPU")if gpus:gpu0 …

mybatis数据输出-使用resultMap标签定义实体类属性和数据库字段对应关系,再在SQL语句中引用这个对应关系

有三种方式实现实体类属性和数据库字段对应关系 起别名对应&#xff0c;将字段的别名设置成和实体类属性一致全局配置自动识别驼峰式命名规则&#xff0c;在Mybatis全局配置文件加入配置 <setting name"mapUnderscoreToCamelCase" value"true"/>使用…

Pipenv环境配置+Pytest运行

环境配置 使用Pipenv进行虚拟环境管理&#xff0c;Pipfile为依赖模块管理文件。 安装pipenv&#xff1a;brew install pipenv根项目根目录下执行命令创建虚拟环境&#xff1a; pipenv install在Pycharm中指定项目运行的虚拟环境 &#xff1a;File->Settings->Project:-…

16mic圆形麦克风阵列电路与声源定位算法设计

16mic圆形麦克风阵列电路与声源定位算法设计 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送语音信号处理降噪算法&#xff0c;蓝牙耳机音频&#xff0c;DSP音频项目核心开发资料, 1 实…

消息队列kafka详解:Kafka重要知识点+面试题大全

重要面试知识点 Kafka 消费端确保一个 Partition 在一个消费者组内只能被一个消费者消费。这句话改怎么理解呢&#xff1f; 在同一个消费者组内&#xff0c;一个 Partition 只能被一个消费者消费。 在同一个消费者组内&#xff0c;所有消费者组合起来必定可以消费一个 Topic 下…

信号量的使用和注意事项

大家好&#xff0c;今天给大家介绍信号量的使用和注意事项&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 信号灯(信号量)集 POSIX 线程中的同步用的是无名信号量 进程间的同步使…

【C语言】函数递归详解(一)

目录 1.什么是递归&#xff1a; 1.1递归的思想&#xff1a; 1.2递归的限制条件&#xff1a; 2.递归举例&#xff1a; 2.1举例1&#xff1a;求n的阶乘&#xff1a; 2.1.1 分析和代码实现&#xff1a; 2.1.2图示递归过程&#xff1a; 2.2举例2&#xff1a;顺序打印一个整数的…

JS中call()、apply()、bind()改变this指向的原理

大家如果想了解改变this指向的方法&#xff0c;大家可以阅读本人的这篇改变this指向的六种方法 大家有没有想过这三种方法是如何改变this指向的&#xff1f;我们可以自己写吗&#xff1f; 答案是&#xff1a;可以自己写的 让我为大家介绍一下吧&#xff01; 1.call()方法的原理…

zabbix(2)

zabbix的自动发现机制 zabbx客户端主动和服务端联系&#xff0c;将自己的地址和端口发送服务端&#xff0c;实现自动添加监控主机 客户端是主动的一方 缺点&#xff1a;自定义网段中主机数量太多&#xff0c;登记耗时会很久&#xff0c;而且这个自动发现机制不是很稳定 zabb…

python 使用 watchdog 实现类似 Linux 中 tail -f 的功能

一、代码实现 import logging import os import threading import timefrom watchdog.events import FileSystemEventHandler from watchdog.observers import Observerlogger logging.getLogger(__name__)class LogWatcher(FileSystemEventHandler):def __init__(self, log_…

105.长度最小的子数组(力扣)|滑动窗口

代码演示 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int result INT_MAX; // 用于存储最小子数组的长度int sum 0; // 滑动窗口的长度int i 0; // 滑动窗口的起始位置int sumlength 0; // 当前子数…

Python语言基础知识(二)

文章目录 1、条件表达式2、分支结构—常见的分支结构2.1、分支结构—单分支选择结构2.2、分支结构—双分支选择结构2.3、分支结构—多分支选择结构2.4、分支结构—选择结构的嵌套 3、循环结构3.1、循环结构— for循环与while循环 1、条件表达式 在选择和循环结构中&#xff0c…

git更换远程地址

1、命令修改 git remote -v git remote set-url origin http://xxx.git git remote -v 2、工具修改