主頁 >  其他 > 軟體測驗:整整用了一個月的時間,終于拿到了華為Offer(內附華為面試題)

軟體測驗:整整用了一個月的時間,終于拿到了華為Offer(內附華為面試題)

2021-07-28 15:16:01 其他

?????3è|??????o?2??é£?1??1?,?¤???è?è¥????§??????′¢èμ??¤±

Q1、什么是預編譯,何時需要預編譯

答案:1、總是使用不經常改動的大型代碼體,

Q2、程式由多個模塊組成,所有模塊都使用一組標準的包含檔案和相同的編譯選項,在這種情況下,可以將所有包含檔案預編譯為一個預編譯頭,

Q3、下述三個有什么區別?

char * const p

char const * p

const char *p

答案:

char * const p; //常量指標,p的值不可以修改

char const * p;//指向常量的指標,指向的常量值不可以改

const char *p; //和char const *p

Q4、以下代碼中的兩個sizeof用法有問題嗎?

void UpperCase( char str[] ) // 將 str 中的小寫字母轉換成大寫字母

{

for( size_t i=0; i<sizeof(str)/sizeof(str[0]); ++i )

if( 'a'<=str[i] && str[i]<='z' )

str[i] -= ('a'-'A' );

}

char str[] = "aBcDe";

cout << "str字符長度為: " << sizeof(str)/sizeof(str[0]) << endl;

UpperCase( str );

cout << str << endl;

答案:函式內的sizeof有問題,根據語法,sizeof如用于陣列,只能測出靜態陣列的大小,無法檢測動態分配的或外部陣列大小,函式外的str是一個靜態定義的陣列,因此其大小為6,因為還有'\0',函式內的str實際只是一個指向字串的指標,沒有任何額外的與陣列相關的資訊,因此sizeof作用于上只將其當指標看,一個指標為4個位元組,因此回傳4,

Q5、一個32位的機器,該機器的指標是多少位

答案:指標是多少位只要看地址總線的位數就行了,80386以后的機子都是32的資料總線,所以指標的位數就是4個位元組了,

Q6、請問以下代碼有什么問題:

int main()

{

char a;

char *str=&a;

strcpy(str,"hello");

printf(str);

return 0;

}

答案:沒有為str分配記憶體空間,將會發生例外

問題出在將一個字串復制進一個字符變數指標所指地址,雖然可以正確輸出結果,但因為越界進行內在讀寫而導致程式崩潰,

Q7、寫一個“標準”宏,這個宏輸入兩個引數并回傳較小的一個,

答案:.#define Min(X, Y) ((X)>(Y)?(Y):(X)) //結尾沒有‘;’

Q8、嵌入式系統中經常要用到無限回圈,你怎么用C撰寫死回圈,

答案:while(1){}或者for(;;)

Q9、關鍵字static的作用是什么?

答案:定義靜態變數

Q10、關鍵字const有什么含意?

答案:表示常量不可以修改的變數,

Q11、關鍵字volatile有什么含意?并舉出三個不同的例子?

答案:提示編譯器物件的值可能在編譯器未監測到的情況下改變,

Q12、int (*s[10])(int) 表示的是什么啊?

答案:int (*s[10])(int) 函式指標陣列,每個指標指向一個int func(int param)的函式,

Q13、有以下運算式:

int a=248; b=4;int const c=21;const int *d=&a;

int *const e=&b;int const *f const =&a;

請問下列運算式哪些會被編譯器禁止?為什么?

答案:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;

*c 這是個什么東東,禁止

*d 說了是const, 禁止

e = &a 說了是const 禁止

const *f const =&a; 禁止

Q14、交換兩個變數的值,不使用第三個變數,即a=3,b=5,交換之后a=5,b=3;

答案:有兩種解法, 一種用算術演算法, 一種用^(異或)

a = a + b;

b = a - b;

a = a - b;

or

a = a^b;// 只能對int,char..

b = a^b;

a = a^b;

or

a ^= b ^= a;

Q15、c和c++中的struct有什么不同?

答案:c和c++中struct的主要區別是c中的struct不可以含有成員函式,而c++中的struct可以,c++中struct和class的主要區別在于默認的存取權限不同,struct默認為public,而class默認為private

Q.16、

#include <stdio.h>

#include <stdlib.h>

void getmemory(char *p)

{

p=(char *) malloc(100);

strcpy(p,"hello world");

}

int main( )

{

char *str=NULL;

getmemory(str);

printf("%s/n",str);

free(str);

return 0;

}

答案:程式崩潰,getmemory中的malloc 不能回傳動態記憶體, free()對str操作很危險

Q17、

.char szstr[10];

strcpy(szstr,"0123456789");

產生什么結果?為什么?

答案: 長度不一樣,會造成非法的OS

Q18、列舉幾種行程的同步機制,并比較其優缺點,

答案: 原子操作

信號量機制

自旋鎖

管程,會合,分布式系統

Q19、行程之間通信的途徑

答案:共享存盤系統

訊息傳遞系統

管道:以檔案系統為基礎

Q20、行程死鎖的原因

答案:資源競爭及行程推進順序非法

Q21、死鎖的4個必要條件

答案:互斥、請求保持、不可剝奪、環路

Q22、死鎖的處理

答案:鴕鳥策略、預防策略、避免策略、檢測與解除死鎖

Q23、作業系統中行程調度策略有哪幾種?

答案:FCFS(先來先服務),優先級,時間片輪轉,多級反饋

Q24、類的靜態成員和非靜態成員有何區別?

答案:類的靜態成員每個類只有一個,非靜態成員每個物件一個

Q25、純虛函式如何定義?使用時應注意什么?

答案:virtual void f()=0;

是介面,子類必須要實作

Q26、陣列和鏈表的區別

答案:陣列:資料順序存盤,固定大小

連表:資料可以隨機存盤,大小可動態改變

Q27、ISO的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優缺點?

答案:應用層、表示層、會話層、運輸層、網路層、物理鏈路層、物理層

tcp /udp屬于運輸層

TCP 服務提供了資料流傳輸、可靠性、有效流控制、全雙工操作和多路復用技術等

與 TCP 不同, UDP 并不提供對 IP 協議的可靠機制、流控制以及錯誤恢復功能等,由于 UDP 比較簡單, UDP 頭包含很少的位元組,比 TCP 負載消耗少,

tcp: 提供穩定的傳輸服務,有流量控制,缺點是包頭大,冗余性不好

udp: 不提供穩定的服務,包頭小,開銷小

Q28、(void *)ptr 和 (*(void**))ptr的結果是否相同?其中ptr為同一個指標

答案:.(void *)ptr 和 (*(void**))ptr值是相同的

Q29、

int main()

{

int x=3;

printf("%d",x);

return 1;

}

問函式既然不會被其它函式呼叫,為什么要回傳1?

答案:mian中,c標準認為0表示成功,非0表示錯誤,具體的值是某中具體出錯資訊

Q30、要對絕對地址0x100000賦值,我們可以用(unsigned int*)0x100000 = 1234;

那么要是想讓程式跳轉到絕對地址是0x100000去執行,應該怎么做?

答案:*((void (*)( ))0x100000 ) ( );

首先要將0x100000強制轉換成函式指標,即:

(void (*)())0x100000

然后再呼叫它:

*((void (*)())0x100000)();

用typedef可以看得更直觀些:

typedef void(*)() voidFuncPtr;

*((voidFuncPtr)0x100000)();

Q31、已知一個陣列table,用一個宏定義,求出資料的元素個數

答案:#define NTBL

#define NTBL (sizeof(table)/sizeof(table[0]))

Q32、執行緒與行程的區別和聯系? 執行緒是否具有相同的堆疊? dll是否有獨立的堆疊?

答案:行程是死的,只是一些資源的集合,真正的程式執行都是執行緒來完成的,程式啟動的時候作業系統就幫你創建了一個主執行緒,

每個執行緒有自己的堆疊,

DLL中有沒有獨立的堆疊,這個問題不好回答,或者說這個問題本身是否有問題,因為DLL中的代碼是被某些執行緒所執行,只有執行緒擁有堆疊,如果DLL中的代碼是EXE中的執行緒所呼叫,那么這個時候是不是說這個DLL沒有自己獨立的堆疊?如果DLL中的代碼是由DLL自己創建的執行緒所執行,那么是不是說DLL有獨立的堆疊?

以上講的是堆疊,如果對于堆來說,每個DLL有自己的堆,所以如果是從DLL中動態分配的記憶體,最好是從DLL中洗掉,如果你從DLL中分配記憶體,然后在EXE中,或者另外一個DLL中洗掉,很有可能導致程式崩潰

Q33、

unsigned short A = 10;

printf("~A = %u\n", ~A);

char c=128;

printf("c=%d\n",c);

輸出多少?并分析程序

答案:第一題,~A =0xfffffff5,int值 為-11,但輸出的是uint,所以輸出4294967285

第二題,c=0x10,輸出的是int,最高位為1,是負數,所以它的值就是0x00的補碼就是128,所以輸出-128,

這兩道題都是在考察二進制向int或uint轉換時的最高位處理,

以上就是華為基礎面試題加答案了,只不過這些是一些基礎的面試題,希望可以幫助大家,覺得這份基礎的面試題滿足不了大家,我這邊還有一些高級的面試題,也是華為的,需要的可以幫忙點個關注,私信或者【點擊這里,暗號CSDN】來找我獲取!純分享!

最后給大家安利一個最近分享比較多的一個PDF檔案,說這份檔案整理的很詳細,需要的也可以來找我,獲取方式就在上方!

?èa20k??¥???è?ˉ????μèˉ?·¥?¨??????é??è|?·?¤?a?o?¥èˉ?1??

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290414.html

標籤:其他

上一篇:[含原始碼等]javaweb圖書借閱管理系統[包運行成功]

下一篇:計算機畢業設計課設設計java系統開發-javaweb點餐系統全套

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more