二級(jí)C語言-計(jì)算機(jī)等級(jí)考試-考前10卷匯總_第1頁
二級(jí)C語言-計(jì)算機(jī)等級(jí)考試-考前10卷匯總_第2頁
二級(jí)C語言-計(jì)算機(jī)等級(jí)考試-考前10卷匯總_第3頁
二級(jí)C語言-計(jì)算機(jī)等級(jí)考試-考前10卷匯總_第4頁
二級(jí)C語言-計(jì)算機(jī)等級(jí)考試-考前10卷匯總_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

華信電腦培訓(xùn)中心整理完成

計(jì)算機(jī)等級(jí)考試二級(jí)C語言考前密卷

計(jì)算機(jī)等級(jí)考試二級(jí)C語言考前密卷(1)

(1)棧和隊(duì)列的共同特點(diǎn)是

A)都是先進(jìn)先出

B)都是先進(jìn)后出

C)只允許在端點(diǎn)處插入和刪除元素

D)沒有共同點(diǎn)

(2)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是

A)acbed

B)decab

C)deabc

D)cedba

(3)鏈表不具有的特點(diǎn)是

A)不必事先估計(jì)存儲(chǔ)空間

B)可隨機(jī)訪問任一元素

C)插入刪除不需要移動(dòng)元素

D)所需空間與線性表長(zhǎng)度成正比

(4)結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是

A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

(5)為了提高測(cè)試的效率,應(yīng)該

A)隨機(jī)選取測(cè)試數(shù)據(jù)

B)取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)

C)在完成編碼以后制定軟件的測(cè)試計(jì)劃

D)集中對(duì)付那些錯(cuò)誤群集的程序

(6)算法的時(shí)間復(fù)雜度是指

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

B)算法程序的長(zhǎng)度

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

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

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

A)詳細(xì)設(shè)計(jì)

B)軟件編碼

C)軟件測(cè)試

D)軟件維護(hù)

第1頁(共133頁)1

華信電腦培訓(xùn)中心整理完成

(8)數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為

A)C

B)Basic

C)DDL

D)DML

(9)下列有關(guān)數(shù)據(jù)庫的描述,正確的是

A)數(shù)據(jù)庫是一個(gè)DBF文件

B)數(shù)據(jù)庫是一個(gè)關(guān)系

C)數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合

D)數(shù)據(jù)庫是一組文件

(10)下列有關(guān)數(shù)據(jù)庫的描述,正確的是

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

B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

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

D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外

關(guān)鍵字

(11)以下敘述中正確的是

A)C語言比其他語言高級(jí)

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

C)C語言以接近英語國(guó)家的自然語言和數(shù)學(xué)語言作為語言的發(fā)達(dá)形式

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

(12)C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是

A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B)if^switch,break

C)for,while,do-while

D)if,for,continue

(13)C語言中最簡(jiǎn)單的數(shù)據(jù)類型包括

A)整型、實(shí)型、邏輯型

B)整型、實(shí)型、字符型

C)整型、字符型、邏輯型

D)字符型、實(shí)型、邏輯型

(14)若變量已正確定義并賦值,以下符合C語言語法的表達(dá)式是

A)a:=b+l

B)a=b=c+2

C)int18.5%3

D)a=a+7=c+b

(15)下列可用于C語言用戶標(biāo)識(shí)符的一組是

A)void,define,WORD

B)a3_b3,_123,Car

C)For,-abc,IFCase

D)2a,DO,sizeof

(16)C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是

第2頁(共133頁)2

華信電腦培訓(xùn)中心整理完成

A)%=

B)/

C)=

D)<=

(17)若變量a,i已正確定義,且i已正確賦值,合法的語句是

A)a==1

B)++i;

C)a=a++=5;

D)a=int(i);

(18)已知

intt=0;

while(t=l)

{???)

則以下敘述正確的是

A)循環(huán)控制表達(dá)式的值為0

B)循環(huán)控制表達(dá)式的值為1

C)循環(huán)控制表達(dá)式不合法

D)以上說法都不對(duì)

(19)若變量已正確說明為float型,要通過語句scanf(",&a,&b,&c)/a賦予10.0,b賦予22.0,c

賦予33.0,下列不正確的輸入形式是

A)10<回車>22〈回車>33〈回車〉

B)10.0,22.0,33.0〈回車>

C)10.0〈回車>22.033.0〈回車)

D)1022〈回車>33〈回車〉

(20)有如下程序:

main()

(

intx=l,a=0,b=0;

switch(x)

(

case0:b++;

case1:a++;

case2:a++;b++;

)

printf("a=%d,b=%d\n",a,b);}

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

A)a=2,b=l

B)a=l,b=l

C)a=l,b=0

D)a=2,b=2

(21)有以下程序

main()

第3頁(共133頁)3

華信電腦培訓(xùn)中心整理完成

{inti=l,j=l,k=2;

if((j++||k")&&i++)

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

)

執(zhí)行后輸出結(jié)果是

A)1,1,2

B)2,2,1

C)2,2,2

D)2,2,3

(22)有如下程序

main()

{floatx=2.0,y;

if(x<0.0)產(chǎn)0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

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

A)0.000000

B)0.250000

C)0.500000

D)1.000000

(23)有如下程序:

main()

{intn=9;

while(n>6){n-;printf(n%dn,n);}

}

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

A)987

B)876

C)8765

D)9876

(24)在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是

A)inti=100;

while(1)

{i=i0+1;

if(i>100)break;

B)for(;;);

C)intk=10000;

do{k++;}while(k>10000);

D)ints=36;

第4頁(共133頁)4

華信電腦培訓(xùn)中心整理完成

while(s)—s;

(25)設(shè)intx=l,y=l;表達(dá)式(!x||y-)的值是

A)0

B)1

C)2

D)-1

(26)若已定義的函數(shù)有返回值,則以卜關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是

A)函數(shù)調(diào)用可以作為獨(dú)立的語句存在

B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參

C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

(27)有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\nn,fun((int)fun(a+c,b),a-c));

}

程序運(yùn)行后的輸出結(jié)果是

A)編譯出錯(cuò)

B)9

C)21

D)9.0

(28)若有以下調(diào)用語句,則不正確的ftm函數(shù)的首部是

main()

{…

inta[50],n;

fun(n,&a[9]);

A)voidfun(intm,intx[])

B)voidfun(ints,inth[41])

C)voidfun(intp,int*s)

D)voidfun(intn,inta)

(29)fseek函數(shù)的正確調(diào)用形式是

A)fseek(文件指針,起始點(diǎn),位移量)

B)fseek(文件指針,位移量,起始點(diǎn))

C)fseek(位移量,起始點(diǎn),文件指針)

D)fseek(起始點(diǎn),位移量,文件指針)

(30)若坨是指向某文件的指針,且已讀到文件末尾,則函數(shù)fbof(fp)的返回值是

A)EOF

B)-1

第5頁(共133頁)5

華信電腦培訓(xùn)中心整理完成

C)1

D)NULL

(31)若有說明語句:charc=>72,;則變量c

A)包含1個(gè)字符

B)包含2個(gè)字符

C)包含3個(gè)字符

D)說明不合法,c的值不確定

(32)若有說明inta[3][4];則a數(shù)組元素的非法引用是

A)a[0][2*1]

B)a[1][3]

C)a[4-2][0

D)a[0][4]

(33)設(shè)有以F說明語句

structstu

{inta;

floatb;

}stutype;

則下面的敘述不正確的是

A)struct是結(jié)構(gòu)體類型的關(guān)鍵字

B)structstu是用戶定義的結(jié)構(gòu)體類型

C)stutype是用戶定義的結(jié)構(gòu)體類型名

D)a和b都是結(jié)構(gòu)體成員名

(34)在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是

A)整型常量

B)整型表達(dá)式

C)整型常量或整型表達(dá)式

D)任何類型的表達(dá)式

(35)若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

printf("%d\n",y);

)

A)0

B)22

C)12

D)10(

(36)以下說法正確的是

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

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

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

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

第6頁(共133頁)6

華信電腦培訓(xùn)中心整理完成

(37)表達(dá)式0x13八0x17的值是

A)0x04

B)0x13

C)0xE8

D)0x17

(38)有以下程序

#defineF(X,Y)(X)*(Y)

main()

{inta=3,b=4;

printf("%d\n”,F(xiàn)(a++,b++));

)

程序運(yùn)行后的輸出結(jié)果是

A)12

B)15

C)16

D)20

(39)下列程序執(zhí)行后的輸出結(jié)果是

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5];

a=0;b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

A)6

B)7

C)8

D)9

(40)若有下面的程序段:

chars[]="china";char*p;p=s;

則下列敘述正確的是

A)s和p完全相同

B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

C)s數(shù)組長(zhǎng)度和p所指向的字符串長(zhǎng)度相等

D)*p與s[0]相等

(41)以下程序中函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i<N-l;I++)

for(j=i+l;j<N;J++)

if(a[i]

)

main()

{intaa[10]={l,2,3,4,5,6,7,8,9,10},i;

第7頁(共133頁)7

華信電腦培訓(xùn)中心整理完成

sort(&aa[31,5);

for(i=0;i<10;i++)printf(H%d,",aa[i]);

printf("\nn);

}

程序運(yùn)行后的輸出結(jié)果是

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

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

C)123,8,7,6,5,4,9/0,

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

(42)以F程序的運(yùn)行結(jié)果是

#include"stdio.h"

main()

{structdate

{intyear,month,day;}today;

printf("%d\nn,sizeof(structdate));

}

A)6

B)8

C)10

D)12

(43)若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是

A)a,point,*&a

B)&*a,&a,*point

C)*&point,*point,&a

D)&a,&*point,point

(44)在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是

A)地址傳遞

B)單向值傳遞

C)由實(shí)參傳形參,再由形參傳實(shí)參

D)傳遞方式由用戶指定

(45)已定義以下函數(shù)

fun(char*p2,char*pl)

(

while((*p2=*pl)!='\0'){pl++;p2++;}

)

函數(shù)的功能是

A)將pl所指字符串復(fù)制到p2所指內(nèi)存空間

B)將pl所指字符串的地址賦給指針p2

C)對(duì)pl和p2兩個(gè)指針?biāo)缸址M(jìn)行比較

D)檢查pl和p2兩個(gè)指針?biāo)缸址惺欠裼?(T

(46)若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8時(shí),結(jié)果為

main()

{inta,b,s;

scanf(H%d%dn,&a,&b);

第8頁(共133頁)8

華信電腦培訓(xùn)中心整理完成

s=a

if(a<B)

s=b;

s*=s;

printf(H%d",s);

)

A)36

B)64

C)48

D)以上都不對(duì)

(47)fscanf函數(shù)的正確調(diào)用形式是

A)fbcanf(fp,格式字符串,輸出表列);

B)fscanf(格式字符串,輸出表列,巾);

C)fkcanf(格式字符串,文件指針,輸出表列);

D)fscanf(文件指針,格式字符串,輸入表列);

(48)下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是

A)文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件

C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

(49)有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-'a'+'A';

s++;

}

)

main()

{charstrl[100]=nabcddfefdbd",c='d,;

ss(strl,c);printf("%s\n”,strl);

}

程序運(yùn)行后的輸出結(jié)果是

A)ABCDDEFEDBD

B)abcDDfefDbD

C)abcAAfefAbA

D)Abcddfefdbd

(50)若以下定義:

structlink

{intdata;

structlink*next;

}a,b,c,*p,*q;

且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

第9頁(共133頁)9

華信電腦培訓(xùn)中心整理完成

指針p指向變量a,q指向變量Co則能夠把c插入到a和b之間并形成新的鏈表的語句組是:

A)a.next=c;c.next=b;

B)p.next=q;q.next=p.next;

C)p->next=&c;q->next=p->next;

D)(*p).next=q;(*q).next=&b;

二、填空題

(1)算法的基本特征是可行性、確定性、【1】和擁有足夠的情報(bào)。

解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足

夠的情報(bào)。

(2)在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【2】o

解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。

(3)在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【3】。

解析:將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。

(4)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【4】。

解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可

行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。

(5)數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【5】3種。

解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之

間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

(6)設(shè)y是int型,請(qǐng)寫出y為奇數(shù)的關(guān)系表達(dá)式【6】。

答案(y%2)=l

(7)設(shè)inta=5,b=6,表達(dá)式(++a==b—)?++a:--b的值是[7]。

解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b——的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。

請(qǐng)注意前綴++,-和后綴++,-的區(qū)別。

(8)下列程序的輸出結(jié)果是[81

maim()

{charb口="Helloyou";

第10頁(共133頁)10

華信電腦培訓(xùn)中心整理完成

b[5]=0;

printf("%s\n",b);}

解析:語句b[5]=0;相當(dāng)于語句b[5]='0,,且、0,為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'(T就停止輸出。

(9)當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳遞的是[9]o

解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對(duì)應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實(shí)

現(xiàn)。

(10)以下程序的輸出結(jié)果是【10】。

inta=1234;

printf(n-\nn,a);

解析:在%與格式符之間插入一個(gè)整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬

度時(shí),則實(shí)際的寬度輸出。

(11)用高級(jí)語言編寫的程序稱為【11】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通

過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。

解析:用高級(jí)語言編寫的程序稱為源程序,源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是

通過解釋程序,對(duì)源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生H標(biāo)程序(目標(biāo)程序是計(jì)

算機(jī)可直接執(zhí)行的機(jī)器語言程序,它是一種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。

(12)以下程序的輸出結(jié)果是【12】。

main()

{inta=0;

a+=(a=8);

printf("%d\n",a);}

解析:賦值表達(dá)式的值就是所賦值變量的值,本題中a+=8相當(dāng)于a=a+8,對(duì)表達(dá)式逐步進(jìn)行求解:

a+=(a=8)此時(shí),a的值由于賦值為8,而不是0

a+=8

a=a+8

a=16

(13)函數(shù)'="2X17voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參

指針sn傳回;n通過形參傳入,n的值大于等于0。請(qǐng)?zhí)羁铡?/p>

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{[13]*f;

w=f7(2*i+l);

s+=w;}

第11頁(共133頁)11

華信電腦培訓(xùn)中心整理完成

[14]=s;}

解析:C語言中實(shí)參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)

用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。

(14)函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果山函數(shù)值返回。m與n為兩個(gè)iE數(shù)且要求m>n。

例如:m=12,n=8時(shí)、運(yùn)行結(jié)果應(yīng)該是495.000000。請(qǐng)?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。

#include

#include

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=l;iv=m;i++)[15];

for(i=l;iv=n;i++)[16];

for(i=l;iv=m-n;i++)p=p/i;

returnp;}

main()

{clrscr();

printf(Hp=%f\n",fun(12,8));}

解析:本題中,欲求p的值,需要先求m,n,m?n的階乘值,可用循環(huán)語句實(shí)現(xiàn)。

(15)該程序運(yùn)行的結(jié)果是【17】。

#include

#include

#defineM100

voidfiin(intm,int*a,int*n)

{inti,j=0;

for(i=l;iv=m;i++)

if(i%7=0||i=0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k<N;K++)

if((k+1)==0)printf("\n");

elseprintf("M",aa[k]);

printf("\n");}

解析:解答本題的關(guān)鍵是要讀懂程序,試題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中

的“或''的區(qū)別,但在此處,if條件語句中用了'T運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if()中應(yīng)

用“&&”運(yùn)算符。

第12頁(共133頁)12

華信電腦培訓(xùn)中心整理完成

當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:

711142122283335424449。

(16)下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符1,則輸出3,請(qǐng)?zhí)羁铡?/p>

#include

#include

#defineM81

intfun(char*ss,charc)

{inti=0;

for(;[18];ss++)

if(*ss=c)i++;

returni;}

main()

{chara[M],ch;

clrscr();

printf(**\nPleaseenterastring:H;gets(a);

printf("\nPleaseenterachar:”);ch=getchar();

printf(H\nThenumberofthecharis:%d\nH,fun(a,ch));}

解析:從字符串ss中找出子字符串的方法是:從第1個(gè)字符開始,對(duì)字符串進(jìn)行遍歷;若SS串的當(dāng)前字符等于

t申的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若

SS串的字符和C串的字符對(duì)應(yīng)不同,繼續(xù)對(duì)SS串的下?個(gè)字符進(jìn)行處理。本程序是采用逐?比較的方式找出出現(xiàn)

的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動(dòng),if()的作用是進(jìn)行判斷是否相同,若與C相同則表示又出現(xiàn)

一次。

(17)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>

#include"stdio.h**

FILE*fp;

{charch;

if((fp=fopen([19]))==NULL)exit(0);

while((ch=getchar())!=@)fputc(ch,fp);

fclose(fp);}

解析:fopen函數(shù)的調(diào)用方式通常為:

FILE*fp

fp=fopen(文件名,使用文件方式);

(18)設(shè)有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP([20],a,b);

解析:該題考查兩個(gè)知識(shí)點(diǎn):

(1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來代表一個(gè)字符串,它的一般形式為#(1?行其標(biāo)識(shí)符字符串

第13頁(共133頁)13

華信電腦培訓(xùn)中心整理完成

(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過中間變量

即可,所以,此處應(yīng)填c。

計(jì)算機(jī)等級(jí)考試二級(jí)C語言考前密卷(2)

一、選擇題

(1)已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為

A)GEDHFBCA

B)DGEBHFCA

C)ABCDEFGH

D)ACBFEDHG

(2)樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是

A)有且只有1

B)1或多于1

C)0或1

D)至少2

(3)如果進(jìn)棧序列為el,e2,e3,e4,則可能的出棧序列是

A)e3,el,e4,e2

B)e2,e4,e3,el

C)e3,e4,el,e2

D)任意順序

(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是

A)不限制goto語句的使用

B)減少或取消注解行

C)程序越短越好

D)程序結(jié)構(gòu)應(yīng)有助于讀者理解

(5)程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和

A)對(duì)象成分

B)變量成分

C)語句成分

D)傳輸成分

(6)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是

A)便于用戶、開發(fā)人員進(jìn)行理解和交流

B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C)作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)

D)便于開發(fā)人員進(jìn)行需求分析

(7)下列不屬于軟件工程的3個(gè)要素的是

A)工具

B)過程

C)方法

D)環(huán)境

第14頁(共133頁)14

華信電腦培訓(xùn)中心整理完成

(8)單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為

A)外模式

B)概念模式

C)內(nèi)模式

D)存儲(chǔ)模式

(9)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成

A)屬性

B)關(guān)系

C)鍵

D)域

(10)SQL語言又稱為

A)結(jié)構(gòu)化定義語言

B)結(jié)構(gòu)化控制語言

C)結(jié)構(gòu)化查詢語言

D)結(jié)構(gòu)化操縱語言

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

A)C語言編譯時(shí)不檢查語法

B)C語言的子程序有過程和函數(shù)兩種

C)C語言的函數(shù)可以嵌套定義

D)C語言的函數(shù)可以嵌套調(diào)用

(12)在C語言中,退格符是

A)\n

B)\t

C)\f

D)\b

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

A)構(gòu)成C程序的基本單位是函數(shù)

B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C)main()函數(shù)必須放在其他函數(shù)之前

D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

(14)在C程序中,判邏輯值時(shí),用“非0”表示邏輯值“真”,又用"0”表示邏輯值“假在求邏輯值時(shí),用()

表示邏輯表達(dá)式值為“真",又用()表示邏輯表達(dá)式值為“假

A)10

B)01

C)非0非0

D)11

(15)在C語言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是

A)%

B)\

C)%和\

D)**

(16)字符型數(shù)據(jù)在機(jī)器中是用ASCII碼表示的,字符“5”和“7”在機(jī)器中表示為

第15頁(共133頁)15

華信電腦培訓(xùn)中心整理完成

A)10100011和01110111

B)01000101和01100011

C)00110101和00110111

D)01100101和01100111

(17)若已定義:inta=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后

a<=25&&b-<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);

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

A)***a=25,b=13,c=19

B)***a=26,b=14,c=19

C)###a=25,b=13,c=19

D)###a=26,b=14,c=19

(18)若有定義:inta=7;floatx=2.5,y=4.7;貝U表達(dá)式x+a%3*(int)(x+y)%2/4的值是

A)2.500000

B)2.750000

C)3.500000

D)0.000000

(19)下列程序段的輸出結(jié)果是:

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("?,%2.1£%2.lf',a,b,c);

A)無輸出

B)12,123.5,12345.5

C)1234,123.5,12345.5

D)1234,123.4,1234.5

(20)若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor(表示回車),則下面程序的運(yùn)行結(jié)果是#include

main()

{charc;

intv0=l,vl=0,v2=0;

do{switch(c=getchar())

{case'a':case'A':

case'encase'E':

case'i':caseT:

case'o':case'O':

caseruz:case'U':vl+=1;

default:v0+=l;v2+=l;}

}while(c!='\n');

printf(nv0=%d,vl=%d,v2=%d\nn,v0,vl,v2);}

A)v0=7,vl=4,v2=7

B)v0=8,vl=4,v2=8

C)v0=ll,vl=4,v2=ll

D)v0=13,vl=4,v2=12

第16頁(共133頁)16

華信電腦培訓(xùn)中心整理完成

(21)設(shè)有以下程序段

intx=O,s=O;

while(!x!=0)s+=++x;

printf(”%d”,s);

A)運(yùn)行程序段后輸出0

B)運(yùn)行程序段后輸出1

C)程序段中的控制表達(dá)式是非法的

D)程序段執(zhí)行無限次

(22)有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x>10.0)y=1.0/x;

elsey=1.0;

printf("%f\n”,y);}

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

A)0.000000

B)0.250000

C)0.500000

D)1.000000

(23)執(zhí)行下面的程序段后,變量k中的值為

intk=3,s[2];

s[0]=k;k=s[1]*10;

A)不定值

B)33

C)30

D)10

(24)以下程序段的描述,正確的是

x=-l;

do

{x=x*x;}

while(!x);

A)是死循環(huán)

B)循環(huán)執(zhí)行兩次

C)循環(huán)執(zhí)行一次

D)有語法錯(cuò)誤

(25)以下選項(xiàng)錯(cuò)誤的是

A)main()

{intx,y,z;

x=0;y=x-1;

z=x+y;}

第17頁(共133頁)17

華信電腦培訓(xùn)中心整理完成

B)main()

{intx,y,z;

x=O,y=x+l;

z=x+y;}

C)main()

{intx;int

inty;

x=O,y=x+l;

z=x+y;}

D)main()

{intx,y,z;

x=O;y=x+l;

z=x+y,}

(26)有如下程序段

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c〈B);

執(zhí)行該程序段后,x的值為

A)ture

B)false

C)0

D)1

(27)下列程序執(zhí)行后的輸出結(jié)果是

voidfund(inti);

voidfiinc2(inti);

charst[]=nhello,friend!";

voidfund(inti)

{printf(”%c”,stLi]);

if(i<3){i+=2;func2(i);}}

voidfunc2(inti)

{printf(n%c\st[i]);

if(i<3){i+=2;funcl(i);}}

main()

{inti=0;funcl(i);printf(H\nn);}

A)hello

B)hel

C)hlo

D)him

(28)以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值

fun(int*a,intn)

{inti,j=O,p;

P=j;

for(i=j;i〈N;I++)

第18頁(共133頁)18

華信電腦培訓(xùn)中心整理完成

if(a[i]>a[p]);

return(p);)

在下劃線處應(yīng)填入的內(nèi)容是

A)i=p

B)a[p]=a[i]

C)p=j

D)p=I

(29)下面說明不正確的是

A)chara[10]="china";

B)chara[10],*p=a;p=nchina"

C)char*a;a="china,*;

D)chara[10],*p;p=a="china"

(30)以下程序的輸出結(jié)果是

#include

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);}

A)11,42,31

12,22,41

B)11,41,20

12,42,20

C)11,21,40

11,21,21

D)11,41,21

12,42,22

(31)若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素

A)可在程序的運(yùn)行階段得到初值0

B)可在程序的編譯階段得到初值0

C)不能得到確定的初值

D)可在程序的編譯或運(yùn)行階段得到初值0

(34)定義如下變量和數(shù)組:

intk;

inta[3][3]={9,8,7,6,5,4,3,2,1};

則下面語句的輸出結(jié)果是

for(k=0;k<3;k++)printf("%d",a[k][k]);

A)753

B)951

C)963

D)741

(35)下列程序執(zhí)行后的輸出結(jié)果是

main()

第19頁(共133頁)19

華信電腦培訓(xùn)中心整理完成

{chararr[2][4];

strcpy(arr,"you");strcpy(arr[1]Jme");

arr[0][3]

printf(M%s\n",arr);}

A)you&me

B)you

C)me

D)err

(36)有以下函數(shù)

charfun(char*p)

{returnp;}

該函數(shù)的返回值是

A)無確切的值

B)形參p中存放的地址值

C)一個(gè)臨時(shí)存儲(chǔ)單元的地址

D)形參p自身的地址值

(37)以下正確的說法是

A)定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)

B)return后邊的值不能為表達(dá)式

C)如果函數(shù)值的類型與返回值類型不?致,以函數(shù)值類型為準(zhǔn)

D)如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)

(38)有以下程序

intf(intn)

{if(n=l)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=l;i<3;i++)j+=f(i);

printf("%d\n”,j);}

程序運(yùn)行后的輸出結(jié)果是

A)4

B)3

C)2

D)1

(39)設(shè)有如下定義:

strucksk

{inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正確的賦值語句是

A)p=&a;

B)p=data.a;

C)p=&data.a;

第20頁(共133頁)20

華信電腦培訓(xùn)中心整理完成

D)*p=data.a;'

(40)以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是

A)typedefstructaa

{intn;

floatm;

}AA;

AAtdl;

B)#defineAAstructaa

AA{intn;

floatm;

}tdl;

C)struct

{intn;

floatm;

}aa;

structaatdl;

D)struct

{intn;

floatm;

}tdl;

(41)若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是

A)p=&n;scanf("%d",&p);

B)p=&n;scanf(”%d”,*p);

C)scanf(”%d”,n);

D)p=&n;scanf("%d",p);

(42)在下述程序中,判斷i>j共執(zhí)行的次數(shù)是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A)4

B)7

C)5

D)6

(43)以下4個(gè)選項(xiàng)中,不能看做一條語句的是

A);

B)a=5,b=2.5,c=3.6;

C)if(a<5);

第21頁(共133頁)21

華信電腦培訓(xùn)中心整理完成

D)if(b!=5)x=2;y=6;

(44)在C語言中,變量的隱含存儲(chǔ)類別是

A)auto

B)static

C)extern

D)無存儲(chǔ)類別

(45)若有以下程序

#include

voidf(intn);

main()

{voidf(intn);

f(5);

}

voidf(intn)

{printf(M%d\n",n);}

則以下敘述中不正確的是

A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明

D)函數(shù)f無返回值,所以可用void將其類型定義為無返回值型

(46)若有下面的說明和定義

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

則sizeof(structtest)的值是

A)12

B)16

C)14

D)9

(47)以下程序的輸出是

structst

{intx;int*y;}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[01,60,&dt[01,60,&dt[0],60,&dt[0]};

main()

{P=aa;

printf("%d\n",++(p->x));

}

A)10

B)11

C)51

D)60

(48)若有運(yùn)算符vv,sizeof,八,&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是

第22頁(共133頁)22

華信電腦培訓(xùn)中心整理完成

A)sizeof,&=,?,A

B)sizeofi?,A,&=

C)A,?,sizeof,&=

D)?,A,&=,sizeof

(49)函數(shù)也eek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是

A)文件開始

B)文件末尾

C)文件當(dāng)前位置

D)以上都不對(duì)

(50)有以下程序

#include

main()

{FILE*fp;inti=20j=30,k,n;

fp=fopen("dl.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

m=fopen("dl.dat","r");

fscanf(fjp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);

}

程序運(yùn)行后的輸出結(jié)果是

A)2030

B)2050

C)3050

D)3020

二、填空題

(1)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【1】。

解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)

算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間

的前后件關(guān)系的信息。

(2)在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為【2】。

解析:類是面向?qū)ο笳Z言中必備的程序語言結(jié)構(gòu),用來實(shí)現(xiàn)抽象數(shù)據(jù)類型。類與類之間的繼承關(guān)系實(shí)現(xiàn)了類之

間的共享屬性和操作,一個(gè)類可以在另一個(gè)已定義的類的基礎(chǔ)上定義,這樣使該類型繼承了其超類的屬性和方法,

當(dāng)然,也可以定義自己的屬性和方法。

(3)耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中【3】反映了模塊內(nèi)各成分之間的聯(lián)系。

解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系;

耦合性是模塊間互相連接的緊密程度的度量。

(4)一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【4】

的聯(lián)系。

解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即-對(duì)一(1:1)的聯(lián)

第23頁(共133頁)23

華信電腦培訓(xùn)中心整理完成

系、一對(duì)多(1:N)或多對(duì)一(N:1)的聯(lián)系和多對(duì)多(N:N)的聯(lián)系。

(5)數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、【5】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、

運(yùn)行利維護(hù)階段。

解析:數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)

施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。

(6)以下程序的運(yùn)行結(jié)果是[6]0

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf(n%d\n",MAX(i,j));

}

解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為

整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。

(7)以下程序的功能是從健盤輸入若干學(xué)生的成績(jī),并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請(qǐng)?zhí)羁铡?/p>

main()

{floatx,amax,amin;

scanf("%r,&x);

amax=x;

amin=x;

while([7])

{if(x>amax)

amax=x;

else

if[8]

amin=x;

elsescanf("%f',&x);

}

printf(”\namax=%f\namin=%f\n”,amax,amin);

}

解析:本題先從鍵盤接受數(shù)值,并分別賦給amax(用于保存最高成績(jī))和amin(用干保存最低成績(jī)),然后通

過while循環(huán)控制是否結(jié)束輸入,并且通過if語句來給amax和amin賦值和進(jìn)行下一次的輸入。

(8)在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論