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語言指針測試題目,如有錯誤,懇請指出,收集不易,轉載留名,謝謝!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212509.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212509.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212509.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于SSM+JSP網上訂餐管理系統(Java畢業設計)

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

Flask筆記三之連接使用數據庫

本文首發于公眾號&#xff1a;Hunter后端 原文鏈接&#xff1a;Flask筆記三之連接使用數據庫 這一節介紹 Flask 與數據庫的連接&#xff0c;以及接口里查詢數據的操作。 這里使用的是 SQLAlchemy pymysql 實現與數據庫的連接&#xff0c;SQLAlchemy 的詳細介紹見之前的筆記有…

藍橋杯2021年5月青少組Python程序設計國賽真題

30 個人在一條船上,超載&#xff0c;需要 15 人下船于是人們排成一隊&#xff0c;排隊的位置即為他們的編號。報數,從1開始,數到9的人下船。如此循環,直到船上僅剩15 人為止&#xff0c;問都有哪些編號的人下船了呢? 2】判斷101-200之間有多少個素數&#xff0c;并輸出所有素數…

Maven上傳Jar到Nexus遠程倉庫的兩種方式

Maven上傳Jar到Nexus遠程倉庫的兩種方式 文章目錄 前言通過mvn clean deploy指令上傳第一步 配置maven的setting.xml文件第二步 配置pom文件第三步 執行打包指令 手動上傳 jar到遠程倉庫第一步 配置setting文件第二步 執行上傳命令 前言 各個公司在開發項目時&#xff0c;一般…

Linux C/C++并發編程實戰(8)CAS機制的ABA問題

文章目錄 無鎖隊列中的ABA問題ABA問題解決方案 ABA問題&#xff1a;CAS在操作的時候會檢查變量的值是否被更改過&#xff0c;如果沒有則更新值&#xff0c;但是帶來一個問題&#xff0c;最開始的值是A&#xff0c;接著變成B&#xff0c;最后又變成了A。經過檢查這個值確實沒有修…

Leetcode每日一題

https://leetcode.cn/problems/binary-tree-preorder-traversal/ 這道題目需要我們自行進行創建一個數組&#xff0c;題目也給出我們需要自己malloc一個數組來存放&#xff0c;這樣能達到我們遍歷的效果&#xff0c;我們來看看他的接口函數給的是什么。 可以看到的是這個接口函…

說說webpack中常見的loader?解決了什么問題?

在Webpack中&#xff0c;Loader是用于處理各種文件類型的模塊加載器&#xff0c;它們用于對文件進行轉換、處理和加載。常見的Loader解決了以下問題&#xff1a; 處理 JavaScript 文件&#xff1a;Babel Loader用于將最新的JavaScript語法轉譯為瀏覽器兼容的版本&#xff0c;以…

5_CSS三大特性盒子模型

第5章-盒子模型【比屋教育】 本課目標&#xff08;Objective&#xff09; 掌握CSS三大特性理解什么是盒子模型掌握內邊距padding的用法掌握外邊距margin的用法 1. CSS的層疊&#xff0c;繼承&#xff0c;優先級 1.1 CSS層疊 層疊&#xff1a;是指多個CSS樣式疊加到同一個元…

Web(8)SQL注入

Web網站&#xff08;對外門戶&#xff09; 原理&#xff1a;not>and>or(優先級) 一.低級注入 order by的作用是對字段進行排序&#xff0c;如order by 5&#xff0c;根據第五個字段 進行排序&#xff0c;如果一共有4個字段&#xff0c;輸入order by 5系統就會報錯不 …

詳細介紹開源固件-TF-A

什么是TF-A&#xff1f; TF-A&#xff08;Trusted Firmware-A&#xff09;是一種用于嵌入式系統的開源固件&#xff0c;而不是Linux的一部分。TF-A主要用于ARM架構的處理器和設備&#xff0c;它提供了一組安全和可信任的軟件組件&#xff0c;用于引導和初始化系統。 如下是其…

GD32F30X-RT-Thread學習-線程管理

1. 軟硬件平臺 GD32F307E-START Board開發板MDK-ARM Keil 2.RT-Thread Nano 3.RT-Thread 內核學習-線程管理 ? 在多線程操作系統中&#xff0c;可以把一個復雜的應用分解成多個小的、可調度的、序列化的程序單元&#xff0c;當合理地劃分任務并正確地執行時&#xff0c;這…

qt可以詳細寫的項目或技術

1.QT 圖形視圖框架 2.QT 模型視圖結構 3.QT列表顯示大量信息 4.QT播放器 5.QT 編解碼 6.QT opencv

Linux--RedHat--安裝和配置C++環境

百度下載&#xff0c;安裝包&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1IgBfCCRxGYZ_PPiedad0xQ 提取碼&#xff1a;ffff 下載后&#xff0c;建個目錄&#xff0c;先解壓好安裝包&#xff01; &#xff08;兩種方法&#xff09;執行如下命令&#xff1a; 參考…

Bypass open_basedir

講解 open_basedir是php.ini中的一個配置選項&#xff0c;可用于將用戶訪問文件的活動范圍限制在指定的區域。 假設open_basedir/var/www/html/web1/:/tmp/&#xff0c;那么通過web1訪問服務器的用戶就無法獲取服務器上除了/var/www/html/web1/和/tmp/這兩個目錄以外的文件。…

Java——面試:String 和 StringBuffer 的區別?

相同點&#xff1a; String 和 StringBuffer&#xff0c;它們可以儲存和操作字符串&#xff0c; 即包含多個字符的字符數據。 String 和 StringBuffer 的區別有以下幾點&#xff1a; 1.String 類提供了數值不可改變的字符串。而 StringBuffer 類提供的字符串進行修改。 當你知…

洛谷 P8674 [藍橋杯 2018 國 B] 調手表

文章目錄 [藍橋杯 2018 國 B] 調手表題目描述輸入格式輸出格式樣例 #1樣例輸入 #1樣例輸出 #1 提示 題意解析CODE分析一下復雜度 [藍橋杯 2018 國 B] 調手表 題目描述 小明買了塊高端大氣上檔次的電子手表&#xff0c;他正準備調時間呢。 在 M78 星云&#xff0c;時間的計量…

JVM虛擬機:命令行查看JVM垃圾回收器的執行信息

在eclipse中打開命令行窗口 window->show view->Terminal 這樣就打開了Terminal窗口&#xff0c;效果如下所示&#xff1a; java -XX:PrintCommandLineFlags -version 這個命令可以查看一些配置信息&#xff0c;其中最重要的配置信息就是&#xff0c;當前使用的G1回收器…

什么是漏洞掃描

漏洞掃描是指基于漏洞數據庫&#xff0c;通過掃描等手段對指定的遠程或者本地計算機系統的安全脆弱性進行檢測&#xff0c;發現可利用漏洞的一種安全檢測的 行為&#xff0c;也是一類重要的網絡安全技術。它和防火墻、入侵檢測系統互相配合&#xff0c;能夠有效提高網絡的安全性…

鍵盤打字盲打練習系列之成為大師——5

一.歡迎來到我的酒館 盲打&#xff0c;成為大師&#xff01; 目錄 一.歡迎來到我的酒館二.關于盲打你需要知道三.值得收藏的練習打字網站 二.關于盲打你需要知道 盲打系列教程&#xff0c;終于寫到終章了。。。一開始在看網上視頻&#xff0c;看到up主熟練的打字技巧&#xff…

LabVIEW與Tektronix示波器實現電源測試自動化

LabVIEW與Tektronix示波器實現電源測試自動化 在現代電子測試與測量領域&#xff0c;自動化測試系統的構建是提高效率和精確度的關鍵。本案例介紹了如何利用LabVIEW軟件結合Tektronix MDO MSO DPO2000/3000/4000系列示波器&#xff0c;開發一個自動化測試項目。該項目旨在自動…