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

正文內(nèi)容

[其它考試]c語(yǔ)言面試題匯總-資料下載頁(yè)

2025-03-23 00:46本頁(yè)面
  

【正文】 0]。printf(%d,strlen(aa))。}sizeof()和初不初始化,沒有關(guān)系;strlen()和初始化有關(guān)。char (*str)[20]。/*str是一個(gè)數(shù)組指針,即指向數(shù)組的指針.*/char *str[20]。/*str是一個(gè)指針數(shù)組,其元素為指針型數(shù)據(jù).*/long a=0x801010。a+5=?0x801010用二進(jìn)制表示為:“1000 0000 0001 0000 0001 0000”,十進(jìn)制的值為8392720,再加上5就是8392725羅1)給定結(jié)構(gòu)struct A {char t:4。char k:4。unsigned short i:8。unsigned long m。}。問(wèn)sizeof(A) = ?給定結(jié)構(gòu)struct A {char t:4。 4位char k:4。 4位unsigned short i:8。 8位 unsigned long m。 // 偏移2字節(jié)保證4字節(jié)對(duì)齊}。 // 共8字節(jié)2)下面的函數(shù)實(shí)現(xiàn)在一個(gè)數(shù)上加一個(gè)數(shù),有什么錯(cuò)誤?請(qǐng)改正。int add_n ( int n ){static int i = 100。i += n。return i。}當(dāng)你第二次調(diào)用時(shí)得不到正確的結(jié)果,難道你寫個(gè)函數(shù)就是為了調(diào)用一次?問(wèn)題就出在 static上?// 幫忙分析一下includeinclude include include include include typedef struct AA{int b1:5。int b2:2。}AA。void main(){AA aa。char cc[100]。strcpy(cc,0123456789abcdefghijklmnopqrstuvwxyz)。memcpy(amp。aa,cc,sizeof(AA))。cout endl。cout endl。}答案是 16和1首先sizeof(AA)的大小為4,b1和b2分別占5bit和2bit.經(jīng)過(guò)strcpy和memcpy后,aa的4個(gè)字節(jié)所存放的值是:0,1,2,3的ASC碼,即00110000,00110001,00110010,00110011所以,最后一步:顯示的是這4個(gè)字節(jié)的前5位,和之后的2位分別為:10000,和01因?yàn)閕nt是有正負(fù)之分  所以:答案是16和1求函數(shù)返回值,輸入x=9999。 int func ( x ){ int countx = 0。 while ( x ) { countx ++。 x = xamp。(x1)。 } return countx。 } 結(jié)果呢?知道了這是統(tǒng)計(jì)9999的二進(jìn)制數(shù)值中有多少個(gè)1的函數(shù),且有9999=91024+512+256+1591024中含有1的個(gè)數(shù)為2;512中含有1的個(gè)數(shù)為1;256中含有1的個(gè)數(shù)為1;15中含有1的個(gè)數(shù)為4;故共有1的個(gè)數(shù)為8,結(jié)果為8。1000 1 = 0111,正好是原數(shù)取反。這就是原理。用這種方法來(lái)求1的個(gè)數(shù)是很效率很高的。不必去一個(gè)一個(gè)地移位。循環(huán)次數(shù)最少。int a,b,c 請(qǐng)寫函數(shù)實(shí)現(xiàn)C=a+b ,不可以改變數(shù)據(jù)類型,如將c改為long int,關(guān)鍵是如何處理溢出問(wèn)題bool add (int a, int b,int *c){*c=a+b。return (a0 amp。amp。 b0 amp。amp。(*ca || *cb) || (a0 amp。amp。 b0 amp。amp。(*ca || *cb)))。}分析:struct bit { int a:3。 int b:2。 int c:3。 }。 int main() { bit s。 char *c=(char*)amp。s。 coutsizeof(bit)endl。*c=0x99。cout endl endlendl。 int a=1。printf(%x,a)。return 0。 } 輸出為什么是4114ffffffff因?yàn)?x99在內(nèi)存中表示為 100 11 001 , a = 001, b = 11, c = 100當(dāng)c為有符合數(shù)時(shí), c = 100, 最高1為表示c為負(fù)數(shù),負(fù)數(shù)在計(jì)算機(jī)用補(bǔ)碼表示,所以c = 4。同理 b = 1。當(dāng)c為有符合數(shù)時(shí), c = 100,即 c = 4,同理 b = 3位域 : 有些信息在存儲(chǔ)時(shí),并不需要占用一個(gè)完整的字節(jié), 而只需占幾個(gè)或一個(gè)二進(jìn)制位。例如在存放一個(gè)開關(guān)量時(shí),只有0和1 兩種狀態(tài),用一位二進(jìn)位即可。為了節(jié)省存儲(chǔ)空間,并使處理簡(jiǎn)便,C語(yǔ)言又提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位域”或“位段”。所謂“位域”是把一個(gè)字節(jié)中的二進(jìn)位劃分為幾個(gè)不同的區(qū)域, 并說(shuō)明每個(gè)區(qū)域的位數(shù)。每個(gè)域有一個(gè)域名,允許在程序中按域名進(jìn)行操作。這樣就可以把幾個(gè)不同的對(duì)象用一個(gè)字節(jié)的二進(jìn)制位域來(lái)表示。一、位域的定義和位域變量的說(shuō)明位域定義與結(jié)構(gòu)定義相仿,其形式為: struct 位域結(jié)構(gòu)名 { 位域列表 }。 其中位域列表的形式為: 類型說(shuō)明符 位域名:位域長(zhǎng)度 例如: struct bs { int a:8。 int b:2。 int c:6。 }。 位域變量的說(shuō)明與結(jié)構(gòu)變量說(shuō)明的方式相同。 可采用先定義后說(shuō)明,同時(shí)定義說(shuō)明或者直接說(shuō)明這三種方式。例如: struct bs { int a:8。 int b:2。 int c:6。 }data。 說(shuō)明data為bs變量,共占兩個(gè)字節(jié)。其中位域a占8位,位域b占2位,位域c占6位。對(duì)于位域的定義尚有以下幾點(diǎn)說(shuō)明: 1. 一個(gè)位域必須存儲(chǔ)在同一個(gè)字節(jié)中,不能跨兩個(gè)字節(jié)。如一個(gè)字節(jié)所??臻g不夠存放另一位域時(shí),應(yīng)從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如: struct bs { unsigned a:4 unsigned :0 /*空域*/ unsigned b:4 /*從下一單元開始存放*/ unsigned c:4 } 在這個(gè)位域定義中,a占第一字節(jié)的4位,后4位填0表示不使用,b從第二字節(jié)開始,占用4位,c占用4位。 2. 由于位域不允許跨兩個(gè)字節(jié),因此位域的長(zhǎng)度不能大于一個(gè)字節(jié)的長(zhǎng)度,也就是說(shuō)不能超過(guò)8位二進(jìn)位。 3. 位域可以無(wú)位域名,這時(shí)它只用來(lái)作填充或調(diào)整位置。無(wú)名的位域是不能使用的。例如: struct k { int a:1 int :2 /*該2位不能使用*/ int b:3 int c:2 }。 從以上分析可以看出,位域在本質(zhì)上就是一種結(jié)構(gòu)類型, 不過(guò)其成員是按二進(jìn)位分配的。 intel: ,編譯的時(shí)候會(huì)不會(huì)有問(wèn)題?這兩個(gè)static變量會(huì)保存到哪里(棧還是堆或者其他的)?static的全局變量,表明這個(gè)變量?jī)H在本模塊中有意義,不會(huì)影響其他模塊。他們都放在數(shù)據(jù)區(qū),但是編譯器對(duì)他們的命名是不同的。如果要使變量在其他模塊也有意義的話,需要使用extern關(guān)鍵字。struct s1{int i: 8。int j: 4。int a: 3。double b。}。struct s2{int i: 8。int j: 4。double b。int a:3。}。printf(sizeof(s1)= %d\n, sizeof(s1))。printf(sizeof(s2)= %d\n, sizeof(s2))。result: 16, 24第一個(gè)struct s1{int i: 8。int j: 4。int a: 3。double b。}。理論上是這樣的,首先是i在相對(duì)0的位置,占8位一個(gè)字節(jié),然后,j就在相對(duì)一個(gè)字節(jié)的位置,由于一個(gè)位置的字節(jié)數(shù)是4位的倍數(shù),因此不用對(duì)齊,就放在那里了,然后是a,要在3位的倍數(shù)關(guān)系的位置上,因此要移一位,在15位的位置上放下,目前總共是18位,折算過(guò)來(lái)是2字節(jié)2位的樣子,由于double是8 字節(jié)的,因此要在相對(duì)0要是8個(gè)字節(jié)的位置上放下,因此從18位開始到8個(gè)字節(jié)之間的位置被忽略,直接放在8字節(jié)的位置了,因此,總共是16字節(jié)。第二個(gè)最后會(huì)對(duì)照是不是結(jié)構(gòu)體內(nèi)最大數(shù)據(jù)的倍數(shù),不是的話,會(huì)補(bǔ)成是最大數(shù)據(jù)的倍數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1