<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 求職寶典

    6.2 筆試真題 & 詳解

    浪潮軟件研發(fā)B卷(60分鐘)

    注:對于有C和JAVA選擇的試題,考生可以選擇其中一種解答,請在答題卡中標明。即選擇C語言試題解答,則解答的JAVA試題不計分;選擇JAVA語言,解答的C語言試題不計分。

    一、 填空題,共52分,每空2分

    1.在計算機中,最適合進行數(shù)字加減運算的數(shù)字編碼是____,最適合表示浮點數(shù)階碼的數(shù)字編碼是______。

    2.如果主存容量為16M字節(jié),且按字節(jié)編址,表示該主存地址至少應需要__位。

    3.中斷響應時間是指_________________________________。

    4.表達式a*(b+c)-d的后綴表達形式為_________。

    5.若二叉樹的先序遍歷序列為ABDECF,中序遍歷序列DBEAFC,則其后序遍歷序列為____________。

    6.以比較為基礎的排序算法在最壞情況下的計算時間下界為________。

    7.若廣義表L=((1,2,3)),則L的深度為______。

    8.某雙向鏈表中的結點如下圖所示,刪除t所指結點的操作為________。

    9.在_____存儲結構中,數(shù)據(jù)結構中元素的存儲地址與其關鍵字之間存在某種映射關系。

    10.在TCP/IP網(wǎng)絡中,為各種公共服務保留的端口號范圍是_____。

    11.OSI傳統(tǒng)7層指的是:物理層、數(shù)據(jù)鏈路層、_____、傳輸層、話路層、_____和應用層。

    12.關系模式R(U,F(xiàn)),其中U=(W,X,Y,Z),F={WX→Y,W→X,X→Z,yVw}。關系模式R的候選碼是_______,_____是無損連接并保持函數(shù)依賴的分解。

    13.軟件設計的主要任務是設計軟件的結構、過程和模塊,其中軟件結構設計的主要任務是要確定_____。

    14.常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。其中______模型適用于需求明確或很少變更的項目,______模型主要用來描述面向對象的軟件開發(fā)過程。

    15.在UML提供的圖中,______用于描述系統(tǒng)與外部系統(tǒng)及用戶之間的交互;______用于按時間順序描述對象間的交互。

    【C語言】:

    16.設有定義語句int(*f)(int);則f是____________。

    17.函數(shù)調用語句:func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)))中func函數(shù)的實參個數(shù)是____________。

    18.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000,若要求將a的高4位取反,低4位不變,所要執(zhí)行運算是______。

    19.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為____________。

    20.已有定義:double*p;請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

    21.C程序經(jīng)過編譯、______步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件。

    【JAVA】:

    16.FileInputStream是字節(jié)流;BufferedWriter是字符流;ObjectOutputStream是____________。

    17.保證JAVA語言可移植性的特征是____________。

    18.如果有一個類MyFrame是Frame的子類,能夠被不同包中的類所使用,請寫出該類的聲明頭:______。

    19.在java中,用package語句說明一個包時,該包的層次結構必須與______相同。

    20.在java中,能實現(xiàn)多重繼承效果的方式是______。

    21.線程在生命周期中要經(jīng)歷5狀態(tài),分別是新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、______狀態(tài)和終止狀態(tài)。

    二、選擇題,共8分,每空1分

    1.采用順序搜索方法查找長度為n的順序表時,搜索成功的平均搜索長度為______。

    2.在C++中,下列函數(shù)______不能重載。

    3.下面程序段的時間復雜度為______。

    For(int i=0;i<m;i++)

    For(int j=0;j<n;j++)

    a[i][j]=i*j;

    A.O(m2) B.O(n2) C.O(m*n) D.O(m+n)

    4.如果事務T獲得了數(shù)據(jù)項Q上的排它鎖,則T對Q______。

    A.只能讀不能寫 B.只能寫不能讀

    C.既可讀又可寫 D.不能讀不能寫

    5.一進程剛獲得三個主存塊的使用權,若該進程訪問頁面的次序是{1321215123},采用LRU算法時,缺頁數(shù)是______次。

    A.3 B.4 C.5 D.6

    6.在下面的兩個關系中,職工號和部門號分別為職工關系和部門關系的主鍵(或稱主碼)職工(職工號、職工名、部門號、職務、工資)

    部門(部門號、部門名、部門人數(shù)、工資總額)

    在這兩個關系的屬性中,只有一個屬性是外鍵(或稱外來鍵、外碼、外來碼),它是______

    A.職工關系的“職工號” B.職工關系的“部門號”

    C.部門關系的“職工號” D.部門關系的“部門號”

    7.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_______的二叉樹。

    A.空或只有一個節(jié)點 B.高度等于其節(jié)點數(shù)

    C.任一結點無左孩子 D.任意節(jié)點無右孩子

    8.有權值分別為11,8,6,2,5的葉子結點生成一棵哈夫曼數(shù),它的帶權路徑長度為_______。

    A.24 B.71 C.48 D.53

    三、問答題(共10分)

    1.接口是否可繼承接口?抽象類是否可實現(xiàn)接口?抽象類是否可繼承實體類?(共3分)

    2.TCP和UDP的區(qū)別?(共2分)

    3.列舉面向對象的特征,并介紹主流面向對象語言中數(shù)據(jù)類型的分類及該類型存儲位置之間區(qū)別?(共5分)

    四、程序題,共30分

    1. 閱讀以下說明和C程序,將應填入__(n)__處的字句寫在答題紙對應欄內。(共10分、每空2分)

    說明:假設需要將N個任務分配給N個工人同時去完成,每個人都能承擔這N個任務,但費用不同。下面的程序用回溯法計算總費用最小的一種工作分配方案,在該方案中,為每個人分配1個不同的任務。

    程序中,N個任務從0開始依次編號,N個工人也從0開始依次編號,主要的變量說明如下:

    C[i][j]:將任務i分配給工人j的費用;

    task[i]:值為0表示任務i未分配,值為j表示任務i分配給工人j;

    worker[k]:值為0表示工人k未分配任務,值為1表示工人k已分配任務;

    mincost:最小總費用。

    【C 程序】

    #include<stdio.h>

    #define N 8 /*N 表示任務數(shù)和工人數(shù)*/

    Int c[N][N];

    unsigned int mincost=65535; /*設置的初始值,大于可能的費用*/

    int task[N], temp[N], worker[N];

    void plan(int k,unsigned int cost)

    { int I;

    if (__(1)__&& cost<mincost) {

    mincost=cost;

    for(i=0; i<N; i++)temp[i]=task[i]; }

    else{

    for(i=0; i<N; i++) /*分配任務 k*/

    if (worker[i]==0 &&___(2)__){

    worker[i]=1; task[k]=__(3)__;

    Plan(__(4)__,cost+c[k][i]);

    __(5)__; task[k]=0;

    }/*if*/

    }

    }/*Plan*/

    voin main()

    { int I,j;

    for(i=0; i<N; i++){ /*設置每個人任務由不同工人承擔時的費用及全局數(shù)組的初值*/

    worker[i]=0; task[i]=0; temp[i]=0;

    for(j=0; j<n; j++)

    scanf(“%d”,&c[i][j]);

    }

    Plan(0, 0) /*從任務0開始分配*/

    printf(“\n 最小差用=%d\n”, mincost);

    for(i=0; i<N; i++)

    printf(“Task% isassigned to Worker%d\n”,I,temp[i])

    } /*main*/

    2. 閱讀以下說明,回答問題1至問題4,將解答填入答題紙的對應欄內。(共10分)

    說明:

    某賓館需要建立一個住房管理系統(tǒng),部分的需求分析結果如下:

    (1) 一個房間有多個床位,同一房間內的床位具有相同的收費標準。不同房間的床位收費標準可能不同。

    (2) 每個房間有房間號(如201、202等)、收費標準、床位數(shù)目等信息。

    (3) 每位客人有身份證號碼、姓名、性別、出生日期和地址等信息。

    (4) 對每位客人的每次住宿,應該記錄其入住日期、退房日期和預付款額日期。

    (5) 管理系統(tǒng)可查詢出客人所住房間號。

    根據(jù)以上的需求分析結果,設計一種關系模型如圖 2-1 所示:

    圖 2-1 住房管理系統(tǒng)的實體聯(lián)系圖

    1)根據(jù)上述說明和實體-聯(lián)系圖,得到該住房管理系統(tǒng)的關系模式如下所示,請補充住宿關系。(2分)

    房間(房間號,收費標準,床位數(shù)目)

    客人(身份證號,姓名,性別,出生日期,地址)

    住宿(______、_______,入住日期,退房日期,預付款額)

    2)請給出問題1住宿關系的主鍵和外鍵。(2分)

    3)若將上述關系直接實現(xiàn)為對應的物理表,現(xiàn)需查詢在2005年1月1日到2005年12月31日期間,在該賓館住宿次數(shù)大于5次的客人身份證號,并且按照入住次數(shù)進行降序排列。下面是實現(xiàn)該功能的SQL語句,請?zhí)钛a語句中的空缺。(3分)

    SELECT 住宿.身份證號,count(入住日期) FROM 住宿,客人

    WHERE 入住日期 >= ‘20050101’ AND 入住日期 <= ‘20051231’

    AND 住宿.身份證號 = 客人.身份證號

    GROUP BY _(2)_

    _(3)_ count(入住日期) >5

    _(4)_

    4)為加快SQL語句的執(zhí)行效率,可在相應的表上創(chuàng)建索引。根據(jù)問題3中的SQL語句,除主鍵和外鍵外,還需在那個表的的哪些屬性上創(chuàng)建索引,應該創(chuàng)建什么類型的索引,請說明原因。(3分)

    3. 完成下列的快速排序算法,可以選擇C或JAVA部分解答。(10分)

    【C】: int partitions(int a[],int low,int high) void quicksort(int a[],int n)

    {int pivotkey=a[low]; {___(5)___;

    //a[0]=a[low]; }

    While(low<high) #include<stdio.h>

    {while(___(1)___) //#include<math.h>

    --high; #include”myfunc.h”//存放于個人函

    a[low]=a[high]; 數(shù)庫中

    while(___(2)___) main()

    ++low; {int

    a[high]=a[low]; i,a[11]={0,11,12,5,6,13,8,9,14,7,10};

    } for(i=0;i<11;printf(“%3d”,a[i]),++i);

    //a[low]=a[0]; printf(“\n”);

    a[low]=pivotkey; quicksort(a,10);

    return low; for(i=0;i<11;printf(“%3d”,a[i]),++i);

    } printf(“\n”);

    void qsort(int a[],int low,int high) }

    {int pivottag;

    if(___(3)___)

    {//遞歸調用

    pivottag=___(4)___;

    qsort(a,low,pivottag-1);

    qsort(a,pivottag+1,high);

    }

    }

    【JAVA】:

    /**

    *快速排序

    */

    Public static void main(String [] args) {

    Random random =new Random();

    Int[] pDtat=new int[10];

    For(int i=0;i<pData.length;i++){//隨即生產(chǎn)10個隨機數(shù)

    Integer a=random.nextInt(100);

    pData[i]=a;

    System.out.print(pData[i]+””);

    }

    System.out.print();

    Int left=0;

    Int right=pData.length-1;

    (1)

    for(int i=0;i<pData.length;i++){

    System.out.print(pData[i]+””);

    }

    System.out.println();

    }

    Public static int[] Sort(int[] pData,int left,int right){

    Int middle,str Temp;

    Int i=left;

    Int j=right;

    Middle= (2) ;

    do{

    While( (3) )

    I++;

    While( (4) )

    j--;

    if(i<=j){

    str Temp=pData[i];

    pData[i]=pData[j];

    pData[j]=str Temp;

    i++;

    j--;

    }

    For(int k=0;k<pData.length;k++){

    System.out.print(pData[k]+””);

    }

    System.out.println();

    }while( (5) );//如果兩邊掃描的下標交錯,完成一次排序

    If(left<j)

    Sort(pData,left,j);//遞歸調用

    If(right>i)

    Sort(pData,i,right);//遞歸調用

    Return pData;

    浪潮筆試試題

    考題發(fā)下來之后,大體看了一下,54分的填空選擇,26分的編程題,考題涉及的內容比較多,有操作系統(tǒng),數(shù)據(jù)庫,面向對象,網(wǎng)絡模型,C語言基本知識等等,似乎還有一些計算機基礎知識,比如win98和win2k誰是16位操作系統(tǒng),誰是32位操作系統(tǒng)這樣的題目。出來之后我問了問工作人員,軟件研發(fā)組所分的C類和E類是按照什么進行的分類啊,結果他也不清楚,考試的時候我們E組做的C/C 的題目,也就是我上面說的綜合性題目,而C組的題目是專門針對C++或者Java的,你可以從兩份試題中任選一份。編程題:題二:編碼變換的一個題目26a2變換為666_a_2.

    浪潮往年筆試題目

    1. static

    2.指針與數(shù)組

    3.字符串處理

    基本都是要考的。

    數(shù)據(jù)結構, 前兩家沒涉及。

    浪潮的考了回溯算法, 排序, 二叉樹查找,我做的不太好。

    回憶下試題有:

    回溯算法:

    N個任務,N個工人, C[i][i]:把任務i分配給工人j所需的費用。

    求費用最低的分配方法。

    二叉樹查找:

    在二叉樹中找結點E,

    1.若該節(jié)點是葉結點, 直接刪除

    2.若該節(jié)點只有Lchild, 則刪除該節(jié)點, 把Lchild防到原有的結點位置。

    題一:strcpy(char *to,char *from)函數(shù)用于拷貝字符串

    void strcpy(char *to,char *from){

    while( );

    }

    題二:編碼變換的一個題目26a2變換為666_a_2

    具體規(guī)則是

    <!--[if !supportLists]-->1。 <!--[endif]-->當前字符如果不是數(shù)字,則簡單復制

    <!--[if !supportLists]-->2。 <!--[endif]-->當前字符如果是數(shù)字,字面值為N,并且有后續(xù)字符,則將后續(xù)字符重復N-1次

    <!--[if !supportLists]-->3。 <!--[endif]-->當前字符如果是數(shù)字,但是沒有后續(xù)字符,則簡單復制<!--[if !supportLists]-->4。 <!--[endif]-->這樣,每次變換后的串為一組,組與組之間用_連接。

    代碼忘了,簡單的C語言字符串處理,只不過對指針和串位的處理要注意。

    當然,還要填寫一個解碼的函數(shù)語句。

    題三:C++template最簡單的例子。

    填空題中幾個有印象的。

    1。語句x++,++x,x=x+1,x=1+x都是完成x的值增1的操作,請寫一個具有相同功能的語句,不允許與已給出的重復 (我填的x+=1,浪潮這個也考,嘻嘻)

    2。控制臺程序的入口是 main() windows程序的入口是 WinMain()

    3。C++類中的默認限定符是:private

    4。C++struct中默認的限定符是:public

    1:下列哪組 SQL 命令全部屬于數(shù)據(jù)定義語句的命令?

    A.CREATE , DROP , ALTER

    B.CREATE , DROP , SELECT

    C.CREATE , DROP , GRANT

    D.CREATE , DROP , UPDATE

    2:系統(tǒng)故障會造成

    A.內存數(shù)據(jù)丟失 B.硬盤數(shù)據(jù)丟失

    C.軟盤數(shù)據(jù)丟失 D.磁帶數(shù)據(jù)丟失

    3:三個模式之間存在下列映射關系,將正確的填入括號中

    A.外模式 / 內模式 B.外模式 / 模式

    C.模式 / 模式 D.內模式 / 外模式

    4:在視圖上不能完成的操作是

    A.更新視圖 B.查詢

    C.在視圖上定義新視圖 D.在視圖上定義新的基本表

    5:數(shù)據(jù)庫系統(tǒng)中產(chǎn)生數(shù)據(jù)不一致性的根本原因是

    A.沒有嚴格保護數(shù)據(jù) B.未對數(shù)據(jù)進行完整性控制

    C.數(shù)據(jù)冗余 D.數(shù)據(jù)存儲量大

    6:在某個數(shù)據(jù)庫中建立了表person(no,name,sex,birthday),no為表的主碼,表中已有的記錄如下圖所示:

    No Name Sex Birthday

    1 張麗麗 女 1967/05/07

    4 李方 女 1970/04/14

    6 王安 男 1982/10/27

    以下四個語句中能夠正確執(zhí)行的插入操作是

    A.INSERT INTO person VALUES(6,′王中′,′男′,′1964/03/08′)

    B.INSERT INTO person(name,sex) VALUES(′王中′,′男′)

    C.INSERT INTO person VALUES(2,′男′,′王中′,′1964/03/08′)

    D.INSERT INTO person(no,sex) VALUES(2,′男′) 7:如果事務T獲得了數(shù)據(jù)對象Q上的S鎖,則其他事務在數(shù)據(jù)對象Q上

    A.可加X鎖 B.可加S鎖

    C.可加任何鎖 D.不能加任何鎖

    8:下列短語中可以在 SQL 查詢時去掉重復數(shù)據(jù)的是

    A.ORDER BY

    B.DESC

    C.GROUP BY

    D.DISTINCT 9:數(shù)據(jù)庫的三級模式結構之間存在著兩級映像,使得數(shù)據(jù)庫系統(tǒng)具有較高的

    A.事務并發(fā)性 B.數(shù)據(jù)可靠性

    C.數(shù)據(jù)獨立性 D.數(shù)據(jù)重用性

    10:一個數(shù)據(jù)庫一般不是由獨立的對象組成的,對象的聚集形式的數(shù)學意義是

    A.笛卡爾積 B.選擇

    C.投影 D.聯(lián)接

    11:表達式“AGE BETWEEN 18 AND 24”等價于

    A.AGE>18 AND G<24 B.AGE>=18 AND G<24

    C.AGE>18 AND G<=24 D.AGE>=18 AND AGE<=24

    12:五種基本關系代數(shù)運算是

    A.∪,-,×,π和σ B.∪,-,∞,π和σ

    C.∪,∩,×,π和σ D.∪,∩,∞,π和σ ]

    13:供應商可以給某個工程提供多種材料,同一種材料也可以由不同的供應商提供,從材料到供應商之間的聯(lián)系類型是

    A.多對多 B.一對一

    C.多對一 D.一對多

    14:事務日志是用于保存

    A.程序運行過程 B.數(shù)據(jù)操作

    C.程序的執(zhí)行結果 D.對數(shù)據(jù)的更新操作

    15:屬性類型允許是基本數(shù)據(jù)類型、結構類型和集合類型的模型是

    A.平面關系模型 B.嵌套關系模型

    C.復合對象模型 D.分布式關系模型

    簡答題

    16:事務T1、T2和T3的定義如下:

    T1:x:=x+1

    T2:x:=x*2

    T3:x:= 3

    假設x的初值為0,若允許這三個事務并發(fā)執(zhí)行,試列出所有可能的調度和相應的x 值。 17:學生表:S(SNO,SNAME,SEX) 各屬性含義依次為學號、姓名和性別;

    課程表:C(CNO,CNAME,CREDIT) 各屬性含義依次為課程號、課程名、學分;

    學生選課表:SC(SNO,CNO,MARK) 各屬性含義依次為學號、課程號和成績。

    基于以上關系模式回答1—4題。

    1.試用SQL語句統(tǒng)計男生和女生的人數(shù)。

    2.試用SQL語句寫出下列查詢:檢索出所有男生的姓名、所選課程號和成績。

    3.試用SQL語句實現(xiàn)下列查詢:檢索出各門課程的學生平均成績(要求列出課程名稱和平均成績)。

    4.用關系代數(shù)表達式實現(xiàn)下列查詢:檢索出沒有選修課程號為C3的所有學生姓名 18:已知三個關系模式:

    訂單表: ORDER (ONO,CNAME,ODATE)其屬性的含義依次為訂單號、客戶名稱和訂貨日期;

    訂單明細表: ITEM(ONO,PNO,PRICE,QTY)其屬性的含義依次為訂單號、產(chǎn)品編號、單價和訂購數(shù)量;

    產(chǎn)品表:PRODUCT(PNO ,PNAME,UNIT)其屬性含義依次為產(chǎn)品編號、品名和單位。

    根據(jù)上述三個關系模式用 SQL 語句完成以下問題。

    1.創(chuàng)建一個視圖,視圖名為 ORD ,視圖的屬性有訂單號、客戶名稱、品名、單價和訂購數(shù)量。

    2.查詢訂購產(chǎn)品編號為 P1 的客戶名稱和訂單號。

    3.將訂單明細表中訂購數(shù)量超過 100 的商品的單價降低10%。 19:名詞解釋:外鍵。 20:設有兩個關系模式:

    S(SNO,SNAME,SEX,AGE),其屬性含義依次為學號、姓名、性別、年齡;

    SC(SNO,CNAME,GRADE),其屬性含義依次為學號、課程名、分數(shù)。

    試根據(jù)下列 SQL 語句寫出等價的關系代數(shù)表達式。

    SELECT SNAME

    FORM S

    WHERE SNO IN

    (SELECT SNO

    FROM SC

    WHERE GRADE BETWEEN 70 AND 80) 21:關系數(shù)據(jù)語言分為哪三類? 22:如果讓你來實現(xiàn)數(shù)據(jù)庫的等值連接,請你說出你的算法或者思路。 23:數(shù)據(jù)庫中有三個關系(基本表):

    S (學號,姓名,性別,年齡,系別)

    C (課號,課名)

    SC (學號,課號,成績)

    依據(jù)此信息用 SQL 語句完成下面問題。

    1.查詢每個學生的姓名和年齡,并按年齡降序排列。

    2.查詢 S 表中姓“王”的學生的情況。

    3.查詢選修了“數(shù)據(jù)庫原理”的學生的姓名和成績。

    4.查詢與“劉平”同一系的學生情況。 24:簡述SQL語言的特點。 25:事務是什么?

    1。設計函數(shù)int atoi(char *s)。

    int atoi(char *s)

    {

    char sign; 

    char sign_val = 1;

    int val = 0;

    int n = 0;

    /* skip spaces */

    while (isspace(*s))

    s;

    if (*s == '-' || *s == ' ')

    /* skip '-' and ' ' sign */

    {

    sign = *s;

    if (sign == '-')

    sign_val = -1;

    s;

    }

    /* when goes here, it is not space or sign */

    while ((*s != '\0') && isdigit(*s))

    {

    val = 10 * n (*s - '0'); 

    n = val;

    s ;

    }

    if (*s != '\0')

    {

    printf( "non digit in your input!!\n"); 

    exit(-1); 

    } 

    /* non error occured */ 

    return (sign_val * val); 

    } 

    2。int i=(j=4,k=8,l=16,m=32); printf("%d", i); 輸出是多少?

    結果為: 32.(注釋:主要考的是逗號運算)

    3。解釋局部變量、全局變量和靜態(tài)變量的含義。

    局部變量包括函數(shù)的形參,包含在函數(shù)體或者語句塊內的變量,局部變量的生存期在退出函數(shù)或語句塊后結束。

    全局變量是指在所有函數(shù)和語句塊之外的變量,它對于整個程序均可見,全局變量的生存期與程序的生存期相同.

    靜態(tài)變量指由要害字static聲明的變量,它的作用域和其他變量一樣,由它所在的位置決定,如在函數(shù)體或語句塊中聲明,則只在函數(shù)體或語句塊可見,其他地方均不可見.它的生存期與程序相同.

    4。解釋堆和棧的區(qū)別。簡述如下:

    棧上分配的內存,由系統(tǒng)自動分配,系統(tǒng)會自動收回.假如需要動態(tài)分配內存,則只能通過malloc/new在堆上分配的內存,使用完畢后,通過free/delete來釋放內存。

    5。論述含參數(shù)的宏與函數(shù)的優(yōu)缺點。

    含參數(shù)的宏優(yōu)點:省去了函數(shù)調用的開銷,運行效率高.

    含參數(shù)的缺點:

    由于宏本質上是字符串的替換,所有可能會由于一些參數(shù)的副作用導致得出錯誤的結果.

    如:

    #define max(a, b) ( ((a) > (b)) ? (a) : (b) )

    假如程序中出現(xiàn)這樣的調用: max(a , b);

    將導致a被計算2次,從而可能得到錯誤的結果,而函數(shù)調用不會出現(xiàn)這種問題.另外,假如程序中有多次宏替換的話,可能導致代碼體積變大.函數(shù)的優(yōu)點是:

    沒有帶參數(shù)宏可能導致的副作用,計算的正確性較宏更有保證.

    函數(shù)調用的缺點:

    函數(shù)調用需要一些參數(shù),返回地址等入棧,出棧的開銷,效率沒有宏函數(shù)高.

    1、局部變量能否和全局變量重名?

    答:能,局部會屏蔽全局。要用全局變量,需要使用 ":: "

    局部變量可以與全局變量同名,在函數(shù)內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對于有些編譯器而言,在同一個函數(shù)內可以定義多個同名的局部變量,比如在兩個循環(huán)體內都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環(huán)體內。

    2、如何引用一個已經(jīng)定義過的全局變量?

    答:extern

    可以用引用頭文件的方式,也可以用extern關鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變寫錯了,那么在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那么在編譯期間不會報錯,而在連接期間報錯。

    3、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么?

    答:可以,在不同的C文件中以static形式來聲明同名全局變量。

    可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變量賦初值,此時連接不會出錯

    4、語句for( ;1 ;)有什么問題?它是什么意思?

    答:和while(1)相同。

    5、do……while和while……do有什么區(qū)別?

    答:前一個循環(huán)一遍再判斷,后一個判斷以后再循環(huán)

    6、請寫出下列代碼的輸出內容

    #include

    main()

    {

    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,120

    7、static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?

    全局變量(外部變量)的說明之前再冠以static 就構成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式, 靜態(tài)全局變量當然也是靜態(tài)存儲方式。 這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序, 當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內有效, 在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內,只能為該源文件內的函數(shù)公用, 因此可以避免在其它源文件中引起錯誤。

    從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。

    static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當前源文件中使用的函數(shù)應該說明為內部函數(shù)(static),內部函數(shù)應該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數(shù),應該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件

    static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;

    static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結果值;

    static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內存中只有一份,普通函數(shù)在每個被調用中維持一份拷貝

    8、程序的局部變量存在于(堆棧)中,全局變量存在于(靜態(tài)區(qū) )中,動態(tài)申請數(shù)據(jù)存在于( 堆)中。

    9、設有以下說明和定義:

    typedef union {long i; int k[5]; char c;} DATE;

    struct data { int cat; DATE cow; double dog;} too;

    DATE max;

    則語句 printf( "%d ",sizeof(struct date)+sizeof(max));的執(zhí)行結果是:___52____

    答:DATE是一個union, 變量公用空間. 里面最大的變量類型是int[5], 占用20個字節(jié). 所以它的大小是20

    data是一個struct, 每個變量分開占用空間. 依次為int4 + DATE20 + double8 = 32.

    所以結果是 20 + 32 = 52.

    當然...在某些16位編輯器下, int可能是2字節(jié),那么結果是 int2 + DATE10 + double8 = 20

    10、隊列和棧有什么區(qū)別?

    隊列先進先出,棧后進先出

    11、寫出下列代碼的輸出內容

    #include

    int inc(int a)

    {

    return(++a);

    }

    int multi(int*a,int*b,int*c)

    {

    return(*c=*a**b);

    }

    typedef int(FUNC1)(int in);

    typedef int(FUNC2) (int*,int*,int*);

    void show(FUNC2 fun,int arg1, int*arg2)

    {

    INCp= &inc;

    int temp =p(arg1);

    fun( &temp,&arg1, arg2);

    printf( "%d\n ",*arg2);

    }

    main()

    {

    int a;

    show(multi,10, &a);

    return 0;

    }

    答:110

    11、請找出下面代碼中的所以錯誤

    說明:以下代碼是把一個字符串倒序,如“abcd”倒序后變?yōu)?ldquo;dcba”

    1、#include "string.h "

    2、main()

    3、{

    4、 char*src= "hello,world ";

    5、 char* dest=NULL;

    6、 int len=strlen(src);

    7、 dest=(char*)malloc(len);

    8、 char* d=dest;

    9、 char* s=src[len];

    10、 while(len--!=0)

    11、 d++=s--;

    12、 printf( "%s ",dest);

    13、 return 0;

    14、}

    答:

    方法1:

    int main()

    {

    char* src = "hello,world ";

    int len = strlen(src);

    char* dest = (char*)malloc(len+1);//要為\0分配一個空間

    char* d = dest;

    char* s = &src[len-1];//指向最后一個字符

    while( len-- != 0 )

    *d++=*s--;

    *d = 0;//尾部要加\0

    printf( "%s\n ",dest);

    free(dest);// 使用完,應當釋放空間,以免造成內存匯泄露

    return 0;

    }

    方法2:

    #include

    #include

    main()

    {

    char str[]= "hello,world ";

    int len=strlen(str);

    char t;

    for(int i=0; i   {

    t=str[i];

    str[i]=str[len-i-1]; str[len-i-1]=t;

    }

    printf( "%s ",str);

    return 0;

    }

    12。對于一個頻繁使用的短小函數(shù),在C語言中應用什么實現(xiàn),在C++中應用什么實現(xiàn)?

    答案:c用宏定義,c++用inline

    13。軟件測試都有那些種類?

    答案:黑盒:針對系統(tǒng)功能的測試 白合:測試函數(shù)功能,各函數(shù)接口

    14。確定模塊的功能和模塊的接口是在軟件設計的那個隊段完成的?

    答案:概要設計階段

    15。enum string

    {x1,

    x2,

    x3=10,

    x4,

    x5,

    }x;

    問x;

    答案:取值在0。1。10。11。12中的一個

    16。unsigned char *p1;

    unsigned long *p2;

    p1=(unsigned char *)0x801000;

    p2=(unsigned long *)0x810000;

    請問p1+5= ;

    p2+5= ;

    答案:801005; 810014。不要忘記了這個是16進制的數(shù)字,p2要加20變?yōu)?6進制就是14

    選擇題:

    1.Ethternet鏈接到Internet用到以下那個協(xié)議?

    A.HDLC;B.ARP;C.UDP;D.TCP;E.ID

    2.屬于網(wǎng)絡層協(xié)議的是:

    A.TCP;B.IP;C.ICMP;D.X.25

    3.Windows消息調度機制是:

    A.指令隊列;B.指令堆棧;C.消息隊列;D.消息堆棧;

    答案:b,a,c

    二找錯題:

    1.請問下面程序有什么錯誤?

    int a[60][250][1000],i,j,k;

    for(k=0;k<=1000;k++)

    for(j=0;j<250;j++)

    for(i=0;i<60;i++)

    a[i][j][k]=0;

    答案:把循環(huán)語句內外換一下

    2。以下是求一個數(shù)的平方的程序,請找出錯誤:

    #define SQUARE(a) ((a)*(a))

    int a=5;

    int b;

    b=SQUARE(a++);

    答案:這個沒有問題,s(a++),就是((a++)×(a++))唯一要注意的就是計算后a=7了

    3。typedef unsigned char BYTE

    int examply_fun(BYTE gt_len; BYTE *gt_code)

    {

    BYTE *gt_buf;

    gt_buf=(BYTE *)MALLOC(Max_GT_Length);

    ......

    if(gt_len>Max_GT_Length)

    {

    return GT_Length_ERROR;

    }

    .......

    }

    答案:要釋放內存

    問答題:

    1.IP Phone的原理是什么?

    答案:IPV6

    2.TCP/IP通信建立的過程怎樣,端口有什么作用?

    答案:三次握手,確定是哪個應用程序使用該協(xié)議

    1.實現(xiàn)雙向鏈表刪除一個節(jié)點P,在節(jié)點P后插入一個節(jié)點,寫出這兩個函數(shù);

    答//假設線性表的雙向鏈表存儲結構

    typedef struct DulNode{

    struct DulNode *prior; //前驅指針

    ElemType data; //數(shù)據(jù)

    struct DulNode *next; //后繼指針

    }DulNode,*DuLinkList;

    //刪除操作

    Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e)

    {

    if(!(p=GetElemP_DuL(L,i))) //此處得到i位置的節(jié)點指針,如果有需要也得寫出具體函數(shù)實現(xiàn)

    return ERROR;

    e=p->data;

    p->prior->next=p->next;

    p->next->prior=p->pror;

    free(p);

    return OK;

    }

    //插入操作

    Status ListInsert_DuL(DuLinkList &L,int i,ElemType &e)

    {

    if(!(p=GetElemP_DuL(L,i)))

    return ERROR;

    if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))

    return ERROR;

    s->data=e;

    s->prior=p->prior;

    p->prior->next=s;

    s->next=p;

    p->prior=s;

    return OK;

    }

    2.寫一個函數(shù),將其中的\t都轉換成4個空格。

    答該函數(shù)命名為convert,參數(shù)的意義為:

    *strDest目的字符串,*strSrc源字符串,length源字符串的長度

    函數(shù)實現(xiàn)為:

    char* convert(char *strDest, const char *strSrc,int length)

    {

    char * cp = strDest;

    int i=0;

    while(*strSrc && i{

    if (*strSrc=='\t') //將\t轉換成4個空格

    {

    for(int j=0;j<4;j++)

    *cp++=' ';

    }

    else //否則直接拷貝

    *cp++=*strSrc;

    strSrc++;

    i++;

    }

    return strDest;

    }

    3.Windows程序的入口是哪里?寫出Windows消息機制的流程。

    答: Windows程序的入口是WinMain函數(shù)

    消息機制:系統(tǒng)將會維護一個或多個消息隊列,所有產(chǎn)生的消息都會被放入或是插入隊列中。系統(tǒng)會在隊列中取出每一條消息,根據(jù)消息的接收句柄而將該消息發(fā)送給擁有該窗口的程序的消息循環(huán)。每一個運行的程序都有自己的消息循環(huán),在循環(huán)中得到屬于自己的消息并根據(jù)接收窗口的句柄調用相應的窗口過程。而在沒有消息時消息循環(huán)就將控制權交給系統(tǒng)。

    4.如何定義和實現(xiàn)一個類的成員函數(shù)為回調函數(shù)?

    答:所謂的回調函數(shù),就是預先在系統(tǒng)的對函數(shù)進行注冊,讓系統(tǒng)知道這個函數(shù)的存在,以后,當某個事件發(fā)生時,再調用這個函數(shù)對事件進行響應。

    定義一個類的成員函數(shù)時在該函數(shù)前加CALLBACK即將其定義為回調函數(shù),函數(shù)的實現(xiàn)和普通成員函數(shù)沒有區(qū)別

    5.C++里面是不是所有的動作都是main()引起的?如果不是,請舉例。

    答:不是,比如中斷引起的中斷處理不是直接由main()引起的,而是由外部事件引起的。

    6.C++里面如何聲明const void f(void)函數(shù)為C程序中的庫函數(shù)?

    答:在該函數(shù)前添加extern “C”聲明

    7.下列哪兩個是等同的

    int b;

    A const int* a = &b;

    B const* int a = &b;

    C const int* const a = &b;

    D int const* const a = &b;

    答:

    各式表示的意思分別為:

    A const int* a = &b; //*a是const,但指針a可變

    B const* int a = &b; //a是const,但*a可變

    C const int* const a = &b; //a和*a都是const,常量和指針的值都不能改變

    D int const* const a = &b; //a和*a都是const,常量和指針的值都不能改變

    因此C,D兩者是相同的。

    總結個技巧:如果const位于星號的左側,則const就是用來修飾指針所指向的變量,即指針指向為常量;如果const位于星號的右側,const就是修飾指針本身,即指針本身是常量。

    8. 內聯(lián)函數(shù)在編譯時是否做參數(shù)類型檢查?

    答:做類型檢查,因為內聯(lián)函數(shù)就是在程序編譯時,編譯器將程序中出現(xiàn)的內聯(lián)函數(shù)的調用表達式用內聯(lián)函數(shù)的函數(shù)體來代替

    《浪潮集團求職寶典》

    前言: 第一章 企業(yè)背景 第二章 福利待遇 & 職業(yè)發(fā)展 第三章 校園招聘 第四章 浪潮集團宣講會秘籍 第五章 浪潮集團網(wǎng)申秘籍 第六章 浪潮集團筆試秘籍 第七章 浪潮集團面試秘籍 第八章 常見問題(FAQ)
    《浪潮集團求職寶典Word下載》

    《浪潮集團求職寶典PDF下載》

    Copyright©2006-2024應屆畢業(yè)生網(wǎng)yjbys.com版權所有

    主站蜘蛛池模板: 欧洲精品一区二区三区在线观看| 午夜精品久久久内射近拍高清 | 久久精品人人槡人妻人人玩AV| 亚洲嫩草影院久久精品| 小辣椒福利视频精品导航| 精品国产一级在线观看| 日韩精品久久久久久| 国产精品美女久久久m| 亚洲中文字幕无码久久精品1| 国产亚州精品女人久久久久久| 精品国产日产一区二区三区| 国内精品久久久久久99| 亚洲精品高清在线| 免费看一级毛片在线观看精品视频| 国产成人精品一区二区三区| 九九热精品在线| 国产精品成人免费福利| 国产综合精品一区二区三区| 亚洲国产一二三精品无码| 日韩精品一区二区三区影院| 国产午夜精品一区二区| 国产精品亚洲不卡一区二区三区| 青草青草久热精品视频在线网站 | 尤物国产在线精品福利一区| 大伊香蕉精品一区视频在线| 久久亚洲中文字幕精品有坂深雪| 中日韩产精品1卡二卡三卡| 欧美黑人巨大videos精品| 久久国产精品免费一区| 精品欧美一区二区在线观看| 国产在线精品一区二区夜色| 国产精品亚洲综合专区片高清久久久| 92精品国产自产在线观看| 91精品视频在线| 国产成人精品免费视频大全| 国产成人精品怡红院在线观看| 国产成人精品日本亚洲专区| 国产精品毛片无码| 黑人巨茎精品欧美一区二区| 久久精品亚洲精品国产欧美| 欧美成人精品欧美一级乱黄一区二区精品在线 |