國家二級(C語言)筆試模擬試卷14_第1頁
國家二級(C語言)筆試模擬試卷14_第2頁
國家二級(C語言)筆試模擬試卷14_第3頁
國家二級(C語言)筆試模擬試卷14_第4頁
國家二級(C語言)筆試模擬試卷14_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)筆試模擬試卷第1

一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共

10分。)

1、軟件是指

A、程序

B、程序和文檔

C、算法加數(shù)據(jù)結(jié)構(gòu)

D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合

標準答案:D

知識點解析:軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合,相對于計算機硬件而言,軟件是

邏輯產(chǎn)品而不是物理產(chǎn)品,是計算機的無形部分。

2、在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為()。

A、32

B、31

C、16

D、15

標準答案:4

知識點解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所

有結(jié)點都有兩個子結(jié)點。這就是說,在滿二叉樹中,每層上的結(jié)點數(shù)都達到最大

值,即在滿二叉樹的第k層上有2k.i個結(jié)點,且深度為m的滿二叉樹有2m-l個

結(jié)點。由此可知,本題中葉子結(jié)點的個數(shù)為25-1=16。

3、在數(shù)據(jù)庫設(shè)計的四個階段中,為關(guān)系模式選擇存取方法應(yīng)該是在階段。

A、需求分析

B、概念設(shè)計

C、邏輯設(shè)計

D、物理設(shè)計

標準答案:8

知識點解析:需求分析階段是分析用戶的需求,顯然不屬于這個階段,由此可以排

除選項A.概念設(shè)計是洛需求分析得到的用戶需求抽象為信息結(jié)構(gòu)及概念模型的過

程,涉及不到數(shù)據(jù)的存取,所以選項D錯誤。邏輯設(shè)計是在概念設(shè)計的基礎(chǔ)上將

E-R圖轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模型表示的邏輯模式,也不涉及存取問

題,選項C也不對。答案為D。

4、在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A、樹形結(jié)構(gòu)

B、網(wǎng)狀結(jié)構(gòu)

C、線性表

D、二維表

標準答案:8

知識點解析:數(shù)據(jù)庫中的關(guān)系模型是采用二維表來表示實體與實體之間的聯(lián)系。

5、堆排序是一種排序。

A、插入

B、選擇

C、交換

D、歸并

標準答案:2

知識點解析?:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。

6、SQL語言又稱為o

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

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

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

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

標準答案:4

知識點解析:結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,簡稱SQL)是集數(shù)據(jù)定

義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能于一體的數(shù)據(jù)庫語言。

7、分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是

A、數(shù)據(jù)分布性和邏輯整體性

B、位置透明性和復(fù)制透明性

C、分布性

D、數(shù)據(jù)冗余

標準答案:8

知識點解析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制

透明性的特點,其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲,數(shù)

據(jù)也并非必須重復(fù)存儲,主要視數(shù)據(jù)的分配模式而定。若分配模式是一對多,即一

個片段分配到多個場地存放,則是冗余的數(shù)據(jù)庫,否則是非冗余的數(shù)據(jù)庫。

P

8、設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A、ZBTYCPXA

B、ATBZXCYP

C、ZBTACYXP

D、ATBZXCPY

標準答案:2

知識點解析:暫無解析

9、有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。

A、ABCDEF

B、BDAECF

C、ABDCEF

D、ABCDFE

標準答案:2

知識點解析:對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后

遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順

序。

10、下列敘述中,正確的是

A、對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(n/2)

C、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(log2n)

D、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為

(nlog2n)

標準答案:A

知識點解析:暫無解析

二、選擇題(1分)(本題共〃題,每題7.0分,共〃

分。)

11、若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。

w=2,x=3,y=4,z=5:m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

A、2

B、3

C、5

D、4

標準答案:A

知識點解析:條件表達式“a?b:c”的含義:當a為真時,其值等于表達式b的值,

當a為假時,其值等于表達式c的值。表達式運算過程:第1個表達式:w=2<

x=3為真,所以返回w的值,即m=w=2;第2個表達式:m=2Vz=5為真,所以返

回m的值,即m=2;第3個表達式:w=2Vy=4為真,所以返回m的值,即

m=2o

12>下列程序的運行結(jié)果是#include"stdio.h"main。{intx=-9,y=5,z=8;if(x<y)

if(y<O)z=O;elsez+=l;prinlf("%d\n",z);}

A、6

B、7

C、8

D、9

標準答案:D

知識點解析:if…else語句的執(zhí)行過程如下,首先計算if后面一對圓括號內(nèi)表之式

的值,若表達式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的

下一條語句;若表達式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語

句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if

匹配,與書寫格式無關(guān),本題目的后一個if-else相當于嵌套在第一個if子句里,

相當于x<y&&y〈0時,z=0;當x〈y&&y>=0時,z=2十1。

13、語句"printfTa\bhow\'are\'y\\\bou\n”);”的輸出結(jié)果是()。

A^a\bhow\'are\'y\\bou

B、a\bhow\'are\'y\bou

C^how'are'you

D^ahow'are'y\bou

標準答案:C

知識點解析:“\b”格式符表示退格,功能是將它后面的字母把它前曲的字母覆蓋,

導(dǎo)致“由”格式符前面的字母不能輸出:“V”格式符表示輸出單引號字符:格式符

表示輸出反斜線字符。

14、在數(shù)據(jù)庫設(shè)計中,將E?R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

A、需求分析階段

B、概念設(shè)計階段

C、邏輯設(shè)計階段

D、物理設(shè)計階段

標準答案:c

知識點標析:邏輯結(jié)構(gòu)發(fā)計的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能

夠用某一DBMS實現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模

型,這正是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計所要完成的任務(wù)。它包捅從E-R圖向關(guān)系模式轉(zhuǎn)

換和邏輯模式規(guī)范化及調(diào)整、實現(xiàn)。

15、若程序執(zhí)行時的輸入數(shù)據(jù)是“2473”,則下述程序的輸出結(jié)果是includevoid

main(){intcs;while((cs=getchar())!=;'\n')Owitch(cs?'2'){case0case1:

putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:

putchar(cs+2);}}}

A、668977

B、668966

C、6677877

D、6688766

標準答案:A

知識點解析:本題主要考查switch語句的使用方法。swiich語句的執(zhí)行過程為:進

入switch結(jié)構(gòu)后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配

的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出

switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。

16、若變量均已正確定義并賦值,以下合法的C語言賦值語句是

A、x=y==5;

x=n%2.5;

C、x+n=i;

Dxx=5=4+l;

標準答案:A

知識點解析:本題考查賦值運算符及賦值表達式。賦值運算符左側(cè)的操作數(shù)必須是

一個變量,而不能是表達式或者常量,選項C)和D)錯誤。運算符兩側(cè)都應(yīng)當是整

型數(shù)據(jù),選項B)錯誤。

17、以下敘述中錯誤的是()。

A、C語句必須以分號結(jié)束

B、復(fù)合語句在語法上被看做一條語句

C、空語句出現(xiàn)在任何位置都不會影響程序運行

D、賦值表達式末尾加分號就構(gòu)成賦值語句

標準答案:4

知識點解析:選項C)是錯誤的。例如,對于for(;;)語句,如果循環(huán)體中沒有結(jié)束循

環(huán)的語句,循環(huán)將無限地進行下去,導(dǎo)致死循環(huán)出現(xiàn)。

18、有以下函數(shù)定義:voidfun(intn,doublex){......)若以下選項中的變量都已正確

定義并賦值,則對函數(shù)fun正確調(diào)用語句是0

A、fun(inty,doublem);

B、k=fun(10,12.5);

C、fuu(x,i>);

D、voidfun(n,x);

標準答案:4

知識點解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實參表列);,實參與形參的個數(shù)應(yīng)

相等,類型應(yīng)一致,在調(diào)用函數(shù)時,不要指定其返回類型,對于返回類型為void

的函數(shù),不能作為賦值表達式的組成部分,所以選C。

19、在C語言中,合法的字符常量是o

A、)081

B、,\x43,

C、3b,

D、\0

標準答案:2

知識點解析:選項A錯在表示轉(zhuǎn)義字符的三位八進制數(shù)中不能出現(xiàn)8,選項C錯

在字符串要用雙引號括起,選項D錯在單個字符應(yīng)用單引號括起。選項B表示用

兩位16進制數(shù)代表轉(zhuǎn)義字符。

20、設(shè)整型數(shù)i=5,則printf("%d”,i+++++i);的輸出為。

A、10

B、II

C、12

D、語法錯誤

標準答案:8

知識點解析:C語言中有基本的算術(shù)運算符(+、?、*、/)還包括自增自減運算符

(++、-),在C語言解析表達式時,它總是進行貪婪咀嚼,這樣,該表達式就被解

析為i+++++i,顯然該表達式不合C語言語法。

3x"

21、與數(shù)學(xué)式子n應(yīng)的C語言表達式是

A、3*xn/(2*x-l)

B、3*x**n/(2*x-l)

C、3*pow(x,n)*(l/(2*x-l))

D、3*pow(n,x)/(2*x-l)

標準答案:4

知識點解析:在該題中,x的n次方應(yīng)該調(diào)用函數(shù)pow(x,n)計算,pow(x,n)的參

數(shù)寫反了。

三、選擇題(2分)(本題共20題,每題1.0分,共20

分。)

22、設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息

的是()。

A、if(x++);

Bsif(x>y&&y!=O);

C、if(x>y)x-elsey++;

D^if(y<0){;)elsex++;

標準答案:C

知識點解析:暫無解析

23、有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A、gets(&s[0]);

B、scanf("%s”,s+1);

C、gets(s);

D、scant("%sn,sLIJ);

標準答案:D

知識點解析:在格式輸入中,要求給出的是變量的地址,而D)答案中給出的

是一個值的表達式。

24、以下對結(jié)構(gòu)體類型變量td的定義中,錯誤的是o

A^typedefstructaa{inin;floatm:)AA;AAtd;

structaa{intn;floatm;Jtd;structaatd;

C、struct{intn;floatm;}aa;

D、struct{intn;floatm:)td;structaatd:

標準答案:C

知識點解析:本題的考點是C語言結(jié)構(gòu)體的定義和自定義類型lypedef。對于選項

A,首先用typedef將結(jié)構(gòu)體自定義為AA,再用AA定義結(jié)構(gòu)體變量td是正確的。

對于選項B首先定義結(jié)構(gòu)體類型aa,再用structaa定義結(jié)構(gòu)體變量td也是正確

的。選項D直接用無名結(jié)構(gòu)體定義結(jié)構(gòu)體變量id也是正確的。而選項C中,首先

用無名結(jié)構(gòu)體定義了結(jié)陶體變量aa,再用結(jié)構(gòu)體變量aa去定義結(jié)構(gòu)體變量td是完

全錯誤的。因此正確選項是C。

25、下列敘述錯誤的是()。

A、函數(shù)名是屬于用戶標識符,需符合C語言對標;只符的規(guī)定

B、形參只能是變量

C、為保證程序的正常運行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名

D、函數(shù)中定義的變量可以與其他函數(shù)中的變量同名

標準答案:C

知識點。析:本題考查函數(shù)調(diào)用時參數(shù)的作用域。在函數(shù)調(diào)用時,函數(shù)體內(nèi)定義的

變量的作用域在函數(shù)體內(nèi),因而在不同函數(shù)體內(nèi)定義的變量可以相同,不影響各個

變量的使用。

26、若已包括頭文件Vstring.h>且已有定義charsl[18],s2={“ABCDE”}和inti,

現(xiàn)要將字符串“ABCDE”賦給si,下列語句錯誤的是()。

A、strcpy(sl,s2)

B、strcpy(sl/'ABCDE");

C>sl="ABCDEM;

D、for(i=0;i<6;i++)sl[i]=s2[i];

標準答案:C

知識點解析:數(shù)組名si是代表si數(shù)組首地址的地址常量,而不是變量,因為“=”

左邊不能出現(xiàn)常量,因此si="ABCDE”的方法是錯誤的。

27、定義結(jié)構(gòu)體數(shù)組:structstu{intnum;charname[20];)x[5]=

{1,“LI"2“ZHAO”,3,“WANG”,4,“ZHANG”,5,“LIU”};for(i=l;iV5;i++)

printfC%d%CM,x[i].num,x[i]name[2]);以上程序段的輸出結(jié)果為()。

A、2A3N4A5U

B、112A3H41

C、1A2N3A4U

D、2H3A4H51

標準答案:A

知識點解析:本題主要考查結(jié)構(gòu)體數(shù)組的使用。x川.num為結(jié)構(gòu)體x[i]中的num成

員,x[i].name⑵是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:

第1次循環(huán),i=l,輸出x[l].num,x[l].name⑵的值,即2A:第2次循環(huán),i=

2,輸出x[2].num,x⑵name⑵的值,即3N;第3次循環(huán),i=3,輸出x[3].num,

x[3].name⑵的值,即4A:第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,

即5Uo

28、以F程序的輸出結(jié)果是()。main(){intx=0.5;charz=,a,;printf(n%d\n",

(x&l)&&(z<,z,));}

A、0

B、I

C、2

D、3

標準答案:B

知識點解析:(X&1)&&(7V,T)=(0.=故選擇R選項.

29、以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A、0

B、70

C、35

D、1

標準答案:C

知識點解析:本題考查校位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,

結(jié)果仍為此數(shù),不發(fā)生變化。

30、有以下程序:#include<stdio.h>main(){inta[3][3],*p,i;p=&a[0][0];

for(i=0;i<9;i++)p[i]=i:for(i=0;i<3;i++)Printf(',%d%a[l][i]);}程序運行后的

輸出結(jié)果是()。

A、012

B、123

C、234

D、345

標準答案:8

知識點解析:程序通過for(i=0;i<9:i++)p[i]=i語句對二維數(shù)組a的元素依次賦

值,a[0][0]=0,a[O][l]=La[0][2]=2,a[l][0]=3,a[l][l]=4,a[l][2]=5,a[2][0]

=6,a[2][l]=7,a⑵⑵=8,程序運行的結(jié)果為345。

31、以下程序運行后,輸出結(jié)果是#definePT5.5#defineS(x)PT*x*xincludemain()

{inta=l,b=2;printf("%4.1f\n'\S(a+b));}

A、49.5

B、9.5

C、22

D、45

標準答案:A

知識點解析:考查宏替段的使用。宏替換用“#define宏名宏體”的形式來定義。在

進行編譯預(yù)處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶

參數(shù),但宏替換過程中不像函數(shù)那樣要進行參數(shù)值的計算、傳遞及結(jié)果返回等操作;

宏替換只是簡單的字符替換,不進行計算,因而本題中的S(a+b)進行宏替換后為

PT*1+2*1+2=5.5*1+2*1+2=9.5。

32^有以下程序main。{chara,b,C,*d;a='\';b=\\xbc';c='\Oxab';d=,^\OI27'^;

princf("%c%c%c%c\n",a,b,c,*D);}編譯時出現(xiàn)錯誤,以下敘述中正確的是

A、程序中只有a=\;語句不正確

B、b='\xbc';語句不正確

C、d=M\0127":語句不正確

D、a='\';和c='\Oxab';語句都不正確

標準答案:8

知識點解析:給字符變量賦值只能賦一個字符,包括轉(zhuǎn)義字符,語句是錯誤

的,因為“\”是轉(zhuǎn)義字符,應(yīng)該用“\\”來表示,語句小=,改栓,;”是正確的,它是將

一個用十六進制表示的轉(zhuǎn)義字符賦給一個字符型變量,故選項B不為所選;語句

“c=\Oxab;”是正確的,反斜線后的十六進制只可由小寫x開頭,不能用Ox。語句

“d="\0127“;”是正確的,可以給字符型指針變量賦一個字符串,其作用是讓該指

針變量指向該字符串,故選項C不正確。所以,D選項為所選。

33、以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合

法的整型單元的是

A、main(){int*p;fun(p);...}intfiin(int*p){ints;p=&s;}

B、main(){int*p;fun(&p);}intfun(int**p){ints;*p=&s;)

C、#includemain(){int*p;fun(&p);...}intfun(int**p)*p=(int*)malloc(2);}

D^#includemain(){iht*p;fun(p);...}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}

標準答案:4

知識點解析:本題考核的知識點是指針變量作為函數(shù)的參數(shù)以及變量的作用域。在

選項A中,main。函數(shù)中定義了一個指針變量p,調(diào)用fun()函數(shù)時把p傳給形參

p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因

此無法實現(xiàn)讓實參p指向一個整型單元,故選項A錯誤.選項B中實現(xiàn)的也是讓

實參P,指向一個在函數(shù)fun()定義的局部變量s,因此也是錯誤的:選項C在函數(shù)

fun()中分配了兩個字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()

函數(shù)的指針變量p中,由于整型變量占兩個字節(jié),因此,選項C是正確的;選項

D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在

fun()函數(shù)分配了一個整型單元并把首地址賦值給行參指針變量p,由于C語言中變

量作為參數(shù)是傳值的,所以并沒有改變對應(yīng)實參指針變量的值,因此選項D也是

錯誤的.所以,C選項為所選。

34、有如下程序:#dcfincn2#dcflncmN+l#dcfincNUM2*m+lmain()(inti;

for(i=l;i<=NUM;i++)printf(H%d\n",i);}該程序中的for循環(huán)執(zhí)行的次數(shù)是

A、5

B、6

C、7

D、8

標準答案:2

知識點。析:在C語言中,宏定義在編譯時將被直接替換,所以NUM最后會被替

換成2*N+1+1,即2*2+1+1,值為6。因此,for循環(huán)執(zhí)行的次數(shù)為6。

35、有以卜程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;

for(;jV6;c[i]=getchar(),i++);for(i=0;iV6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上

輸入:abV回車〉eV回車〉defV回車〉則輸出結(jié)果為。

A、abcdef

R、abed

C、abcd

D、abedef

標準答案:4

知識點解析:1.gctchar。:此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸

入一個字符。2.putchar():此函數(shù)的作用是向終端輸出一個字符,也可以輸巴控

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

正確答案為C。

36、語句“printf("%d\n",12&012);”的輸出結(jié)果是。

A、12

B、8

C、6

D、12

標準答案:2

知識點解析:012是八進制數(shù),轉(zhuǎn)換成十進制為10,I2&10轉(zhuǎn)換成二進制為

00001100&00001010=00001000,00001000轉(zhuǎn)換成十進制為8。

37、設(shè)有定義:inta,*p=&a,**pp=&p;,則與a=100;等價的語句為()

A、**p=100;

B、**pp=100;

C、&*p=100;

D、*pp=10;

標準答案:2

知識點解析:暫無解析

38、以下程序中函數(shù)f的功能是將n個字符串按由大到小的順序進行排序:

#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-

1;i++)fbr(j=i+l;j<n:j++if(strcmp(p[i]?p[j])<0){strcpy(t?p[i]);strcpy(p[i]?

p|j]);strcpy(p[j],t);))main(){charp|||10]:{"abc","aabdfg","abbd",

"dcdbe","cd",);inti;f(p,5);printf("%d\n",strlen(p[0]));}程序運行后的輸

出結(jié)果是()o

A、6

B、4

C、5

D、3

標準答案:4

知識點解析:函數(shù)strcmp(字符串1,字符串2)作用是將“字符串I”和“字符串2”進

行比較,如果“字符串1”>“字符串2”,返回一個人于0的整數(shù)值;如果“字符串1”

〈“字符串2”,返回一個小于0的整數(shù)值;如果“字符串1”="字符串2”,返回0。

函數(shù)strcpy(字符串數(shù)組名,字符串,[整型表達式])的作用是將“字符串”的前“整型

表達式“個字符存入到指定的“字符數(shù)組''中,若省略“整型表達式”,則將整個“字符

串”存入“字符數(shù)組,,中.函數(shù)f()的功能是利用選擇法把一個具有n行的二維數(shù)組中

按行存放的n個字符串由大到小排序。在主函數(shù)中定義了一個二維字符數(shù)組p并給

它按行賦初值,然后調(diào)用f()函數(shù),把它按行從大到小排列。字符串比較大小的標

準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就

是較大的字符串。由此可知最大的字符串為"dcdbc",排序后存放在第一行,其首

地址為p[0],在輸出語句輸出的p[0]指向的字符串長度是5。

39、有以下程序段main。{inta=5,*b,**c;c=&b;&a;}程序在執(zhí)行了

“C=&b;b=&a;”語句后,表達式“**c”的值是

A、變量a的地址

B、變量b中的值

C、變量a中的值

D、變量b的地址

標準答案:4

知識點解析:指向指針的指針,主函數(shù)中定義了一個整型變量a,一個整型指針變

量b和一個二級指針變量c,并讓c指向指針變量b,讓指針b指向整型變量a,所

以**c為變量a的值。

40、以卜程序運行后,輸出結(jié)果是()#include<stdio.h>#definePT5.5

#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\nH,

s(a+b));}

A、49.5

B、9.5

C、22

D、45

標準答案:2

知識點解析:暫無解析

41、有以下程序main(){inti=0,s=0;

do{if(i%2){i++;continue;}i++;

s+=i;)while(i<7);printf("%d\n”,s);}執(zhí)行后輸出的結(jié)果是

A、16

R、12

C、28

D、21

標準答案:A

知識點解析:本題的功能是計算0?7之間所有奇數(shù)的和(包括7)o

四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5

分。)

42、某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有個葉子結(jié)點。

標準答案:19

知識點解析:在任意一裸二叉樹中,度數(shù)為0的結(jié)點(即葉子結(jié)點)總比度為2的結(jié)

點多一個,因此該二叉樹中葉子結(jié)點為18+1=19。

43、數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯

結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

標準答案:物理獨立性

知識點解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變

時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨

立性。

44、軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

標準答案:軟件開發(fā)

知識點解析:基于軟件工程的目標,軟件工程的理論和技術(shù)性研究的內(nèi)容主要包

括:軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué);開發(fā)過

程、開發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué)。軟件工程管理包

括:軟件管理學(xué)、軟件工程經(jīng)濟學(xué),以及軟件心理學(xué)等內(nèi)容。

45、數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯

結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

標準答案:物理獨立性

知識點解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。物理獨立性是指,由于數(shù)

據(jù)的存儲結(jié)構(gòu)與邏輯結(jié)溝之間由系統(tǒng)提供映像,使得當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其

邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改。

46、單元測試又稱模塊測試,一般采用測試。

標準答案:白盒法。

知識點解析:軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測

試和系統(tǒng)測試。單元測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試。對動態(tài)測試,多采

用白盒動態(tài)測試為主,輔之以黑盒測試。

五、填空題(本題共〃題,每題1.0分,共4分。)

47>一個項目具有一個預(yù)目經(jīng)理,一個項目經(jīng)理可管理多個項目,則實體“項目經(jīng)

理”與實體“項目”的聯(lián)系屬于()的聯(lián)系。

標準答案:一對多

知識點解析:實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)

聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實

體一一對應(yīng)相關(guān)聯(lián):一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)

系表現(xiàn)為多個實體與相關(guān)多個實體相聯(lián)系。所以實體“項目經(jīng)理”與實體“項目”的聯(lián)

系屬于一對多的聯(lián)系。

48、請編寫函數(shù)fun,該函數(shù)的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個

整數(shù)放在c中。合并方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的干位和十為

上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。例如:當a=32,b=78?調(diào)

用該函數(shù)后,c=3827o#inckide<conio.h>#include<Stdio.h>voidfun(inta,int

b,(1)){(2);)main(){inta,b;longc;clrscr():printf("Inputa,b:");

scanf("%d%d'\&a,&b);fun(a,b,&c);printf("Theresultis:%ld\nn,c);

NONOO;/木本函數(shù)與考生答題無關(guān),考生不得改動,否則后果自負。*/)

標準答案:voidfun(inta,intb?long*c)

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

知識點解析?:暫無解析

49以下程序的輸出結(jié)果是[]omain(){chars[]=uABCDH,*p;for(p=s+l;p

標準答案:BCDCDD

知識點解析:本題考查指向字符串的指針的運算方法。指針變量P首先指向字符串

中的第一個字符A,執(zhí)行p=s+l后,p指向字符串中的第二個字符B,然后輸出值

“BCD”并換行,依次執(zhí)行循環(huán)語句。

50、下面程序的輸出結(jié)果是[]ocharb||="ABCD";main(){char*chp;for

(chp=b;*chp;chp+=2)printf("%s",chp);printf("\n");}

標準答案:ABCDCD

知識點解析:暫無解析

51、下面程序的運行結(jié)果是[]o#include<stdio.h>#defineSIZE12main()

{chars[SIZE]:inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\nH);)sub(char*a,inttl,intt2)

{charch;while(tl<t2){ch=*(a+tl);*(a+tl)=*(a+t2);*(a+t2)=ch:tl++;t2-

-;}}

標準答案:abcdefglkjih

知識點解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以

ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運算

等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32o

52、以下程序運行后的輸出結(jié)果是【】。main(){charin;m=,B,+32;

printf("%c\n",m);!

標準答案:B

知識點解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCH碼存放,另外,字符數(shù)據(jù)

還可以作為整數(shù)參加運算。格式控制參數(shù)中的格式字符用以指定輸出項的數(shù)據(jù)類型

和輸出格式,輸出字符與其對應(yīng)的輸出項的類型要一致。本題中,“b”的ASCII碼

為98,字符類型m的ASCII碼為98+32=130,所以最后輸出為b。

53、下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。

請?zhí)羁?。intn=0,c;c=getchar();while(c!=,\n,){if()n++;}

標準答案:c>=,a,&&c<=,z,

知識點解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以

可以直接用c>=匕,&&cV=,z,判斷是不是小寫字母;c!=,\n,判斷是用換行符結(jié)束循

環(huán)。

54、以下函數(shù)用以求y的x次方。補足所缺語句。doublefun(doubley,intx){int

i;doublez=1.0;for(i=l;i;i++)z=;returnz;}

標準答案:iV=xz*y。

知識點解析:循環(huán)次數(shù)應(yīng)該是x次,相當于x個y相乘,循環(huán)體中z作為累乘器,

值為z*y。

55、有以下定義和語句,則sizeof(a)的值是[】,而sizeof(a.share)的值是[]。

structdate{intday;intmouth;intyear;union{intshare!;float

share2;}share;)a;

標準答案:104

知識點解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別

占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)

存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是

2+2+2+4=10。

56、下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main(){inta[2][3]={{1,2,3),{4,5,6});intb[3][2],i,j;printfC'array

a"\n");for(i=0;i<=l;i++){for(j=0;【];j++){printf("%5dM,a[i][j]);

[];}pnntt("\n");)pnntf("arrayb:\n");for(i=0;[];i++){tor(j=0;j<

=l;j++)printf("%5dH,b|i]|j]);printf(u\nH);))

標準答案:j<2b[j][i]=a[i]lj]i<=2

知識點解析:本題考查了二維數(shù)組元素的引用。表示的是二維數(shù)組a的第

i+1,第j+1列的元素。

57、以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符

串的首地址,例如:str所指字符串為:Hello!,c中的字符為c,則函數(shù)返回字符

串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回

NULL。請?zhí)羁誹char:i:fun(char*str,charc){intn=0;char*p=str;if(p!=NULL)

while(p[n]!=c&&p[n]!=^0,)n++;if(p[n]=,\0,)returnNULL;rcturn([]);}

標準答案:str[n]最*(str+n)或p|n]或p+n

知識點解析:此題主要是將形參c中的字符與str中的字符比較,返加以形參c中

字符開頭的后續(xù)字符串,題目中的變量n起到了記錄形參c中字符所在str字符串

中的位置.,固返回的結(jié)果用str[n]或其等效形式表示。

國家二級(C語言)筆試模擬試卷第2

一、公共基礎(chǔ)選擇題(本題共70題,每題7.0分,共

70分。)

1、棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可

以出棧,則出棧序列可能是

A、ABCED

B、DCBEA

C、DBCEA

D、CDABE

標準答案:B

知識點解析:棧操作原則上“后進先出”,棧底至棧頂依次存放元索A、B、C、D,

則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧,所以出棧時一

定是先出D,再出C,最后出A。

2、下列敘述中,不符合良好程序設(shè)計風格要求的是

A、程序的效率第一,清晰第二

B、程序的可讀性好

C、程序中要有必要的注釋

D、輸入數(shù)據(jù)前要有提示信息

標準答案:A

知識點解析:當今主導(dǎo)的程序設(shè)計風格是“清晰第一,效率第二”的觀點。結(jié)構(gòu)化程

序設(shè)計思想提出之前,在程序設(shè)計中曾強調(diào)程序的效率,而在實際應(yīng)用中,人們更注重

程序的可理解性。

3、若有定義:"inta=4,b=5;floatx=3.4,y=2,1;”,則下列表達式的值為()。

(float)(a+b)/2+(int)x%(int)y:

A、5.5

B、55

C、5.500000

D、55.00000

標準答案:C

知識點解析:在計算(float)(a+h)/2時.由于通過強制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成(

float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進行計算,得4.500000。在計算

(im)x%(int)y時,先將x和y通過強制類型轉(zhuǎn)換成int型.再進行求余運算,結(jié)果

為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再

計算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級類型從高級類型,并進行相應(yīng)

的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:

char—?int—>unsigned^log—>float—>douhlen

4、數(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è)計

標準答案:A

知識點解析:數(shù)據(jù)庫設(shè)計包括數(shù)據(jù)庫概念設(shè)計和數(shù)據(jù)庫邏輯設(shè)計兩個方面的內(nèi)容。

5、在下列幾種排序方法中,要求內(nèi)存量最人的是_____o

A、插入排序

B、選擇排序

C、快速排序

D、歸并排序

標準答案:8

知識點解析:快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟毩⒌膬?/p>

部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分

記錄繼續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中

的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基

本思想是:掃描整個線性表,從中選出最小的元素,將它交換到表的前面(這是它

應(yīng)有的位置),然后對剩下的子表采用同樣的方法,直到表空為止;歸并排序是將

兩個或兩個以上的有序表組合成一個新的有序表。

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

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

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

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

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

標準答案:2

知識點解析:滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉

樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,在最后一層上

只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。

7、設(shè)有下列二叉樹:對此二叉樹中序遍歷的結(jié)果為

A、ABCDEF

B、DBEAFC

C、ABDECF

D、DEBFCA

標準答案:2

知識點解析:中序遍歷是指首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:

并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹

的一種二叉樹遍歷算法。

8、檢查軟件產(chǎn)品是否符合需求定義的過程稱為

A、確認測試

B、集成測試

C、驗證測試

D、驗收測試

標準答案:1

知識點解析:確認測試的任務(wù)是驗證軟件的功能和性能及其他特性是否滿足了需求

規(guī)格說明中的確定的各種需求,以及軟件配置是否完全、正確。

9、在多媒體計算機系統(tǒng)中,不能用以存儲多媒體信息的是

A、光纜

B、軟盤

C、硬盤

D、光盤

標準答案:A

知識點解析:光纜是傳輸多媒體信息的通道,不能用以存儲多媒體信息。

10、下列敘述中,正確的是

A、對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(n/2)

C、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(log2n)

D、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為

(nlog2n)

標準答案:A

知識點解析:對長度為n的有序鏈表進行查找,最壞情況是從最小值開始查找最大

值(或從最大值開始查找最小值),這個過程需要比較的次數(shù)為n,故選項A正

確。對分查找只能針對隨機存取的有序表進行,而有序鏈表只能進行順序存取,不

能進行隨機存取,在有序鏈表上不能進行對分查找,故B、C、D選項都錯誤。

二、選擇題(1分)(本題共〃題,每題1.0分,共〃

分。)

11、若變量已正確定義,有以下程序段inta=3,b=5,c=7:if(a>B)a=b;c=a:

if(c!=a)c=b;printf(H%d?%d,%d\n”,a,b,c);其輸出結(jié)果是

A、程序段有語法錯

B、3,5,3

C、3,5,5

D、3,5,7

標準答案:B

知識點解析:兩個if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所

以變量c的值等于3,變量b的值沒有變化,程序輸出的結(jié)果為3,5,3。

12、下列敘述中正確的是_____。

A、break語句只能用于switch語句

B、在switch語句中必須使用default

C、break語句必須與switch語句中的case配對使用

D、在switch語句中不一定使用break語句

標準答案:D

知識點解析:break語句也可以在循環(huán)語句中使用;可以在case之后的語句最后加

上break語句;在switch語句中可以沒有default<>

13、下述程序的輸出結(jié)果是()。#includevoidmain(){inta[5]:{1,2,3,4,5};

int*p=a,**q=&p;printR"%d”,*(p++));printf(u%d,\**q);)

A、22

B、11

C、34

D、12

標準答案:D

知識點解析:程序首先定義了一個指向一維數(shù)組a的指針p,一個指向指針變量p

的指針變量q,輸出*?++)是先輸出*p即a[0]的值,再將指針p指向數(shù)組的下一個

元素a|l],輸出*:十是輸出指針p所指向單元的內(nèi)容,即a[l]的值。

14、下列關(guān)于棧和隊列的描述中,正確的是()。

A、棧是先進先出

B、隊列是先進后出

C、隊列允許在隊頭刪除元素

D、棧在棧頂刪除元素

標準答案:D

知識點解析:棧實際也是線性表,只不過是一種特殊的線性表。棧是只能在表的一

端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂,另一端勾棧

底。隊列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊

頭,允許插入的一端叫做隊尾。

15、有以下程序#includemain(){inta=12,c;c=(a?2)?l;printf(u%d\n”,c);}程序

運行后的輸出結(jié)果是

A、96

B、50

C、2

D、3

標準答案:A

知識點解析:本題考查位元算中的左移運算將一個數(shù)的各二進制位全部左移若

干位。A的二進制數(shù)為“00001100”,小括號的優(yōu)先級最高,a<<2為二進制數(shù)

“00110000”,然后在左移1位,為二進制數(shù)后1100000”,其十進制數(shù)為960

16、若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n”,m,i);}執(zhí)

行后的輸出結(jié)果是()。

A、8,6

B、8,3

C>6,4

D、7,4

標準答案:4

知識點解析:在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達式中,右端由

i*=kk得i=2*2為4,k=k+i,即k值為6,m=k故m=6。所以4個選項中C正確。

17、下列語句中,不正確的是______o

A、staticchara[]={"China");

B、staticchara[]="China";

C、printf("%su,a[O]);

D、scanf("%s”,a);

標準答案:4

知識點解析:暫無解析

18、有如下程序main。{inty=3,x=3,z=1,printf("%d%d\n",(++x,y++),z+2);}運行該

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

A、34

B、42

C、43

D、33

標準答案:8

知識點解析:逗號表達式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自

增,所以y++的值是3。

19、假定w、x,y、z、m均為int型變量,有如下程序段;w=l;x=2;y=3;z=4;m

=(w<x)?w:x;m=(m<y)?m:y;m=(mVz)?m:z;則該程序段執(zhí)行后,m的值是()

A、4

B、3

C、2

D、1

標準答案:8

知識點解析:暫無解析

20若有以下程序段inim=0xabc,n=0xubc;m-=n;printf("%X\n",m);執(zhí)行后輸

出結(jié)果是

A、0X0

0x0

C、0

D、OXABC

標準答案:4

知識點解析:C語言中的自反賦值運算符?!癿-=n”相當于兩個相等的數(shù)

相減,其值為0。

21、若有下列定義(設(shè)im類型變量占2個字節(jié)):imi=8,j=9;則下列語句:

printf("i=%u,j=%x\n",i,j);輸出的結(jié)果是()。

A、i=8,j=9

B、8.9

C、89

D、i=8,j=8

標準答案:I

知識點解析:本題考查函數(shù)printf。的格式?!埃”表示以十六進制輸出整型數(shù)據(jù);

“%u”表示以十進制無符號型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任

何字符都原樣輸出。

三、選擇題(2分)(本題共20題,每題7.0分,共20

分。)

22、以下敘述中錯誤的是

A、在程序中凡是以“#”開始的語句行都是預(yù)處理命令行

B、預(yù)處理命令行的最后不能以分號表示結(jié)束

C、#defineMAX是合法的宏定義命令行

D、C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進行的

標準答案:D

知識點解析:C語言中的預(yù)處理命令以符號#開頭,這些命令是在程序編譯之前進

行處理的,選項D)的描述錯誤。

23、設(shè)ql和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不

能正確執(zhí)行的語句是()c

A^k=*ql+*q2;

B、ql-k;

C、ql=q2;

D、k=*ql*(*q2);

標準答案:B

知識點解析:選項A)是將指針ql和q2所指向的變量值相加,然后賦給k;選項

B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針

變量之間的賦值;選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

24、以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;

*p=40;*p=*q;...)

A、p知q的美型不一致,不能執(zhí)行"p=*qJ吾句

B、知中存放的是地址值,因此不能執(zhí)行*p=40;語句

C、q沒有指向具體的存儲單元,所以*q沒有實際意義

D、q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p二*q;沒有意

義,可能會影響后面語句的執(zhí)行結(jié)果

標準答案:D

知識點解析:該程序的執(zhí)行過程是:首先聲明整型指針變量p和整型變量i,字符型

指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量

q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有

血定的值,所以不能執(zhí)行*p=*q語句。

25>下面程序的運行結(jié)果是#includemain(){staticchara[]=M

Languagef,b[]="programe";char*pl,*p2;intk;pl=a;p2=b;for(k=0;k<=7;k++)

if(*(pl+k)==*(p2+k))printfC%cH,*(pl+k));)

A、gae

B、ga

C、Language

D、有語法錯

標準答案:A

知識點解析:考查用指針來引用字符數(shù)組元素的方法。指針pl+k相當于指針pl向

后移動了k個字符的位置,指針p2同理。

26、以下敘述中錯誤的是()。

A、用戶所定義的標識符允許使用關(guān)鍵字

B、用戶所定義的標識符應(yīng)盡量做到“見名知意”

C、用戶所定義的標識符必須以字母或下劃線開頭

D、用戶定義的標識符中,大、小寫字母代表不同標識

標準答案:1

知識點解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而旦第

一個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用

戶在定義標識符時應(yīng)盡量做到“見名知意”,且不允許使用關(guān)鍵字作標識符。

27、有以下程序:#iacludeVstdio.h〉

main(){intp|8]:{1l,12,13,14,15J6,17,18},i=0,j:0;while(i++<7)if(p[i]%2)j+=p[i];

printf("%,d\n”J);}程序運行后的輸出結(jié)果是()。

A、42

B、45

C、56

D、60

標準答案:2

知識點解析:程序執(zhí)行過程如下:i=0:i++V7為真,p[i]%2即為p[l]%2,值為0,

不執(zhí)行j+=p[i];j=0;仁l:i++V7為真,P[i]%2即為p[2]%2,值為1,執(zhí)行

j+=p[i];j=13;i=2:i++<7為真,p[i]%2即為P[3]%2,值為0,不執(zhí)行j+=p[i];

j=13;i=3:i++V7為真,p[i]%2即為P[4]%2,值為1,執(zhí)行j+=p[i]];

j=13+15=28;i=4:i++V7為真,p[i]%2即為p[5]%2,值為0,不執(zhí)行j+=P[i];

j=28;i=5:i++V7為真,P[i]%2即為P[6]%2,值為1,執(zhí)行j+=P[i];

j=28+17=45:i=6:i++V7為真,P[i]%2即為p[7]%2,值為0,不執(zhí)行j+=p[i];

j=45;i=7:i++V7為假,結(jié)束循環(huán),輸出j的值45。可見,程序的功能是求除p|0]

外的其他奇數(shù)的和。

28、判斷char型變量cl是否為大寫字母的正確表達式是()。

A、’Ay=clV='Z'

B、(cl>=A)&&(cl<=Z)

C、(,A>>=cl)||(,Z,<=cl)

D、?>='A,)&&(clV=Z)

標準答案:8

知識點解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小

寫字母在ASCH碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量

cl大于A并且小于Z就能保證其為大寫字母。A)、C)表示形式錯誤,B)的字符

A、Z沒有用單引號括起來。

29>有以卜程序floatfun(intx,inty){return{x+y);)inain(){inta=2,b=5,c=8;

printf("%3.of\n,',fun((int)fun(a4-c,B),a-C));}程序運行后的輸出結(jié)果是

A、編譯出錯

B、9

C、21

D、9

標準答案:2

知識點解析:本題考查的知識點是函數(shù)的參數(shù)類型、函數(shù)值類型及函數(shù)調(diào)用.fun()

函數(shù)是將傳進來的兩個整型參數(shù)相加,把和作為函數(shù)值返回,.注意返回值為

float型.在主函數(shù)調(diào)用了兩次fun()函數(shù),第一次調(diào)用時把表達式“a+c”和變量“b”

的值求和,得到15轉(zhuǎn)換為15.0作為函數(shù)的返回值。第二次調(diào)用把第一次調(diào)用的返

回值通過強制類型轉(zhuǎn)換成int型15,再和表達式“a-c”相加,得到結(jié)果9,轉(zhuǎn)換成

float型作為函數(shù)值返回。由于輸出格式符為“%3.0「輸出時沒有小數(shù)位,故輸出為

9.所以4個選項中B正確.

30、設(shè)有定義:inta=2,b=3,c=4;,則以下選項中值為0的表達式是

A、(!a==l)&&(!b==0)

B、(a<b)&&!cII1

C、a&&b

D、all(b+b)&&(c-a)

標準答案:1

知識點解析:計算邏輯表達式要注意的問題有三個:一、3個邏輯表達式的優(yōu)先級

從高到低依次是!(邏輯非)、&

溫馨提示

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

評論

0/150

提交評論