牛客網刷題——心裡沒數的題
阿新 • • 發佈:2018-12-28
1.
題目:
以下程式段的執行結果是()。
double x;x=218.82631;
printf("%-6.2e\n",x);
A.輸出格式描述符的域寬不夠,不能輸出
B.輸出為21.38e+01
C.輸出為2.19e+02
D.輸出為-2.14e2
答案:
C。 %:表示格式說明的起始符號,也是轉義符號,有一題 printf(“%%%%”)輸出幾個?答案輸出%% 兩個 -:有-表示左對齊輸出,如省略表示右對齊輸出 0:有0表示指定空位填0,如省略表示指定空位不填 m.n m指域寬,即對應的輸出項在輸出裝置上所佔的字元數。 n指精度。用於說明輸出的實型數的小數位數。沒有指定n時,隱含的精度為n=6位 e格式表示以指數形式輸出實數 那麼這題的意思是以左對齊、指數形式、總長度m =6、小數n=2兩位 輸出 如果實際長度大於域寬,則以實際長度為準
2.
題目:
某32位系統下, C++程式如下所示,sizeof 的值應為? char str[] = “http://www.renren.com” (長度為21) char *p = str ; sizeof (str ) = ?(1) sizeof ( p ) = ?(2) void Foo ( char str[100]){ sizeof( str ) = ?(3) } void *p = malloc( 100 ); sizeof ( p ) = ?(4) A.22, 22, 100, 100 B.4, 4, 4, 4 C.22, 4, 4, 4 D.22, 4, 100, 4
答案:
C.
第一個長度為21,加上\0為22,第二個在32位作業系統中,指標大小為4,第三個,陣列在作為函式的形參時,自動退化為同類型的指標,第四個指向開闢的記憶體的指標,大小仍然為4
陣列長度就是你定義陣列時方括號中數字的大小。
字串長度就是字元的個數。
字串所佔空間大小就是字串長度+1(1個結束符的長度);
作為函式的形參傳遞時陣列退化為指標
char c[10]={'x','y','z'},d[]={'x','y','z'}; 不以‘\0’作為結束標誌的,它就沒有串結束標誌, 字元陣列的長度,就是陣列的長度
sizeof(c)=10,sizeof(d)=3