• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 計算機(jī)二級c語言試題及答案

        時間:2024-11-06 10:32:07 歐敏 計算機(jī)等級 我要投稿

        2024年計算機(jī)二級c語言試題及答案

          在日復(fù)一日的學(xué)習(xí)、工作生活中,我們最不陌生的就是試題了,試題是命題者根據(jù)一定的考核需要編寫出來的。那么一般好的試題都具備什么特點(diǎn)呢?以下是小編精心整理的2024年計算機(jī)二級c語言試題及答案,僅供參考,大家一起來看看吧。

        2024年計算機(jī)二級c語言試題及答案

          計算機(jī)二級c語言試題及答案1

          (1)以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的是________。

          A)隊列 B)線性表 C)二叉樹 D)棧

          (1)C

          知識點(diǎn):棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運(yùn)算

          評 析:線性表、棧和隊列等數(shù)據(jù)結(jié)構(gòu)所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進(jìn)入,刪除時,只能刪除棧頂?shù)脑兀磩倓偨o插入的元素。所以棧又稱后進(jìn)先出表(Last In First Out)。隊列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最后一個元素一定是最新入隊的元素。因此隊列又稱先進(jìn)先出表(First In First Out)。二叉樹的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu),結(jié)構(gòu)中數(shù)據(jù)元素之間存在著一對多的關(guān)系,因此它是一種非線性數(shù)據(jù)結(jié)構(gòu)。

          2)下面敘述正確的是________。

          A)算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

          B)算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

          C)算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

          D)算法的時間復(fù)雜度是指執(zhí)行算法程序所需要的時間

          (2)C

          知識點(diǎn):算法的基本概念;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)

          評 析:算法的設(shè)計可以避開具體的計算機(jī)程序設(shè)計語言,但算法的實現(xiàn)必須借助程序設(shè)計語言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計算機(jī)科學(xué)的兩個重要支柱。它們是一個不可分割的整體。算法在運(yùn)行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟以后結(jié)束。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,即算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。

          (3)在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是________。

          A)8 B)16 C)128 D)256

          (3)C

          知識點(diǎn):二叉樹的定義及其存儲結(jié)構(gòu)

          評 析:根據(jù)二叉樹的性質(zhì):二叉樹第i(I>1)層上至多有2i-1個結(jié)點(diǎn)。得到第8層的結(jié)點(diǎn)數(shù)最多是128。

          (4)下面描述中,不符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是________。

          A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

          B)自頂向下

          C)注重提高程序的執(zhí)行效率

          D)限制使用goto語句

          (4)C

          知識點(diǎn):結(jié)構(gòu)化程序設(shè)計

          評 析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。“自頂向下”是說,程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié),先考慮全局目標(biāo),后考慮局部目標(biāo);“逐步求精’’是說,對復(fù)雜問題,應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)節(jié)化;“模塊化”是說,一個復(fù)雜問題肯定是由若干稍簡單的問題構(gòu)成,解決這個復(fù)雜問題的程序,也應(yīng)對應(yīng)若干稍簡單的問題,分解成若干稍小的部分。

          (5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖莀_______。

          A)對象、消息 B)繼承、多態(tài) C)類、封裝 D)過程調(diào)用

          (5)D

          知識點(diǎn):面向?qū)ο蟮某绦蛟O(shè)計方法、對象、方法、屬性及繼承與多態(tài)性

          評 析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶ο蟪霭l(fā),發(fā)展出對象、類、消息、繼承等概念。

          (6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是________。

          A)可行性分析 B)需求分析 C)詳細(xì)設(shè)計 D)程序編碼

          (6)B

          知識點(diǎn):結(jié)構(gòu)化設(shè)計方法

          評 析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼和測試五個階段。其中需求分析階段常用的工具是數(shù)據(jù)流程圖和數(shù)據(jù)字典。

          (7)軟件生命周期中所花費(fèi)用最多的階段是________。

          A)詳細(xì)設(shè)計 B)軟件編碼 C)軟件測試 D)軟件維護(hù)

          (7)D

          知識點(diǎn):軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

          評 析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。本題中詳細(xì)設(shè)計、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費(fèi)代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價。

          (8)數(shù)據(jù)庫系統(tǒng)的核心是________。

          A)數(shù)據(jù)模型 B)DBMS C)軟件工具 D)數(shù)據(jù)庫

          (8)B

          知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

          評 析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

          (9)下列敘述中正確的是________。

          A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

          B)數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)

          C)如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵

          字,則稱其為本關(guān)系的外關(guān)鍵字

          D)關(guān)系中的每列稱為元組,一個元組就是一個字段

          (9)C

          知識點(diǎn):數(shù)據(jù)模型,實體聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型

          評 析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤;設(shè)計數(shù)據(jù)庫的目的實質(zhì)上是設(shè)計出滿足實際應(yīng)用需求的實際關(guān)系模型,故選項B敘述錯誤;關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性。對應(yīng)存儲文件中的字段,故D選項敘述錯誤。

          (10)下列模式中,_______是用戶模式。

          A)內(nèi)模式 B)外模式 C)概念模式 D)邏輯模式

          (10)B

          知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

          評 析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或稱子模式,或稱用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或稱邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式,或稱存儲模式,或稱物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示。即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。

          (11)C語言規(guī)定,程序中各函數(shù)之間_______。

          A)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

          B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

          C)允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

          D)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

          (11)A

          知識點(diǎn):函數(shù)的遞歸調(diào)用

          評 析:c語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

          (12)C語言中下列敘述正確的是_______。

          A)不能使用do-while語句構(gòu)成的循環(huán)

          B)do-while語句構(gòu)成的循環(huán),必須用break語句才能退出

          C)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非零時結(jié)束循環(huán)

          D)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時結(jié)束循環(huán)

          (12)D

          知識點(diǎn):do-while語句

          評 析:選項A是錯誤的,c語言支持do-while語句;選項B是錯誤的,do-while構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時結(jié)束循環(huán),而不是非零;選項C也是錯誤的。

          (13)以下選項中屬于C語言的數(shù)據(jù)類型是_______。

          A)復(fù)數(shù)型 B)邏輯型 C)雙精度型 D)集合型

          (13)C

          知識點(diǎn):c語言的數(shù)據(jù)類型

          評 析:c語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點(diǎn)型,包括單精度型和雙精度型兩種類型。

          (14)在C語言中,不正確的int類型的常數(shù)是_______。

          A)32768 B)0 C)037 D)0xAF

          (14)A

          知識點(diǎn):int類型的范圍

          評 析: c語言中int類型的常數(shù)的范圍是:-32768~32767。c整常數(shù)可用三種形式表示:十進(jìn)制整數(shù),八進(jìn)制整數(shù),十六進(jìn)制整數(shù)。選項A超出范圍,不正確。

          (15)下列描述中不正確的是_______。

          A)字符型數(shù)組中可以存放字符串

          B)可以對字符型數(shù)組進(jìn)行整體輸入、輸出

          C)可以對整型數(shù)組進(jìn)行整體輸入、輸出

          D)不能在賦值語句中通過賦值運(yùn)算符“=”對字符型數(shù)組進(jìn)行整體賦值

          (15)C

          知識點(diǎn):對數(shù)組的理解

          評 析: c語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。字符數(shù)組的輸入、輸出可以將整個字符串一次輸入或輸出。所以,選項C的說法是不正確的。

          (16)以下程序的輸出結(jié)果是_______。

          main()

          { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p。

          for(i=0;i<4;i+=2)printf("%d",p[i]];

          }

          A)5 2 B)5 1 C)5 3 D)9 7

          (16)C

          知識點(diǎn):通過指針引用數(shù)組元素

          評 析:題中*p=&x[1][1];是指將數(shù)組x的數(shù)組元素x[1][1]的地址賦值給指針變量p,使p指向x[l][l]這個數(shù)組元素,那么p[0]即為指針變量p當(dāng)前所指向的數(shù)組元素x[l][1]的值。具體執(zhí)行時如下所示:

          i=0時,輸出p[0],也就是x[1][1],輸出是5:

          i=2時,輸出p[2],即p[2+0],也就是x[2][0],輸出是3。

          (17)以下程序的運(yùn)行結(jié)果是_______。

          "stdio.h"

          main()

          {

          int a[]={1,2,3,4,5,6,7,8,9,10,11,12};

          int*p=a十5,*q=NULL;

          *q=*(p+5);

          printf("%d %d ",*p,*q);

          }

          A)運(yùn)行后報錯 B)6 6

          C)6 12 D)5 5

          (17)A

          知識點(diǎn):通過指針引用數(shù)組

          評 析:題目中沒有給q分配存儲單元,只是簡單地給它賦了一個值,所以程序的運(yùn)行結(jié)果是6 ll NULL pointer assignment,也就是運(yùn)行后報錯。

          (18)以下說法中正確的是________。

          A)c語言程序總是從第一個函數(shù)開始執(zhí)行

          B)在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義

          C)C語言程序總是從main()函數(shù)開始執(zhí)行。

          D)c語言程序中的main()函數(shù)必須放在程序的開始部分

          (18)C

          知識點(diǎn): C程序的運(yùn)行順序

          評 析:c語言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來調(diào)用其他函數(shù),所以選項A錯誤;c語言中定義的函數(shù)必須是并列的,不能在一個函數(shù)中定義其他函數(shù),選項B錯誤;函數(shù)必須先定義后使用,在調(diào)用函數(shù)之前要定義函數(shù),而mmn()函數(shù)不一定要放在程序的開始部分,故選項D錯誤。

          (19)能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是________。

          A)(a>=0l lb>=0)&&(a<0I lb<0) a="">=0&&b>--0)&&(a<0&&b

          C)(a+b>0) &&(a+b<=0) b="">0

          (19)D

          知識點(diǎn):對邏輯表達(dá)式的判斷

          評 析:邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來。

          選項A中,表達(dá)式表示的是a,b為異號;

          選項B中,表達(dá)式表示的是0,因為沒有滿足條件的值;

          選項C中,表達(dá)式表示的是0,因為沒有滿足條件的值;

          選項D表示的是a和b為同號。

          (20)若己定義:int a[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達(dá)式是________。

          A)p+l B)a+l C)a++ D)++p

          (20)C

          知識點(diǎn):數(shù)組地址的表示

          評 析:數(shù)組名是指針常量,是個固定的指針,不能對數(shù)組名賦予一個新的地址值,也不能使這個指針常量“移動”,指向數(shù)組的其他元素。

          (21)以下程序的輸出結(jié)果是________。

          main()

          { int a=-l,b=l,k;

          if((++a<0)&&!(b--<=0))

          printf("%d %d ",a,b);

          else

          printf("%d %d ”,b,a);

          }

          A)-l l B)0 1

          C)1 0 D)0 0

          (21)C

          知識點(diǎn):if條件的判斷

          評析:邏輯運(yùn)算符的優(yōu)先次序如下:!(非)→&&(與)→||(或),但本題需特別注意的是短路的概念:對于&&運(yùn)算符,其兩邊表達(dá)式的值只要有一邊為假,則整個與運(yùn)算表達(dá)式的值即為假,系統(tǒng)在執(zhí)行時,先運(yùn)算&&左邊的表達(dá)式,若為假,則系統(tǒng)不會再判斷&&運(yùn)算符右邊的表達(dá)式了,直接運(yùn)用短路原理得整個與運(yùn)算表達(dá)式的值為0。由于++a是先運(yùn)算后使用,b--是先使用后運(yùn)算。所以本題在執(zhí)行++a后,a值為0,不滿足條件,所以a為l,根據(jù)短路原理,b仍為0,接下去執(zhí)行else語句,輸出l 0。

          (22)以下選項中,能定義s為合法的結(jié)構(gòu)體變量的是________。

          A) typedef struct abc

          { double a;

          char b[10];

          }s;

          B ) struct

          { double a;

          char b[10];

          }s;

          C) struct ABC

          { double a;

          char b[10];

          }

          ABC s;

          D ) typedef ABC

          { double a;

          char b[10];

          }

          ABC s:

          (22)B

          知識點(diǎn):結(jié)構(gòu)體變量的定義

          評析:定義一個結(jié)構(gòu)體類型的變量,可采用三種方法:

          ①先定義結(jié)構(gòu)體類型,再定義變量名;

          ②在定義類型的同時定義變量;

          ③直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名。

          選項B符合第三種定義方法。

          (23)請讀程序:

          main()

          {

          char*sl="AbCdEf",*s2="aB";

          s1++;s2++;

          printf("%d ",strcmp(s1,s2));

          }

          上面程序的輸出結(jié)果是_______。

          A)正數(shù) B)負(fù)數(shù) C)零 D)不確定的值

          (23)A

          知識點(diǎn):字符串比較函數(shù)strcmp()的應(yīng)用

          評析:strcmp(X1,X2)是串比較函數(shù),當(dāng)X1>X2時返回值為正數(shù),當(dāng)X1

          本題中“sl”、“s2”分別表示這兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,則*sl為“bCdEf,*s2為“B”。而在字符串比較中。大小的確定是由各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的。“B”的ASCII碼值為66,”b”的ASCII碼值為98,所以sl>s2,返回值為正數(shù)。

          (24)請讀程序:

          func(int a,int b){

          int c:

          c=a+b:

          return C:

          }

          main(){

          int x=6,y=7,z=8,r;

          r=func((x--,y++,x+y),z--);

          printf("%d ",r);

          }

          上面程序的輸出結(jié)果是________。

          A)11 B)20 C)2l D)31

          (24)C

          知識點(diǎn):自增、自減運(yùn)算

          評析:函數(shù)func()的作用是返回兩個形參的和,第一個形參是x、y分別自減和自增后的和,其中(x--,y++,x+y)是一個逗號表達(dá)式,它的值應(yīng)該等于x+y,所以整個表達(dá)式(x--,y++,x+y)的值為13,而第二個形參的值為8(根據(jù)語法規(guī)則,應(yīng)當(dāng)先使用,后自增),所以fune()的返回值為13+8=21。

          (25)請讀程序:

          main()

          {

          int a,b;

          for(a=1,b=l;a<=100;a++){

          if(b>=20)break;

          if(b%3==1){b+=3;continue;}

          b_=5:

          }

          printf("%d ",a);

          }

          上面程序的輸出結(jié)果是________。

          A)7 B)8 C)9 D)10

          (25)B

          知識點(diǎn):break語句和continue語句

          評析:break語句的作用是用于跳出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體下面的語句;而continue語句的作用是用于跳出本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。“%”是求余運(yùn)算符,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時,條件(b>=20)為假,跳出循環(huán),此時共循環(huán)8次,即a=8。

          (26)請讀程序片段(字符串內(nèi)沒有空格字符):

          printf("%d ",strlen("ATS 0l2l"));

          上面程序片段的輸出結(jié)果是_______。

          A)l1 B)10 C)9 D)8

          (26)C

          知識點(diǎn):字符串的長度

          評析:這個語句的目的是輸出“ATS 0121”這個串的長度,在串中“”代表一個“”,為了和printf()函數(shù)中的轉(zhuǎn)義字符區(qū)分開來,在語法上使用了兩個反斜杠代替了一個反斜杠,所以它僅僅為一個字符,而”l”代表數(shù)字l,也占一個字符,“ ”是回車換行符,也占一個字符,加上A、T、s、0、1、2,一共是9個字符。

          (27)請選出可用作C語言用戶標(biāo)識符的一組標(biāo)識符_______。

          A)Void B)a3_b3 C)For D)2a

          define _123 _abc DO

          WORD IF case sizeof

          (27)B

          知識點(diǎn):C語言的標(biāo)識符

          評析:c語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。

          選項A中的void和define都和c語言的關(guān)鍵字重名,不合法;

          選項C中的case和c語言的關(guān)鍵字重名,不合法;

          選項D中的2a是數(shù)字打頭而且sizeof和c語言的關(guān)鍵字重名,不合法。

          (28)請選出以下程序的輸出結(jié)果_______。

          sub(int*s,int y)

          { static int t=3;

          y=s[t];t--;

          }

          main()

          { int a[]={1,2,3,4},i,x=0;

          for(i=0;i<4;i++){

          sub(a,x);printf("%d",x);}

          printf(" ");

          }

          A)1234 B)432l C)0000 D)4444

          (28)C

          知識點(diǎn):函數(shù)的形參和實參的關(guān)系

          評析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為O。

          (29)若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用_______。

          int c[4][5],(*cp)[5];

          cp=c;

          A)cp+l B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)

          (29)D

          知識點(diǎn):數(shù)組元素的引用

          評析:cp=c這個語句是將數(shù)組第0行的地址賦給了cp。cp+l使指針指向二維數(shù)組c的第一行;*(cp+3)是數(shù)組c的第三行的第0列的地址值;+(cp+1)+3是數(shù)組c的第一行第三列的地址值。

          (30)設(shè)有以下語句

          char a=3,b=6,c;

          c=a^b<<2:

          則c的二進(jìn)制值是_______。

          A)00011011 B)00010100 C)000ll 100 D)00011000

          (30)A

          知識點(diǎn):位運(yùn)算

          評析:“<<”是c語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;,^是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為0001101l。

          (31)設(shè)有

          static char str[]="Beijing";

          則執(zhí)行

          printf("%d ",strlen(strcpy(str, "China")));

          后的輸出結(jié)果為_______。

          A)5 B)7 C)12 D)14

          (31)A

          知識點(diǎn):字符串的長度

          評析:在執(zhí)行printf()函數(shù)前,數(shù)組str的長度是7,但是當(dāng)使用strcpy()函數(shù)將新的值賦給str后,strlen()函數(shù)返回的應(yīng)當(dāng)是現(xiàn)在的str字符串的字符個數(shù),即是5。

          (32)以下程序的輸出結(jié)果是_______。

          main()

          { int i;

          for(i=1;i<5;i++){

          if(i%2)printf("*");

          else continue;

          printf("#");

          }

          print"$ ");

          }

          (32)C

          知識點(diǎn):if語句的判斷

          評析:當(dāng)i不可以整除2時打印”*”,然后打印“#”,不能整除2則執(zhí)行continue,跳過printf(“#”);語句,結(jié)束本次循環(huán),返回到循環(huán)的起始點(diǎn)。當(dāng)循環(huán)結(jié)束后,打印“$”。

          (33)有以下程序

          main()

          { int c;

          while((c=get))!=‘ ’){

          switch(C-‘2’){

          case O:case 1:putc+4);

          case 2:putc+4);break;

          case 3:putc+3);

          default:putc十2);break;}

          }

          }

          從第一列開始輸入以下數(shù)據(jù),↙代表一個回車符。

          2473↙

          程序的輸出結(jié)果是_______。

          A)668977 B)668966 C)66778777 D)6688766

          (33)A

          知識點(diǎn):switch()語句

          評析:get)函數(shù)是從鍵盤接受一個字符輸入;當(dāng)用戶鍵入的字符不是回車符時,會進(jìn)入一個多分支選擇語句,根據(jù)表達(dá)式c-‘2’的值進(jìn)行分支選擇:put)是在屏幕上打印一個字符,最后的結(jié)果應(yīng)當(dāng)為668977。

          (34)以下程序的輸出結(jié)果是________。

          main()

          { int w=5;fun(w);printf(" ");}

          fun(int k)

          { if(k>O) fun(k_1);

          printf("%d",k);

          }

          A)5 4 3 2 l B)0 1 2 3 4 5

          C)1 2 3 4 5 D)5 4 3 2 1 0

          (34)B

          知識點(diǎn):函數(shù)的遞歸調(diào)用

          評析:函數(shù)的遞歸調(diào)用就是在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身。fun函數(shù)共被調(diào)用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(O)。其中fun(5)是main函數(shù)調(diào)用的,其余是在fun函數(shù)中調(diào)用的。

          (35)若fp是指向某文件的指針,且已讀到此文件的末尾,則函數(shù)feof(f1))的返回值是_________ 。

          A)EOF B)0 C)非零值 D)NULL

          (35)C

          知識點(diǎn):文件結(jié)束符的返回值

          評析:函數(shù)feof是用來判斷文件是否已讀到末尾,如果己讀到末尾則返回非零值,否則返回O。

          (36)算法的時間復(fù)雜度是指_______。

          A)執(zhí)行算法程序所需要的時間

          B)算法程序的長度

          C)算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

          D)算法程序中的指令條數(shù)

          (36)C

          知識點(diǎn):算法復(fù)雜度的概念和意義(時問復(fù)雜度與空間復(fù)雜度)

          評析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。為了能夠比較客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應(yīng)該與所使用的計算機(jī)、程序設(shè)計語言以及程序編制者無關(guān),而且還應(yīng)該與算法實現(xiàn)過程中的許多細(xì)節(jié)無關(guān)。為此,可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量算法的工作量。

          (37)下列敘述中正確的是_______。

          A)線性表是線性結(jié)構(gòu) B)棧與隊列是非線性結(jié)構(gòu)

          C)線性鏈表是非線性結(jié)構(gòu) D)二叉樹是線性結(jié)構(gòu)

          (37)A

          知識點(diǎn):線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念

          評析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間相關(guān)聯(lián)關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件: (1)有且只有一個根結(jié)點(diǎn); (2)每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

          (38)下面關(guān)于完全二叉樹的敘述中,錯誤的是_______。

          A)除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

          B)可能缺少若干個左右葉子結(jié)點(diǎn)

          C)完全二叉樹一般不是滿二叉樹

          D)具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+l

          (38)B

          知識點(diǎn):二叉樹的定義及其存儲結(jié)構(gòu)

          評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(zhì)(5),也是正確的。

          (39)結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是_______。

          A)程序的規(guī)模 B)程序的易讀性

          C)程序的執(zhí)行效率 D)程序的可移植性

          (39)B

          知識點(diǎn):結(jié)構(gòu)化程序設(shè)計

          評析:結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的足結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測試.以保證程序的正確性。

          (40)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是_______。

          A)概要設(shè)計 B)詳細(xì)設(shè)計 C)可行性分析 D)需求分析

          (40)D

          知識點(diǎn):軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

          評析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。軟件生命周期的主要活動階段為:

          ① 可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

          ②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

          ③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

          ④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

          ⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

          ⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并存運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。

          (41)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是_______。

          A)控制流 B)加工 C)數(shù)據(jù)存儲 D)源和潭

          (41)A

          知識點(diǎn):結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

          評析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

          (42)軟件需求分析一般應(yīng)確定的是用戶對軟件的_______。

          A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求

          (42)D

          知識點(diǎn):結(jié)構(gòu)化設(shè)計方法

          評析:軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。

          (43)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是_______。

          A)數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

          B)數(shù)據(jù)庫系統(tǒng)避免了一切冗余

          C)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

          D)數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

          (43)A

          知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

          評析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應(yīng)JH=j所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身義可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

          (44)關(guān)系表中的每一橫行稱為一個_______。

          A)元組 B)字段 C)屬性 D)碼

          (44)A

          知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫.數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

          評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

          (45)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是_______。

          A)概念設(shè)計和邏輯設(shè)計 B)模式設(shè)計和內(nèi)模式設(shè)計

          C)內(nèi)模式設(shè)計和物理設(shè)計 D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

          (45)A

          知識點(diǎn):數(shù)據(jù)庫設(shè)計方法和步驟:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計的相關(guān)策略

          評析:數(shù)據(jù)庫設(shè)計可分為概念設(shè)計與邏輯設(shè)計。數(shù)據(jù)庫概念設(shè)計的目的是分析數(shù)據(jù)問內(nèi)存語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。數(shù)據(jù)庫邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換為指定的RDBMS中的關(guān)系模型。

          (46)請讀程序:

          main()

          {

          int a;float b,c;

          scanf("%2d%3f%4f",&a,&b,&c);

          printf(" a=%d,b=%Cc=%f ",a,b,c);

          }

          若運(yùn)行時從鍵盤上輸入9876543210↙,則上面程序的輸出結(jié)果是_______。

          A)a=98,b=765,c=4321

          B)a=10,b=432,c=8765

          C)a=98,b=765.000000,c=432 1.000000

          D)a=98,b=765.0,c=4321.0

          (46)C

          知識點(diǎn):格式輸入、輸出函數(shù)

          評析:scanf()把剛戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,由于“f”是以小數(shù)形式輸出單、雙精度數(shù)。隱含輸出6位小數(shù),所以b=4321.000000;把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量fd、b、c的值分別為:98、765.000000、432 1.000000。

          (47)請選出以下程序的輸出結(jié)果_______。

          sub(x,y,z)

          int x,y,*z:

          {*z=y-x;}

          main(){

          int a,b,c;

          sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

          printf("%d,%d,%d ",a,b,c);

          }

          A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7

          (47)B

          知識點(diǎn):函數(shù)的調(diào)用

          評析:sub()函數(shù)的作脂是將形參y和x的差賦給了z指向的那個內(nèi)存地址,所以在sub(10,5,&a)中,10和5膈于值傳遞,直接將數(shù)值j0和5分別傳遞給了變量x和y,而對于a是屬于地址傳遞,也就是a與z指向了蚓一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,但b,c值并不改變,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=-12,住sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

          (48)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是_______。

          A)pb=&x; B)pb=x; C)*pb=&x; D)*pb=*x

          (48)A

          知識點(diǎn):賦值表達(dá)式

          評析:選項A是將變量x的地址賦給指鉗‘變量pb,使pb指向x,故為正確的賦值表達(dá)式。

          選項B是將x的值當(dāng)作地址賦給指針pb,pb指¨一個地址等于x值的內(nèi)存單元。

          選項C足將x的地址賦給指針pb指向的那個地址等于x值的內(nèi)存單元。

          選項D是不正確的語句。

          (49)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元

          int *p;

          p=_______malloc(sizeof(int));

          則應(yīng)填入_______。

          A)int B)ira* C)(*int) D)(int*)

          (49)D

          知識點(diǎn):強(qiáng)制類型轉(zhuǎn)換

          評析:不論p是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。

          (50)若執(zhí)行下面程序時從鍵盤上輸入5,

          main()

          {

          int x;

          scanf("%d",&x);

          if(x++>5)printf("%d ",x);

          else printf("%d ",x--);

          }

          則輸出是_______。

          A)7 B)6 C)5 D)4

          (50)B

          知識點(diǎn):if條件的判斷

          評析:根據(jù)c語言的語法,x+十是在使用x之后,再將x的值加1,在if語句中,x的值為5,條件不成立,執(zhí)行else后面的語句,因為x的值已經(jīng)加1,為6,所以打印結(jié)果為6。

          (51)設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是_______。

          A)‘a(chǎn)’&&‘b’ B)a<=b C)a||+c&&b-c D)!((a

          (51)D

          知識點(diǎn):幾種運(yùn)算符的使用

          評析:選項A:‘a(chǎn)’&&‘b’是字符a與b的相與,故不為0。

          選項B:a<=b,由題中變量賦值可知,結(jié)果為l。

          選項c:a||+c&&b-c,此表達(dá)式先做算術(shù)運(yùn)算b-c,結(jié)果為一1.而+c屬于單目運(yùn)算符,由于c初值為5,經(jīng)過單目運(yùn)算符運(yùn)算后,還是5,下面再進(jìn)行邏輯與的運(yùn)算,即5&&-1結(jié)果為1(因為c語言中除O代表假外,其他任一個數(shù)都代表真),最后a||l,結(jié)果為1。

          選項D:!((a

          (52)設(shè)有如下程序

          main()

          {

          int **k,*j,i=100;

          j=&i; k=&j;

          printf("%d ",**k);

          }

          上述程序的輸出結(jié)果是_______。

          A)運(yùn)行錯誤 B)100 c)i的地址 D)j的地址

          (52)B

          知識點(diǎn):指針變量的引用

          評析:j=&i,j的值就是i的地蚍,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。

          (53)設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_______(其中0≤i

          int a[10]={0,l,2,3,4,5,6,7,8,9,},*p=a;

          A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))

          (53)D

          知識點(diǎn):通過指針引用數(shù)組元素

          評析:觀察程序可知.a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

          (54)有以下程序:

          main(){

          char c[6];

          int i=0:

          for(;i<6;c[i]=get),i++);

          for(i=0;i<6;i++)putc[i]);

          printf(" ");

          }

          如果從鍵盤上輸入:

          ab<回車>

          c<回車>

          def<回車>

          則輸出結(jié)果為________。

          A)a B)a C)ab D)abcdef

          b b c

          c c d

          d d

          e

          f

          (54)C

          知識點(diǎn):字符數(shù)據(jù)的輸入、輸出

          評析:1.get)

          此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。請注意:get)只能接受一個字符(回車符也算是一個字符)。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可不賦給任何變量,作為表達(dá)式的一部分。

          2.put)

          此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符,如回車符使輸出的當(dāng)前位置移到下一行的開頭。

          本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

          (55)下面程序

          main()

          { char*p1:"abc",*p2="ABC",str[50]= "xyz";

          strcpy(str+2,strcat(p1,p2));

          printf("%s ",str);

          }

          的輸出是_______。

          A)xyzabcABC B)zabcABC

          C)yzabcABC D)xyabcABC

          (55)D

          知識點(diǎn):字符串的連接和拷貝

          評析:strcat(字符數(shù)組l,字符數(shù)組2)的作用是連接兩個字符數(shù)組中的字符串,把字符串2接到字符串l的后面,結(jié)果放在字符數(shù)組l中,本題中strcat(p1,p2)函數(shù)將*pl和*p2指向的兩個串連接了起來,將字符串a(chǎn)bcABC放到了*pl所指向的存儲單元中:而strcpy(字符數(shù)組1,字符串2)函數(shù)將字符串2復(fù)制到字符數(shù)組1中去,本題將字符串a(chǎn)bcABC復(fù)制到了str+2所指向的存儲單元中,即將原str數(shù)組中的字符z及z向后的所有字符覆蓋,所以在打印輸出時,str的值已經(jīng)等于“xyabcABC”。

          (56)下面程序

          int aa[3][3]={{2},{4},{6}};

          main()

          { int i,*p=&aa[0][0];

          for(i=0;i<2;i++){

          if(i==0)aa[i][i+1]=*p+l;

          else ++p;

          printf("%d",*p);

          }

          }

          的輸出是_______。

          A)23 B)26 C)33 D)36

          (56)A

          知識點(diǎn):for循環(huán)語句

          評析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][O]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時p所指向的是aa[0][0],輸出2,而i=l時執(zhí)行了++p操作,使指針向后移動指向了aa[0][l],所以在輸出*p時應(yīng)為3。

          (57)下面程序

          main()

          { int x=100,a=10,b=20,okl=5,ok2=0;

          if(a

          if(b!=15)

          if(!okl)x=1;

          else if(ok2)x=10;

          X=-1;

          Ptintf("%d ",x);

          }

          的輸出是_______。

          A)-1 B)0 C)1 D)不確定的值

          (57)A

          知識點(diǎn):判斷語句的循環(huán)嵌套

          評析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷……如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為一l,所以,無論前期如何變化,最后的x值依然為一l。

          (58)下面程序

          main()

          {

          int x=32:

          printf("%d ",x=x<<1);

          }

          的輸出是_______。

          A)100 B)160 C)120 D)64

          (58)D

          知識點(diǎn):位運(yùn)算

          評析:<<是c語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2-64。

          (59)以下程序的輸出結(jié)果是________。

          #define FUDGE(y) 2.84+y

          #define PR(a) printf("%d",(int))(a))

          #define PRINT l(a) PR(a);put‘ ’)

          main()

          { int x=2;

          PRINT l(FUDGE(5)*X);

          }

          A)1l B)12 C)13 D)15

          (59)B

          知識點(diǎn):帶參數(shù)的宏定義

          評析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實參代替形參,如果宏定義中的字符串中的字符不是參數(shù)字符,則保留,這樣就形成了置換的字符串。

          根據(jù)以上原則,我們將實參帶入已經(jīng)定義的宏中,可以得出答案,最后打印出來的是“12”。

          (60)以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入:

          main()

          {

          int a[10],i=0;

          while(i

          :

          :

          }

          A)a+(i++) B)&a[i+l] C]a+i D]&a[++i]

          (60)A

          知識點(diǎn):格式輸入函數(shù)scanf()

          評析:因為a實際上就是數(shù)組a的首地址,而a+x則是數(shù)組中第x個元素的地址,所以在四個選項中,選項B和C只能輸入一個數(shù)據(jù),選項D不能給a[0]輸入數(shù)據(jù),只有選項A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

          (61)字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲形式是________。

          A)反碼 B)補(bǔ)碼

          C)EBCDIC碼 D)ASCII碼

          (61)D

          知識點(diǎn):字符數(shù)據(jù)在內(nèi)存中的存儲形式

          評析:將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

          (62)下面程序的輸出是________。

          typedef union

          { long x[2];

          int y[4];

          char z[8];

          }MYTYPE;

          MYTYPE them;

          main()

          { printf("%d ",sizeof(them));}

          A)32 B)16 C)8 D)24

          (62)C

          知識點(diǎn):共用體的長度

          評析:sizeof(x)是一個標(biāo)準(zhǔn)c函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度,所以共用體MYTYPE需要8個字節(jié)的存儲空間,由它定義的變量的長度當(dāng)然也是8。

          (63)不能把字符串:“Hello!”賦給數(shù)組b的語句是________。

          A)char b[10]={‘H’,‘e’,‘l’,‘l’,‘0’,‘!’};

          B)char b[10]={‘h’,‘e’,‘l’,‘l’,‘0’,‘!’};

          C)char b[10];strcpy(b,"Hello!");

          D)char b[10]="Hello!";

          (63)B

          知識點(diǎn):給數(shù)組賦值

          評析:在c語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

          (64)下面程序的輸出是________。

          main()

          { int x=3,y=6,a=0;

          while(x++!=(y—=1))

          { a+=1;

          if(y

          }

          printf("x:%d,y:%d,a=%d ",x,y,a);

          }

          A)x=4.v=4,a=1 B)x=5,y=5,a=1

          C)x=5,y=4,a=3 D)x=5,y=4,a=l

          (64)D

          知識點(diǎn):運(yùn)算符

          評析:注意在x++中x值的引用時,這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:

          第一次while循環(huán):x=3與y=5比較,條件為真,執(zhí)行a=a+1=1;此時,x的值己為4,判斷y

          第二次while循環(huán):x=4與y=4比較,條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

          (65)下面程序的輸出是_______。

          main()

          {char*s:"12134211";

          int vl=0,v2=0,V3=0,v4=0,k;

          for(k=0;s[k];k++)

          switch(s[k])

          { default:V4++;

          case‘1’:vl++:

          case‘3’:v3++:

          case‘2’:v2++:

          }

          printf("vl=%d,v2=%d,v3=%d,v4=%d ",vl,v2,v3,V4);

          }

          A)vl=4,v2=2,v3=l,v4=1 B)vl=4,V2=9,V3=3,V4=l

          C)vl=5,v2=8,v3=6,v4=1 D)vl=8,V2=8,V3=8,v4=8

          (65)C

          知識點(diǎn):switch()語句

          評析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個case后面的常量的表達(dá)式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行的 default后面的語句。本題中,for循環(huán)的條件是s數(shù)組的數(shù)組元素值,只要將數(shù)組的值一一代入程序逐步求解即可。

          (66)下面程序的輸出是_______。

          main()

          {int k=ll;

          printf("k=%d,k=%o,k=%x ",k,k,k);

          }

          A)k=11.k=12,k=ll B)k=ll,k=13,k=13

          C)k=ll,k=013,k=0xb D)k=ll,k=13,k=B

          (66)D

          知識點(diǎn):格式字符

          評析:在c語言格式字符的輸出中,“%d”是以帶符號的十進(jìn)制形式輸出整數(shù),即k=ll:“%o”是以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0),即k=13:“%x”是以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0x),即k=B。

          (67)以下敘述中正確的是_______。

          A)c語言比其他語言高級

          B)C語言可以不用編譯就能被計算機(jī)識別執(zhí)行

          c)c語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

          D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)

          (67)C

          知識點(diǎn):c語言風(fēng)格

          評析:計算機(jī)語言分為低級語言、匯編語言和高級語言,c語言屬于高級語言,但并不是說c語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項B錯誤;c語言出現(xiàn)于1972年到1973年問,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

          (68)下列可用于c語言用戶標(biāo)識符的一組是_______。

          A)void define WORD B)a3_b3 _123 Car

          C)For -abc IFCase D)2a D0 sizeof

          (68)B

          知識點(diǎn):c語言的標(biāo)識符

          評析:c語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除c和D。c語言還規(guī)定標(biāo)識符不能為c語言的關(guān)鍵字,從而選項A是錯誤的,因為void為關(guān)鍵字。

          (69)請選出正確的程序段________。

          A)int*p B)int*s,k;

          Scanf("%d",p); *s=100;

          ……

          C)int*s,k: D)int*s,k;

          Char*p,c; char*p,e;

          s=&k; s=&k;

          p=&c; p=&c;

          *p=‘a(chǎn)’; s=p;

          …… *s=l;

          ……

          (69)C

          知識點(diǎn):指針變量

          評析:本題的A和B犯了一個同樣的錯誤,即指針變量p定義后并沒有指向具體的變量。也就是說,p中沒有確定的地址值,它的值是不可預(yù)見的,所指向的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項D中,s是int指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變最s。

          計算機(jī)二級c語言試題及答案2

          1: 第1題請編寫函數(shù)fun,其功能使:將兩個兩位正整數(shù)a b合并形成一個整數(shù)放在c中。合并的方式使:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。

          答案:

          void fun(int a,int b,long *c)

          {*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

          2: 第2題請編寫一個函數(shù)fun,它的功能使:計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。

          答案:

          float fun(float *a,int n)

          {float ave=0.0;

          int i;

          for(i=0;i

          ave+=a;

          ave/=n;

          return ave;}

          3: 第3題假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能使:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。

          答案:

          void fun(char *a)

          {int i=0;

          char *p,*q;

          p=q=a;

          while(*p)

          p++;

          p--;

          while(*p==‘*’)

          p--;

          while(q<=p)

          {a=*q;

          i++;

          q++;}

          a=‘’;}

          4: 第4題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。

          答案:

          void fun(int a,int b,long *c)

          {c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}

          5: 第5題 n名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請編寫函數(shù)fun,它的功能是:求出平均分,由函數(shù)值返回。

          答案:

          double fun(strec *h)

          {double aver=0.0;

          while(h!=null)

          {aver+=h->s;

          hy=h->next;}

          aver/=n;

          return aver;}

          6: 第6題請編寫函數(shù)fun,計算并輸出給定10個數(shù)的方差。

          答案:

          double fun(double x[10])

          {int i,j;

          double s=0.0,s1=0.0;

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

          s1+=x;

          s1/=10;

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

          s+=(x[j]-s1)*(x[j]-s1);

          s/=10;

          s=pow(s,0.5);

          return s;}

          7: 第7題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c 中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。

          答案:

          void fun(int a,int b,long *c)

          {*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【計算機(jī)二級c語言試題及答案】相關(guān)文章:

        計算機(jī)二級《C語言》模擬試題及答案07-31

        計算機(jī)二級C語言沖刺試題及答案10-29

        計算機(jī)二級C語言考試試題及答案10-09

        2024最新計算機(jī)二級c語言試題及答案10-25

        計算機(jī)C語言試題及答案02-25

        全國計算機(jī)二級c語言題庫試題及答案10-12

        計算機(jī)等級二級C語言上機(jī)模擬試題及答案10-25

        計算機(jī)二級C語言考試上機(jī)沖刺試題及答案09-08

        計算機(jī)二級C語言測試題及答案最新10-29

        2017年計算機(jī)二級c語言題庫試題及答案10-16

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲AV午夜精品一区二区三区 | 亚洲精品自产拍在线观看 | 伊人久久国产免费观看视频 | 日本人成视频免费观看看 | 亚洲无中文字幕 | 五月天激情中文网 |

            2024年計算機(jī)二級c語言試題及答案

              在日復(fù)一日的學(xué)習(xí)、工作生活中,我們最不陌生的就是試題了,試題是命題者根據(jù)一定的考核需要編寫出來的。那么一般好的試題都具備什么特點(diǎn)呢?以下是小編精心整理的2024年計算機(jī)二級c語言試題及答案,僅供參考,大家一起來看看吧。

            2024年計算機(jī)二級c語言試題及答案

              計算機(jī)二級c語言試題及答案1

              (1)以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的是________。

              A)隊列 B)線性表 C)二叉樹 D)棧

              (1)C

              知識點(diǎn):棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運(yùn)算

              評 析:線性表、棧和隊列等數(shù)據(jù)結(jié)構(gòu)所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進(jìn)入,刪除時,只能刪除棧頂?shù)脑兀磩倓偨o插入的元素。所以棧又稱后進(jìn)先出表(Last In First Out)。隊列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最后一個元素一定是最新入隊的元素。因此隊列又稱先進(jìn)先出表(First In First Out)。二叉樹的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu),結(jié)構(gòu)中數(shù)據(jù)元素之間存在著一對多的關(guān)系,因此它是一種非線性數(shù)據(jù)結(jié)構(gòu)。

              2)下面敘述正確的是________。

              A)算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

              B)算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

              C)算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

              D)算法的時間復(fù)雜度是指執(zhí)行算法程序所需要的時間

              (2)C

              知識點(diǎn):算法的基本概念;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)

              評 析:算法的設(shè)計可以避開具體的計算機(jī)程序設(shè)計語言,但算法的實現(xiàn)必須借助程序設(shè)計語言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計算機(jī)科學(xué)的兩個重要支柱。它們是一個不可分割的整體。算法在運(yùn)行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟以后結(jié)束。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,即算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。

              (3)在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是________。

              A)8 B)16 C)128 D)256

              (3)C

              知識點(diǎn):二叉樹的定義及其存儲結(jié)構(gòu)

              評 析:根據(jù)二叉樹的性質(zhì):二叉樹第i(I>1)層上至多有2i-1個結(jié)點(diǎn)。得到第8層的結(jié)點(diǎn)數(shù)最多是128。

              (4)下面描述中,不符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是________。

              A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

              B)自頂向下

              C)注重提高程序的執(zhí)行效率

              D)限制使用goto語句

              (4)C

              知識點(diǎn):結(jié)構(gòu)化程序設(shè)計

              評 析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。“自頂向下”是說,程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié),先考慮全局目標(biāo),后考慮局部目標(biāo);“逐步求精’’是說,對復(fù)雜問題,應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)節(jié)化;“模塊化”是說,一個復(fù)雜問題肯定是由若干稍簡單的問題構(gòu)成,解決這個復(fù)雜問題的程序,也應(yīng)對應(yīng)若干稍簡單的問題,分解成若干稍小的部分。

              (5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖莀_______。

              A)對象、消息 B)繼承、多態(tài) C)類、封裝 D)過程調(diào)用

              (5)D

              知識點(diǎn):面向?qū)ο蟮某绦蛟O(shè)計方法、對象、方法、屬性及繼承與多態(tài)性

              評 析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶ο蟪霭l(fā),發(fā)展出對象、類、消息、繼承等概念。

              (6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是________。

              A)可行性分析 B)需求分析 C)詳細(xì)設(shè)計 D)程序編碼

              (6)B

              知識點(diǎn):結(jié)構(gòu)化設(shè)計方法

              評 析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼和測試五個階段。其中需求分析階段常用的工具是數(shù)據(jù)流程圖和數(shù)據(jù)字典。

              (7)軟件生命周期中所花費(fèi)用最多的階段是________。

              A)詳細(xì)設(shè)計 B)軟件編碼 C)軟件測試 D)軟件維護(hù)

              (7)D

              知識點(diǎn):軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

              評 析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。本題中詳細(xì)設(shè)計、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費(fèi)代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價。

              (8)數(shù)據(jù)庫系統(tǒng)的核心是________。

              A)數(shù)據(jù)模型 B)DBMS C)軟件工具 D)數(shù)據(jù)庫

              (8)B

              知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

              評 析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

              (9)下列敘述中正確的是________。

              A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

              B)數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)

              C)如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵

              字,則稱其為本關(guān)系的外關(guān)鍵字

              D)關(guān)系中的每列稱為元組,一個元組就是一個字段

              (9)C

              知識點(diǎn):數(shù)據(jù)模型,實體聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型

              評 析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤;設(shè)計數(shù)據(jù)庫的目的實質(zhì)上是設(shè)計出滿足實際應(yīng)用需求的實際關(guān)系模型,故選項B敘述錯誤;關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性。對應(yīng)存儲文件中的字段,故D選項敘述錯誤。

              (10)下列模式中,_______是用戶模式。

              A)內(nèi)模式 B)外模式 C)概念模式 D)邏輯模式

              (10)B

              知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

              評 析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或稱子模式,或稱用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或稱邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式,或稱存儲模式,或稱物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示。即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。

              (11)C語言規(guī)定,程序中各函數(shù)之間_______。

              A)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

              B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

              C)允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

              D)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

              (11)A

              知識點(diǎn):函數(shù)的遞歸調(diào)用

              評 析:c語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

              (12)C語言中下列敘述正確的是_______。

              A)不能使用do-while語句構(gòu)成的循環(huán)

              B)do-while語句構(gòu)成的循環(huán),必須用break語句才能退出

              C)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非零時結(jié)束循環(huán)

              D)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時結(jié)束循環(huán)

              (12)D

              知識點(diǎn):do-while語句

              評 析:選項A是錯誤的,c語言支持do-while語句;選項B是錯誤的,do-while構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時結(jié)束循環(huán),而不是非零;選項C也是錯誤的。

              (13)以下選項中屬于C語言的數(shù)據(jù)類型是_______。

              A)復(fù)數(shù)型 B)邏輯型 C)雙精度型 D)集合型

              (13)C

              知識點(diǎn):c語言的數(shù)據(jù)類型

              評 析:c語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點(diǎn)型,包括單精度型和雙精度型兩種類型。

              (14)在C語言中,不正確的int類型的常數(shù)是_______。

              A)32768 B)0 C)037 D)0xAF

              (14)A

              知識點(diǎn):int類型的范圍

              評 析: c語言中int類型的常數(shù)的范圍是:-32768~32767。c整常數(shù)可用三種形式表示:十進(jìn)制整數(shù),八進(jìn)制整數(shù),十六進(jìn)制整數(shù)。選項A超出范圍,不正確。

              (15)下列描述中不正確的是_______。

              A)字符型數(shù)組中可以存放字符串

              B)可以對字符型數(shù)組進(jìn)行整體輸入、輸出

              C)可以對整型數(shù)組進(jìn)行整體輸入、輸出

              D)不能在賦值語句中通過賦值運(yùn)算符“=”對字符型數(shù)組進(jìn)行整體賦值

              (15)C

              知識點(diǎn):對數(shù)組的理解

              評 析: c語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。字符數(shù)組的輸入、輸出可以將整個字符串一次輸入或輸出。所以,選項C的說法是不正確的。

              (16)以下程序的輸出結(jié)果是_______。

              main()

              { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p。

              for(i=0;i<4;i+=2)printf("%d",p[i]];

              }

              A)5 2 B)5 1 C)5 3 D)9 7

              (16)C

              知識點(diǎn):通過指針引用數(shù)組元素

              評 析:題中*p=&x[1][1];是指將數(shù)組x的數(shù)組元素x[1][1]的地址賦值給指針變量p,使p指向x[l][l]這個數(shù)組元素,那么p[0]即為指針變量p當(dāng)前所指向的數(shù)組元素x[l][1]的值。具體執(zhí)行時如下所示:

              i=0時,輸出p[0],也就是x[1][1],輸出是5:

              i=2時,輸出p[2],即p[2+0],也就是x[2][0],輸出是3。

              (17)以下程序的運(yùn)行結(jié)果是_______。

              "stdio.h"

              main()

              {

              int a[]={1,2,3,4,5,6,7,8,9,10,11,12};

              int*p=a十5,*q=NULL;

              *q=*(p+5);

              printf("%d %d ",*p,*q);

              }

              A)運(yùn)行后報錯 B)6 6

              C)6 12 D)5 5

              (17)A

              知識點(diǎn):通過指針引用數(shù)組

              評 析:題目中沒有給q分配存儲單元,只是簡單地給它賦了一個值,所以程序的運(yùn)行結(jié)果是6 ll NULL pointer assignment,也就是運(yùn)行后報錯。

              (18)以下說法中正確的是________。

              A)c語言程序總是從第一個函數(shù)開始執(zhí)行

              B)在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義

              C)C語言程序總是從main()函數(shù)開始執(zhí)行。

              D)c語言程序中的main()函數(shù)必須放在程序的開始部分

              (18)C

              知識點(diǎn): C程序的運(yùn)行順序

              評 析:c語言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來調(diào)用其他函數(shù),所以選項A錯誤;c語言中定義的函數(shù)必須是并列的,不能在一個函數(shù)中定義其他函數(shù),選項B錯誤;函數(shù)必須先定義后使用,在調(diào)用函數(shù)之前要定義函數(shù),而mmn()函數(shù)不一定要放在程序的開始部分,故選項D錯誤。

              (19)能正確表示a和b同時為正或同時為負(fù)的邏輯表達(dá)式是________。

              A)(a>=0l lb>=0)&&(a<0I lb<0) a="">=0&&b>--0)&&(a<0&&b

              C)(a+b>0) &&(a+b<=0) b="">0

              (19)D

              知識點(diǎn):對邏輯表達(dá)式的判斷

              評 析:邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來。

              選項A中,表達(dá)式表示的是a,b為異號;

              選項B中,表達(dá)式表示的是0,因為沒有滿足條件的值;

              選項C中,表達(dá)式表示的是0,因為沒有滿足條件的值;

              選項D表示的是a和b為同號。

              (20)若己定義:int a[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達(dá)式是________。

              A)p+l B)a+l C)a++ D)++p

              (20)C

              知識點(diǎn):數(shù)組地址的表示

              評 析:數(shù)組名是指針常量,是個固定的指針,不能對數(shù)組名賦予一個新的地址值,也不能使這個指針常量“移動”,指向數(shù)組的其他元素。

              (21)以下程序的輸出結(jié)果是________。

              main()

              { int a=-l,b=l,k;

              if((++a<0)&&!(b--<=0))

              printf("%d %d ",a,b);

              else

              printf("%d %d ”,b,a);

              }

              A)-l l B)0 1

              C)1 0 D)0 0

              (21)C

              知識點(diǎn):if條件的判斷

              評析:邏輯運(yùn)算符的優(yōu)先次序如下:!(非)→&&(與)→||(或),但本題需特別注意的是短路的概念:對于&&運(yùn)算符,其兩邊表達(dá)式的值只要有一邊為假,則整個與運(yùn)算表達(dá)式的值即為假,系統(tǒng)在執(zhí)行時,先運(yùn)算&&左邊的表達(dá)式,若為假,則系統(tǒng)不會再判斷&&運(yùn)算符右邊的表達(dá)式了,直接運(yùn)用短路原理得整個與運(yùn)算表達(dá)式的值為0。由于++a是先運(yùn)算后使用,b--是先使用后運(yùn)算。所以本題在執(zhí)行++a后,a值為0,不滿足條件,所以a為l,根據(jù)短路原理,b仍為0,接下去執(zhí)行else語句,輸出l 0。

              (22)以下選項中,能定義s為合法的結(jié)構(gòu)體變量的是________。

              A) typedef struct abc

              { double a;

              char b[10];

              }s;

              B ) struct

              { double a;

              char b[10];

              }s;

              C) struct ABC

              { double a;

              char b[10];

              }

              ABC s;

              D ) typedef ABC

              { double a;

              char b[10];

              }

              ABC s:

              (22)B

              知識點(diǎn):結(jié)構(gòu)體變量的定義

              評析:定義一個結(jié)構(gòu)體類型的變量,可采用三種方法:

              ①先定義結(jié)構(gòu)體類型,再定義變量名;

              ②在定義類型的同時定義變量;

              ③直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名。

              選項B符合第三種定義方法。

              (23)請讀程序:

              main()

              {

              char*sl="AbCdEf",*s2="aB";

              s1++;s2++;

              printf("%d ",strcmp(s1,s2));

              }

              上面程序的輸出結(jié)果是_______。

              A)正數(shù) B)負(fù)數(shù) C)零 D)不確定的值

              (23)A

              知識點(diǎn):字符串比較函數(shù)strcmp()的應(yīng)用

              評析:strcmp(X1,X2)是串比較函數(shù),當(dāng)X1>X2時返回值為正數(shù),當(dāng)X1

              本題中“sl”、“s2”分別表示這兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,則*sl為“bCdEf,*s2為“B”。而在字符串比較中。大小的確定是由各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的。“B”的ASCII碼值為66,”b”的ASCII碼值為98,所以sl>s2,返回值為正數(shù)。

              (24)請讀程序:

              func(int a,int b){

              int c:

              c=a+b:

              return C:

              }

              main(){

              int x=6,y=7,z=8,r;

              r=func((x--,y++,x+y),z--);

              printf("%d ",r);

              }

              上面程序的輸出結(jié)果是________。

              A)11 B)20 C)2l D)31

              (24)C

              知識點(diǎn):自增、自減運(yùn)算

              評析:函數(shù)func()的作用是返回兩個形參的和,第一個形參是x、y分別自減和自增后的和,其中(x--,y++,x+y)是一個逗號表達(dá)式,它的值應(yīng)該等于x+y,所以整個表達(dá)式(x--,y++,x+y)的值為13,而第二個形參的值為8(根據(jù)語法規(guī)則,應(yīng)當(dāng)先使用,后自增),所以fune()的返回值為13+8=21。

              (25)請讀程序:

              main()

              {

              int a,b;

              for(a=1,b=l;a<=100;a++){

              if(b>=20)break;

              if(b%3==1){b+=3;continue;}

              b_=5:

              }

              printf("%d ",a);

              }

              上面程序的輸出結(jié)果是________。

              A)7 B)8 C)9 D)10

              (25)B

              知識點(diǎn):break語句和continue語句

              評析:break語句的作用是用于跳出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體下面的語句;而continue語句的作用是用于跳出本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。“%”是求余運(yùn)算符,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時,條件(b>=20)為假,跳出循環(huán),此時共循環(huán)8次,即a=8。

              (26)請讀程序片段(字符串內(nèi)沒有空格字符):

              printf("%d ",strlen("ATS 0l2l"));

              上面程序片段的輸出結(jié)果是_______。

              A)l1 B)10 C)9 D)8

              (26)C

              知識點(diǎn):字符串的長度

              評析:這個語句的目的是輸出“ATS 0121”這個串的長度,在串中“”代表一個“”,為了和printf()函數(shù)中的轉(zhuǎn)義字符區(qū)分開來,在語法上使用了兩個反斜杠代替了一個反斜杠,所以它僅僅為一個字符,而”l”代表數(shù)字l,也占一個字符,“ ”是回車換行符,也占一個字符,加上A、T、s、0、1、2,一共是9個字符。

              (27)請選出可用作C語言用戶標(biāo)識符的一組標(biāo)識符_______。

              A)Void B)a3_b3 C)For D)2a

              define _123 _abc DO

              WORD IF case sizeof

              (27)B

              知識點(diǎn):C語言的標(biāo)識符

              評析:c語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。

              選項A中的void和define都和c語言的關(guān)鍵字重名,不合法;

              選項C中的case和c語言的關(guān)鍵字重名,不合法;

              選項D中的2a是數(shù)字打頭而且sizeof和c語言的關(guān)鍵字重名,不合法。

              (28)請選出以下程序的輸出結(jié)果_______。

              sub(int*s,int y)

              { static int t=3;

              y=s[t];t--;

              }

              main()

              { int a[]={1,2,3,4},i,x=0;

              for(i=0;i<4;i++){

              sub(a,x);printf("%d",x);}

              printf(" ");

              }

              A)1234 B)432l C)0000 D)4444

              (28)C

              知識點(diǎn):函數(shù)的形參和實參的關(guān)系

              評析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為O。

              (29)若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用_______。

              int c[4][5],(*cp)[5];

              cp=c;

              A)cp+l B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)

              (29)D

              知識點(diǎn):數(shù)組元素的引用

              評析:cp=c這個語句是將數(shù)組第0行的地址賦給了cp。cp+l使指針指向二維數(shù)組c的第一行;*(cp+3)是數(shù)組c的第三行的第0列的地址值;+(cp+1)+3是數(shù)組c的第一行第三列的地址值。

              (30)設(shè)有以下語句

              char a=3,b=6,c;

              c=a^b<<2:

              則c的二進(jìn)制值是_______。

              A)00011011 B)00010100 C)000ll 100 D)00011000

              (30)A

              知識點(diǎn):位運(yùn)算

              評析:“<<”是c語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;,^是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為0001101l。

              (31)設(shè)有

              static char str[]="Beijing";

              則執(zhí)行

              printf("%d ",strlen(strcpy(str, "China")));

              后的輸出結(jié)果為_______。

              A)5 B)7 C)12 D)14

              (31)A

              知識點(diǎn):字符串的長度

              評析:在執(zhí)行printf()函數(shù)前,數(shù)組str的長度是7,但是當(dāng)使用strcpy()函數(shù)將新的值賦給str后,strlen()函數(shù)返回的應(yīng)當(dāng)是現(xiàn)在的str字符串的字符個數(shù),即是5。

              (32)以下程序的輸出結(jié)果是_______。

              main()

              { int i;

              for(i=1;i<5;i++){

              if(i%2)printf("*");

              else continue;

              printf("#");

              }

              print"$ ");

              }

              (32)C

              知識點(diǎn):if語句的判斷

              評析:當(dāng)i不可以整除2時打印”*”,然后打印“#”,不能整除2則執(zhí)行continue,跳過printf(“#”);語句,結(jié)束本次循環(huán),返回到循環(huán)的起始點(diǎn)。當(dāng)循環(huán)結(jié)束后,打印“$”。

              (33)有以下程序

              main()

              { int c;

              while((c=get))!=‘ ’){

              switch(C-‘2’){

              case O:case 1:putc+4);

              case 2:putc+4);break;

              case 3:putc+3);

              default:putc十2);break;}

              }

              }

              從第一列開始輸入以下數(shù)據(jù),↙代表一個回車符。

              2473↙

              程序的輸出結(jié)果是_______。

              A)668977 B)668966 C)66778777 D)6688766

              (33)A

              知識點(diǎn):switch()語句

              評析:get)函數(shù)是從鍵盤接受一個字符輸入;當(dāng)用戶鍵入的字符不是回車符時,會進(jìn)入一個多分支選擇語句,根據(jù)表達(dá)式c-‘2’的值進(jìn)行分支選擇:put)是在屏幕上打印一個字符,最后的結(jié)果應(yīng)當(dāng)為668977。

              (34)以下程序的輸出結(jié)果是________。

              main()

              { int w=5;fun(w);printf(" ");}

              fun(int k)

              { if(k>O) fun(k_1);

              printf("%d",k);

              }

              A)5 4 3 2 l B)0 1 2 3 4 5

              C)1 2 3 4 5 D)5 4 3 2 1 0

              (34)B

              知識點(diǎn):函數(shù)的遞歸調(diào)用

              評析:函數(shù)的遞歸調(diào)用就是在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身。fun函數(shù)共被調(diào)用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(O)。其中fun(5)是main函數(shù)調(diào)用的,其余是在fun函數(shù)中調(diào)用的。

              (35)若fp是指向某文件的指針,且已讀到此文件的末尾,則函數(shù)feof(f1))的返回值是_________ 。

              A)EOF B)0 C)非零值 D)NULL

              (35)C

              知識點(diǎn):文件結(jié)束符的返回值

              評析:函數(shù)feof是用來判斷文件是否已讀到末尾,如果己讀到末尾則返回非零值,否則返回O。

              (36)算法的時間復(fù)雜度是指_______。

              A)執(zhí)行算法程序所需要的時間

              B)算法程序的長度

              C)算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

              D)算法程序中的指令條數(shù)

              (36)C

              知識點(diǎn):算法復(fù)雜度的概念和意義(時問復(fù)雜度與空間復(fù)雜度)

              評析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。為了能夠比較客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應(yīng)該與所使用的計算機(jī)、程序設(shè)計語言以及程序編制者無關(guān),而且還應(yīng)該與算法實現(xiàn)過程中的許多細(xì)節(jié)無關(guān)。為此,可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量算法的工作量。

              (37)下列敘述中正確的是_______。

              A)線性表是線性結(jié)構(gòu) B)棧與隊列是非線性結(jié)構(gòu)

              C)線性鏈表是非線性結(jié)構(gòu) D)二叉樹是線性結(jié)構(gòu)

              (37)A

              知識點(diǎn):線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念

              評析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間相關(guān)聯(lián)關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件: (1)有且只有一個根結(jié)點(diǎn); (2)每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

              (38)下面關(guān)于完全二叉樹的敘述中,錯誤的是_______。

              A)除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

              B)可能缺少若干個左右葉子結(jié)點(diǎn)

              C)完全二叉樹一般不是滿二叉樹

              D)具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+l

              (38)B

              知識點(diǎn):二叉樹的定義及其存儲結(jié)構(gòu)

              評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(zhì)(5),也是正確的。

              (39)結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是_______。

              A)程序的規(guī)模 B)程序的易讀性

              C)程序的執(zhí)行效率 D)程序的可移植性

              (39)B

              知識點(diǎn):結(jié)構(gòu)化程序設(shè)計

              評析:結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的足結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測試.以保證程序的正確性。

              (40)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是_______。

              A)概要設(shè)計 B)詳細(xì)設(shè)計 C)可行性分析 D)需求分析

              (40)D

              知識點(diǎn):軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

              評析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。軟件生命周期的主要活動階段為:

              ① 可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

              ②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

              ③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

              ④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

              ⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

              ⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并存運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。

              (41)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是_______。

              A)控制流 B)加工 C)數(shù)據(jù)存儲 D)源和潭

              (41)A

              知識點(diǎn):結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

              評析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

              (42)軟件需求分析一般應(yīng)確定的是用戶對軟件的_______。

              A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求

              (42)D

              知識點(diǎn):結(jié)構(gòu)化設(shè)計方法

              評析:軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。

              (43)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是_______。

              A)數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

              B)數(shù)據(jù)庫系統(tǒng)避免了一切冗余

              C)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

              D)數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

              (43)A

              知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

              評析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應(yīng)JH=j所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身義可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

              (44)關(guān)系表中的每一橫行稱為一個_______。

              A)元組 B)字段 C)屬性 D)碼

              (44)A

              知識點(diǎn):數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫.數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

              評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

              (45)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是_______。

              A)概念設(shè)計和邏輯設(shè)計 B)模式設(shè)計和內(nèi)模式設(shè)計

              C)內(nèi)模式設(shè)計和物理設(shè)計 D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

              (45)A

              知識點(diǎn):數(shù)據(jù)庫設(shè)計方法和步驟:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計的相關(guān)策略

              評析:數(shù)據(jù)庫設(shè)計可分為概念設(shè)計與邏輯設(shè)計。數(shù)據(jù)庫概念設(shè)計的目的是分析數(shù)據(jù)問內(nèi)存語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。數(shù)據(jù)庫邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換為指定的RDBMS中的關(guān)系模型。

              (46)請讀程序:

              main()

              {

              int a;float b,c;

              scanf("%2d%3f%4f",&a,&b,&c);

              printf(" a=%d,b=%Cc=%f ",a,b,c);

              }

              若運(yùn)行時從鍵盤上輸入9876543210↙,則上面程序的輸出結(jié)果是_______。

              A)a=98,b=765,c=4321

              B)a=10,b=432,c=8765

              C)a=98,b=765.000000,c=432 1.000000

              D)a=98,b=765.0,c=4321.0

              (46)C

              知識點(diǎn):格式輸入、輸出函數(shù)

              評析:scanf()把剛戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,由于“f”是以小數(shù)形式輸出單、雙精度數(shù)。隱含輸出6位小數(shù),所以b=4321.000000;把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量fd、b、c的值分別為:98、765.000000、432 1.000000。

              (47)請選出以下程序的輸出結(jié)果_______。

              sub(x,y,z)

              int x,y,*z:

              {*z=y-x;}

              main(){

              int a,b,c;

              sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

              printf("%d,%d,%d ",a,b,c);

              }

              A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7

              (47)B

              知識點(diǎn):函數(shù)的調(diào)用

              評析:sub()函數(shù)的作脂是將形參y和x的差賦給了z指向的那個內(nèi)存地址,所以在sub(10,5,&a)中,10和5膈于值傳遞,直接將數(shù)值j0和5分別傳遞給了變量x和y,而對于a是屬于地址傳遞,也就是a與z指向了蚓一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,但b,c值并不改變,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=-12,住sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

              (48)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是_______。

              A)pb=&x; B)pb=x; C)*pb=&x; D)*pb=*x

              (48)A

              知識點(diǎn):賦值表達(dá)式

              評析:選項A是將變量x的地址賦給指鉗‘變量pb,使pb指向x,故為正確的賦值表達(dá)式。

              選項B是將x的值當(dāng)作地址賦給指針pb,pb指¨一個地址等于x值的內(nèi)存單元。

              選項C足將x的地址賦給指針pb指向的那個地址等于x值的內(nèi)存單元。

              選項D是不正確的語句。

              (49)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元

              int *p;

              p=_______malloc(sizeof(int));

              則應(yīng)填入_______。

              A)int B)ira* C)(*int) D)(int*)

              (49)D

              知識點(diǎn):強(qiáng)制類型轉(zhuǎn)換

              評析:不論p是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。

              (50)若執(zhí)行下面程序時從鍵盤上輸入5,

              main()

              {

              int x;

              scanf("%d",&x);

              if(x++>5)printf("%d ",x);

              else printf("%d ",x--);

              }

              則輸出是_______。

              A)7 B)6 C)5 D)4

              (50)B

              知識點(diǎn):if條件的判斷

              評析:根據(jù)c語言的語法,x+十是在使用x之后,再將x的值加1,在if語句中,x的值為5,條件不成立,執(zhí)行else后面的語句,因為x的值已經(jīng)加1,為6,所以打印結(jié)果為6。

              (51)設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是_______。

              A)‘a(chǎn)’&&‘b’ B)a<=b C)a||+c&&b-c D)!((a

              (51)D

              知識點(diǎn):幾種運(yùn)算符的使用

              評析:選項A:‘a(chǎn)’&&‘b’是字符a與b的相與,故不為0。

              選項B:a<=b,由題中變量賦值可知,結(jié)果為l。

              選項c:a||+c&&b-c,此表達(dá)式先做算術(shù)運(yùn)算b-c,結(jié)果為一1.而+c屬于單目運(yùn)算符,由于c初值為5,經(jīng)過單目運(yùn)算符運(yùn)算后,還是5,下面再進(jìn)行邏輯與的運(yùn)算,即5&&-1結(jié)果為1(因為c語言中除O代表假外,其他任一個數(shù)都代表真),最后a||l,結(jié)果為1。

              選項D:!((a

              (52)設(shè)有如下程序

              main()

              {

              int **k,*j,i=100;

              j=&i; k=&j;

              printf("%d ",**k);

              }

              上述程序的輸出結(jié)果是_______。

              A)運(yùn)行錯誤 B)100 c)i的地址 D)j的地址

              (52)B

              知識點(diǎn):指針變量的引用

              評析:j=&i,j的值就是i的地蚍,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。

              (53)設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_______(其中0≤i

              int a[10]={0,l,2,3,4,5,6,7,8,9,},*p=a;

              A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))

              (53)D

              知識點(diǎn):通過指針引用數(shù)組元素

              評析:觀察程序可知.a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

              (54)有以下程序:

              main(){

              char c[6];

              int i=0:

              for(;i<6;c[i]=get),i++);

              for(i=0;i<6;i++)putc[i]);

              printf(" ");

              }

              如果從鍵盤上輸入:

              ab<回車>

              c<回車>

              def<回車>

              則輸出結(jié)果為________。

              A)a B)a C)ab D)abcdef

              b b c

              c c d

              d d

              e

              f

              (54)C

              知識點(diǎn):字符數(shù)據(jù)的輸入、輸出

              評析:1.get)

              此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。請注意:get)只能接受一個字符(回車符也算是一個字符)。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可不賦給任何變量,作為表達(dá)式的一部分。

              2.put)

              此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符,如回車符使輸出的當(dāng)前位置移到下一行的開頭。

              本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

              (55)下面程序

              main()

              { char*p1:"abc",*p2="ABC",str[50]= "xyz";

              strcpy(str+2,strcat(p1,p2));

              printf("%s ",str);

              }

              的輸出是_______。

              A)xyzabcABC B)zabcABC

              C)yzabcABC D)xyabcABC

              (55)D

              知識點(diǎn):字符串的連接和拷貝

              評析:strcat(字符數(shù)組l,字符數(shù)組2)的作用是連接兩個字符數(shù)組中的字符串,把字符串2接到字符串l的后面,結(jié)果放在字符數(shù)組l中,本題中strcat(p1,p2)函數(shù)將*pl和*p2指向的兩個串連接了起來,將字符串a(chǎn)bcABC放到了*pl所指向的存儲單元中:而strcpy(字符數(shù)組1,字符串2)函數(shù)將字符串2復(fù)制到字符數(shù)組1中去,本題將字符串a(chǎn)bcABC復(fù)制到了str+2所指向的存儲單元中,即將原str數(shù)組中的字符z及z向后的所有字符覆蓋,所以在打印輸出時,str的值已經(jīng)等于“xyabcABC”。

              (56)下面程序

              int aa[3][3]={{2},{4},{6}};

              main()

              { int i,*p=&aa[0][0];

              for(i=0;i<2;i++){

              if(i==0)aa[i][i+1]=*p+l;

              else ++p;

              printf("%d",*p);

              }

              }

              的輸出是_______。

              A)23 B)26 C)33 D)36

              (56)A

              知識點(diǎn):for循環(huán)語句

              評析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][O]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時p所指向的是aa[0][0],輸出2,而i=l時執(zhí)行了++p操作,使指針向后移動指向了aa[0][l],所以在輸出*p時應(yīng)為3。

              (57)下面程序

              main()

              { int x=100,a=10,b=20,okl=5,ok2=0;

              if(a

              if(b!=15)

              if(!okl)x=1;

              else if(ok2)x=10;

              X=-1;

              Ptintf("%d ",x);

              }

              的輸出是_______。

              A)-1 B)0 C)1 D)不確定的值

              (57)A

              知識點(diǎn):判斷語句的循環(huán)嵌套

              評析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷……如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為一l,所以,無論前期如何變化,最后的x值依然為一l。

              (58)下面程序

              main()

              {

              int x=32:

              printf("%d ",x=x<<1);

              }

              的輸出是_______。

              A)100 B)160 C)120 D)64

              (58)D

              知識點(diǎn):位運(yùn)算

              評析:<<是c語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2-64。

              (59)以下程序的輸出結(jié)果是________。

              #define FUDGE(y) 2.84+y

              #define PR(a) printf("%d",(int))(a))

              #define PRINT l(a) PR(a);put‘ ’)

              main()

              { int x=2;

              PRINT l(FUDGE(5)*X);

              }

              A)1l B)12 C)13 D)15

              (59)B

              知識點(diǎn):帶參數(shù)的宏定義

              評析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實參代替形參,如果宏定義中的字符串中的字符不是參數(shù)字符,則保留,這樣就形成了置換的字符串。

              根據(jù)以上原則,我們將實參帶入已經(jīng)定義的宏中,可以得出答案,最后打印出來的是“12”。

              (60)以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入:

              main()

              {

              int a[10],i=0;

              while(i

              :

              :

              }

              A)a+(i++) B)&a[i+l] C]a+i D]&a[++i]

              (60)A

              知識點(diǎn):格式輸入函數(shù)scanf()

              評析:因為a實際上就是數(shù)組a的首地址,而a+x則是數(shù)組中第x個元素的地址,所以在四個選項中,選項B和C只能輸入一個數(shù)據(jù),選項D不能給a[0]輸入數(shù)據(jù),只有選項A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

              (61)字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲形式是________。

              A)反碼 B)補(bǔ)碼

              C)EBCDIC碼 D)ASCII碼

              (61)D

              知識點(diǎn):字符數(shù)據(jù)在內(nèi)存中的存儲形式

              評析:將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

              (62)下面程序的輸出是________。

              typedef union

              { long x[2];

              int y[4];

              char z[8];

              }MYTYPE;

              MYTYPE them;

              main()

              { printf("%d ",sizeof(them));}

              A)32 B)16 C)8 D)24

              (62)C

              知識點(diǎn):共用體的長度

              評析:sizeof(x)是一個標(biāo)準(zhǔn)c函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度,所以共用體MYTYPE需要8個字節(jié)的存儲空間,由它定義的變量的長度當(dāng)然也是8。

              (63)不能把字符串:“Hello!”賦給數(shù)組b的語句是________。

              A)char b[10]={‘H’,‘e’,‘l’,‘l’,‘0’,‘!’};

              B)char b[10]={‘h’,‘e’,‘l’,‘l’,‘0’,‘!’};

              C)char b[10];strcpy(b,"Hello!");

              D)char b[10]="Hello!";

              (63)B

              知識點(diǎn):給數(shù)組賦值

              評析:在c語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

              (64)下面程序的輸出是________。

              main()

              { int x=3,y=6,a=0;

              while(x++!=(y—=1))

              { a+=1;

              if(y

              }

              printf("x:%d,y:%d,a=%d ",x,y,a);

              }

              A)x=4.v=4,a=1 B)x=5,y=5,a=1

              C)x=5,y=4,a=3 D)x=5,y=4,a=l

              (64)D

              知識點(diǎn):運(yùn)算符

              評析:注意在x++中x值的引用時,這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:

              第一次while循環(huán):x=3與y=5比較,條件為真,執(zhí)行a=a+1=1;此時,x的值己為4,判斷y

              第二次while循環(huán):x=4與y=4比較,條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

              (65)下面程序的輸出是_______。

              main()

              {char*s:"12134211";

              int vl=0,v2=0,V3=0,v4=0,k;

              for(k=0;s[k];k++)

              switch(s[k])

              { default:V4++;

              case‘1’:vl++:

              case‘3’:v3++:

              case‘2’:v2++:

              }

              printf("vl=%d,v2=%d,v3=%d,v4=%d ",vl,v2,v3,V4);

              }

              A)vl=4,v2=2,v3=l,v4=1 B)vl=4,V2=9,V3=3,V4=l

              C)vl=5,v2=8,v3=6,v4=1 D)vl=8,V2=8,V3=8,v4=8

              (65)C

              知識點(diǎn):switch()語句

              評析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個case后面的常量的表達(dá)式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行的 default后面的語句。本題中,for循環(huán)的條件是s數(shù)組的數(shù)組元素值,只要將數(shù)組的值一一代入程序逐步求解即可。

              (66)下面程序的輸出是_______。

              main()

              {int k=ll;

              printf("k=%d,k=%o,k=%x ",k,k,k);

              }

              A)k=11.k=12,k=ll B)k=ll,k=13,k=13

              C)k=ll,k=013,k=0xb D)k=ll,k=13,k=B

              (66)D

              知識點(diǎn):格式字符

              評析:在c語言格式字符的輸出中,“%d”是以帶符號的十進(jìn)制形式輸出整數(shù),即k=ll:“%o”是以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0),即k=13:“%x”是以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0x),即k=B。

              (67)以下敘述中正確的是_______。

              A)c語言比其他語言高級

              B)C語言可以不用編譯就能被計算機(jī)識別執(zhí)行

              c)c語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

              D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)

              (67)C

              知識點(diǎn):c語言風(fēng)格

              評析:計算機(jī)語言分為低級語言、匯編語言和高級語言,c語言屬于高級語言,但并不是說c語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項B錯誤;c語言出現(xiàn)于1972年到1973年問,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

              (68)下列可用于c語言用戶標(biāo)識符的一組是_______。

              A)void define WORD B)a3_b3 _123 Car

              C)For -abc IFCase D)2a D0 sizeof

              (68)B

              知識點(diǎn):c語言的標(biāo)識符

              評析:c語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,所以排除c和D。c語言還規(guī)定標(biāo)識符不能為c語言的關(guān)鍵字,從而選項A是錯誤的,因為void為關(guān)鍵字。

              (69)請選出正確的程序段________。

              A)int*p B)int*s,k;

              Scanf("%d",p); *s=100;

              ……

              C)int*s,k: D)int*s,k;

              Char*p,c; char*p,e;

              s=&k; s=&k;

              p=&c; p=&c;

              *p=‘a(chǎn)’; s=p;

              …… *s=l;

              ……

              (69)C

              知識點(diǎn):指針變量

              評析:本題的A和B犯了一個同樣的錯誤,即指針變量p定義后并沒有指向具體的變量。也就是說,p中沒有確定的地址值,它的值是不可預(yù)見的,所指向的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項D中,s是int指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變最s。

              計算機(jī)二級c語言試題及答案2

              1: 第1題請編寫函數(shù)fun,其功能使:將兩個兩位正整數(shù)a b合并形成一個整數(shù)放在c中。合并的方式使:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。

              答案:

              void fun(int a,int b,long *c)

              {*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

              2: 第2題請編寫一個函數(shù)fun,它的功能使:計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。

              答案:

              float fun(float *a,int n)

              {float ave=0.0;

              int i;

              for(i=0;i

              ave+=a;

              ave/=n;

              return ave;}

              3: 第3題假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能使:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。

              答案:

              void fun(char *a)

              {int i=0;

              char *p,*q;

              p=q=a;

              while(*p)

              p++;

              p--;

              while(*p==‘*’)

              p--;

              while(q<=p)

              {a=*q;

              i++;

              q++;}

              a=‘’;}

              4: 第4題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。

              答案:

              void fun(int a,int b,long *c)

              {c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}

              5: 第5題 n名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請編寫函數(shù)fun,它的功能是:求出平均分,由函數(shù)值返回。

              答案:

              double fun(strec *h)

              {double aver=0.0;

              while(h!=null)

              {aver+=h->s;

              hy=h->next;}

              aver/=n;

              return aver;}

              6: 第6題請編寫函數(shù)fun,計算并輸出給定10個數(shù)的方差。

              答案:

              double fun(double x[10])

              {int i,j;

              double s=0.0,s1=0.0;

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

              s1+=x;

              s1/=10;

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

              s+=(x[j]-s1)*(x[j]-s1);

              s/=10;

              s=pow(s,0.5);

              return s;}

              7: 第7題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a b合并形成一個整數(shù)放在c 中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。

              答案:

              void fun(int a,int b,long *c)

              {*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}