青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

風雨兼程

ring my bells
posts - 49, comments - 14, trackbacks - 0, articles - 0

C/C++面試題2

Posted on 2008-05-22 21:55 silentneil 閱讀(482) 評論(0)  編輯 收藏 引用

1.
 關鍵字static的作用是什么?
在C語言中,關鍵字static有三個明顯的作用:
1)在函數體,一個被聲明為靜態的變量在這一函數被調用過程中維持其值不變。
2) 在模塊內(但在函數體外),一個被聲明為靜態的變量可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變量。
3) 在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用。
 
2.
const最經常的用法
 1.為了防止傳遞的函數參數不被修改,在調用函數的形參中用const關鍵字.
2.const可以用來創建數組常量、指針常量、指向常量的指針等
const int a;     //前兩個的作用是一樣,a是一個常整型數。
int const a;
const int *a;    //第三個意味著a是一個指向常整型數的指針(也就是,整型數是不可修改的,但指針可以)。
int * const a;
int const * a const; //第四個意思a是一個指向整型數的常指針(也就是說,指針指向的整型數是可以修改的,但指針是不可修改的)。最后一個意味著a是一個指向常整型數的常指針(也就是說,指針指向的整型數是不可修改的,同時指針也是不可修改的)。
//注:const并不會阻止參數的修改

3.
下面的代碼輸出是什么,為什么?
void foo(void)
{
    unsigned int a = 6;
    int b = -20;
    (a+b > 6) ? puts("> 6") : puts("<= 6");
}
//當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型。
因此-20變成了一個非常大的正整數,所以該表達式計算出的結果大于6。
 
4.
#define dPS struct s *
typedef struct s * tPS;
以上兩種情況的意圖都是要定義dPS 和 tPS 作為一個指向結構s指針。哪種方法更好呢?(如果有的話)為什么?
這是一個非常微妙的問題,任何人答對這個問題(正當的原因)是應當被恭喜的。答案是:typedef更好。思考下面的例子:
dPS p1,p2;
tPS p3,p4;
第一個擴展為
struct s * p1, p2;
.上面的代碼定義p1為一個指向結構的指,p2為一個實際的結構,這也許不是你想要的。第二個例子正確地定義了p3 和p4 兩個指針。晦澀的語法
 
5.int a = 5, b = 7, c;
c = a+++b;//<==>c = a++ + b;
這段代碼持行后a = 6, b = 7, c = 12。
 

6.
寫出判斷ABCD四個表達式的是否正確, 若正確, 寫出經過表達式中 a的值(3分)
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?
答:C錯誤,左側不是一個有效變量,不能賦值,可改為(++a) += a;
改后答案依次為9,10,10,11

7.頭文件中的 ifndef/define/endif 干什么用?預處理
答:防止頭文件被重復引用

8. switch()中不允許的數據類型是?
答:實型

9.
編寫strcat函數(6分)
已知strcat函數的原型是char *strcat (char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
(1)不調用C++/C 的字符串庫函數,請編寫函數 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 的內容連接到strDest,為什么還要char * 類型的返回值?
答:方便賦值給其他變量

10.

回答下面的問題(6分)
(1).Void GetMemory(char **p, int num){
*p = (char *)malloc(num);
}
void Test(void){
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
請問運行Test 函數會有什么樣的結果?
答:輸出“hello”
(2). void Test(void){
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL){
strcpy(str, “world”);
printf(str);
}
}
請問運行Test 函數會有什么樣的結果?
答:輸出“world”
(3). char *GetMemory(void){
char p[] = "hello world";
return p;
}
void Test(void){
char *str = NULL;
str = GetMemory();
printf(str);
}
請問運行Test 函數會有什么樣的結果?
答:無效的指針,輸出不確定
 
11.
程序什么時候應該使用線程,什么時候單線程效率高。
答:1.耗時的操作使用線程,提高應用程序響應
2.并行操作時使用線程,如C/S架構的服務器端并發線程響應用戶的請求。
3.多CPU系統中,使用線程提高CPU利用率
4.改善程序結構。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨
立的運行部分,這樣的程序會利于理解和修改。
其他情況都使用單線程。

12
.C++中什么數據分配在棧或堆中,New分配數據是在近堆還是遠堆中?
答:棧: 存放局部變量,函數調用參數,函數返回值,函數返回地址。由系統管理
堆: 程序運行時動態申請,new 和 malloc申請的內存就在堆上
13.
int i=10, j=10, k=3;
k*=i+j; k最后的值是?
答:60,此題考察優先級,實際寫成: k*=(i+j);,賦值運算符優先級最低

14.
ICMP是什么協議,處于哪一層?
答:Internet控制報文協議,處于網絡層(IP層)
15.
全局變量和局部變量在內存中是否有區別?如果有,是什么區別?
      全局變量儲存在靜態數據庫,局部變量在堆棧。
17.
-1,2,7,28,,126請問28和126中間那個數是什么?為什么?
第一題的答案應該是4^3-1=63
規律是n^3-1(當n為偶數0,2,4)
      n^3+1(當n為奇數1,3,5)
 
18.
Heap與stack的差別。
Heap是堆,stack是棧。
Stack的空間由操作系統自動分配/釋放,Heap上的空間手動分配/釋放。
Stack空間有限,Heap是很大的自由存儲區
C中的malloc函數分配的內存空間即在堆上,C++中對應的是new操作符。
程序在編譯期對變量和函數分配內存都在棧上進行,且程序運行過程中函數調用時參數的傳遞也在棧上進行

19.
用宏定義寫出swap(x,y)     //如果把較長的宏定義分成干行,須在待續的行末尾加上\
#define swap(x,y) \
x=x+y;\
y=x-y;\
x=x-y
注意:結尾沒有;
20
一個指針為4個字節
 int *p;
 printf("%d",sizeof(p));//輸出: 4

void Func(char str[100])
{
printf("%d\n", sizeof(str));
}
答:
4
分析:
指針長度
一個32位的機器,該機器的指針是多少位
指針是多少位只要看地址總線的位數就行了。80386以后的機子都是32的數據總線。所以指針的位數就是4個字節了。
21.
main()
{
  int a[5]={1,2,3,4,5};
   int *ptr=(int *)(&a+1);    //ptr實際是&(a[5]),也就是a+5
   printf("%d,%d",*(a+1),*(ptr-1));
}
輸出:2,5
*(a+1)就是a[1],*(ptr-1)就是a[4],執行結果是2,5
&a+1不是首地址+1,系統會認為加一個a數組的偏移,是偏移了一個數組的大小(本例是5個int)
int *ptr=(int *)(&a+1);  則ptr實際是&(a[5]),也就是a+5
原因如下:
&a是數組指針,其類型為 int (*)[5];
而指針加1要根據指針類型加上一定的值,不同類型的指針+1之后增加的大小不同 .a是長度為5的int數組指針,所以要加 5*sizeof(int)
所以ptr實際是a[5]  .但是ptr與(&a+1)類型是不一樣的(這點很重要)
所以prt-1只會減去sizeof(int*)
a,&a的地址是一樣的,但意思不一樣,a是數組首地址,也就是a[0]的地址,&a是對象(數組)首地址,a+1是數組下一元素的地址,即a[1],&a+1是下一個對象的地址,即a[5].

22.
1)給定結構struct A
{
       char t:4;
       char k:4;
       unsigned short i:8;
       unsigned long m;
};問sizeof(A) = ?
給定結構struct A
{
       char t:4; 4位
       char k:4; 4位
       unsigned short i:8; 8位     
       unsigned long m; // 偏移2字節保證4字節對齊
}; // 共8字節

23.
//輸出結果: 15
#include<stdio.h>
int main(void)
{
 char aa[10];
    printf("%d",strlen(aa));
 return 0;
}
 
24.
C和C++有什么不同?
從機制上:c是面向過程的(但c也可以編寫面向對象的程序);c++是面向對象的,提供了類。但是,
c++編寫面向對象的程序比c容易
從適用的方向:c適合要求代碼體積小的,效率高的場合,如嵌入式;c++適合更上層的,復雜的; llinux核心大部分是c寫的,因為它是系統軟件,效率要求極高。
從名稱上也可以看出,c++比c多了+,說明c++是c的超集;那為什么不叫c+而叫c++呢,是因為c++比
c來說擴充的東西太多了,所以就在c后面放上兩個+;于是就成了c++
C語言是結構化編程語言,C++是面向對象編程語言。
C++側重于對象而不是過程,側重于類的設計而不是邏輯的設計。

25 &和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
26,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1) .short s1 = 1; s1 += 1正確。

27.
17.在不用第三方參數的情況下,交換兩個參數的值
#include <stdio.h>
void main()
{
    int i=60;
    int j=50;
    i=i+j;
    j=i-j;
    i=i-j;
    printf("i=%d\n",i);
    printf("j=%d\n",j);
}
方法二:
i^=j;
j^=i;
i^=j;
方法三:
// 用加減實現,而且不會溢出
a = a+b-(b=a)
28.
假設你有8個球,其中一個略微重一些,但是找出這個球的惟一方法是將兩個球放在天平上對比。最少要稱多少次才能找出這個較重的球?

答:
2次就可以了,方法:將其分成3堆,分別是3個、3個、2個。
第一次天平兩邊各放3個,會有兩種情況,一、兩邊持平一樣重,那較重的球則不在里面,那就把剩下的兩個稱一下就能找到較重那個了。第二種情況是有一邊較重,那較重的球就在較重那邊的3個之中,第二次稱就是就在這3個之中拿出兩個來比較,也有兩種情況,持平則較重的是沒放進去稱的那個,有一邊較重則那個就是較重的。


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美乱人伦中文字幕在线| 亚洲男女自偷自拍| 亚洲欧美日韩视频二区| 亚洲午夜91| 欧美一区激情视频在线观看| 午夜久久tv| 久久一区二区三区四区| 免费亚洲网站| 99在线|亚洲一区二区| 亚洲欧美激情诱惑| 久久久久这里只有精品| 欧美精品啪啪| 狠狠久久婷婷| 一区二区三区视频在线观看| 久久久.com| 日韩一区二区免费高清| 久久精品动漫| 欧美日韩三级视频| 激情成人亚洲| 亚洲专区在线视频| 欧美大色视频| 亚洲一区二区3| 免费在线观看成人av| 国产精品丝袜xxxxxxx| 亚洲国产成人高清精品| 亚洲欧美日韩人成在线播放| 亚洲第一精品夜夜躁人人爽| 一区二区国产日产| 免费一区二区三区| 国产日韩在线一区| 中文国产成人精品久久一| 六月婷婷久久| 午夜精品理论片| 欧美日韩在线高清| 亚洲激情网址| 免费欧美高清视频| 亚洲欧美日本国产有色| 欧美日韩精品伦理作品在线免费观看| 国产在线欧美| 欧美在线一级视频| 亚洲私人影院在线观看| 国产亚洲视频在线观看| 亚洲高清毛片| 欧美影院精品一区| 国产精品乱码一区二三区小蝌蚪 | 亚洲成人直播| 午夜在线观看免费一区| 国产精品magnet| 中文欧美字幕免费| 日韩午夜免费视频| 欧美精品一区二区三区久久久竹菊 | 蜜臀av一级做a爰片久久| 国产综合av| 久久久精品国产免大香伊| 午夜精品福利一区二区三区av| 欧美日在线观看| 亚洲一区免费视频| 亚洲一区欧美| 国产视频一区二区三区在线观看| 亚洲欧美视频在线| 亚洲欧美国产日韩天堂区| 国产精品毛片在线| 性久久久久久久久| 午夜精品亚洲一区二区三区嫩草| 国产欧美亚洲一区| 久久精品国产综合| 久久精品国产久精国产思思| 韩国三级在线一区| 欧美大片va欧美在线播放| 欧美+日本+国产+在线a∨观看| 亚洲欧洲一区二区天堂久久| 亚洲人久久久| 国产精品ⅴa在线观看h| 亚洲资源在线观看| 欧美一区二区三区四区在线观看地址 | 国产精品一区一区三区| 亚洲一区二区三区午夜| 亚洲四色影视在线观看| 国产美女精品在线| 免费在线观看成人av| 欧美承认网站| 亚洲欧美电影院| 欧美一区二区在线观看| 在线看国产日韩| 亚洲免费精品| 国语自产精品视频在线看| 国产精品美女午夜av| 久久精品成人欧美大片古装| 一区二区三区欧美在线| 国产亚洲激情在线| 亚洲国产成人porn| 国产精品极品美女粉嫩高清在线 | 亚洲日本一区二区三区| 亚洲性xxxx| 91久久综合| 欧美一区二区三区免费视| 亚洲精品日韩精品| 欧美一区二区三区免费大片| 99国产欧美久久久精品| 久久精品国产v日韩v亚洲 | 国产欧美欧美| 亚洲国产另类久久久精品极度| 国产伦精品一区二区三区免费迷| 亚洲电影av在线| 韩国一区电影| 亚洲免费在线观看视频| 亚洲免费成人| 久久综合九色综合欧美就去吻| 午夜精品短视频| 欧美精品久久久久久久久久| 久久久久国产精品一区二区| 欧美体内谢she精2性欧美| 久久9热精品视频| 牛夜精品久久久久久久99黑人| 欧美影院精品一区| 欧美日韩精品综合| 亚洲国产精品久久91精品| 欧美日韩亚洲国产一区| 欧美国产日韩一区| 国内外成人在线| 亚洲欧美成人一区二区三区| 国产精品99久久久久久久女警| 久久综合九色综合久99| 美女图片一区二区| 国产一区二区三区在线观看免费 | 久久久国产精彩视频美女艺术照福利| 一区二区精品国产| 欧美成人精品不卡视频在线观看| 久久女同精品一区二区| 国产精品三级视频| 亚洲一区二区三区欧美| 亚洲综合欧美| 国产欧美不卡| 久久国产精品一区二区三区四区| 久久婷婷综合激情| 影院欧美亚洲| 美女脱光内衣内裤视频久久影院| 欧美刺激性大交免费视频| 91久久精品国产91性色| 欧美激情精品久久久久久大尺度| 亚洲国产va精品久久久不卡综合| 亚洲精品网站在线播放gif| 欧美黑人一区二区三区| 亚洲精选在线观看| 欧美视频三区在线播放| 亚洲一区一卡| 国产午夜亚洲精品羞羞网站| 久久精品人人做人人爽电影蜜月| 久久综合狠狠综合久久综合88| 国内久久精品| 欧美激情久久久久久| 在线一区二区日韩| 性高湖久久久久久久久| 久久久久女教师免费一区| 亚洲午夜一区二区| 国产欧美丝祙| 麻豆91精品| 99国产精品99久久久久久| 欧美一区二区成人6969| 在线观看视频一区| 欧美日本一区二区视频在线观看| 一区二区成人精品| 另类专区欧美制服同性| 亚洲视频每日更新| 国色天香一区二区| 欧美日韩aaaaa| 欧美在线视频导航| 亚洲三级国产| 久久久99免费视频| av成人福利| 国产又爽又黄的激情精品视频| 欧美激情亚洲国产| 久久精品国产一区二区三| 亚洲美女91| 你懂的视频欧美| 午夜影视日本亚洲欧洲精品| 亚洲第一网站免费视频| 国产精品热久久久久夜色精品三区| 久久人体大胆视频| 亚洲四色影视在线观看| 欧美激情女人20p| 久久成人精品视频| 亚洲手机视频| 亚洲精品一区二区三| 精品成人在线视频| 国产精品欧美精品| 欧美日产一区二区三区在线观看| 久久精品天堂| 欧美一级午夜免费电影| 一区二区高清在线观看| 亚洲第一精品久久忘忧草社区| 久久婷婷激情| 久久久久久电影| 久久国产婷婷国产香蕉| 香蕉成人伊视频在线观看| 亚洲视频专区在线| 夜夜嗨av色一区二区不卡| 亚洲黄色有码视频| 伊人久久男人天堂| 国产伊人精品|