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

風雨兼程

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>
            久久精品亚洲热| 欧美先锋影音| 国产精品sm| 亚洲免费成人av| 欧美成年人视频网站| 亚洲欧美日韩国产一区| 欧美亚州在线观看| 性欧美xxxx大乳国产app| 亚洲一区二区三区精品在线| 欧美午夜一区| 噜噜噜躁狠狠躁狠狠精品视频| 一区二区三区导航| 国产精品视频一区二区高潮| 国产一区二区三区免费在线观看 | 一区二区三区精品在线| 久久免费视频观看| 老鸭窝亚洲一区二区三区| 亚洲毛片在线看| 亚洲伊人网站| 亚洲国产精品久久| 一本色道久久综合亚洲精品不卡 | 99re国产精品| av成人手机在线| 亚洲风情在线资源站| 亚洲乱码国产乱码精品精 | 免费高清在线一区| 欧美午夜视频在线| 免费看黄裸体一级大秀欧美| 欧美日韩一区二区三区免费看| 久久精品动漫| 国产精品久久久久久久久果冻传媒| 狂野欧美激情性xxxx欧美| 国产精品蜜臀在线观看| 亚洲精品少妇网址| 亚洲免费大片| 欧美一区午夜视频在线观看| 一区二区成人精品 | 国内成+人亚洲| 99re热精品| 午夜一区在线| 久久av免费一区| 久久久久久久国产| 国产性猛交xxxx免费看久久| 午夜一区在线| 香蕉视频成人在线观看| 国产精品久久久久久久久久三级 | 亚洲欧美日本精品| 欧美网站大全在线观看| 一区二区三区不卡视频在线观看| 一区二区三区 在线观看视| 久久夜色撩人精品| 亚洲高清视频一区| 亚洲激情六月丁香| 欧美色图一区二区三区| 亚洲少妇一区| 欧美大片在线观看一区| 亚洲免费成人| 激情久久久久| 国产精品v日韩精品v欧美精品网站| 亚洲人www| 午夜视黄欧洲亚洲| 欧美中文字幕在线播放| 黄页网站一区| 国产精品第13页| 久久人体大胆视频| 中国成人亚色综合网站| 久久久91精品国产| 9久草视频在线视频精品| 国产精品日韩高清| 久久米奇亚洲| 欧美亚洲一级| 欧美亚洲免费在线| 亚洲国产精品成人综合| 国产精品亚洲视频| 欧美日韩精品二区| 麻豆国产精品777777在线| 性欧美大战久久久久久久免费观看 | 国产亚洲福利一区| 一区二区三区波多野结衣在线观看| 亚洲黄色尤物视频| 欧美日韩国产综合久久| 午夜一区不卡| 亚洲自拍偷拍视频| 一区二区三区高清在线| 日韩午夜电影av| 日韩网站在线观看| 亚洲少妇自拍| 国产亚洲电影| 国产精品久久久久久一区二区三区 | 久久精品卡一| 一区二区三区 在线观看视| 亚洲日本欧美| 一本色道久久综合| 一区二区精品在线| 久久精品av麻豆的观看方式| 久久久av毛片精品| 欧美xx视频| 国产精品裸体一区二区三区| 国产美女一区| 亚洲精品欧美精品| 亚洲一区一卡| 亚洲第一精品夜夜躁人人躁 | 欧美成人精品在线播放| 欧美成人xxx| 一区二区三区欧美在线| 午夜视频在线观看一区| 免费看的黄色欧美网站| 国产精品成人观看视频免费| 国产亚洲欧美色| 中日韩高清电影网| 开心色5月久久精品| aa级大片欧美三级| 久久视频在线看| 国产女人18毛片水18精品| 亚洲图片欧洲图片av| 欧美日本一道本在线视频| 欧美日韩国产黄| 一区二区三区在线视频免费观看 | 国产欧美日韩综合一区在线播放| 在线免费精品视频| 久久在线视频在线| 午夜欧美大尺度福利影院在线看 | 最新国产成人av网站网址麻豆| 亚洲免费视频一区二区| 99精品欧美一区二区三区| 欧美激情亚洲国产| 最新亚洲电影| 欧美电影免费观看高清完整版| 亚洲夜晚福利在线观看| 欧美三级电影一区| 欧美一区二区在线播放| 亚洲欧美在线x视频| 国产亚洲欧美一区在线观看 | 欧美国产精品久久| 亚洲人成人77777线观看| 最新国产成人在线观看 | 久久久久久久久岛国免费| 亚洲男女自偷自拍| 国产精品综合不卡av| 久久午夜影视| 欧美日韩福利| 久久久久久婷| 欧美日韩午夜| 欧美日韩视频在线观看一区二区三区| 亚洲高清不卡一区| 99国产精品国产精品毛片| 国产精品亚洲а∨天堂免在线| 欧美一区国产一区| 久久人人爽国产| 午夜精品久久久99热福利| 午夜亚洲性色福利视频| 亚洲裸体俱乐部裸体舞表演av| 亚洲免费人成在线视频观看| 1024成人| 久久久久久久999| 欧美一二区视频| 欧美小视频在线观看| 久久性色av| 国产精品区一区二区三| 亚洲激情在线激情| 在线精品视频免费观看| 亚洲免费影视| 日韩亚洲欧美一区| 玖玖综合伊人| 免费在线欧美视频| 一区免费视频| 久久亚洲精品欧美| 美女爽到呻吟久久久久| 国语精品中文字幕| 欧美一级电影久久| 久久精品免费观看| 国产精品一区在线播放| 亚洲特级毛片| 西西裸体人体做爰大胆久久久| 欧美性做爰毛片| 亚洲女性裸体视频| 久久久久久97三级| 伊大人香蕉综合8在线视| 欧美一区免费视频| 欧美激情一区二区三区在线| 日韩视频一区二区三区| 国产精品视频yy9099| 99re热这里只有精品视频| 亚洲永久视频| 欧美国产日韩在线| 国产欧美日韩视频一区二区三区| 亚洲小视频在线观看| 另类图片国产| 亚洲性夜色噜噜噜7777| 国内精品久久久久影院优| 久久久久久久性| 一本色道久久88精品综合| 久久一区二区三区国产精品 | 亚洲国产精品久久久久婷婷老年 | 欧美成人国产va精品日本一级| 亚洲美女91| 最新成人av在线| 尤物九九久久国产精品的特点| 欧美午夜精品久久久久久久 | 亚洲国产中文字幕在线观看|