当前位置: 首页 > news >正文

C语言笔试例题_指针专练30题(附答案解析)

C语言笔试例题_指针专练30题(附答案解析)


指针一直是C语言的灵魂所在,是掌握C语言的必经之路,收集30道C语言指针题目分享给大家,测试环境位64位ubuntu18.04环境,如有错误,恳请指出,文明讨论!!!

文章目录

  • C语言笔试例题_指针专练30题(附答案解析)
  • 1.笔试例题
  • 2.结果与分析
  • 总结


1.笔试例题

答案与解析在文末尾


1.char * p =“Hello”;是定义初始化指针变量,指针变量的值是一个字符串.说法是否正确

A :正确

B:不正确


2.以下代码printf 输出是什么?

void main (void)
{int a[]={4,5,6,7,8};int *p = a;*p++ += 100;printf(" %d %d \n" , *p,*(++p));
}

3.若定义:int a[2][3]={1,3,5,7,9,11},以下描述正确的是

A :*(a+1)为元素7的地址

B:(a[1]+1)的值是5

C:**(a +1)+2值是11

D:a[0]和a不同


4.以下代码printf 输出是什么?

int main()
{int a[5] = { 1, 2, 3, 4, 5 };int* ptr = (int*)(&a + 1);printf("%d,%d", *(a + 1), *(ptr - 1));return 0;
}

5.说出以下代码的错误之处,并说明原因

char *getmemory( void )
{char p[] = "hello world";return p;
}void test( void )
{char *str = NULL;str = getmemory();printf( str );
}

6.在上下文及头文件均正常的情况下,下列代码的输出是?(注:print已经声明过)

main()
{     char str[] = "Geneius";print (str);
} 
print(char *s)
{if(*s){print(++s);printf("%c", *s); }
}

A :suiene

B:neius

C:run-time error

D:suieneG


7.如下代码是否存在风险,并说明原因和修改方式

#include <stdio.h>
int main () {//hello world 存放在常量区是不可以修改的char * str = "hello world"; *str = 'a'; // errorreturn 0;
}

8.如下代码是否可行,说明原因

#include <stdio.h>
int main () {char str[4];str = "abc";return 0;
}

9.如下代码输出是什么

#include <stdio.h>
#include <string.h>int main(){char *str = "baidu.com";int i ;str = "hello world!";int len = strlen(str);printf("%d \n",len);printf("%c \n", *(str+4));printf("%s \n",(str+6));return 0;
}

10.以下程序的输出结果(32位机器上)是()

int main(){char *p = "abcdefgh", *r;long *q;q = (long*)p;q++;r = (char*)q;printf("%s\n", r);
}

A :abcd

B:bcde

C:cdef

D:efgh


11.对于char * pa[7]的描述中,正确的是( )

A :pa是一个指向数组的指针,所指向的数组是7个char型元素

B:pa是一个指向某数组中第7个元素的指针,该元素是char型变量

C:pa[7]表示数组的第7个元素的值,是char型的值

D:pa是一个具有7个元素的指针数组,每个元素是一个char型指针


12.如下代码输出是什么

#include <stdio.h>
void fun(char **p) {int i;for (i = 0; i < 4; i++)printf("%s", p[i]);
}
main() {char *s[6] = {"ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWX"};fun(s);printf("\n");
}

A :ABCDEFGHIJKL

B:ABCD

C:AEIM

D:ABCDEFGHIJKLMNOP


13.test.c文件中包括如下语句,文件中定义的四个变量,哪个变量不是指针类型?

#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a,b;
int_ptr c,d;

A :a

B:b

C:c

D:d

E:都是

F:都不是


14.有int s[2]={0,1}, * p=s; 则下列错误的C语句是 ()
A :s+=1;

B:p+=1;

C:*p++;

D:(*p)++;


15.请问下列代码的输出是多少()

#include <stdio.h>
int main() {int m[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int(*p)[4] = (int(*)[4])m;printf("%d", p[1][2]);return 0;
}

A :7

B:3

C:8

D:4


16.已知如下代码

int a[] = {1, 2, 3, 4, 5};
int*p[] = {a, a + 1, a + 2, a + 3};
int **q = p;

表达式*(p[0]+1)+**(q+2)的值是____。
A :5

B:6

C:7

D:8

E:9

F:10


17.如下代码输出是什么

#include<stdio.h>
void foobar(int a, int *b, int **c)
{int *p = &a;*p = 101;*c = b;b = p;
}int main()
{int a = 1;int b = 2;int c = 3;int *p = &c;foobar(a, &b, &p);printf("a=%d, b=%d, c=%d, *p=%d\n", a, b, c, *p);return (0);
}

A :a=1, b=2, c=3, *p=2

B:a=101, b=2, c=3, *p=2

C:a=101, b=101, c=2, *p=3

D:a=1, b=101, c=2, *p=3


18.如下代码输出是什么

void GetMemory(char **p, int num)
{*p = (char *)malloc(num);
}
void Test(void)
{char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");printf("%s", str);
}

A :空

B:hello

C:出错


19.如下代码输出是什么

int main(){int i = 10;int j = 1;const int *p1;//(1)int const *p2 = &i; //(2)p2 = &j;//(3)int *const p3 = &i;//(4)*p3 = 20;//(5)*p2 = 30;//(6)p3 = &j;//(7)
return 0;
}

A :1,2,3,4,5,6,7

B:1,3,5,6

C:6,7

D:3,5


20.在C++中,为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在[] 处应填入选项是(多选题)

struct link
{
char data;
[];
} node;

A :link next;

B:struct link * next;

C:link * next;

D:struct link next;


21.有以下语句:(多选)

char str[4][12] = {"aaa", "bbbb", "ccccc", "dddddd"}, *strp[4];
for (int i = 0; i < 4; i++)strp[i] = str[i];

对字符串的正确引用是(),其中0≤k<4()
A :*strp

B:strp

C:str[k]

D:strp[k]


22.在64位系统下,分别定义如下两个变量:char ∗ * p[10]; char( ∗ * p1)[10];请问,sizeof( p p p)和sizeof (p1)分别值为____。

A :4,40

B:80,8

C:10,10

D:8,80


23.若有以下说明和定义,在必要的赋值之后,对fun函数的正确调用语句是()

int fun (int *c){}
int main(){int (*a)(int*)=fun,*b(),w[10],c;}

A :a=a(w);

B:(*a)(&c);

C:b=*b(w);

D:fun(b);


24.下列程序的打印结果是?

char p1[15] = "abcd", *p2 = "ABCD", str[50] = "xyz"; 
strcpy(str + 2, strcat(p1 + 2, p2 + 1));
printf("%s", str);

A :xyabcAB

B:abcABz

C:ABabcz

D:xycdBCD


25.对于下面的语句

int c[4][5], (*p)[5];
p = c;

A :p + 1

B:*(p + 3)

C:*(p + 1) + 3

D:*(p[0] + 2)


26.对于以下代码,char ∗ * p=new char[100];说法正确的是()

A :p和new出来的内存都在栈上

B:p和new出来的内存都在堆上

C:p在堆上,new出来的在栈上

D:p在栈上,new出来的在堆上


27.运行以下C语言代码,输出的结果是()

#include <stdio.h>
int main()
{char *str[3] ={"stra", "strb", "strc"};char *p =str[0];int i = 0;while(i < 3){printf("%s ",p++);i++;}return 0;
} 

A :stra strb strc

B:s t r

C:stra tra ra

D:s s s


28.运行以下C语言代码,输出的结果是()

int main() 
{char c, s[20];strcpy(s, "Hello,World");printf("s[]=%6.9s\n", s);return 0;
}

A :s[]=Hello,

B:s[]=Hello,World

C:s[]= Hello,

D:s[]=Hello,Wor


29.有以下语句定义,则能输出a[1][2]的值的语句是()

int a[2][3];
int (*p)[3]=a; 
int *q=*a;

A:cout<< ∗ * ( ∗ * (a+1)+2)

B:cout<<p[1][2];

C:cout<<*(q+5);

D:cout<<q[1][2];


30.若有定义语句: int year=1009 , ∗ * p=&year ;以下不能使变量 year 中的值增至 1010 的语句是()

A:*p+=1;

B:(*p)++;

C:++(*p)

D:*p++


2.结果与分析

题目一:答案:错误 ,
原因:char * p =“Hello” 定义了一个指向字符串的指针变量 p,并将其初始化为字符串 “Hello” 的地址。所以指针变量的值为字符串的地址

题目二:答案:6,6
原因:执行*p++ += 100语句之后,数组变成{104,5,6,7,8},p指针指向第个二元素:5,重点是考察的是变参函数printf,printf的参数入栈是从右到左执行的,所以先执行 ∗ * (++p)输出6,再 执行 ∗ * p输出6,输出的是同一个元素。此题答案之前出现分歧,可能是运行环境不一致导致的。

题目三:答案:A
原因:在二维数组中, ∗ * (a+1)表示第二列首元素地址,这里是7;(a[1]+1)表示第二列第二个元素的地址,这里应该是元素9的地址;**(a +1)表示第二列首元素求值,这里是7,+2得到的是9;a和a[0]其实是一样的。一维数组和二维数组运算关系可参见博客:https://blog.csdn.net/Yin_w/article/details/131731082

题目四:答案:2,5
原因:因为&a是整个数组a的地址,所以&a+1指向的是整个数组a后面的一个位置(跨越了整个数组),也就是ptr指向的是数组a之外的下一个位置。而由于数组a是连续存储的,所以这个位置恰好是数组a最后一个元素的下一个位置。因此 ∗ * (ptr-1)的值就是数组a中最后一个元素的值,即5

题目五:答案:运行结果:运行无误,但打印乱码
原因:getMemory(void)中的p[]为函数内的局部自动变量,在函数返回后,内存已经被释放。如果一步步调试,会发现执行str=getMenory();后str不再是NULL了,但是str的内容并不是hello world,而是垃圾数据。

题目六:答案:A
原因:主要考察递归思想,此题答案来自牛客网码友,鸣谢!
在这里插入图片描述

题目七:答案:运行会报错,
原因:这种形式的字符串存储在常量区。常量区 字符串只有读取权限,没有写入权限,这就导致了字符数组 在定义后可读取和修改每个字符而 第二种形式(字符串常量) 一旦定义后便不可修改,对它的赋值都是错误的(可整体赋值),这种形式可修改:
char str[] = “hello world”;
char *pstr = str;
*str = ‘a’;

题目八:答案:赋值方式错误
原因:字符数组 只有在定义时才可一次性赋值,一旦定义完就只能一个个赋值。这样写正确:str[0] = ‘a’; str[1] = ‘b’; str[2] = ‘c’;与上述第七题的联系和区别,可参见博客:https://blog.csdn.net/Yin_w/article/details/132426333

题目九:
答案:
12
o
world!
原因:字符数组是一个数组,关于指针和数组的规则同样也适用于字符数组.故输出字符串也可以用: ∗ * (pstr+i)、pstr[i]、*(str+i) 、str[i]进行输出

题目十:答案:D
原因:char* p = “abcdefgh”,每个字符占1个字节,那么总共是8个字节,此时p指向’a’。如果是p++,那么p将指向’b’。打印p会得到"bcdefgh"。 long* q = (long*)p 将p强制转换为long*类型,也就是用long类型去解释存储了"abcdefgh"的这一段内存,此时q指向’a’,由于long类型是4个字节,那么q++移动4个字节,q将指向’e’,打印q将得到"efgh"。

题目十一:答案:D
原因,这里定义的是一个指针数组,本质是一个数组,数组元素为指针

题目十二:答案:D
原因:以上语句定义了一个指针数组 s。本质是一个数组,数组元素为字符串指针,而数组名是指向第一个元素的常量指针,因此 s 是指向指针的指针,所以函数 fun 的形参定义是 char **。fun(s) 将指针 s 的值传递给形参 p,所以 p = s,因此for(i=0;i<4;i + + )printf(“% s”,p[i]);中 printf(“% s”,p[i]) 等价于 printf(“% s”,s[i])。注意, s[i] 中存储的不是字符串,而是字符类型的指针,但 printf 会输出 s[i] 存储的指针指向的字符串。所以最后输出为 D。

题目十三:答案:B
原因:typedef 给已有类型声明一个别名,故c和d都是int_ptr类型也即都是int *类型;
#define宏定义,在预编译时直接进行简单替换,即原式变为:int ∗ * a,b; 这相当于是int *a, int b; 即a是指针,b是int型。参考博客:https://blog.csdn.net/Yin_w/article/details/134915018?spm=1001.2014.3001.5502

题目十四:答案:A
原因:数组名为指针常量,其值不可更改。

题目十五:答案:A
原因:int ∗ * p[n] 表示的是指针数组;int ( ∗ * p)[n] 表示的是一个指向有n个元素数组的指针;(int ( ∗ * )[4])m 表示以数组指针重新组织数组m,将其每4位划为一组,这样一来,m为{{1,2,3,4},{5,6,7,8},{9,0, , }},p指向第一行故p[1][2]即 ∗ * ∗ * (p+1)+2),表示第二行第三个元素,为7

题目十六:答案:A
原因:a[]是一个有5个元素的数组, ∗ * p[]是一个指针数组,数组名p,其内部有4个元素,每个元素是一个指针,分别指向a,a+|,a十2,a十3。 ∗ * (p[0]+1)表示数组p的第0行第1个元素的值,即a[l],值为2。 ∗ * ∗ * q是一个二维指针,它是向p的首址,即p[0]+0,即a的首地址,a[0]。q+2表示指向&a的第2个元素,**表示取值3。所以答案5

题目十七:答案:A
原因:函数对a是值传递,所以int *p = &a得到的是形参的地址,不会改变a的实际值,“*p = 101”是把形参a的值变成了101;对**c,传入的是二级指针,所以“ ∗ * c = b”改变了指针p的指向,现在p指针指向b,所以p取值是2,但c的值没有变,依旧是3;对于b =p;相当于改变指针的指向,对于一级指针来讲想在函数内部改变其指向是无效的,所以b的值其实也没变,整个过程下来其实改变的只有p的指向,所以选A。可以参考博客:https://blog.csdn.net/Yin_w/article/details/132478099

题目十八:答案:B
原因:这里对传入的参数是二级指针,但因为该函数形参p为实参的临时拷贝,在函数内部申请空间的地址,存放在p中,不会影响str,所以当函数返回之后,str会成功指向开辟的堆空间,但一定要记得释放,此题有区别于void GetMemory(char *p, int num)形式。

题目十九:答案:C
原因:
(1)const int ∗ * p1:不能通过指针p1修改指向的内存的值,但p1本身指向可修改。
(2)int const ∗ * p2=&i:与p1相同,即不能修改p2指向的内存单元的值,但是可以修改p2使其指向其它的内存单元。这里p2指向了整型变量i
(3)p2=&j:修改p2,使其指向整型变量 j ,由(2)可知(3)没错。
(4)int *constp3=&i:p3是指向整型变量的常指针,p3初始化后不能改变他的指向,但是可以修改p3指向的内存单元的值。
(5)*p3=20:通过p3将变量i的值修改为2,由(4)可知(5)没错。
(6)*p2=30:通过p2修改它所指向的内存单元的值,由(2)可知(6)错误。
(7)p3=&j:修改p3,使其指向j,由(4)可知(7)错误。
参考博客:https://blog.csdn.net/Yin_w/article/details/132394812

题目二十:答案:BC
原因:由链表的属性可知,第二个成员是指向数据储存数据的结构体类型的结构体指针,非常明显BC均符合。

题目二十一:答案:ACD
原因:for循环实现将每个字符串的首地址赋给指针数组中每一个元素。strp为指针数组首地址,不是字符串的引用。str[k]为第k个字符串的地址,表示第k个字符串的引用。strp[k]表示指针数组的第k个元素,为第k个字符串的地址,也是这个字符串的引用。*strp取指针数组第一个元素,即为第一个字符数组的地址,也即为第一个字符串的引用。选择A、C、D选项。

题目二十二:答案:B
原因:64位系统下一个指针占8字节。
(1)char ∗ * p[10]指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针。如int* a[10]。
(2)char( ∗ * p1)[10]数组指针:a pointer to an array,即指向数组的指针。如int (*a)[10]。
sizeof( p p p)计算的是10个char型指针的数组大小,sizeof(p1)计算的是一个char型指针p1的大小,所以答案为80 , 8。

题目二十三:答案:B
原因:int fun (int *c){ … }定义了一个参数为int类型指针的函数。int ( ∗ * a)(int ∗ * )=fun的意思是定义了一个函数指针,该指针指向了fun函数,所以可以通过对指针取值调用该函数,且函数的参数必须是个地址,只有B符合,注意调用函数指针有ret = (*p)(); 和ret = p(); 两种形式,参见博客:https://blog.csdn.net/Yin_w/article/details/129962775

题目二十四:答案:D
原因:本题考查数组和指针,在本题中c是二维数组,指针p指向二维数组c,p其实是指向c数组的第一行。因此选项A)中p+1指向c数组的第二行;选项B)中,p+3表示p指向c数组的第三行,因此 ∗ * (p+3)表示取出c数组第三行首元素的地址:选项C)和选项B)类似,表示取出数组c第二行首元素地址然后加3;选项D)中p[0]+2表示数组第一行第三列元素的地址,因此 ∗ * (p[0]+2)是取出该元素的值。 知识模块:函数和数组

题目二十五:答案:D
原因:动态分配在堆中,其它的内存分配都在栈上进行。

题目二十六:答案:B
原因:p是char ∗ * 类型,每次++,后移一位(char)
char ∗ * p=str[0]相当于char ∗ * p=“stra”,p先指向s,p++后,指向t,printf输出遇到空字符停止

题目二十七:答案:C
由链表的属性可知,第二个成员是指向数据储存数据的结构体类型的结构体指针,非常明显BC均符合。

题目二十八:答案:C
原因:%6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。%m.n表示场宽为m的浮点数, 其中小数位为n, 整数位为m-n-1,小数点占1位,不够m位,左右对齐。

题目二十九:答案:ABC
原因:由链表的属性可知,第二个成员是指向数据储存数据的结构体类型的结构体指针,非常明显BC均符合。

题目三十:答案:D
分析·: ∗ * p++是先取出 ∗ * p的值,然后让p++ ,( ∗ * p)++是先取出*p的值,让这个值++,*p+=1也是先取值再让值++ 参考博客https://blog.csdn.net/Yin_w/article/details/132495312


总结

以上就是30道C语言指针测试题目,如有错误,恳请指出,收集不易,转载留名,谢谢!!!

相关文章:

C语言笔试例题_指针专练30题(附答案解析)

C语言笔试例题_指针专练30题(附答案解析) 指针一直是C语言的灵魂所在&#xff0c;是掌握C语言的必经之路&#xff0c;收集30道C语言指针题目分享给大家&#xff0c;测试环境位64位ubuntu18.04环境&#xff0c;如有错误&#xff0c;恳请指出&#xff0c;文明讨论&#xff01;&am…...

【Vue+Python】—— 基于Vue与Python的图书管理系统

文章目录 &#x1f356; 前言&#x1f3b6;一、项目描述✨二、项目展示&#x1f3c6;三、撒花 &#x1f356; 前言 【VuePython】—— 基于Vue与Python的图书管理系统 &#x1f3b6;一、项目描述 描述&#xff1a; 本项目为《基于Vue与Python的图书管理系统》&#xff0c;项目…...

智能成绩表 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题目描述 小明来到某学校当老师&#xff0c;需要将学生按考试总分或单科分数进行排名&#xff0c;你能帮帮他吗? 输入描述 第1行输入两个整数&#xff0c;学生人数n和科目数量m。0<n<100,0<m<10…...

【基于ESP32无线蓝牙上传电脑Excel透传数据】

【基于ESP32无线蓝牙上传电脑透传数据】 1. 引言2. 环境搭建2.1 硬件准备:2.2 软件准备:2.3. 配置Excel端口接收功能3. 测试代码4. 连接电脑和 ESP324.1 烧录程序4.2 启动蓝牙服务4.3 测试数据透传5. 总结1. 引言 随着物联网技术的发展,越来越多的设备开始支持无线通信,其…...

Qt篇——QChartView实现鼠标滚轮缩放、鼠标拖拽平移、鼠标双击重置缩放平移、曲线点击显示坐标

话不多说。 第一步&#xff1a;自定义QChartView&#xff0c;直接搬 FirtCurveChartView.h #ifndef FITCURVECHARTVIEW_H #define FITCURVECHARTVIEW_H #include <QtCharts>class FitCurveChartView : public QChartView {Q_OBJECTpublic:FitCurveChartView(QWidget *…...

掌握VUE中localStorage的使用

文章目录 &#x1f341;localStorage的使用&#x1f33f;设置数据&#x1f33f;获取数据&#x1f33f;更新数据&#x1f33f;删除数据 &#x1f341;代码示例&#x1f341;使用场景&#x1f341;总结 localStorage是一种Web浏览器提供的本地存储机制&#xff0c;允许开发者在用…...

所有行业的最终归宿-我有才打造知识付费平台

随着科技的不断进步和全球化的加速发展&#xff0c;我们生活在一个信息爆炸的时代。各行各业都在努力适应这一变化&#xff0c;寻找新的商业模式和增长机会。在这个过程中&#xff0c;一个趋势逐渐凸显出来&#xff0c;那就是知识付费。可以说&#xff0c;知识付费正在成为所有…...

图的深度和广度优先遍历

题目描述 以邻接矩阵给出一张以整数编号为顶点的图&#xff0c;其中0表示不相连&#xff0c;1表示相连。按深度和广度优先进行遍历&#xff0c;输出全部结果。要求&#xff0c;遍历时优先较小的顶点。如&#xff0c;若顶点0与顶点2&#xff0c;顶点3&#xff0c;顶点4相连&…...

计算机毕业设计JAVA+SSM+springboot养老院管理系统

设计了养老院管理系统&#xff0c;该系统包括管理员&#xff0c;医护人员和老人三部分。同时还能为用户提供一个方便实用的养老院管理系统&#xff0c;管理员在使用本系统时&#xff0c;可以通过系统管理员界面管理用户的信息&#xff0c;也可以进行个人中心&#xff0c;医护等…...

Flutter路由的几种用法

Flutter路由跳转 基本路由跳转 ElevatedButton(onPressed: () {//基本路由跳转Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return const SearchPage();}),);},child: const Text("基本路由跳转"), ), search.dart页面 impo…...

力扣119双周赛

第 119 场双周赛 文章目录 第 119 场双周赛找到两个数组中的公共元素消除相邻近似相等字符最多 K 个重复元素的最长子数组找到最大非递减数组的长度 找到两个数组中的公共元素 模拟 class Solution { public:vector<int> findIntersectionValues(vector<int>&…...

Redux,react-redux,dva,RTK

1.redux的介绍 Redux – 李立超 | lilichao.com 2.react-redux 1&#xff09;react-Redux将所有组件分成两大类 UI组件 只负责 UI 的呈现&#xff0c;不带有任何业务逻辑通过props接收数据(一般数据和函数)不使用任何 Redux 的 API一般保存在components文件夹下容器组件 …...

基于Java SSM框架实现高校信息资源共享平台系统【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现高校信息资源共享平台系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们…...

SpringMvc入坑系列(一)----maven插件启动tomcat

springboot傻瓜式教程用久了&#xff0c;回过来研究下SSM的工作流程&#xff0c;当然从Spring MVC开始&#xff0c;从傻瓜式入门处理请求和页面交互&#xff0c;再到后面深入源码分析。 本人写了一年多的后端和半年多的前端了。用的都是springbioot和vue&#xff0c;源码一直来…...

Leetcode—337.打家劫舍III【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—337.打家劫舍III 算法思想 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(null…...

列表标签的介绍与使用

列表的作用&#xff1a; 整齐、整洁、有序&#xff0c;它作为布局会更加自由和方便。 根据使用情景不同&#xff0c;列表可以分为三大类&#xff1a;无序列表、有序列表和自定义列表 无序列表 <ul> 标签表示 HTML 页面中项目的无序列表&#xff0c;一般会以项目符号呈…...

浅谈什么是语音芯片的白噪音支持功能:打造舒适家居与优质音频体验

随着科技的不断进步和人们对生活质量要求的提升&#xff0c;语音芯片已经成为了现代电子产品中不可或缺的一部分。而在这些语音芯片中&#xff0c;支持白噪音的功能逐渐受到人们的关注。本文将围绕语音芯片中的白噪音支持功能展开讨论&#xff0c;带您领略其带来的舒适家居与优…...

【QED】高昂的猫 Ⅰ

目录 题目背景题目描述输入格式输出格式 测试样例样例说明数据范围 思路核心代码 题目背景 这是小橘。因为它总是看起来很高傲&#xff0c;所以人送外号“高昂的猫”。 题目描述 "锕狗"的房间里放着 n n n ( 1 ≤ n ≤ 1 0 9 ) (1 \leq n \leq 10^9) (1≤n≤109)个…...

Redis如何做内存优化?

Redis如何做内存优化&#xff1f; 1、缩短键值的长度 缩短值的长度才是关键&#xff0c;如果值是一个大的业务对象&#xff0c;可以将对象序列化成二进制数组&#xff1b; 首先应该在业务上进行精简&#xff0c;去掉不必要的属性&#xff0c;避免存储一些没用的数据&#xff1…...

倪海厦:教你正确煮中药,发挥最大药效

同样的一个汤剂&#xff0c;我开给你&#xff0c;你如果煮的方法不对&#xff0c;吃下去效果就没那么好。 所以&#xff0c;汤&#xff0c;取它的迅捷&#xff0c;速度很快&#xff0c;煮汤的时候还有技巧&#xff0c;你喝汤料的时候&#xff0c;你到底是喝它的气&#xff0c;…...

C++学习笔记:继承

继承 什么是继承?继承的写法基类和派生类的赋值转换继承中的作用域派生类的默认成员函数单继承,多继承,虚拟继承is-a 和 has-a 什么是继承? 继承是C语言面向对象的三大特性之一&#xff0c;是面向对象程序设计使代码可以复用的最重要的手段,基本都是在一个类的基础上为了增加…...

音频/视频、信息和通信技术设备安全标准UL62368-1

UL 62368-1&#xff0c;第 3 版&#xff0c;2019 年 12 月 13 日- UL 音频/视频、信息和通信技术设备安全标准 - 第 1 部分&#xff1a;安全要求 IEC 62368 的这一部分适用于该领域内电气和电子设备的安全音频、视频、信息和通信技术&#xff0c;以及额定电压不超过 600 V 的商…...

macos下安装科研绘图软件Origin

科研人必备软件Origin&#xff0c;主要是考虑到很多期刊都要求绘制origin可编辑的图&#xff0c;所以有些时候必须用这个软件&#xff0c;但是这个软件macos并不支持&#xff0c;所以必须考虑其他的方案&#xff0c;我没有安装虚拟机&#xff0c;而是使用crossover 安装crosso…...

安全快速地删除 MySQL 大表数据并释放空间

一、需求 按业务逻辑删除大量表数据操作不卡库&#xff0c;不能影响正常业务操作操作不能造成 60 秒以上的复制延迟满足以上条件的前提下&#xff0c;尽快删除数据并释放所占空间 表结构如下&#xff1a; create table space_visit_av (userid bigint(20) not null comment 用…...

未使用 “严格模式“(js的问题)

"严格模式"&#xff08;即在JavaScript源文件的开头包括 "use strict"&#xff1b;&#xff09;是一种自愿在运行时对JavaScript代码执行更严格的解析和错误处理的方式&#xff0c;同时也使它更安全。 但是&#xff0c;不使用严格模式本身并不是一个 &quo…...

Verilog基础:$random系统函数的使用

相关阅读 Verilog基础​编辑https://blog.csdn.net/weixin_45791458/category_12263729.html $random系统函数语法的BNF范式如下所示&#xff0c;有关BNF范式相关内容&#xff0c;可以浏览以往文章Verilog基础&#xff1a;巴科斯范式(BNF)。 $random系统函数在每次调用时返回一…...

数据库Delete的多种用法

数据库的Delete操作是用来删除数据库中的数据记录的&#xff0c;它是数据库操作中的一种重要操作&#xff0c;能够帮助用户删除不需要的数据&#xff0c;以便保持数据库的整洁和高效。在使用Delete操作时&#xff0c;需要注意确保操作的准确性和安全性&#xff0c;以免误删重要…...

鸿蒙前端开发-构建第一个ArkTS应用(Stage模型)

创建ArkTS工程 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发&#xff08;本文以应用开发为例&#xff0c;Atomic Serv…...

从零开始搭建链上dex自动化价差套利程序(12)

其他品种 扩展到其他币种的价差套利 1.eth 新建文件get_depth_data_eth.py import asyncio from apexpro.http_public import HttpPublic from dydx3 import Client from dydx3.constants import MARKET_ETH_USD# 定义交易对列表 symbol ETHUSDC market MARKET_ETH_USD# …...

MySQL 数据库如何实现 XA 规范?

本文我们来讨论 MySQL 的 XA 规范有哪些应用相关的内容。 MySQL 为我们提供了分布式事务解决方案&#xff0c;在前面的内容中提到过 binlog 的同步&#xff0c;其实是 MySQL XA 规范的一个应用&#xff0c;那么 XA 规范是如何定义的&#xff0c;具体又是如何应用的呢&#xff…...