國家二級(C語言)機(jī)試模擬試卷26(共226題)_第1頁
國家二級(C語言)機(jī)試模擬試卷26(共226題)_第2頁
國家二級(C語言)機(jī)試模擬試卷26(共226題)_第3頁
國家二級(C語言)機(jī)試模擬試卷26(共226題)_第4頁
國家二級(C語言)機(jī)試模擬試卷26(共226題)_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

家二級(C語言)機(jī)試模擬試卷26

(共9套)

(共226題)

國家二級(C語言)機(jī)試模擬試卷第1

、選擇題(本題共39題,每題1.0分,共39分。)

1、軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:該圖是()。

A、N-S圖

B、PAD圖

C、程序流程圖

D、E-R圖

標(biāo)準(zhǔn)答案:c

知識點解析:程序流程圖基本圖符有3種:控制流[用箭頭表示)、加工步驟(用方框

表示)、邏輯條件(用菱形表示)??刂平Y(jié)構(gòu)有5種:①順序結(jié)構(gòu);②選擇結(jié)構(gòu);

③多分支選擇結(jié)構(gòu);④后判斷重復(fù)型結(jié)構(gòu);⑤先判斷重復(fù)型結(jié)構(gòu)。題目中是選

擇結(jié)構(gòu)的程序流程圖。

2、數(shù)據(jù)流圖中帶有箭頭的線段表示的足()。

A、控制流

B、事件驅(qū)動

C、模塊調(diào)用

D、數(shù)據(jù)流

標(biāo)準(zhǔn)答案:D

知識點解析:數(shù)據(jù)流圖基本符號的含義:①矩形表示數(shù)據(jù)的外部實體;②圓角的

矩形表示變換數(shù)據(jù)的處理邏輯;③表示數(shù)據(jù)的存儲;④箭頭表示數(shù)據(jù)流。

3、下列關(guān)于線性鏈表的描述中,正確的是()。I、只含有一個指針域來存放下一個

元素地址II、指針域中的指針用于指向該結(jié)點的前一個或后一個結(jié)點(即前件或后

件)111、結(jié)點由兩部分組成:數(shù)據(jù)域和指針域。

A、僅I、II

B、僅I、III

C、僅11、111

D、全部

標(biāo)準(zhǔn)答案:D

知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這

樣的鏈表為單鏈表或線性鏈表。在鏈?zhǔn)酱鎯Ψ绞街校竺總€結(jié)點由兩部分組成:

一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。

其中指針用于指向該結(jié)點的前一個或后一個結(jié)點(即前件或后件)。

4、設(shè)有關(guān)鍵碼序列(66,13,51,76,81,26,57,69,23),要按關(guān)鍵碼值遞增

的次序排序,若采用快速排序法,并以第一個元素為劃分的基準(zhǔn),那么第一趟劃分

后的結(jié)果為()。

A、23,13,51,57,66,26,81,69,76

B、13,23,26,51,57,66,81,76,69

C、23,13,51,57,26,66,81,69,76

D、23,13,51,57,81,26,66,69,76

標(biāo)準(zhǔn)答案:A

知識點解析:快速排序是起泡排序的改進(jìn)。在快速排序中,任取一個記錄,以它為

基準(zhǔn)用交換的方法將所有的記錄分成兩部分,關(guān)鍵碼值比它小的在一部分,關(guān)鍵碼

值比它大的在另一部分,再分別對兩個部分實施卜述過程,一直重復(fù)到排序完成.

5、以下選項中不合法的標(biāo)識符是()。

A、&a

B、FOR

C、I3rint

D、_00

標(biāo)準(zhǔn)答案:A

知識點解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下

劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因為C語言中區(qū)分大小寫,所以B選項中

的“FOR”可以作為標(biāo)識符來用。A選項中含有非法字符&,所以選擇A。

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

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

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

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

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

標(biāo)準(zhǔn)答案:A

知識點解析:在C語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字

和下劃線組成,并且第一個字符必須為字母或下劃線,凡是耍求標(biāo)識符的地方都必

須按此規(guī)則命名。在C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同

的字符。在選擇標(biāo)識符時,應(yīng)注意做到“見名知義即選擇具有一定含義的英文單

詞或漢語拼音作為標(biāo)識符,以增加程序的可讀性。

7、下面程序段的輸出結(jié)果是()。#includc<stdio.h>main()(floatx=l.236547;

printf("tha",(int)(x*1000+0.5)/(float)1000);}

A、1.237000

B、輸出格式說明與輸出項不匹,輸出無定值

C、I.236000

D、1.24

標(biāo)準(zhǔn)答案:A

知識點解析:本題中,(im)(x*1000+0.5)的結(jié)果為1237,(float)lOOO是將1000強(qiáng)

制轉(zhuǎn)換成flat類型;整個表達(dá)式(int)(x*1000+0.5)/(float)1000的結(jié)果為

1.237000,再以實數(shù)(6位小數(shù))形式輸出。

8、語句"printf("a\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\hou

標(biāo)準(zhǔn)答案:C

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

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

“\\”格式符表示輸出反斜線字符。

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

A、循環(huán)隊列中的元素個數(shù)隨隊頭指針與隊尾指針的變化而動態(tài)變化

B、循環(huán)隊列中的元素個數(shù)隨隊頭指針的變化而動態(tài)變化

C、循環(huán)隊列中的元素個數(shù)隨隊尾指針的變化而動態(tài)變化

D、以上說法都不對

標(biāo)準(zhǔn)答案:A

知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指

針front指向隊頭元素的前一個位置。因此,從隊頭指針front指向的后一個位置直

到隊尾指針rear指向的位在之間所有的元素均為隊列中的元素。所以循環(huán)隊列中

的元素個數(shù)隨隊頭指針和隊尾指針的變化而變化。A正確。

10、下列二維數(shù)組初始叱語句中,正確且與語句數(shù)ta[][3]={l,2,3,4,5}等價的

是()。

A、inta[2][]={{l,2,3|,{4,5}};

B、inta[][3]={l,2,3,4,5,0);

C>inta[][3]={{l,0){,{2,0},{3,0));

D、inta[2][]={{l,2,3|,{4,5,6}};

標(biāo)準(zhǔn)答案:B

知識點解析:此題考查的是二維數(shù)組的初始化。題干中數(shù)組a的第二個下標(biāo)為3,

由此可知數(shù)組a是一個2行3列的數(shù)組,初始化時未賦初值的元素的值自動為0,

所以與選項B)是等價的,最后一個元素的值為0。

11、軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:該圖是()。

A、N-S圖

B、PAD圖

C、程序流程圖

D、E-R圖

標(biāo)準(zhǔn)答案:C

知識點解析:程序流程圖基本圖符有3種:控制流〔用箭頭表示)、加工步驟(用方框

表示)、邏輯條件(用菱形表示)??刂平Y(jié)構(gòu)有5種:①順序結(jié)構(gòu);②選擇結(jié)構(gòu);③

多分支選擇結(jié)構(gòu);④后判斷重復(fù)型結(jié)構(gòu);⑤先判斷重復(fù)型結(jié)構(gòu)。題目中是選擇結(jié)

構(gòu)的程序流程圖。

12、定義結(jié)構(gòu)體數(shù)組structStu{intnum;charname[20]:x[5]={1,"ZHAO",2,

"QIAN",3,"SUN”,4,“LEE”,5,“ZHOU”};for(i=l;i<5;i++)printf("%d%

c",x[i].num,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。

A、2A3N4E5O

B、1H213U4E

C、1A2N3E4O

D、1A2N3E4O

標(biāo)準(zhǔn)答案:A

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

x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。第一次循環(huán),i=l?輸出

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

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

值,即4E:第四次循環(huán),i=4,輸出x[4].num,x|4].name[2]的值,即50。

13、fgets(str,n,fp)函數(shù)從文件中讀入一個字符串,以下錯誤的敘述是()。

A、字符串讀入后會自動加入

B、fp是指向該文件的文件型指針

C、fgels函數(shù)將從文件中最多讀入n個字符

D、fgets函數(shù)將從文件中最多讀入n-1個字符

標(biāo)準(zhǔn)答案:C

知識點解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgels(s,n,fp);s可以是一個

字符數(shù)組名,或是指向字符串的指針;n為要讀取的最多的字符個數(shù):fp是指向該

文件的文件型指針;字符串輸入函數(shù)的功能是:從fp所指向的文件中讀取長度不

超過n?l個字符的字符串,并將該字符串存放到字符數(shù)組s中。

14、設(shè)Y為整型變量,A=l,A的地址為EF01;B=2,B的地址為EF02:執(zhí)行語

句B=&A;Y=&b;后Y的值()。

A、1

B、2

C、EF01

D、EF02

標(biāo)準(zhǔn)答案:C

知識點解析:&是取地址運算符,Y=&B是將B的地址賦給Y,因此Y值為

EFOlo

15、設(shè)有定義:structcomplex{intreal,unreal:datal={1,8},data2;則以下賦

值語句中錯誤的是()。

A、data2=(2,6);

B、data2=datal;

C、data2=real=datal.real;

D、data2.real=datal.unreal;

標(biāo)準(zhǔn)答案:A

知識點解析:A選項中可以在聲明變量的同事為data2賦值,但是data2=(2,6);

應(yīng)寫作data2={2,6}。所以選擇A。

16^以下程序的輸出結(jié)果是()。#includemain()structst{p=aa;{intx;

int*y;}*p;printf(H%d\n",++(p->x));}intdt[4]={1,2,3,4);structst

aa[4]={2,&dt[O],3,&dt[O],4,&dt[O],5,&dt[O],};

A、1

B、2

C、3

D、4

標(biāo)準(zhǔn)答案:c

知識點露析:程序首先將指針P指向結(jié)構(gòu)體數(shù)組aa的首地址,通過p->x引用了結(jié)

構(gòu)體數(shù)組aa[O]的第一個成員2;++(p->x)是將p識的值加1,所以輸出結(jié)果為3。

17、可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是()。

A、voiddefineWORD

B、as_b3_123If

C、For_abccase

D、2cDOSIG

標(biāo)準(zhǔn)答案:B

知識點解析:C語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個

字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識符。

18、有以下程序:#includcmain(){inti,j;fdr(i=l;i<4;i++){for(j=i;j<4;

j++)printf("%d*%d=%d",i,j,i*j);prinlf—(“\n");}}程序運行后的輸出結(jié)

果是()。

A、1*1=11*2=21*3=32*2=42*3=63*3=9

B、1*1=11*2=21*3=32*1=22*1=2=43*1=3

C、1*1=11*2=22*2=41*3=32*3=63*3=9

D、1*1=12*1=22*2=43*1=33*2=63*3=9

標(biāo)準(zhǔn)答案:A

知識點解析:外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為1,打印I*I

=1;內(nèi)循環(huán)第二次j的值為2,打印1*2=2;內(nèi)循環(huán)第三次j的值為3,打印

1*3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的

初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2*3=6,打印回車換行,退

出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次i的初值為3,打印3*3=9,打

印回車換行,退出內(nèi)循環(huán)。

19>有以下程序#includc<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6);fp

=fopen("d2.dat","wH);fprintf(fp,"%d%d%d\n",a[0],a[l]X2]);fprintf(fp,

"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d,;

&k,&n);printf("%d%d\n",k,n);fclose(fp);)程序運行后的輸出結(jié)果是

A、12

B、I4

C、1234

D、123456

標(biāo)準(zhǔn)答案:D

知識點解析:fprinif()函數(shù)向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件或是相

當(dāng)于文件的設(shè)備上執(zhí)行兩次fprintf后文件中有123456,所以D選項正確。

20、設(shè)有下面的定義:structst(mta;floatb:)d;int*p,要使p指向結(jié)構(gòu)變量

d中的a成員,正確的賦值語句是()。

A、*p=d.a;

p=&a;

C^p=d.a;

D、p=&d.a;

標(biāo)準(zhǔn)答案:D

知識點解析:本題主要考查按結(jié)構(gòu)數(shù)組元素方式引用結(jié)構(gòu)成員。結(jié)構(gòu)體變量的成員

引用方法有3種:①結(jié)構(gòu)體變量名.成員名;②指針變量名一>成員名;③產(chǎn)指針

變量名).成員名。因為p是指針變量,所以應(yīng)該將地址值賦給p。

21、下列關(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)制文件和文本文件

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的是數(shù)據(jù)文件的有關(guān)概念。文件由數(shù)據(jù)流的形式組成,可以

按數(shù)據(jù)存放的形式分為二進(jìn)制文件和文本文件,C溶言既能讀寫文本文件,又能讀

寫二進(jìn)制文件。

22、以下選項中與if(a==l)a++;elsea=b;語句功能不同的語句是()。

A、switch(a){case():a=b;break;default:a++;}

B、switch(a==l){case0:a++;default:a=b:}

C>switch(a){default:a=b;break;case1:a++:}

D、a=(a==l)?(a++):b

標(biāo)準(zhǔn)答案:B

知識點解析:ifelse語句的含義是,如果變量a的值等于1,變量a的值加1,否

則,則把變量b的值賦給變量a。在本題的4個選項中,與其含義不同的是選項

B.因為沒有break語句.當(dāng)a=l的時候,會順序執(zhí)行兩條語句,最終結(jié)果是將b

的值賦給ao

23、以下敘述中正確的是()。

A、調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名完全一致

B、函數(shù)調(diào)用時、不必區(qū)分函數(shù)名稱的大小寫

C、函數(shù)名允許用數(shù)字開頭

D、在函數(shù)體中只能出現(xiàn)一次return語句

標(biāo)準(zhǔn)答案:A

知識點解析:暫無解析

24、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{char

number|100];intage;floatp[6];};定義一個數(shù)組:structab|10|;假定文件已

正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A、ffead(b,sizeof(structa),10,fp);

B>for(i=0;i<10;i++)fread(b|i],sizeof(stmcta),1,fp);

C^for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);

D、for(i=0;i<5;i+=2)ffead(b+i>sezeof(structa),2,fp);

標(biāo)準(zhǔn)答案:B

知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用格式為:fread(buffer,size,count,fp),其

中:“buffer”是一個指釬,對于fread來說,它是讀入數(shù)據(jù)的存放地址。“size”是要

讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型

指針。選項B)中b[i]是一個數(shù)組,不是指針,需改為&b[i]。

25、數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指()。

A、數(shù)據(jù)與程序獨立存放

B、不同的數(shù)據(jù)被存放在不同的文件中

C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用

D、以上三種說法都不對

標(biāo)準(zhǔn)答案:D

知識點解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)

用程序而不依賴于應(yīng)用程序。所以選項A),選項B)和選項。都不正確。

26、有以下程序#include<stdio.h>structS{intn;inta[20];);voidf(int*a,intn)

{inti;for(i=0;i<n-l;i++)a[i]+=i;}main(){inti;structSs={10,

{2,3,1,6,8,7,5,4,10,9}};f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d;\s.a[i]);)程序運行

后的輸出結(jié)果是

A、2,3,1,6,875,4,10,9,

B、3,4,2,7,9,8,6,5,11,10,

C、2,4,3,9,12,12,11,11,18,9,

D、1,2,3,6,875,4,10,9,

標(biāo)準(zhǔn)答案:C

知識點解析:題目中定義了一個結(jié)構(gòu)體類型然后定義了一個結(jié)構(gòu)體變量S并初

始化,執(zhí)行f函數(shù)后,將s中元素a的每個元素都加上i,i的值從0?9,這里需要

注意,最后一個元素沒有加i,所以最終答案為C選項。

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

A、可以給指針變量賦一個整數(shù)作為地址值

B、函數(shù)可以返回地址值

C、改變函數(shù)形參的值,不會改變對應(yīng)實參的值

D、當(dāng)在程序的開頭包含頭文件sidio.h時,可以給指針變量賦NULL

標(biāo)準(zhǔn)答案:A

知識點解析:不能將一個整數(shù)直接賦給指針變量作為地址,所以A選項是錯誤

的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實

參。

28、下列工具中,不屬于結(jié)構(gòu)化分析的常用工具的是()。

A、數(shù)據(jù)流圖

B、數(shù)據(jù)字典

C、判定樹

D、N-S圖

標(biāo)準(zhǔn)答案:D

知識點解析:結(jié)構(gòu)化分析?的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。

29、以下能夠?qū)崿F(xiàn)計算5!的程序段是()。

A、intfac=l,k=0:do(k++;fac*=k:}while(k<5);

13、inttac=O,k=l;do[tac*=k;k++;}whilc(k<5);

C>intfac=l,k=l;do[k++;fac*=k;)while(k<=5);

D、intfac=l,k=0:do(fac=k;k++;)while(k<5):

標(biāo)準(zhǔn)答案:A

知識點解析:do…while循環(huán)語句一般形式為:do{循環(huán)體}while(表達(dá)式),執(zhí)行過

程為:首先執(zhí)行循環(huán)體,之后判斷表達(dá)式,表達(dá)式成立(非0)則再一次執(zhí)行循環(huán)

體,不成立(0)則退出循環(huán)。A項,k=l,fac=l*l,判斷kV5,條件成立進(jìn)行下一

次循環(huán),直到k=5,fac=l*2*3*4*5,k<5不成立退出循環(huán),實現(xiàn)計算5!。B項,

fac從0開始,做乘法一直都是0,無法實現(xiàn)5!。C項,k=2,fac=l*2,循環(huán)條件

成立,直到k=6,fac=l*2*3*4*5*6才囚循環(huán)條件不成立退出循環(huán),實現(xiàn)61。D

項:k=0,fac=1*0=0,之后做乘法一直為0,無法實現(xiàn)5!。

30、以下程序段完全正確的是()。

A、int*p;8canf(“%d",&p);

B>int*p;seanf("%d”,P);

C、intk,*p=&k;scanR"%d",P);

D、intk,*P;*P:&k;scanfT%d”,P);

標(biāo)準(zhǔn)答案:C

知識點解析:A選項中錯在沒有對指針進(jìn)行初始化,是無效指針.并且在

scanf("%d”,&p)中無需再進(jìn)行取地址操作;B選項中沒有對指針進(jìn)行初始化,是

無效指針;D選項中語句*p=&k;的左端*p是指針?biāo)竷?nèi)存空間的值,&k是地

址,應(yīng)為p=&k。因此C選項正確。

31、以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=l;k<3;k++);

printf(”*");該程序段的輸出結(jié)果是()o

A、

B、****

C、**

D、斗:

標(biāo)準(zhǔn)答案:A

知識點解析:暫無解析

32、大學(xué)中每個年級有多個班,每個班有多名學(xué)生,則實體班級和實體學(xué)生之間的

聯(lián)系是()。

A、一對多

B、一對一

C、多對一

D、多對多

標(biāo)準(zhǔn)答案:A

知識點解析:實體集之間通過聯(lián)系來建立聯(lián)接關(guān)系分為三類:一對一聯(lián)系(1:1)、

一對多聯(lián)系(1:m)、多對多聯(lián)系(m:n)。每個班有多名學(xué)生,但每個學(xué)生只能在一

個班級里,故實體班級和實體學(xué)生之間的聯(lián)系是一對多,故A選項正確。

33有以下程序:#include#defineSUB(a)(a)-(a)main(){inta=2,b=3>c=5?d;

d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結(jié)果是()。

A、0

B、-12

C、-20

D、10

標(biāo)準(zhǔn)答案:C

知火點解析:本題考查宏定義。宏定義只是做簡單的替換,所以本題中執(zhí)行語句

SUB(a+b)}c=(a+b-(a+b)*c=-20,故答案為C選項。

34、以下關(guān)于C語言文件的敘述中正確的是()。

A、文件南數(shù)據(jù)序列組成,其類型可以為二進(jìn)制文件或文本文件

B、文件由記錄序列組成,其類型可以為二進(jìn)制文件或文本文件

C、文件由字符序列組成,其類型可以為二進(jìn)制文件或文本文件

D、文件由數(shù)據(jù)序列組成,其類型只能是二進(jìn)制文件

標(biāo)準(zhǔn)答案:A

知識點解析:C語言文件是指一組相關(guān)數(shù)據(jù)的有序集合,從文件編碼的方式看.文

件可分為ASCH碼文件和二進(jìn)制文件兩種,其中ASCII文件也稱為文本文件,所

以文件由數(shù)據(jù)序列組成,類型可以為二進(jìn)制文件或文本文件,故選項A正確。

35、有以下程序:#include#includestruetA{inta;charb[10]:doublec:};

structAf(struetAt);main(){StruetAat={1001,"ZhangDa",1098.0);a=f(a);

printf("%d,%s,%6.lf\nM,a.a,a.b,a.c);}struetAf(struetAt)

{t.a=1002:strepy(t.b,"ChangRong");t.c=1202.0:returnt;}程序運行后

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

A、1002,ZhangDa,1202.0

B>1002,ChangRong,1202.0

C、1001,ChangRong,1098.0

D、1001,ZhangDa,1098.0

標(biāo)準(zhǔn)答案:B」

知識點解析:本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù)的用法。題目雖然看似

復(fù)雜,其實比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,

所以該題目的答案為B選項。

36、有以下程序:#include<stdio.h>main(){intx=l,y=0,a=0,b=0;

switch(x){easel:switch(y){caseO:a++;break;case1:b++;break;)case2:

a++;b++;break;case3:a++;b++;)printf("a=%d?b=%d\n",a,b);)程

序的運行結(jié)果是()。

A、a=2,b=2

B、a=2)b=l

C、a=l,b=l

D、a=l,b=0

標(biāo)準(zhǔn)答案:B

知識點解析:C語言還提供了一種用于多分支選擇的swilch語句,計算表達(dá)式的

值。并逐個與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相

等時,即執(zhí)行其后語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后語句。如

表達(dá)式的值與所有case后的常量表達(dá)式均不相同時,則執(zhí)行default后的語句。

x=l;進(jìn)入第一層switch,y=0;進(jìn)入第二層switch。執(zhí)行a++;break;后a=l;在

進(jìn)入case2,(這里easel:沒有break,)執(zhí)行了a++.b+十,由于存在break,則跳出

switch,得到a=2.b=l,因此答案為B選項。

37、若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是

()。

A、intaE5+51;

B、intn=10?a[n];

C、#dcfincn5inta[2*n];

D、#defineN10inta[N];

標(biāo)準(zhǔn)答案:R

知識點解析:一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式];注意定義

數(shù)組時,元素個數(shù)不能是變量。因此應(yīng)該選B選項。

38、下列選項中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()。

A、數(shù)據(jù)類型

B、數(shù)據(jù)操作

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

D、數(shù)據(jù)約束

標(biāo)準(zhǔn)答案:A

知識點解析:數(shù)據(jù)模型芍述的內(nèi)容包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。

39、有以卜程序#include<stdio.h>main(){intx[]={8,2,6,12,5,15},fl,f2;int*p

=x;fl=f2=x[0];for(;p<=x+5;p++){if(fl<*p)fl=*p;if(f2>*p)f2=*p;)

printf("%d,%d\n",fl,f2):}程序的運行結(jié)果是

A、15,2

B、15,15

C、2,15

D、8,8

標(biāo)準(zhǔn)答案:A

知識點解析:本題的用意是求數(shù)組的最大值和最小值,首先把數(shù)組x首地址的值賦

給指針P,故*p初始值為8,而p是地址值,p+1相當(dāng)于數(shù)組中下一元素的地

在for循環(huán),是求數(shù)組x對應(yīng)的最大值和最小值,fl為最大值,f2為最小值。因此

輸出為15,2,答案為A選項。

二、程序填空題(本題共[題,每題7.0分,共7分0)

40、給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,刪除所有串

長超過k的字符串,函數(shù)返回所剩字符串的個數(shù)。ss所指字符串?dāng)?shù)組中共有N個

字符串,且串長小于M。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,

使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h

>#defineN5#defineM10inffun(char(*ss)[M].intk)(infi,j=0.len;/

**********found**********/for(i=0;i<1__;i++){len=strlen(ss[i]);/

**********Sund**********/if(len<=2)/**********Sund**********/

strcpy(ss[j++],3);}returnj;}main(){charx[N][M]=("Beijing",

"Shanghai","Tianjing","Nanjing","Wuhan"[;inti,f;printf("\nTheoriginal

string\n\n");for(i=0;i<N;i++)puts(x[i]);printf(H\n");f=fun(x,7);

printf("Thestringwitchlengthislessthanorequalto7:\n");for(i=0:i<f:

i++)puts(x[i]);printf(M\n");)

標(biāo)準(zhǔn)答案:(l)N(2)k(3)ss[i]

知識點解析?:本題中函數(shù)fun的功能是在形參ss所指字符串?dāng)?shù)組中,刪除所有串

長超過k的字符串,然后函數(shù)返回所剩字符串的個數(shù)。根據(jù)題意,在fun函數(shù)中,

利用for循環(huán)比較字符串長度是否小于k,然后利用sWcpy函數(shù)組成新的可用字符

串?dāng)?shù)組,將可用的字符串?dāng)?shù)組的長度值進(jìn)行返回,即為字符串的個數(shù)。第一空:

t€for(i=0;i<1;這一空部分出現(xiàn)在fun函數(shù)中的for循環(huán)條件中,在

定義了i之后i的條件。根據(jù)for后面的語句我們可以看出,這里是要進(jìn)行比較,

比較對象是ss所指字符串?dāng)?shù)組的所有字符串,所以這里循環(huán)要進(jìn)行整改字符串?dāng)?shù)

組的長度,相應(yīng)的,這里for循環(huán)的循環(huán)條件就要是i小于字符串長度,而字符串

長度開始就有定義,為N,所以這里應(yīng)該是i<N,這一空應(yīng)該填N。第二空:

4tif(lcn<=_2_f,這一空部分出現(xiàn)在fun函數(shù)中,是for循環(huán)中if條件語句的條

件,這根據(jù)if條件語句后面的語句我們可.以知道,這里的條件語句是后面strcpy的

執(zhí)行條件,而strcpy要執(zhí)行,根據(jù)題目給出的條件我們可以知道是耍字符串長度小

于等于k才能保留,所以這里的if條件語句中的條件應(yīng)該是字符串長度小于匕所

以這一空應(yīng)該填k。第三空:“strcpy(ss[j++]__3___);”這一空部分出現(xiàn)在strcpy

函數(shù)中,此函數(shù)為字符串復(fù)制函數(shù),是將后麗二不字符串復(fù)制到前面一個字符數(shù)

組中去,根據(jù)題意和前面的條件語句,這一行語句是要將符合條件的字符串重新組

成一個新的字符串?dāng)?shù)組,然后返回新數(shù)組的長度,這樣的話就能知道SS啪為新字

符串?dāng)?shù)組,而這里要復(fù)制的就是原字符串?dāng)?shù)組中符合條件的字符串,所以這里要填

就是前面符合條件的i所對應(yīng)的字符串,所以這一空應(yīng)該填ss[i]o

三、程序修改題(本題共[題,每題7.0分,共[分C)

41、給定程序M0DI1.C中函數(shù)fun的功能是:逐個比較p、q所指兩個字符串對

應(yīng)位置中的字符,把ASCH值大或相等的字符依次存放到c所指數(shù)組中,形成一個

新的字符串。例如,若主函數(shù)中a字符串為:aBCDeFgH,主函數(shù)中b字符串為:

ABcd,則C中的字符串應(yīng)為:aBcdeFgHo請改正程序中的錯誤,使它能得出正確

結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#includc<stdio.h>#include<string.h>voidfun{char*p?char樂q,char*c){/

半亭半亭半亭半亭半亭tound半半半半半早亭半亭亭Iintk—1?I半半半半半率/半半率tound半字半半半半半半半半/

while(*p!=*q){if(*p<*q)c[k]=*q;elsec[k]=*p;if(*p)p++;if(*q)q++:k++;})

main。{chara"OL'aBCDeFgH”,b[10]="ABcdH,C[80]={'\0'};fun(a,b,c);

printf("Thestringa:");puts(a);printf(nThestringb:H);puts(b);prinlf("The

result:");pnts(c):}

標(biāo)準(zhǔn)答案:(I)intk=l改為intk=0;(2)(*p!二*q)改為(*pII*q);

知識點解析:本題中函數(shù)fun的功能是:逐個比較p、q所指兩個字符串對應(yīng)位置

中的字符,把ASCII值大或相等的字符依次存放到c所指數(shù)組中,形成一個新的字

符串。While循環(huán)為字符串比較的提供前提條件,然后再比較得到p、q兩個字符

串一一對應(yīng)的符合條件中可用的一個字符,最終合并得到新的字符串c。(1)第一

個錯誤在fun函數(shù)最開始定義的k的初始值。根據(jù)fun函數(shù)的功能我們可以知道這

里k是新字符串c各字符的位置,然后根據(jù)比較結(jié)果一一對應(yīng)新字符串個位置的字

符。這里犯了一個明顯的錯誤就是:從字符串的第一個字符比較,得到的第一個字

符在字符串中的位置不是c[l]而是c[01,所以k的初始值不是1,而是0。所以這

里第一個改錯是將1改為0。第二個錯誤在while循環(huán)的條件表達(dá)式,我們要知道

的是while循環(huán)條件和if循環(huán)條件的區(qū)別。if的條件為開始條件,即符合這條件開

始循環(huán),而這里while的循環(huán)條件則是為終止條件,意思是下面括號內(nèi)的循環(huán)進(jìn)行

到不符合while條件語句時終止,所以這里很明顯錯誤,如果是這種條件的只要兩

個字符串中出現(xiàn)相同的字符即終止,以例子來說就是到第二個字符比較久終止,很

明顯不符合題意。所以為了完全比較這兩個字符串,給出的終止條件應(yīng)該是到兩個

字符串都結(jié)束,即兩個字符串字符都為時終止,所以終止條件應(yīng)該為

“*pII*q,\

四、程序設(shè)計題(本題共I題,每題1.0分,共7分。)

42、假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了

字符串前導(dǎo)的*號之外,將串中其它“*”號全部刪除,在編寫函數(shù)時,不得使用C

語言提供的字符串函數(shù)。函數(shù)fun中給出的語句僅供參考,例如,字符串中的內(nèi)

容為:****A*BC*DEF*G*******,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:

****ABCDEFG。注意:部分源程序在文件PR0G1.C文件中。請勿改動主函數(shù)

main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

#include<stdio.h>voidfun(char*a){/*以下代碼僅供參考*/inti=0,k;

while(a[i]==,*')i++;k=i;while(a[i]!=>\05)/*以下程序段實現(xiàn)非*字符前移*/

{}a[k]=,\0\}main(){chars[81];voidNONO();printf("Enterastring:\n");

gets(s);fun(s);printfCThestringafterdeleted:\n");puts(s);NONO();}void

NONO。{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。

*/FILE*in,*out;inti;chars|81];in=fopen(Min.dat',,Hr");

out=fopen("out.dat","w");for(i=0:i<10:i++){fscanf(in,"%s",s);fun(s);

fprintf(out,n%s\n",s);)folkose(in);fclose(out);)

標(biāo)準(zhǔn)答案:voidfun(char*a)(inti=0>k;while(a[i]=**,)i++;k=i;while(a[i]!=,\

,,,,

09{if(a[i]!=*)a[k++]=a[i];i++;}a(k]=\0;)

知識點解析:本題所需要的功能是是處理一個輸入的只含字母和“*”的字符串,除

了字符串前導(dǎo)的“*”號之外,將串中其它“”號全部刪除。并且在編寫函數(shù)時,不得

使用C語言提供的字符串函數(shù)。這里根據(jù)題意,很快我們就知道需要使用循環(huán)語

句和條件語句來進(jìn)行功能的實現(xiàn)。第一步要自己輸入字符串,這就需要格式輸入函

數(shù);第二步就要進(jìn)行功能函數(shù)了,這里的就要一開始是否有“*”的存在,有多少個

“*”,這個是很重要的判斷。因為根據(jù)題意雖然是要刪除“*”,但是字符串前面的

“*”是不用刪除的,無論有多少個都不能刪除,然后當(dāng)沒有“*”或者跳過字符串前面

后,就要到達(dá)第一個字母了,字母保留,然后后面遇見“*”就刪除,依次循環(huán)進(jìn)

行下去,一直到字符串結(jié)束,這些功能的實現(xiàn)就需要條件語句和循環(huán)語句的使用

了;第三步將處理過后的字符串輸出,得到新的字符串,程序就可以結(jié)束了。本

題主函數(shù)中需要輸入一個字符串,然后進(jìn)入fun函數(shù)處理字符串,在fun函數(shù)中,

就要實現(xiàn)題目要求我們寫出的功能了。首先是判斷字符串的開始是否為“*”,這里

就用到while函數(shù)(這里因為有步驟的區(qū)別,所以這里用while比用if好),判斷開

始的字符是否為見程序第5?6行,這里需要順次進(jìn)行,因為開始無論有多少

個“*”都不用刪除,當(dāng)出現(xiàn)字母時,就開始下一步了,因為已經(jīng)出現(xiàn)了字母,所以

后面出現(xiàn)的一律刪除,而字母時不用管的,所以這里就又需要if條件語句來判

斷是否為然后賦值為空,見程序第9?12行,當(dāng)程序進(jìn)行到字符為空時代表字

符串結(jié)束,程序就終止,這里就要用到while條件語句進(jìn)行終止判斷,見程序第7

行。這樣循環(huán)進(jìn)行就能保留字符串前面的并且刪除后面出現(xiàn)的所有了,然后

fun函數(shù)執(zhí)行完成就可以轉(zhuǎn)到主函數(shù)中進(jìn)行新字符串的輸出了。

國家二級(C語言)機(jī)試模擬試卷第2

一、選擇題(本題共40題,每題1.0分,共40分。)

1、假定已建立以下數(shù)據(jù)鏈表結(jié)構(gòu),且指針p和q已指向如下圖所示的結(jié)點:

oext

kk則以下選項中可將q所指結(jié)點從鏈表中刪除

并釋放該結(jié)點的語句是()。

A、(*)p.next=(*q).next;free(p)

B、b=q—>next;free(q)

C^p=q;free(q)

D、p—>next=q—>next;free(q)

標(biāo)準(zhǔn)答案:D

知識點解析:要刪除結(jié)點q,應(yīng)首先由q的上一個結(jié)點p的指針域指向q的指針域

所指向的結(jié)點,即p—>next=q—>next;,然后才能釋放結(jié)點q,即free(q)。

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

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

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

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

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

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查函數(shù)調(diào)用的有關(guān)知識點。函數(shù)調(diào)用①可以出現(xiàn)在表達(dá)式

中:②可以作為獨立的語句存在;③可以作為一個函數(shù)的實參。

3、以下數(shù)組定義中錯誤的是()。

A、intx[2][3]={l,2,3,4,5,6);

B、intx口[3]={0};

C、intx[|[3|={{l,2,3},{4,5,6));

Dsintx[2][3]={{l,2),{3,4),{5,6)};

標(biāo)準(zhǔn)答案:D

知識點解析:D選項中x[2]⑶定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元

素賦值時卻賦成了三行,所以錯誤。

4、請閱讀以下程序:#include#includcvoidfun(intb[])main(){staticinti=0;{int

k,a[5]={L3,5,4,9};Do{b[i]+=b[i+l];fun(a);}while(++i<2);}for(k=0;

k<5;k++)printf("%d",a[k]);}上面程序的輸出是()。

A、13579

B>48579

C、48549

D、48999

標(biāo)準(zhǔn)答案:C

知識點解析:本題考查的是for循環(huán)以及while循環(huán)。fun函數(shù)中定義了靜態(tài)變量

i=0,fim(a)使得a[0]=a[0]+a[l]=4,a[l]=a[l]+a[2]=8,此時i的值變?yōu)?,++i<2不

成立,所以do-while循環(huán)結(jié)束,輸出數(shù)組a的各元素即得到48549。

5、以下不正確的轉(zhuǎn)義字符是()。

A、

B、

C、

D、'088'

標(biāo)準(zhǔn)答案:D

知識點解析:是反斜線符,'\cT是整型變量轉(zhuǎn)義字符,'\s,是字符串型轉(zhuǎn)義

字符,C語言中沒有規(guī)定,088,為轉(zhuǎn)義字符。

6、若語句"t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”對fun函數(shù)的調(diào)用正確,則

fun函數(shù)的形參個數(shù)為()。

A、3

B、4

C、5

D、6

標(biāo)準(zhǔn)答案:A

知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)個數(shù)。在函數(shù)調(diào)用時,實參必須和形參的

個數(shù)、類型一一對應(yīng),但函數(shù)的計算結(jié)果只有一個值,因而fun函數(shù)的參數(shù)個數(shù)為

3。

7、若x=2,y=3,則x&y的結(jié)果是()。

A、0

B、2

C、3

D、5

標(biāo)準(zhǔn)答案:B

知識點解析:本題主要考查按位與(&)運算的知識點。是對兩個運算量相應(yīng)的

位進(jìn)行邏輯與,的規(guī)則與邏輯與“&&”相同。x=2的二進(jìn)制為00000010,y=3

的二進(jìn)制為00000011,x&y=000000l0,轉(zhuǎn)化為十進(jìn)制即為2。

8、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{char

number[100];intage:floatp[6];};定義一個數(shù)沮:structanumber[10]:假定

文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A、fread(b,sizeof(struc(a),10,fp);

for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp);

C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);

D、for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);

標(biāo)準(zhǔn)答案:B

知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,

fp)ofread函.數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的

存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址。“size”是要讀寫的字節(jié)數(shù);

“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“用”是指文件型指針。選項B)中

b[i]是一個數(shù)組,不是指針,需改為&b[i].注意:完成一次讀操作(fread。)后,如

果沒有關(guān)閉流(fclosc()),則指針(FILE*fp)自動向后移動前一次讀寫的長度,不關(guān)閉

流則繼續(xù)下一次讀操作,接著上次的輸出繼續(xù)輸出。

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

A、確認(rèn)測試

B、需求測試

C、驗證測試

D、路徑測試

標(biāo)準(zhǔn)答案:A

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

求規(guī)格說明中確定的各種需求。

10、有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,

&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中

的值為123,n中的值為456,P中的值為789,則正確的輸入是()。

A、m=123n=456p=789

B、m=123n=456p=789

C、m=123,n=456,p=789

D、123456789

標(biāo)準(zhǔn)答案:A

知識點解析:scanf()函數(shù)中格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么

字符,在輸入數(shù)據(jù)時,按照一一對應(yīng)的位置原樣輸入這些字符。

11、當(dāng)a=4,b=5,c=7,d=6時,執(zhí)行下面一段程序:if(a<b)if(c<d)x=l;else

if(a<c)if(b<c)x=2;elsex=3;elsex=4;elsex=5;程序執(zhí)行后,x的值為()。

A、1

B、2

C、3

D、4

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查ifelse語句。第一個if語句,先判斷條件,aVb成立,則

執(zhí)行下面的語句:第二個if語句,先判斷條件,不成立,則執(zhí)行其對應(yīng)的

else語句:第三個if語句,先判斷條件,aVc成立,執(zhí)行其后語句;第四個if語

句,先判斷條件,bVc成立,執(zhí)行語句x=2。

12、在C涪言程序中,以下說法正確的足()。

A、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

B、函數(shù)的定義不可嵌套,但函數(shù)的調(diào)用可以嵌套

C、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查函數(shù)調(diào)用的基本概念。因為函數(shù)的結(jié)果是一個未知量,而函

數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但是函數(shù)調(diào)用可以嵌套。

13、以下關(guān)于宏的敘述中正確的是()。

A、宏替換沒有數(shù)據(jù)類型限制

B、宏定義必須位于源程序中所有語句之前

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

D、宏調(diào)用比函數(shù)淵用耗費時間

標(biāo)準(zhǔn)答案:A

知識點解析:宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的

最開頭,所以B選項中宏定義必須位于源程序中所有語句之前是錯誤的。宏名一

般用大寫,但不是必須用大寫,所以C選項錯誤。宏展開不占運行時間,只占編

譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選

項錯誤。

14、若有“doublea;”,則正確的輸入語句是()。

A、scanR''%ir',a);

B、scanf(,,%f,,&a);

C、scanff'%ir',&a);

D、scaM''%le'',a);

標(biāo)準(zhǔn)答案:C

知識點解析:scanf函數(shù)的調(diào)用形式是:scanf(“格式字符串”,輸入項地址表)。其

中,”格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地

址.a是double型數(shù)據(jù).格式字符串可以用"%1R”%廿是浮點型.題中定義變量

a為雙精度型變量,雙精度變量的格式符為“%變量的地址用取地址符加

變量名表示,變量a的地址為

15、有如下程序#includemain(){char*pl=0;int*p2=0;double*p3=0;

printf("%d,%d,%d\n",sizeof(pl),sizeof(p2),sizeof(p3));)程序運行后的輸出結(jié)果是

()o

A、4,4,4

B、1,4,8

C、0,0,0

D、1,2,4

標(biāo)準(zhǔn)答案:A

知識點解析:不可以把一個in1型數(shù)據(jù)直接賦值給一個指針變量,只能用取地址運

算符“&”把該整型變量的地址賦值給該指針變量,選項A)錯誤;函數(shù)類型若為指

針類型則可以返回地址值,選項B)正確;函數(shù)傳參過程中,是把實參的數(shù)據(jù)復(fù)制

一份傳給形參,所以改變形參的值不會對實參造成影響,選項C)正確;NULL的

定義包含在頭文件stdio.h中,所以選項D)正確;所以答案選A)。

16、有以下程序:#includemain(){FILE*pf;char*sl-4China,\*s2-,Beijingv;

pf=fbpen(44abc.dat”,"wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指

針同到文件開頭*/fwrite(sl,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat

文件的內(nèi)容是()。

A、China

Chinang

C、ChinaBeijing

D、BeijingChina

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查文件操作函數(shù),fwritc和rewind函數(shù),題目中先是將s2字

符串寫入adc.dal中,然后將寫指針回到文件開頭,然后寫入si字符串,那么si

字符串就將前5個字符覆蓋,所以最終結(jié)果為Chinang,選項B正確。

17、下列敘述中正確的是()。

A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與川頁序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性

標(biāo)準(zhǔn)答案:B

知識點解析:線性鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加

了存儲空間,所以一般要多于順序存儲結(jié)構(gòu)。

18、下列選項中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。

A、數(shù)據(jù)庫維護(hù)

B、數(shù)據(jù)庫設(shè)計

C、改善系統(tǒng)性能,提高系統(tǒng)效率

D、數(shù)據(jù)類型轉(zhuǎn)換

標(biāo)準(zhǔn)答案:D

知識點解析:數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、

設(shè)計、維護(hù)、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之

一是數(shù)據(jù)庫設(shè)計,具體地說是進(jìn)行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護(hù)。DBA必須對數(shù)

據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進(jìn)行實施與

維護(hù);改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不

斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。

19、若變量已正確定義,則以下語句的輸出結(jié)果是()。s=32:s八=32;printf;"%

d",s);

A、-1

B、0

C、I

D、32

標(biāo)準(zhǔn)答案:B

知識點解析:本題考查邏輯異或運算。異或運算只有在兩個比較的位不同時其結(jié)果

是1,否則結(jié)果為0,題目中兩個值相同,所以結(jié)果為0。

20、以下選項中正確的語句組是()。

A、chads;S={"BOOK!”};

B、charts;s="BOOK!”;

C>charsUOJ;s='、BOOK!”;

D、chars[];s="BOOK!”;

標(biāo)準(zhǔn)答案:B

知識點解析:A選項去掉大括號就正確了;C選項和D選項應(yīng)在定義時賦初值。因

此B選項正確。

21、定義如下變量和數(shù)組:inti,x[3][3]={l,2,3,4,5,6,7,8,9);則下面

語句的輸出結(jié)果是()。for(i=0;i<3;i++)printf(,,%d,\x[i][2-ij);

A、159

B、147

C、357

D、369

標(biāo)準(zhǔn)答案:C

知識點解析:本題主要考查二維數(shù)組的使用。題中利用for循環(huán)來輸出x數(shù)組中的

指定元素:①當(dāng)i=0時,輸出x[0][2]=3;②當(dāng)i=l時,輸出x⑴[1]=5;③當(dāng)U2

時,輸出x[2][0]=7。

22>若有以下程序:#includemain(){inta=l?b=2>c=3,d=4?r=0;if(a!=l);

elser=I;if(b==2)r+=2;e]se;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\

n",r);}則程序的輸出結(jié)果是()。

A、10

B、7

C、6

D、3

標(biāo)準(zhǔn)答案:B

知識點解析:else總是和與之最近的if配對,執(zhí)行第一個if,判斷條件不成立,執(zhí)

行elser=l;語句。再執(zhí)行第二個if語句中的判斷條件,成立,左移執(zhí)行r+=2,r

的值為3,再執(zhí)行第三人if的判斷條件,不成立,執(zhí)行第7行else后面的空語句

再執(zhí)行第四個if的判斷條件d==4成立,執(zhí)行r+=4,r的值為7。然后打印

輸出。

23、若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是

()。

A、函數(shù)的形參和實參分別占用不同的存儲單元

B、形參只是形式上的存在,不占用具體存儲單元

C、同名的實參和形參占同一存儲單元

D、函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元

標(biāo)準(zhǔn)答案:A

知識點解析:本題重點考察的是函數(shù)的形參和實參。在定義函數(shù)時函數(shù)名后面括弧

中的變量名稱為“形式參數(shù)''(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后

面括弧中的參數(shù)(可以是一個表達(dá)式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實

參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不

能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。因此A

選項正確。

24、有以下程序:#includemain(){inta[4][4]={{1,4,3,2},{8,6,5,7),

{3,7,2,5},{4,8,6,1));inti,j,k,t;for(i=0;i<4;i++)fbr(j=O;

j<3;j++)for(k=j+l;k<4:k++)if(aU][i]>a[k][i]){t=aU][i];arj][i]=a[k]

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論