(21)以下程序擬實現(xiàn)計算s=1+2*2+3*3+…+n*n+…,直到s>1000為止。
程序運行后,不能得到正確結(jié)果,以下修改方案正確的是( )。
A.把while(s>lOOO);改為while(s<=1000);
B.把s=1;改為s=0;
C.把n=1;改為n=0;
D.把n=n+1;改為n=n$n;
(22)有以下程序:“
J
則以下函數(shù)調(diào)用語句錯誤的是( )。.
k=f(a,B.;
B.k=add(a,B.;
C.k=(*f)(a,B.;
D.k={f(a,B.;
(24)若有定義語句:
正確的輸入語句是( )。
scanf(”%lf%If'’,X,Y);
B.scanf(”%f%f¨敝,曲);
C.scanf(”%f%f¨,X,y);
D.scanf(”%lf%le”,px,PY);
(25)以下定義數(shù)組的語句中錯誤的是( )。
A.int num[][3]={{1,2},3,4,5,6};
B.int nUITI[2][4]={{1,2},{3,4},{5,6}};
C.int num[]={1,2,3,4,5,6};
D.int num[][4]={1,2,3,4,5,6’};
(26)有以下程序:
(27)有以下程序:
,
程序運行后的輸出結(jié)果是( )。
A.10
B.16
C.6
D.12
(28)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1
B.2
C.3
D.O
(29)函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找值并返回給調(diào)用函數(shù),函數(shù)不完整。
在if語句下劃線處應填人的選項是( )。
A.O>sB.* P>*sC.a[p]>a[s]D.p—a>P—s
(30)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.10,One{Drealn!
B.9,One*Drealll!
C.9,One*World
D.10,One*World
(31)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.Beijing!
B.toBeijing]
C.WelcomeyoutoBeijingI
D.youtoBeijingI
(32)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.3,5,B.3,6,C.3,7,D.0,3,
(33)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2
B.1C.3 D.O
(34)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.4,5,2,4,1,3,
B.4,4,2,2,1,1,
C.5,5,3,3,2,2,
D.4,4,2,2,1,3
(35)以下與存儲類別有關的四組說明符中,全部屬于靜態(tài)類的一組是( )。
A.extem和static
B.aut0和static
C.register和static
D.register和ex[erll
(36)為了建立如圖所示的存儲結(jié)構(gòu)(即每個結(jié)點含兩個域,data是數(shù)據(jù)域,next是指向結(jié)點的指針域)則在
( )處填入的選項是( )。*struetlink{ehardata;( )node;
A.struetlink*next;
B.linknext;
C.link$next;
D.struetlinknext;
程序運行后的輸出結(jié)果是( )。
A.Qian,f,350,Sun,f,350
B.Qiamf,350,Qian,f,350
C.Qian,f,350,Sun,m,370
D.Zha0,m,290,Sun,m,370
(38)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.5
B.1
C.20
D.18
(39)以下敘述正確的是( )。
A.表達式sizeof(FILE*)==sizeof(int*)的值為真
B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)
C.文件指針的值是所指文件的當前讀取位置
D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符
40.函數(shù)fgetc的功能是從指定文件中讀入一個字符,以下與其功能完全相同的函數(shù)是( )。
A.fread
B.fscanf
C.fgets
D.getc
(21)A【解析】題目中程序不能實現(xiàn)預期功能是因為while的循環(huán)條件錯誤,在選項B中,把s=1,改為s=0,最終的結(jié)果s=4,與題目原意不同;在選項C中,把n=1;改為n=0;最終的結(jié)果s=2,與題目原意不同;在選項D中,把n=n+1;改為n=11 s13;最終的結(jié)果s=2,與題目原意不同;選項A,正確的修改了while循環(huán)條件,可以得到正確結(jié)果。故答案為A選項。
(22)B【解析】題目使用更相減損術求公約數(shù),其思想:l、任意給定兩個正整數(shù),判斷它們是否都是偶數(shù)。若是,則用2約簡,若不是則執(zhí)行第二步。2、以較大的數(shù)減較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù)。繼續(xù)這個操作,直到所得的減數(shù)和差相等為止。則第一步中約掉的若干個2與第二步中等數(shù)的乘積就是所求的公約數(shù)。因此。故答案為B選項。
(23)D【解析】s與()的優(yōu)先級,()的優(yōu)先級高于*,因為(+f)()定義函數(shù)指針f。f指向函數(shù)的指針。f=add,將函數(shù)8dd()的首地址賦給指針f,所以調(diào)用函數(shù)add()可以寫為f(),其返回值是整型,不是指針類型,不能用t取指針指向的內(nèi)存單元的數(shù)據(jù),故k=*f(a,b)的調(diào)用方式錯誤。答案為D選項。
(24)D【解析】%1f,%le是針對double類型的數(shù)據(jù),如果僅甩%f,輸入的數(shù)據(jù)可能不能被完全接收,數(shù)據(jù)的精度可能不足。%f主要針對float類型的變量輸入,選項8錯誤。根據(jù)瓣Hlf(格式,變量地址),選項A,C錯誤。故答案為D選項。
(25)B【解析】選項8中,int Irlllm[2][4]={{1,2},
{3,4},{5,6}};定義數(shù)組是2行4列,但是初始化的結(jié)構(gòu)是3行2列,因此初始化錯誤。故答案為B選項。
(26)C【解析】flm()函數(shù)作用冒泡法排序,fla9控制升序(0)或者降序(1)。n為參與排序的元素個數(shù)。a為數(shù)組的起始地址。因此,flm(a,4,1),數(shù)組的前四個降序排序,fun(a+4,6,O)對數(shù)組的第四項后六個元素進行升序排序。故結(jié)果為10,9,8,7,1,2,3,4,5,6。答案為C選項。
(27)D1解析】第一個for循環(huán)作用是對數(shù)組8賦初值,從0~9,第二個缸循環(huán)是計算數(shù)組前4項的a[i]+i的和。0+0,1+1,2+2,3+3,經(jīng)計算的結(jié)果為l2,因此答案為D選項。
(28)C【解析】new—div()的返回值是int類型,因此,a/b+0.5(其中a,b均為double類型)的小數(shù)部分被將被截斷。經(jīng)計算,7.8/3.1+0.5=2.516+0.5=3.016,故打印的結(jié)果為3。故答案為C選項。
(29)B【解析】函數(shù)fun的功能是在形參a所指的具有n個元素的數(shù)組中查找值并返回。通過for循環(huán)比較,s始終指向值的那個元素。取指針的值,使用+P,因此比較使用·P和}8,需要找到值,當}8<+P時,修改指針s的指向,因此答案為B選項。
(30)A【解析】函數(shù)strlen(char·s);計算字符串s的長度,不包括’、0’在內(nèi);P指向數(shù)組的第二個元素,因此strlen(p)=10,并打印,故答案為A選項。
(31)A【解析】for循環(huán)的作用是每次遇到空格,將空格后面的移動到數(shù)組的最前面。因此數(shù)組最后的狀態(tài)是“Bei-jing!、Og!\0ng!、neijing!、O”,但是pfinff(“%s”)打印遇到、0自動結(jié)束。因此,打印Beijing!。故答案為A選項。
(32)A【解析】static靜態(tài)變量只在聲明時初始化一次。因此,第一次調(diào)用函數(shù)f(k=O),此時n…nlk 0,經(jīng)過自增操作n=1,m=1,k=1,返回值為3,第二次調(diào)用函數(shù)f(k=1),此時n=1,k=1,m=0,經(jīng)過白增操作,n=2,k=2,m=1,返回值為5。故最終結(jié)果為3,5。故答案為A選項。
(33)B【解析】局部變量覆蓋全局變量,但是全局變量的聲明周期還存在。f()函數(shù)調(diào)用完成后,由于m為全局變量,被修改為32,即函數(shù)的返回值32,此時m=32/12,第二次調(diào)用f(a,b),函數(shù)的返回值為3,此時m=2,故輸出為1。所以答案為B選項。
(34)A【解析】sizeof()是運算符,在頭文件中typedef為unsigned int,其值在編譯時即計算好了,參數(shù)可以是數(shù)組、指針、對象、函數(shù)等。它的功能是:獲得保證能容納實現(xiàn)所建立的對象的字節(jié)大小。strlen(·char)函數(shù),要在運行時才能計算,參數(shù)必須是字符型指針(char·),當數(shù)組名作為參數(shù)傳人時,實際上數(shù)組就退化成指針了,它的功能是:返回字符串的長度。該字符串可能是自己定義的,也可能是內(nèi)存中隨機的,該函數(shù)實際完成的功能是從代表該字符串的第一個地址開始遍歷,直到遇到結(jié)束符NULL,返回的長度大小不包括NULL。sizeof(a)求數(shù)組a所占空間的大小,包括字符串最后的’、0’,所以sizeof(a)=5,strlen()遇到’、0’就結(jié)束,strlen(a)=4。strlen(b)是指針指向的字符串長度,sizeof(b)是指針的大小。strlen(c)是字符串的長度,sizeof(c)是數(shù)組的長度。因此,輸出4,5,2,4,l,3。故答案為A選項。
(35)A【解析】aut0用于聲明變量的生存期為自動,即
將不在任何類、結(jié)構(gòu)、枚舉、聯(lián)合和函數(shù)中定義的變量視為全局變量,而在函數(shù)中定義的變量視為局部變量。這個關鍵字通常會被省略,因為所有的變量默認就是aut0的。
register定義的變量告訴編譯器盡可能的將變量存在CPU內(nèi)部寄存器中而不是通過內(nèi)存尋址訪問以提高效率。
static變量會被放在程序的全局存儲區(qū)中,這樣可以在下一次調(diào)用的時候還可以保持原來的賦值。這一點是它與堆棧變量和堆變量的區(qū)別。變量用static告知編譯器,自己僅僅在變量的作用范圍內(nèi)可見。這一點是它與全局變量的區(qū)別。當static用來修飾全局變量時,它就改變了全局變量的作用域。extern限制在了當前文件里,但是沒有改變其存放位置,還是在全局靜態(tài)儲存區(qū)。extem外部聲明,該變量在其他地方有被定義過。因此,答案為A選項。
(36)A【解析】存儲結(jié)構(gòu)用鏈式存儲。鏈式結(jié)構(gòu)每個節(jié)點有個指針域,指針域指向下一個鏈式結(jié)構(gòu)的節(jié)點,因此指針域的結(jié)構(gòu)應該是該結(jié)構(gòu)形式,因此應定義為struct link}next,故答案為A選項。struct是結(jié)構(gòu)體的說明符,不能省略。
(37)A【解析】c語言函數(shù)參數(shù)傳遞大致分為:1、值傳遞過程中。被調(diào)函數(shù)的形參作為被調(diào)函數(shù)的局部變量處理,即在內(nèi)存的堆棧中開辟空間以存放由主調(diào)函數(shù)放進來的實參的值,從而成為了實參的一個拷貝。值傳遞的特點是被調(diào)函數(shù)對形參的任何操作都是作為局部變量進行,不會影響主調(diào)函數(shù)的實參變量的值。
2、地址傳遞過程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是這時存放的是由主調(diào)函數(shù)放進來的實參變量的地址。被調(diào)函數(shù)對形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調(diào)函數(shù)中的實參變量。正因為如此,被調(diào)函數(shù)對形參做的任何操作都影響了主調(diào)函數(shù)中的實參變量。結(jié)構(gòu)體中nanle是數(shù)組,做實參傳遞,會退化為指針,因此調(diào)用f(),b.nanle發(fā)生修改,其他的成員,傳遞的是拷貝,不會被修改。因此輸出Sun,f,350。故答案為A選項。
(38)C【解析】“運算符為按位異或運算符,即0^1=1,l“0=1,l‘l=0,0"0=0,因此a^b=101在進行<<操作,變?yōu)?01002=2010,因此答案為c選項。
(39)A【解析】slzeof(FILE})=4,因為file·為指針,指針的大小4,sizeof(int·)=4,理由同前面。文件指針的值是地址,是一個l6進制的數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項8錯誤。文件指針是所指文件的當前讀取位置,而不是文件指針的值因此選項C錯誤。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函數(shù)可以向任意類型的文件,寫入任意數(shù)量不能超過系統(tǒng)的緩沖區(qū),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項D錯誤。答案為A選項。
40)D 【解析】fgets讀取一個長度為(n一1)的字符串,frea按照指定的長度讀取數(shù)據(jù)項,對應2進制的打開方式,fs—canf按指定格式讀,對應文本打開方式,9etc從指定的文件讀* a=0;//初始化a字符統(tǒng)計的個數(shù)* c=0;//初始化C字符統(tǒng)計的個數(shù)for(i=0;i(M;i+十1,,行
{
。躥or(j=0;j
if(t[i][j]一·A-)//字符是a,計數(shù)
(*a)++;
if(t[i][j]一-C-)//字符是C,計數(shù)
(*c)++
【考點分析】
主要考察考生對多重循環(huán)的理解與使用,以及字符串的比較。
【解題思路】
對二維數(shù)組的行列分別循環(huán),行優(yōu)先,查找數(shù)組中元素為A或者C,分別對其進行計數(shù)。