freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

東軟c語言方向筆試題搜集-資料下載頁

2025-06-07 15:06本頁面
  

【正文】 為9,10,10,11, C++程序,請(qǐng)計(jì)算sizeof 的值(5分).char str[] = “”char *p = str 。int n = 10。請(qǐng)計(jì)算sizeof (str ) = ?(1)sizeof ( p ) = ?(2)sizeof ( n ) = ?(3)void Foo ( char str[100]){請(qǐng)計(jì)算sizeof( str ) = ?(4)}void *p = malloc( 100 )。請(qǐng)計(jì)算sizeof ( p ) = ?(5)答:(1)17 (2)4 (3) 4 (4)4 (5)43. 回答下面的問題. (4分)(1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理答:防止頭文件被重復(fù)引用(2). #i nclude 和 #i nclude “” 有什么區(qū)別?答:前者用來包含開發(fā)環(huán)境提供的庫頭文件,后者用來包含自己編寫的頭文件。(3).在C++ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern “C”聲明?答:函數(shù)和變量被C++編譯后在符號(hào)庫中的名字與C語言的不同,被extern C修飾的變量和函數(shù)是按照C語言方式編譯和連接的。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。C++提供了一個(gè)C 連接交換指定符號(hào)extern“C”來解決這個(gè)問題。(4). switch()中不允許的數(shù)據(jù)類型是?答:實(shí)型4. 回答下面的問題(6分)(1).Void GetMemory(char **p, int num){*p = (char *)malloc(num)。}void Test(void){char *str = NULL。GetMemory(amp。str, 100)。strcpy(str, hello)。printf(str)。}請(qǐng)問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:輸出“hello”(2). void Test(void){char *str = (char *) malloc(100)。strcpy(str, “hello”)。free(str)。if(str != NULL){strcpy(str, “world”)。printf(str)。}}請(qǐng)問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:輸出“world”(3). char *GetMemory(void){char p[] = hello world。return p。}void Test(void){char *str = NULL。str = GetMemory()。printf(str)。}請(qǐng)問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:無效的指針,輸出不確定5. 編寫strcat函數(shù)(6分)已知strcat函數(shù)的原型是char *strcat (char *strDest, const char *strSrc)。其中strDest 是目的字符串,strSrc 是源字符串。(1)不調(diào)用C++/C 的字符串庫函數(shù),請(qǐng)編寫函數(shù) strcat答:VC源碼:char * __cdecl strcat (char * dst, const char * src){char * cp = dst。while( *cp )cp++。 /* find end of dst */while( *cp++ = *src++ ) 。 /* Copy src to end of dst */return( dst )。 /* return dst */}(2)strcat能把strSrc 的內(nèi)容連接到strDest,為什么還要char * 類型的返回值?答:方便賦值給其他變量?答:不是,其它數(shù)據(jù)類型轉(zhuǎn)換到CString可以使用CString的成員函數(shù)Format來轉(zhuǎn)換++中為什么用模板類。答:(1)可用來創(chuàng)建動(dòng)態(tài)增長和減小的數(shù)據(jù)結(jié)構(gòu)(2)它是類型無關(guān)的,因此具有很高的可復(fù)用性。(3)它在編譯時(shí)而不是運(yùn)行時(shí)檢查數(shù)據(jù)類型,保證了類型安全(4)它是平臺(tái)無關(guān)的,可移植性(5)可用于基本數(shù)據(jù)類型。答:同步多個(gè)線程對(duì)一個(gè)數(shù)據(jù)類的同時(shí)訪問 是什么。答:物理字體結(jié)構(gòu),用來設(shè)置字體的高寬大小,什么時(shí)候單線程效率高。答:1.耗時(shí)的操作使用線程,提高應(yīng)用程序響應(yīng)2.并行操作時(shí)使用線程,如C/S架構(gòu)的服務(wù)器端并發(fā)線程響應(yīng)用戶的請(qǐng)求。3.多CPU系統(tǒng)中,使用線程提高CPU利用率4.改善程序結(jié)構(gòu)。一個(gè)既長又復(fù)雜的進(jìn)程可以考慮分為多個(gè)線程,成為幾個(gè)獨(dú)立或半獨(dú)立的運(yùn)行部分,這樣的程序會(huì)利于理解和修改。其他情況都使用單線程。答:見下一題。答:線程通常被定義為一個(gè)進(jìn)程中代碼的不同執(zhí)行路線。從實(shí)現(xiàn)方式上劃分,線程有兩種類型:“用戶級(jí)線程”和“內(nèi)核級(jí)線程”。 用戶線程指不需要內(nèi)核支持而在用戶程序中實(shí)現(xiàn)的線程,其不依賴于操作系統(tǒng)核心,應(yīng)用進(jìn)程利用線程庫提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制用戶線程。這種線程甚至在象 DOS 這樣的操作系統(tǒng)中也可實(shí)現(xiàn),但線程的調(diào)度需要用戶程序完成,這有些類似 Windows 的協(xié)作式多任務(wù)。另外一種則需要內(nèi)核的參與,由內(nèi)核完成線程的調(diào)度。其依賴于操作系統(tǒng)核心,由內(nèi)核的內(nèi)部需求進(jìn)行創(chuàng)建和撤銷,這兩種模型各有其好處和缺點(diǎn)。用戶線程不需要額外的內(nèi)核開支,并且用戶態(tài)線程的實(shí)現(xiàn)方式可以被定制或修改以適應(yīng)特殊應(yīng)用的要求,但是當(dāng)一個(gè)線程因 I/O 而處于等待狀態(tài)時(shí),整個(gè)進(jìn)程就會(huì)被調(diào)度程序切換為等待狀態(tài),其他線程得不到運(yùn)行的機(jī)會(huì);而內(nèi)核線程則沒有各個(gè)限制,有利于發(fā)揮多處理器的并發(fā)優(yōu)勢(shì),但卻占用了更多的系統(tǒng)開支。Windows NT和OS/2支持內(nèi)核線程。Linux 支持內(nèi)核級(jí)的多線程++中什么數(shù)據(jù)分配在?;蚨阎校琋ew分配數(shù)據(jù)是在近堆還是遠(yuǎn)堆中?答:棧: 存放局部變量,函數(shù)調(diào)用參數(shù),函數(shù)返回值,函數(shù)返回地址。由系統(tǒng)管理堆: 程序運(yùn)行時(shí)動(dòng)態(tài)申請(qǐng),new 和 malloc申請(qǐng)的內(nèi)存就在堆上。答:意思是如何防止同時(shí)產(chǎn)生大量的線程,方法是使用線程池,線程池具有可以同時(shí)提高調(diào)度效率和限制資源使用的好處,線程池中的線程達(dá)到最大數(shù)時(shí),其他線程就會(huì)排隊(duì)等候。15函數(shù)模板與類模板有什么區(qū)別?答:函數(shù)模板的實(shí)例化是由編譯程序在處理函數(shù)調(diào)用時(shí)自動(dòng)完成的,而類模板的實(shí)例化必須由程序員在程序中顯式地指定。16一般數(shù)據(jù)庫若出現(xiàn)日志滿了,會(huì)出現(xiàn)什么情況,是否還能使用?答:只能執(zhí)行查詢等讀操作,不能執(zhí)行更改,備份等寫操作,原因是任何寫操作都要記錄日志。也就是說基本上處于不能使用的狀態(tài)。17 SQL Server是否支持行級(jí)鎖,有什么好處?答:支持,設(shè)立封鎖機(jī)制主要是為了對(duì)并發(fā)操作進(jìn)行控制,對(duì)干擾進(jìn)行封鎖,保證數(shù)據(jù)的一致性和準(zhǔn)確性,行級(jí)封鎖確保在用戶取得被更新的行到該行進(jìn)行更新這段時(shí)間內(nèi)不被其它用戶所修改。因而行級(jí)鎖即可保證數(shù)據(jù)的一致性又能提高數(shù)據(jù)操作的迸發(fā)性。18如果數(shù)據(jù)庫滿了會(huì)出現(xiàn)什么情況,是否還能使用?答:見1619 關(guān)于內(nèi)存對(duì)齊的問題以及sizof()的輸出答:編譯器自動(dòng)對(duì)齊的原因:為了提高程序的性能,數(shù)據(jù)結(jié)構(gòu)(尤其是棧)應(yīng)該盡可能地在自然邊界上對(duì)齊。原因在于,為了訪問未對(duì)齊的內(nèi)存,處理器需要作兩次內(nèi)存訪問;然而,對(duì)齊的內(nèi)存訪問僅需要一次訪問。20 int i=10, j=10, k=3。 k*=i+j。 k最后的值是?答:60,此題考察優(yōu)先級(jí),實(shí)際寫成: k*=(i+j)。,賦值運(yùn)算符優(yōu)先級(jí)最低,同時(shí)要對(duì)另一張表進(jìn)行操作,如何實(shí)現(xiàn)?答:將操作多個(gè)表的操作放入到事務(wù)中進(jìn)行處理(3way shake)答:在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。,處于哪一層?答:Internet控制報(bào)文協(xié)議,處于網(wǎng)絡(luò)層(IP層)?答:觸發(fā)器主要是通過事件進(jìn)行觸發(fā)而被執(zhí)行的,當(dāng)對(duì)某一表進(jìn)行諸如UPDATE、 INSERT、 DELETE 這些操作時(shí),數(shù)據(jù)庫就會(huì)自動(dòng)執(zhí)行觸發(fā)器所定義的SQL 語句,從而確保對(duì)數(shù)據(jù)的處理必須符合由這些SQL 語句所定義的規(guī)則。?答:服務(wù)器端:socker()建立套接字,綁定(bind)并監(jiān)聽(listen),用accept()等待客戶端連接??蛻舳耍簊ocker()建立套接字,連接(connect)服務(wù)器,連接上后使用send()和recv(),在套接字上寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,closesocket()關(guān)閉套接字。服務(wù)器端:accept()發(fā)現(xiàn)有客戶端連接,建立一個(gè)新的套接字,自身重新開始等待連接。該新產(chǎn)生的套接字使用send()和recv()寫讀數(shù)據(jù),直至數(shù)據(jù)交換完畢,closesocket()關(guān)閉套接字。?答:調(diào)用一個(gè)DLL中的函數(shù)有兩種方法:1.載入時(shí)動(dòng)態(tài)鏈接(loadtime dynamic linking),模塊非常明確調(diào)用某個(gè)導(dǎo)出函數(shù),使得他們就像本地函數(shù)一樣。這需要鏈接時(shí)鏈接那些函數(shù)所在DLL的導(dǎo)入庫,導(dǎo)入庫向系統(tǒng)提供了載入DLL時(shí)所需的信息及DLL函數(shù)定位。2.運(yùn)行時(shí)動(dòng)態(tài)鏈接(runtime dynamic linking),運(yùn)行時(shí)可以通過LoadLibrary或LoadLibraryEx函數(shù)載入DLL。DLL載入后,模塊可以通過調(diào)用GetProcAddress獲取DLL函數(shù)的出口地址,然后就可以通過返回的函數(shù)指針調(diào)用DLL函數(shù)了。如此即可避免導(dǎo)入庫文件了。?答:Internet上產(chǎn)生的許多新的應(yīng)用,特別是高帶寬的多媒體應(yīng)用,帶來了帶寬的急劇消耗和網(wǎng)絡(luò)擁擠問題。組播是一種允許一個(gè)或多個(gè)發(fā)送者(組播源)發(fā)送單一的數(shù)據(jù)包到多個(gè)接收者(一次的,同時(shí)的)的網(wǎng)絡(luò)技術(shù)。組播可以大大的節(jié)省網(wǎng)絡(luò)帶寬,因?yàn)闊o論有多少個(gè)目標(biāo)地址,在整個(gè)網(wǎng)絡(luò)的任何一條鏈路上只傳送單一的數(shù)據(jù)包。所以說組播技術(shù)的核心就是針對(duì)如何節(jié)約網(wǎng)絡(luò)資源的前提下保證服務(wù)質(zhì)量。19. 如何引用一個(gè)已經(jīng)定義過的全局變量?答:extern可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個(gè)在頭文件中聲明的全局變理,假定你將那個(gè)變寫錯(cuò)了,那么在編譯期間會(huì)報(bào)錯(cuò),如果你用extern方式引用時(shí),假定你犯了同樣的錯(cuò)誤,那么在編譯期間不會(huì)報(bào)錯(cuò),而在連接期間報(bào)錯(cuò)。20. ?為什么?答:可以,在不同的C文件中以static形式來聲明同名全局變量??梢栽诓煌腃文件中聲明同名的全局變量,前提是其中只能有一個(gè)C文件中對(duì)此變量賦初值,此時(shí)連接不會(huì)出錯(cuò)。21. 語句for( ;1 ;)有什么問題?它是什么意思?答:無限循環(huán),和while(1)相同。22. do……while和while……do有什么區(qū)別?答:前一個(gè)循環(huán)一遍再判斷,后一個(gè)判斷以后再循環(huán)。23. 請(qǐng)寫出下列代碼的輸出內(nèi)容includemain(){int a,b,c,d。a=10。b=a++。c=++a。d=10*a++。printf(b,c,d:%d,%d,%d,b,c,d)。return 0。}答:10,12,1201. 以下三條輸出語句分別輸出什么?char str1[] = abc。char str2[] = abc。const char str3[] = abc。const char str4[] = abc。const char* str5 = abc。const char* str6 = abc。cout boolalpha ( str1==str2 ) endl。 // 輸出什么?cout boolalpha ( str3==str4 ) endl。 // 輸出什么?cout boolalpha ( str5==str6 ) endl。 // 輸出什么?答:分別輸出false,false,true。str1和str2都是字符數(shù)組,每個(gè)都有其自己的存儲(chǔ)區(qū),它們的值則是各存儲(chǔ)區(qū)首地址,不等;str3和str4同上,只是按const語義,它們所指向的數(shù)據(jù)區(qū)不能修改。str5和str6并非數(shù)組而是字符指針,并不分配存儲(chǔ)區(qū),其后的“abc”以常量形式存于靜態(tài)數(shù)據(jù)區(qū),而它們自己僅是指向該區(qū)首地址的指針,相等。2. 以下代碼中的兩個(gè)sizeof用法有問題嗎?void UpperCase( char str[] ) // 將 str 中的小寫字母轉(zhuǎn)換成大寫字母{for( size_t i=0。 iif( 39。a39。=str[i] amp。amp。 str[i]=39。z39。 )str[i] = (39。a39。39。A39。 )。}char str[] = aBcDe。cout str字符長度為: sizeof(str)/sizeof(str[0]) endl。UpperCase( str )。cout str endl。答:函數(shù)內(nèi)的sizeof有問題。根據(jù)語法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為6,函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒有任何
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1