歷年全國計算機二級c語言題庫文庫,計算機二級c語言試題題庫及答案

本文目錄一覽:

全國計算機等級考試二級C語言歷年試題及答案

這裡有一份最全的考研歷年真題資料分享給你

鏈接: 

 提取碼: w2wt

通過不斷研究和學習歷年真題,為考生衝刺階段複習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;

若資源有問題歡迎追問!

c語言計算機二級考試選擇題如圖?

全國計算機二級考試試題題庫(附答案)

下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題

卡相應位置上塗黑,答在試卷上不得分。

(1) 應用軟件是指

A) 所有能夠使用的軟件 B) 能被各應用單位共同使用的某種軟件

C) 所有微機上都應使用的基本軟件 D) 專門為某一應用目的而編製的軟件

(2) 下列述敘中錯誤的是

A) 計算機要經常使用不要長期閑置不用

B) 為了延長計算機的壽命,應避免頻繁開關計算機

C) 在計算機附近應避免磁場干擾

D) 計算機用幾小時後,應關機一會兒再用

(3) 下列字符中,ASCII碼值最小的是

A) A B) a C) Z D) x

(4) 用晶體管作為電子器件製成的計算機屬於

A) 第一代 B) 第二代 C) 第三代 D) 第四代

(5) 下列各不同進制的四個無符號數中,最小的數是

A) ()2 B) (37)8 C) (75)10 D) (2A)16

(6) 二進制數轉換成十六進制數是

A) B) C) D)

(7) 下列各無符號十進制數中,能用八位二進制表示的是

A) 296 B) 333 C) 256 D) 199

(8) 計算機的軟件系統可分類為

A) 程序與數據 B) 系統軟件與應用軟件

D) 操作系統與語言處理程序 D) 程序、數據與文檔

(9) 486機中的CPU同時能處理的二進制位數為

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

(10) 在使用計算機的過程中,需要重新啟動DOS,則要

A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵

(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機

電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為

A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①

(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是

A) CD.. B) RD \A\C\B

C) TYPE \A\C\B\ D) TYPE C\B\

(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件

的內容,應使用命令

A) TYPE \AB B) TYPE \AB\

C) TYPE \ D) DIR \AB\

(14) 自動批處理文件必須放在

A) C盤根目錄中 B) A盤根目錄中

C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中

(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正

確執行的是

A) RD C:\USER\XY\P B) RD USER\XY\P

C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y

(16) 下列DOS命令中,合法的是

A) DISKCOMP B) TYPE

C) COMP A: B: D) COMP A: A:

(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯

誤的是

A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:

(18) 下列DOS命令中錯誤的是

A) TYPE PRN B) TYPE PRN

C) COPY *.TXT PRN D) COPY CON PRN

(19) 下列四組DOS命令中,互相等價的一組是

A) COPY A:*.* B:與DISKCOPY A: B:

B) COPY +與TYPE

C) COPY + 與COPY +

D) TYPE *.FORCON與COPY *.FOR CON

(20) 設C盤目錄結構如下:

且C盤根目錄下文件的內容為

CD FORTRAN

CD \TC

如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統

文件)的軟盤片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是

A) COPY A:\*.C B) COPY A:\*.C TC

C) COPY A:\*.C FORTRAN D) CD USER

(21) C語言提供的合法的數據類型關鍵字是

A) Double B) short C) integer D) Char

(22) 在C語言中,合法的長整型常數是

A) 0L B) 4962710 C) D)

(23) 表達式:10!=9的值是

A) true B) 非零值 C) 0 D) 1

(24) 合法的C語言中,合法的長整型常數是

A) ‘\t’ B) “A” C) 65 D) A

(25) 若有說明和語句:

int a=5;

a++;

此處表達式a++的值是

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

(26) 在下列選項中,不正確的賦值語句是

A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;

(27) 若有說明:int i,j=7, *p=i;,則與i=j;等價的語句是

A) I= *P; B) *P=*J; C) i=j; D) i=* *p;

(28) 不能把字符串:Hello!賦給數組b的語句是

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

B) char b[10];b=”Hello!”;

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

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

(29) 若有以下說明:

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

char c=’a’,d,g;

則數值為4的表達式是

A)a[g-c] B)a[4] C)a[‘d’-‘c’] D)a[‘d’-c]

(30) 若有以下說明:

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

則數值為6的表達式是

A) *p+6 B) *(p+6) C) *p+=5 D) p+5

(31) 若有以下說明:

int w[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

則數值為4的表達式是

A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]

(32) 若程序中有下面的說明和定義

struct abc

{int x;char y;}

struct abc s1,s2;

則會發生的情況是

A) 編譯進錯 B) 程序將順利編譯`連接`執行

C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯

(33) 能正確表示a≥10或a≤0的關係表達式是

A)a=10 or a=0 B)a=10│a=0

C)a=10││a=0 D)a=10 ││a=0

(34) 下面程序的輸出是

main()

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

while(x++!=(y+=o1))

{ a+o=1;

if(y

#include

main()

{ char ss[10]=”12345″;

strcat(ss,”6789″);

gets(ss);printf(“%s\n”,ss);

}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(35) 下面程序的輸出是

main()

{ char *a=””;

int v1=0,v2=0,v3=0,v4=0,k;

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

switch(s[k])

{ default:v4++;

case ‘1’: v1++;

case ‘3’: v3++;

case ‘2’: v2++; }

printf(“v1=%d,v2=%d,v3=%d,v4=%d\n”,v1,v2,v3,v4); }

A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8

(36) 下面程序的輸出是

main()

{int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);}

A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b

(37) 若有以下程序段,w和k都是整型變量:

w=k;

LB: if(w==0) go to LE;

w–;

printf(“*”);

goto LB;

LE: ┆

則不能與上面程序段等價的循環語句是

A)for(w=k;w!=0;w–) printf(“*”); B)for(w=k;w;–w)printf(“*”);

C)w=k; D)w=k;

while(w–!=0)printf(“*”);w++; do{ w–;printf(“*”);}while(w!=0);

(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是

A)*p=a; scanf(“%lf”,p); B)p=(double *)malloc(8);scanf(“%f”,p);

C) p=a;scanf(“%lf”,a); D)p=a; scanf(“%le”,p);

(39) 當執行下面程序且輸入:ABC時,輸出的結果是

#include

#include

main()

{ char ss[10]=”12345″;

gets(ss);printf(“%s\n”,ss); }

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(40) 若有以下的說明和語句:

main()

{int t[3][2], *pt[3],k;

fpr(k=o; k3;k++)pt[k]=t[k];

}

則以一選項中能正確表示t數組元素地址的表達式是

A) t[3][2] B) *pt[0] C) *(pt+1) D) pt[2]

(41) 下面程序輸出數組中的最大值,由s指針指向該元素.

main()

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

flr(p=a, s=a; p-a10; p++)

if(—?—)s=p;

printf(“The max:%d”,*s):

}

則在if語句中的判斷表達式應該是

A) ps B) *p*s C) a[p]a[s] D) p-ap-s

(42) 下面程序的輸出是

#include

main()

{ char*a=”abcdefgh”;

fun(a);puts(a); }

fun (char * s)

{ int x=0,y;char c;

for(y=strlen(s)-1;x

A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba

(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句

中實參的個數是

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

(44) 下面程序的輸出是

main()

{ int t=1; fun(fun(t));}

fun(int h)

{ static int a[3]={1,2,3};

int k;

for(k=0;k3;k++) a[k]+=a[k]-h;

for(k=1;k3;k++) printf(“%d”,a[k]);

printf(“\n”); return(a[h]);}

A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,

1,5,9, 1,3,5, 0,4,8, -1,3,7,

(45) C語言中,函數的隱含存儲類別是

A)auto B)static C)extern D)無存儲類別

(46) 下面程序的輸出是

int w=3;

main()

{ int w=10; printf(“%d\n”,fun(5)*w); }

求2011年九月以及以前的計算機二級考試C語言試題及答案、以及考試內容分析和解題技巧。記住只要C的。

(1)下面敘述正確的是________。

A)算法的執行效率與數據的存儲結構無關

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

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

D)算法的時間複雜度是指執行算法程序所需要的時間

(1)C

知識點:算法的基本概念;算法複雜度的概念和意義(時間複雜度與空間複雜度)

評 析:算法的設計可以避開具體的計算機程序設計語言,但算法的實現必須藉助程序設計語言中提供的數據類型及其算法。數據結構和算法是計算機科學的兩個重要支柱。它們是一個不可分割的整體。算法在運行過程中需輔助存儲空間的大小稱為算法的空間複雜度。算法的有窮性是指一個算法必須在執行有限的步驟以後結束。算法的時間複雜度是指執行算法所需要的計算工作量,即算法執行過程中所需要的基本運算次數。

(2)以下數據結構屬於非線性數據結構的是________。

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

(2)C

知識點:棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算

評 析:線性表、棧和隊列等數據結構所表達和處理的數據以線性結構為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂的元素,即剛剛被插入的元素。所以棧又稱後進先出表(Last In First Out)。隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最後一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(First In First Out)。二叉樹的數據結構是樹型結構,結構中數據元素之間存在着一對多的關係,因此它是一種非線性數據結構。

(3)在一棵二叉樹上第8層的結點數最多是________。

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

(3)C

知識點:二叉樹的定義及其存儲結構

評 析:根據二叉樹的性質:二叉樹第i(I1)層上至多有2i-1個結點。得到第8層的結點數最多是128。

(4)下面描述中,不符合結構化程序設計風格的是________。

A)使用順序、選擇和重複(循環)三種基本控制結構表示程序的控制邏輯

B)自頂向下

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

D)限制使用goto語句

(4)C

知識點:結構化程序設計

評 析:結構化程序設計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。「自頂向下」是說,程序設計時,應先考慮總體,後考慮細節,先考慮全局目標,後考慮局部目標;「逐步求精』』是說,對複雜問題,應設計一些子目標作過渡,逐步細節化;「模塊化」是說,一個複雜問題肯定是由若干稍簡單的問題構成,解決這個複雜問題的程序,也應對應若干稍簡單的問題,分解成若干稍小的部分。

(5)下面概念中,不屬於面向對象方法的是________。

A)對象、消息 B)繼承、多態 C)類、封裝 D)過程調用

(5)D

知識點:面向對象的程序設計方法、對象、方法、屬性及繼承與多態性

評 析:面向對象方法是一種運用對象、類、封裝、繼承、多態和消息等概念來構造、測試、重構軟件的方法。面向對象方法從對象出發,發展出對象、類、消息、繼承等概念。

(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發階段是________。

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

(6)B

知識點:結構化設計方法

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

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

A)詳細設計 B)軟件編碼 C)軟件測試 D)軟件維護

(7)D

知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發環境

評 析:軟件生命周期分為軟件定義、軟件開發及軟件運行維護3個階段。本題中詳細設計、軟件編碼和軟件測試都屬於軟件開發階段;維護是軟件生命周期的最後一個階段,也是持續時間最長,花費代價最大的一個階段,軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。

(8)數據庫系統的核心是________。

A)數據模型 B)DBMS C)軟件工具 D)數據庫

(8)B

知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統

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

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

A)數據處理是將信息轉化為數據的過程

B)數據庫設計是指設計數據庫管理系統

C)如果一個關係中的屬性或屬性組並非該關係的關鍵字,但它是另一個關係的關鍵

字,則稱其為本關係的外關鍵字

D)關係中的每列稱為元組,一個元組就是一個字段

(9)C

知識點:數據模型,實體聯繫模型及E-R圖,從E-R圖導出關係數據模型

評 析:數據處理是指將數據轉換成信息的過程,故選項A敘述錯誤;設計數據庫的目的實質上是設計出滿足實際應用需求的實際關係模型,故選項B敘述錯誤;關係中的行稱為元組,對應存儲文件中的記錄,關係中的列稱為屬性。對應存儲文件中的字段,故D選項敘述錯誤。

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

A)內模式 B)外模式 C)概念模式 D)邏輯模式

(10)B

知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統

評 析:數據庫管理系統的三級模式結構由外模式、模式和內模式組成。外模式,或稱子模式,或稱用戶模式,是指數據庫用戶所看到的數據結構,是用戶看到的數據視圖。模式,或稱邏輯模式,是數據庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。外模式是模式的一部分。內模式,或稱存儲模式,或稱物理模式,是指數據在數據庫系統內的存儲介質上的表示。即對數據的物理結構和存取方式的描述。

36)算法的時間複雜度是指_______。

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

B)算法程序的長度

C)算法執行過程中所需要的基本運算次數

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

(36)C

知識點:算法複雜度的概念和意義(時問複雜度與空間複雜度)

評析:所謂算法的時間複雜度,是指執行算法所需要的計算工作量。為了能夠比較客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應該與所使用的計算機、程序設計語言以及程序編製者無關,而且還應該與算法實現過程中的許多細節無關。為此,可以用算法在執行過程中所需基本運算的執行次數來度量算法的工作量。

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

A)線性表是線性結構 B)棧與隊列是非線性結構

C)線性鏈表是非線性結構 D)二叉樹是線性結構

(37)A

知識點:線性結構與非線性結構的概念

評析:根據數據結構中各數據元素之間相關聯關係的複雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件: (1)有且只有一個根結點; (2)每一個結點最多有一個前件,也最多有一個後件。則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。

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

A)除了最後一層外,每一層上的結點數均達到最大值

B)可能缺少若干個左右葉子結點

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

D)具有結點的完全二叉樹的深度為[log2n]+l

(38)B

知識點:二叉樹的定義及其存儲結構

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

(39)結構化程序設計主要強調的是_______。

A)程序的規模 B)程序的易讀性

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

(39)B

知識點:結構化程序設計

評析:結構化程序設計主要強調的足結構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試.以保證程序的正確性。

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

A)概要設計 B)詳細設計 C)可行性分析 D)需求分析

(40)D

知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發環境

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

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

②需求分析。對待開發軟件提出的需求進行分析並給出詳細定義,即準確地確定軟件系統的功能。編寫軟件規格說明書及初步的用戶手冊,提交評審。

③軟件設計。系統設計人員和程序設計人員應該在反覆理解軟件需求的基礎上,給出軟件的結構、模塊的劃分、功能的分配以及處理流程。

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

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

⑥運行和維護。將已交付的軟件投入運行,並存運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。

(41)數據流圖用於抽象描述一個軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是_______。

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

(41)A

知識點:結構化分析方法,數據流圖,數據字典,軟件需求規格說明書

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

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

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

(42)D

知識點:結構化設計方法

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

(43)下述關於數據庫系統的敘述中正確的是_______。

A)數據庫系統減少了數據冗餘

B)數據庫系統避免了一切冗餘

C)數據庫系統中數據的一致性是指數據類型的一致

D)數據庫系統比文件系統能管理更多的數據

(43)A

知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統

評析:由於數據的集成性使得數據可為多個應JH=j所共享,特別是在網絡發達的今天,數據庫與網絡的結合擴大了數據關係的應用範圍。數據的共享自身義可極大地減少數據冗餘性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。

(44)關係表中的每一橫行稱為一個_______。

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

(44)A

知識點:數據庫的基本概念:數據庫.數據庫管理系統,數據庫系統

評析:在關係數據庫中,關係模型採用二維表來表示,簡稱「表」。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。

(45)數據庫設計包括兩個方面的設計內容,它們是_______。

A)概念設計和邏輯設計 B)模式設計和內模式設計

C)內模式設計和物理設計 D)結構特性設計和行為特性設計

(45)A

知識點:數據庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略

評析:數據庫設計可分為概念設計與邏輯設計。數據庫概念設計的目的是分析數據問內存語義關聯,在此基礎上建立一個數據的抽象模型。數據庫邏輯設計的主要工作是將E-R圖轉換為指定的RDBMS中的關係模型。

(61)字符(char)型數據在微機內存中的存儲形式是________。

A)反碼 B)補碼

C)EBCDIC碼 D)ASCII碼

(61)D

知識點:字符數據在內存中的存儲形式

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

71)算法的空間複雜度是指_______。

A)算法程序的長度 B)算法程序中的指令條數

C)算法程序所佔的存儲空間 D)算法執行過程中所需要的存儲空間

(71)D

知識點:算法的複雜度

評析:一個算法的空間複雜度,一般是指執行這個算法所需的內存空間。

一個算法所佔用的存儲空間包括算法程序所佔的空間、輸入的初始數據所佔的存儲空間以及算法執行過程中所需要的額外空間。

(72)下列關於棧的敘述中正確的是_______。

A)在棧中只能插入數據 B)在棧中只能刪除數據

C)棧是先進先出的線性表 D)棧是先進後出的線性表

(72)D

知識點:棧的輸入輸出操作

評析:棧是限定在一端進行插入與刪除的線性表。

棧是按照「先進後出」的或「後進先出」的原則組織數據的,因此,棧也被稱為「先進後出」表或「後進先出」表。

(73)在深度為5的滿二叉樹中,葉子結點的個數為_______。

A)32 B)31 C)16 D)15

(73)C

知識點:二叉樹的概念

評析:所謂滿二叉樹是指除最後一層外,每層上的所有結點都有兩個子結點。也就是說,在滿二又樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第K層上有2k-1個結點,且深度為m的滿二叉樹有2m個結點。

在滿二叉樹中,最後一層的結點個數就是葉子結點的個數,本題中深度為5,故葉子結點數為25-1=24==16。

(74)對建立良好的程序設計風格,下面描述正確的是_______。

A)程序應簡單、清晰、可讀性好 B)符號名的命名要符合語法

C)充分考慮程序的執行效率 D)程序的注釋可有可無

(74)A

知識點:程序設計風格

評析:要形成良好的程序設計風格,主要應注重和考慮下述一些因素:符號名的命名應具有一定的實際含義,以便於對程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應優先考慮清晰性,除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。

(75)下面對對象概念描述錯誤的是_______。

A)任何對象都必須有繼承性 B)對象是屬性和方法的封裝體

C)對象問的通訊靠消息傳遞 D)操作是對象的動態性屬性

(75)A

知識點:對象的概念

評析:對象是由數據和容許的操作組成的封裝體,與客觀實體有直接的對應關係。對象之間通過傳遞消息互相聯繫,以模擬現實世界中不同事物彼此之間的聯繫。

(76)下面不屬於軟件工程的3個要素的是_______。

A)工具 B)過程 C)方法 D)環境

(76)D

知識點:軟件:[程的要素

評析:軟件工程包括3個要素,即方法、工具和過程。

(77)程序流程圖(PFD)中的箭頭代表的是_______。

A)數據流 B)控制流 C)調用關係 D)組成關係

(77)B

知識點:軟件設計工具

評析:程序流程圖(PFD)是一種傳統的、應用廣泛的軟件過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。

(78)在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是_______。

A)數據庫系統 B)文件系統 C)人工管理 D)數據項管理

(78)A

知識點:數據管理技術的發展

評析:在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是數據庫系統。

急求計算機二級考試的試題(C語言)

05年4月全國計算機二級C語言考試試題及答案

(1)數據的存儲結構是指 D

(A)存儲在外存中的數據 (B)數據所佔的存儲空間量

(C)數據在計算機中的順序存儲方式 (D)數據的邏輯結構在計算機中的表示

(2)下列關於棧的描述中錯誤的是 B

(A)棧是先進後出的先性表

(B)棧只能順序存儲

(C)棧具有記憶作用

(D)對棧的插入和刪除操作中,不需要改變棧底指針

(3)對於長度為N的線性表,在最壞的情況下,下列各排序法所對應的比較次數中正確的是D

(A)冒泡排序為N/2 (B)冒泡排序為N

(C)快速排序為N (D)快速排序為N(N-1)/2

(4)對長度為N的線性表進行順序查找,在最壞的情況下所需要的比較次數為 C

(A)log2n (B)n/2 (C)n (D)n+1

(5)下列對於線性表的描述中正確的是 A

A)存儲空間不一定是連續,且各元素的存儲順序是任意的

B)存儲空間不一定是連續,且前件元素一定存儲在後件元素的前面

C)存儲空間必須連續,且各前件元素一定存儲在後件元素的前面

D)存儲空間必須連續,且各元素的存儲順序是任意的

(6)下列對於軟件測試的描述中正確的是 C

A)軟件測試的目的是證明程序是否正確

B)軟件測試的目的是使程序運行結果正確

C)軟件測試的目的是儘可能地多發現程序中的錯誤

D)軟件測試的目的是使程序符合結構化原則

(7)為了使模塊儘可能獨立,要求 B

(A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強

(B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱

(C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱

(D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強

(8)下列描述中正確的是 D

(A)程序就是軟件 (B)軟件開發不受計算機系統的限制

(C)軟件既是邏輯實體,又是物理實體 (D)軟件是程序、數據與相關文檔的集合

(9)數據獨立性是數據庫技術的重要特點之一.所謂數據獨立性是指 D

(A)數據與程序獨立存放

(B)不同的數據被存放在不同的文件中

(C)不同的數據只能被對應的應用程序所使用

(D)以上三種說法都不對

(10)用樹形結構表示實體之間聯繫的模型是 C

(A)關係模型 (B)網狀模型 (C)層次模型 (D)以上三個都是

(11)算法具有五個特性,以下選項中不屬於算法特性的是 B

(A)有窮性 (B)簡潔性 (C)可行性 (D)確定性

(12)以下選項中可作為C語言合法常量的是 A

(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e

(13)以下敘述中正確的是 C

(A)用C語言實現的算法必須要有輸入和輸出操作

(B)用C語言實現的算法可以沒有輸出但必須要有輸入

(C)用C程序實現的算法可以沒有輸入但必須要有輸出

(D)用C程序實現的算法可以既沒有輸入也沒有輸出

(14)以下不能定義為用戶標識符是 D

(A)Main (B)_0 (C)_int (D)sizeof

(15)以下選項中,不能作為合法常量的是 B

(A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0

(16)數字字符0的ASCII值為48,若有以下程序 C

main()

{

char a=』1』,b=』2』;

printf(“%c,”,b++);

printf(“%d\n”,b-a);

}

程序運行後的輸出結果是

(A)3,2 (B)50,2 (C)2,2 (D)2,50

(17)有以下程序 A

main()

{

int m=12,n=34;

printf(“%d%d”,m++,++n); printf(“%d%d\n”,n++,++m);

}

程序運行後的輸出結果是

(A)12353514 (B)12353513 (C)12343514 (D)12343513

(18)有以下語句:int b;char c[10];,則正確的輸入語句是 B

A)scanf(“%d%s”,b,c); B) scanf(“%d%s”,b,c);

c)scanf(“%d%s”,b,c); D)scanf(“%d%s”,b,c);

(19)有以下程序 A

main()

{

int m,n,p;

scanf(“m=%dn=%dp=%d”,m,n,p);

printf(“%d%d%d\n”,m,n,p);

}

若想從鍵盤上輸入數據,使變量M中的值為123,N中的值為456,P中的值為789,則正確的輸入是

A)M=123N=456P=789 B)M=123 N=456 P=789 C)M=123,N=456,P=789 D)123 456 789

(20)有以下程序 B

main()

{

int a,b,d=25;

a=d/10%9;b=a(-1);

printf(“%d,%d\n”,a,b);

}

程序運行後的輸出結果是

A)6,1 B)2,1 C)6,0 D)2,0

(21)有以下程序 D

main()

{

int i=1,j=2,k=3;

if(i++==1(++j==3||k++==3))

printf(“%d %d %d\n”,i,j,k);

}

程序運行後的輸出結果是

(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3

(22)若整型變量a、b、c、d中的值依次為:1、4、3、2。

則條件表達式aA) 1 B)2 C)3 D)

(23)有以下程序 B

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++7) if(p[i]%2) j+=p[i];

printf(“%d\n”,j);

}

程序運行後的輸出結果是

A)42 B)45 C)56 D)60

(24)有以下程序 C

main()

{

char a[7]=”a0\0a0\0″; int i,j;

i=sizeof(a); j=strlen(a);

printf(“%d %d\n”,i,j);

}

程序運行後的輸出結果是

A)2 2 B)7 6 C)7 2 D)6 2

(25)以下能正確定義一維數組的選項是 B

A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5};

C)char a={』A』,』B』,』C』}; D)int a[5]=”0123″;

(26)有以下程序 A

int f1(int x,int y){return xy?x:y;}

int f2(int x,int y){return xy?y:x;}

main()

{

int a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf(“%d,%d,%d\n”,e,f,g);

}

程序運行後的輸出結果是

A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7

27)已有定義:char a[]=”xyz”,b[]={』x』,』y』,』z』};,以下敘述中正確的是 C

A)數組a和b的長度相同 B)a數組長度小於b數組長度

C)a數組長度大於b數組長度 D)上述說法都不對

28)有以下程序 D

void f(int *x,int *y)

{

int t;

t=*x;*x=*y;*y=t;

}

main()

{

int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=a[7];

while(p{f(p,q);p++;q–;}

for(i=0;i8;i++)printf(“%d,”,a[i]);

}

程序運行後的輸出結果是

A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,

C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,

29)有以下程序 D

main()

{

int a[3][3],*p,i;

p=a[0][0];

for(i=0;i9;i++)p[i]=i;

for(i=0;i3;i++)printf(“%d”,a[1][i]);

}

程序運行後的輸出結果是

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

(30)以下敘述中錯誤的是 A

A)對於double類型數組,不可以直接用數組名對數組進行整體輸入或輸出

B)數組名代表的是數組所佔存儲區的首地址,其值不可改變

C)當程序執行中,數組元素的下標超出所定義的下標範圍時,系統將給出”下標越界”的出錯信息

D)可以通過賦初值的方式確定數組元素的個數

(31)有以下程序 C

#define N 20

fun(int a[],int n,int m)

{int i,j;

for(i=m;i=n;i–)a[i+1]=a[i];

}

main()

{

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

fun(a,2,9);

for(i=0;i5;i++)printf(“%d”,a[i]);

}

程序運行後的輸出結果是

A)10234 B)12344 C)12334 D)12234

32)有以下程序 B

main()

{

int a[3][2]={0},(*ptr)[2],i,j;

for(i=0;i2;i++)

{ptr=a+i;scanf(“%d”,ptr);ptr++;}

for(i=0;i3;i++)

{for(j=0;j2;j++)printf(“-“,a[i][j]);

printf(“\n”);

}

}

若運行時輸入:1 2 3回車,則輸出結果是

A)產生錯誤信息 B)1 0 C)1 2 D)1 0

2 0 3 0 2 0

0 0 0 0 3 0

33)有以下程序 B

prt(int *m,int n)

{int i;

for(i=0;i)

main()

{

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

prt(a,5);

for(i=0;i5;i++)

printf(“%d,”,a[i]);

}

程序運行後的輸出結果是

A}1,2,3,4,5, B}2,3,4,5,6, C}3,4,5,6,7, D}2,3,4,5,1,

34)有以下程序 A

main()

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

for(p=a;p}

程序運行後的輸出結果是

A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,

35)有以下程序 D

#define P 3

void F(int x){return(P*x*x);}

main()

{printf(“%d\n”,F(3+5));}

程序運行後的輸出結果是

A)192 B)29 C)25 D)編譯出錯

36)有以下程序 C

main()

{int c=35;printf(“%d\n”,cc);}

程序運行後的輸出結果是

A)0 B)70 C)35 D)1

37)以下敘述中正確的是 D

A)預處理命令行必須位於源文件的開頭

B)在源文件的一行上可以有多條預處理命令

C)宏名必須用大寫字母表示

D)宏替換不佔用程序的運行時間

38)若有以下說明和定義 C

union dt

{int a;char b;double c;}data;

以下敘述中錯誤的是

A)data的每個成員起始地址都相同

B)變量data所佔的內存位元組數與成員c所佔位元組數相等

C)程序段:data.a=5;printf(“%f\n”,data.c);輸出結果為5.000000

D)data可以作為函數的實參

39)以下語句或語句組中,能正確進行字符串賦值的是 C

A)char *sp;*sp=”right!”; B)char s[10];s=”right!”;

C)char s[10];*s=”right!”; D)char *sp=”right!”;

40)設有如下說明 C

typedef struct ST

{long a;int b;char c[2];}NEW;

則下面敘述中正確的是

A)以上的說明形式非法 B)ST是一個結構體類型

C)NEW是一個結構體類型 D)NEW是一個結構體變量

41)有以下程序 B

main()

{int a=1,b;

for(b=1;b=10;b++)

{if(a=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

printf(“%d\n”,b);

}

程序運行後的輸出結果是

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

42)有以下程序 A

main()

{char s[]=”159″,*p;

p=s;

printf(“%c”,*p++);printf(“%c”,*p++);

}

程序運行後的輸出結果是

A)15 B)16 C)12 D)59

43)有以下函數 D

fun(char *a,char *b)

{while((*a!=』\0』)(*b!=』\0』)(*a==*b))

{a++;b++;}

return(*a-*b);

}

該函數的功能是

A)計算a和b所指字符串的長度之差

B)將b所指字符串連接到a所指字符串中

C)將b所指字符串連接到a所指字符串後面

D)比較a和b所指字符串的大小

44)有以下程序 B

main()

{int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

for(i=0;i4;i++)

{for(j=0;j=i;j++)printf(“L”,』 』);

for(j=_____;j4;j++)printf(“M”,num[i][j]);

printf(“\n”);

}

}

若要按以下形式輸出數組右上半三角

1 2 3 4

6 7 8

11 12

16

則在程序下劃線處應填入的是

A)i-1 B)i C)i+1 D)4-i

45)有以下程序 D

point(char *p){p+=3;}

main()

{char b[4]={』a』,』b』,』c』,』d』},*p=b;

point(p);printf(“%c\n”,*p);

}

程序運行後的輸出結果是

A)a B)b C)c D)d

46)程序中若有如下說明和定義語句 A

char fun(char *);

main()

{

char *s=”one”,a[5]={0},(*f1)()=fun,ch;

……

}

以下選項中對函數fun的正確調用語句是

A)(*f1)(a); B)*f1(*s); C)fun(a); D)ch=*f1(s);

47)有以下結構體說明和變量定義,如圖所示,

指針p、q、r分別指向此鏈表中的三個連續結點。

struct node

{int data;struct node *next;}*p,*q,*r;

現要將Q所指結點從鏈表中刪除,同時要保持鏈表的連續,

以下不能完成指定操作的語句是 D

A)P-next=q-next; B)p-next=p-next-next;

c)p-next=r; D)p=q-next;

48)以下對結構體類型變量td的定義中,錯誤的是 C

A)typedef struct aa B)struct aa C)struct D)struct

{int n; {int n; {int n; {int n;

float m; float m; float m; float m;

}AA; }td; }aa; }td;

AA td; struct aa td; struct aa td;

49)以下與函數fseek(fp,0L,SEEK_SET)有相同作用的是 D

A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp)

50)有以下程序 B

#include

void WriteStr(char *fn,char *str)

{FILE *fp;

fp=fopen(fn,”w”);fputs(str,fp);fclose(fp);

}

main()

{

WriteStr(“t1.dat”,”start”);

WriteStr(“t1.dat”,”end”);

}

程序運行後,文件t1.dat中的內容是

A)start B)end C)startend D)endrt

1.某二叉樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。

答案:19

2.在面向對象方法中,類的實例稱為____.

答案:對象

3.診斷和改正程序中錯誤的工作通常稱為______.

答案:調試

4.在關係數據庫中,把數據表示成二維表,每一個二維表稱為_____

答案:關係

5.問題處理方案的正確而完整的描述稱為___

答案:算法

6.以下程序運行時若從鍵盤輸入:10 20 30回車.輸出結果是______

#include

main()

{

int i=0,j=0,k=0;

scanf(“%d%*d%d”,i,j,k);printf(“%d%d%d\n”,i,j,k);

}

答案:10 30 0

7.以下程序運行後的輸出結果是____

#define S(x) 4*x*x+1

main()

{

int i=6,j=8;

printf(“%d\n”,S(i+j));

}

答案:81

*8.以下程序運行後的輸出結果是_____

main()

{int a=3,b=4,c=5,t=99;

if(b if(a printf(“%d%d%d\n”,a,b,c);

}

答案:4399

9.以下程序運行後的輸出結果是____

main()

{

int a,b,c;

a=10;b=20;c=(a%b1)||(a/b1);

printf(“%d %d %d\n”,a,b,c);

}

答案:10 20 0

10.以下程序運行後的輸出結果是___

main()

{char c1,c2;

for(c1=』0』,c2=』9』;c1printf(“\n”);

)

答案:0918273645

11.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33回車.則

輸出結果是_____

#include

main()

{char a,b;

a=getchar();scanf(“%d”,b);

a=a-』A』+』0』;b=b*2;

printf(“%c %c\n”,a,b);

}

答案:1 B

12.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值.請填空

void fun(int,int,int(*)[4],int *);

main()

{int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i3;i++)printf(“M”,b[i]);

printf(“\n”);

}

void fun(int m,int n,int ar[][4],int *bar)

{

int i,j,x;

for(i=0;i {x=ar[i][0];

for(j=0;j ________=x;

)

}

)

答案:bar[i]

13.以下程序運行後的輸出結果是______

void swap(int x,int y)

{ int t;

t=x;x=y;y=t;printf(“%d %d “,x,y);

}

main()

{ int a=3,b=4;

swap(a,b);printf(“%d %d\n”,a,b);

}

答案:4 3 3 4

14.以下程序運行後的輸出結果是____

#include

void fun(char *s,int p,int k)

{int i;

for(i=p;i)

main()

{char s[]=”abcdefg”;

fun(s,3,strlen(s));puts(s);

}

答案:abcfg

17.以下程序運行後的輸出結果是______

struct NODE

{int k;

struct NODE *link;

};

main()

{ struct NODE m[5],*p=m,*q=m+4;

int i=0;

while(p!=q)

{p-k=++i;p++;

q-k=i++;q–;

}

q-k=i;

for(i=0;i5;i++)printf(“%d”,m[i].k);

printf(“\n”);

}

答案:13431

18.以下程序中函數huiwen的功能是檢查一個字符串是否是迴文,當字符串是迴文時,

函數返回字符串:yes!,否則函數返回字符串:no!,並在主函數中輸出.所謂迴文即

正向與反向的拼寫都一樣,例如:adgda.請填空.

#include

char *huiwen(char *str)

{char *p1,*p2;int i,t=0;

p1=str;p2=______;

for(i=0;i=strlen(str)/2;i++)

if(*p1++!=*p2–){t=1;break;}

if(____)return(“yes!”);

else return(“no!”);

}

main()

{char str[50];

printf(“Input:”);scanf(“%s”,str);

printf(“%s\n”,______);

}

答案:18) str+(strlen(str)-1)

19) !t

20) huiwen(str)

急!!歷年國家計算機二級c語言筆試真題答案。

2010年9月全國計算機二級C語言筆試試題:文字版

一、選擇題(每小題2分,共70分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。

(1)下列敘述中正確的是

A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

B)線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構

C)線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構

D)上述三種說法都不對

(2)下列敘述中正確的是

A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化

B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化

C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化

D)上述三種說法都不對

(3)軟件測試的目的是

A)評估軟件可靠性

B)發現並改正程序中的錯誤

C)改正程序中的錯誤

D)發現程序中的錯誤

(4)下面描述中,不屬於軟件危機表現的是

A)軟件過程不規範

B)軟件開發生產率低

C)軟件質量難以控制

D)軟件成本不斷提高

(5)軟件生命周期是指

A)軟件產品從提出、實現、使用維護到停止使用退役的過程

B)軟件從需求分析、設計、實現到測試完成的過程

C)軟件的開發過程

D)軟件的運行維護過程

(6)面向對象方法中,繼承是指

A)一組對象所具有的相似性質

B)一個對象具有另一個對象的性質

C)各對象之間的共同性質

D)類之間共享屬性和操作的機制

(7)層次型、網狀型和關係型數據庫劃分原則是

A)記錄長度

B)文件的大小

C)聯繫的複雜程度

D)數據之間的聯繫方式

(8)一個工作人員可以使用多台計算機,而一台計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯繫是

A)一對一

B)一對多

C)多對多

D)多對一

(9)數據庫設計中反映用戶對數據要求的模式是

A)內模式

B)概念模式

C)外模式

D)設計模式

(10)有三個關係R、S和T如下:

則由關係R和S得到關係T的操作是

A)自然連接

B)交

C)投影

D)並

(11)以下關於結構化程序設計的敘述中正確的是

A)一個結構化程序必須同時由順序、分支、循環三種結構組成

B)結構化程序使用goto語句會很便捷

C)在C語言中,程序的模塊化是利用函數實現的

D)由三種基本結構構成的程序只能解決小規模的問題

(12)以下關於簡單程序設計的步驟和順序的說法中正確的是

A)確定算法後,整理並寫出文檔,最後進行編碼和上機調試

B)首先確定數據結構,然後確定算法,再編碼,並上機調試,最後整理文檔

C)先編碼和上機調試,在編碼過程中確定算法和數據結構,最後整理文檔

D)先寫好文檔,再根據文檔進行編碼和上機調試,最後確定算法和數據結構

(13)以下敘述中錯誤的是

A) C程序在運行過程中所有計算都以二進制方式進行

B)C程序在運行過程中所有計算都以十進制方式進行

C)所有C程序都需要編譯鏈接無誤後才能運行

D)C程序中整型變量只能存放整數,實型變量只能存放浮點數

(14)有以下定義:int a; long b; double x,y;則以下選項中正確的表達式是

A)a%(int)(x-y)

B)a=x!=y;

C)(a*y)%b

D)y=x+y=x

(15)以下選項中能表示合法常量的是

A)整數:1,200

B)實數:1.5E2.0

C )字符斜杠:『\』

D)字符串:”\007″

(16)表達式a+=a-=a=9的值是

A)9

B)_9

C)18

D)0

(17)若變量已正確定義,在if (W)printf(「%d\n,k」);中,以下不可替代W的是

A)a<>b+c

B)ch=getchar()

C)a==b+c

D)a++

(18)有以下程序

#includestdio.h

main()

{int a=1,b=0;

if(!a) b++;

else if(a==0)if(a)b+=2;

else b+=3;

printf(」%d\n」,b);

程序運行後的輸出結果是

A)0

B)1

C)2

D)3

(19)若有定義語句int a, b;double x;則下列選項中沒有錯誤的是

A)switch(x%2) B)switch((int)x/2.0

{case 0: a++; break; {case 0: a++; break;

case 1: b++; break; case 1: b++; break;

default : a++; b++; default : a++; b++;

} }

C)switch((int)x%2) D)switch((int)(x)%2)

{case 0: a++; break; {case 0.0: a++; break;

case 1: b++; break; case 1.0: b++; break;

default : a++; b++; default : a++; b++;

} }

(20)有以下程序

#include stdio.h

main()

{int a=1,b=2;

while(a6){b+=a;a+=2;b%二10;}

printf(」%d,%d\n」,a,b);

程序運行後的輸出結果是

A)5,11

B)7,1

C)7,11

D)6,1

(21)有以下程序

#include<stdio.h

main()

{int y=10;

while(y–);

printf(」Y=%d\n」,Y);

程序執行後的輸出結果是

A)y=0

B)y= -1

C)y=1

D)while構成無限循環

(22)有以下程序

#include<stdio .h

main()

{char s〔」=」rstuv”;

printf(」%c\n」,*s+2);

程序運行後的輸出結果是

A)tuv

B)字符t的ASCII碼值

C)t

D)出錯

(23)有以下程序

#include<stdio.h

#include<string.h

main()

{char x〔〕=」STRING」;

x〔0」=0;x〔1〕=』\0』;x〔2」=』0』;

printf(」%d %d\n」,sizeof(x),strlen(x));

程序運行後的輸出結果是

A)6 1

B)7 0

C)6 3

D)7 1

(24)有以下程序

#include<stdio.h

Int f(int x);

main()

{int n=1,m;

m=f(f(f(n)));printf(」%d\n」,m);

int f(int x)

{return x*2;}

程序運行後的輸出結果是

A)1

B)2

C)4

D)8

(25)以下程序段完全正確的是

A)int *p; scanf(”%d”,&p);

B)int *p; scanf(「%d」,p);

C)int k, *p=k; scanf(”%d”,p);

D)int k, *p:; *p= k; scanf(「%d」,p);

(26)有定義語句:int *p[4];以下選項中與此語句等價的是

A)int p[4];

B)int **p;

C)int *(p「4」);

D)int (*p)「4」;

(27)下列定義數組的語句中,正確的是

A)int N=10; B)#define N 10

int x[N]; int x[N];

C)int x[0..10〕; D)int x〔〕;

(28)若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是

A)int a[5]={0};

B)int b[]={0,0,0,0,0};

C)int c[2+3];

D)int i=5,d[i];

(29)有以下程序

#include<stdio.h

void f(int *p);

main()

{int a〔5〕={1,2,3,4,5},*r=a;

f(r);printf(」%d\n」;*r);

void f(int *p)

{p=p+3;printf(」%d,」,*p);}

程序運行後的輸出結果是

A)1,4

B)4,4

C)3,1

D)4,1

(30)有以下程序(函數fun只對下標為偶數的元素進行操作)

# include<stdio.h

void fun(int*a;int n)

{int i、j、k、t;

for (i=0;i<n一1;1+=2)

{k=i;『

for(j=i;jn;j+=2)if(a〔j〕a〔k])k=j;

t=a〔i];a〔i]=a〔k];a〔k]=t;

main()

{int aa「10」={1、2、3、4、5、6、7},i;

fun(aa、7);

for(i=0,i7; i++)printf(」%d,」,aa〔i〕));

printf(」\n」);

程序運行後的輸出結果是

A)7,2,5,4,3,6,1

B)1,6,3,4,5,2,7

C)7,6,5,4,3,2,1

D)1,7,3,5,6;2,1

(31)下列選項中,能夠滿足「若字符串s1等於字符串s2,則執行ST”要求的是

A)if(strcmp(s2,s1)==0)ST;

B)if(sl==s2)ST;

C)if(strcpy(s l ,s2)==1)ST;

D)if(sl-s2==0)ST;

(32)以下不能將s所指字符串正確複製到t所指存儲空間的是

A)while(*t=*s){t++;s++;}

B)for(i=0;t[i]=s[i〕;i++);

C)do{*t++=*s++;}while(*s);

D)for(i=0,j=0;t[i++]=s[j++];);

(33)有以下程序( strcat函數用以連接兩個字符串)

#include<stdio.h

#include<string .h

main()

{char a〔20〕=」ABCD\OEFG\0」,b〔〕=」IJK」;

strcat(a,b);printf(」%s\n」,a);

程序運行後的輸出結果是

A)ABCDE\OFG\OIJK

B)ABCDIJK

C)IJK

D)EFGIJK

(34)有以下程序,程序中庫函數islower (ch)用以判斷ch中的字母是否為小寫字母

#include<stdio.h

#include<ctype.h>

void fun(char*p)

{int i=0;

while (p[i〕)

{if(p[i]==』 』&& islower(p「i-1」))p[i-1]=p[i-1]-『a』+『A』;

i++;

main()

{char s1〔100〕=」ab cd EFG!」;

fun(s1); printf(」%s\n」,s1);

程序運行後的輸出結果是

A)ab cd EFG!

B)Ab Cd EFg!

C)aB cD EFG!

D)ab cd EFg!

(35)有以下程序

#include<stdio.h

void fun(int x)

{if(x/2>1)fun(x/2);

printf(」%d」,x);

main()

{fun(7);printf(」\n」);}

程序運行後的輸出結果是

A)1 3 7

B)7 3 1

C)7 3

D)3 7

(36)有以下程序

#include<stdio.h>

int fun()

{static int x=1;

x+=1;return x;

main()

{int i;s=1;

for(i=1;i=5;i++)s+=fun();

printf(」%d\n」,s);

程序運行後的輸出結果是

A)11

B)21

C)6

D)120

(37)有以下程序

#inctude<stdio.h>

#include<stdlib.h>

Main()

{int *a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b;

printf(「%d,%d,%d\n」,*a,*b,*c);

程序運行後的輸出結果是

A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3

(38)有以下程序

#include<stdio.h

main()

{int s,t,A=10;double B=6;

s=sizeof(A);t=sizeof(B);

printf(「%d,%d\n」,s,t);

在VC6平台上編譯運行,程序運行後的輸出結果是

A)2,4 B)4,4 C)4,8 D)10,6

(39)若有以下語句

Typedef struct S

{int g; char h;}T;

以下敘述中正確的是

A)可用S定義結構體變量

B)可用T定義結構體變量

C)S是struct類型的變量

D)T是struct S類型的變量

(40)有以下程序

#include<stdio.h

main()

{short c=124;

c=c_______;

printf(「%d\n」、C);

若要使程序的運行結果為248,應在下劃線處填入的是

A)2 B)|248 C)&0248 D)I

二、填空題(每空2分,共30分)

請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

(1)一個棧的初始狀態為空。首先將元素5,4,3,2,1依次入棧,然後退棧一次,再將元素 A,B,C,D依次入棧,之後將所有元素全部退棧,則所有元素退棧(包括中間退棧的元素)的順序為【1】

(2)在長度為n的線性表中,尋找最大項至少需要比較【2】次。

(3)一棵二叉樹有10個度為1的結點,7個度為2的結點,則該二叉樹共有【3】個結點。

(4)僅由順序、選擇(分支)和重複(循環)結構構成的程序是【4】程序。

(5)數據庫設計的四個階段是:需求分析,概念設計,邏輯設計【5】。

(6)以下程序運行後的輸出結果是【6】。

#include<stdio.h

main()

{int a=200,b=010;

printf(」%d%d\n」,a,b);

(7)有以下程序

#include<stdio.h

main()

{int x,Y;

scanf(」%2d%ld」,&x,&y);printf(」%d\n」,x+y);

程序運行時輸入:1234567程序的運行結果是【7】。

(8)在C語言中,當表達式值為0時表示邏輯值「假」,當表達式值為【8】時表示邏輯值「真」。

(9)有以下程序

#include<stdio.h

main()

{int i,n[]={0,0,0,0,0};

for (i=1;i=4;i++)

{n[i]=n[i-1]*3+1; printf(」%d “,n[i]);}

}

程序運行後的輸出結果是【9】。

(10)以下fun函數的功能是:找出具有N個元素的一維數組中的最小值,並作為函數值返回。請填空。(設N已定義)

int fun(int x〔N〕)

{int i,k=0;

for(i=0;iN;I++)

if(x〔i〕

return x〔k〕;

}

(11)有以下程序

#include<stdio.h

int*f(int *p,int*q);

main()

{int m=1,n=2,*r=m;

r=f(r,&n);printf(」%d\n」,*r);

int*f(int *p,int*q)

{return(*p*q)?p:q;}

程序運行後的輸出結果是【11】

(12)以下fun函數的功能是在N行M列的整形二維數組中,選出一個最大值作為函數值返回,請填空。(設M,. N已定義)

int fun(int a〔N〕[M))

{int i,j,row=0,col=0;

for(i=0;iN;I++)

for(j=0;j

if(a〔i〕〔j〕>a〔row〕〔col〕){row=i;col=j;}

return(【12】):

}

(13)有以下程序

#include<stdio.h

main()

{int n[2],i,j;

for(i=0;i2;i++)n[i]=0;

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

for(j=0;j2;j++)n〔j〕=n「i」+1;

printf(」%d\n」,n[1]);

程序運行後的輸出結果是【13】

(14)以下程序的功能是:藉助指針變量找出數組元素中最大值所在的位置並輸出該最大值。請在輸出語句中填寫代表最大值的輸出項。

#include<stdio.h

main()

{int a〔10〕,*p,*s;

for(p=a;p-a10;p++)scanf(」%d」,p);

for(p=a,s=a;p-a10;p++)if(*p*s)S=P;

printf(”max=%d\n」,【14】);

(15)以下程序打開新文件f.txt,並調用字符輸出函數將a數組中的字符寫入其中,請填空。

#include<stdio.h

main()

{【15】*fp;

char a〔5〕={』1』,』2』,』3』,』4』,』5』},i;

fp=fopen(」f .txt」,」w」);

for(i=0;i5;i++)fputc(a[i],fp);

fclose(fp);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/239262.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:15
下一篇 2024-12-12 12:15

相關推薦

  • Python第一章題庫

    本篇文章將從以下幾個方面對Python第一章題庫進行詳細的闡述,包括基本語法、數據類型、控制語句、函數和模塊等方面。 一、基本語法 Python是一門簡單易學、功能強大的編程語言,…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論