




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022學(xué)年浙江省湖州市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(12題)1.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的運(yùn)行結(jié)果是()。
A.852B.963C.741D.875421
2.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
3.下面不屬于需求分析階段任務(wù)的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
4.最壞情況下時間復(fù)雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
5.排序方法中,將整個無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
6.
7.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
8.有以下程序段:main(){intx[M][N];...Arrlet(x);...}則作為函數(shù)Arrlet的形參,以下表示形式非法的是()。
A.intx[M][]B.int(*x)[N]C.intx[][N]D.intx[M][N]
9.設(shè)x、y、t均為血型變量,則執(zhí)行語句x=y=3;t=++x||++y;后,y的值為______。
A.不定值B.4C.3D.1
10.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
11.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結(jié)構(gòu)
12.
二、2.填空題(12題)13.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
14.在對文件進(jìn)行操作的過程中,若要使文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。
15.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現(xiàn)在請你在下面的函數(shù)中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
16.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
17.下述函數(shù)統(tǒng)計字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
18.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<studio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
19.以下程序的輸出結(jié)果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
20.隊列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
21.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
22.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。
23.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
24.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);}
max(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);}
三、3.程序設(shè)計題(10題)25.請編寫程序fun,函數(shù)的功能是:實現(xiàn)B=A+Aˊ,即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main函數(shù)中輸出。
例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:
123147
456258
789369
程序輸出:
2610
61014
101418
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
26.編寫函數(shù)fun(),它的功能是;根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。m與n為兩個正數(shù)且要求m>n。
P=m!/n!(m-n)!),例如:m=12,n=8時,運(yùn)行結(jié)果為495.000000。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
floatfun(intm,intn)
{
}
main()
{
clrscr();
printf("p=%f\n",fun(12,8));
}
27.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如:若a數(shù)組中的值為
a=01279
19745
23831
45682
59141
則返回土程序后s的值應(yīng)為3.375。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的仟何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
doublefun(intw[][N])
{
}
main()
{
inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,
3,8,3,1,4,5,6,8,2,5,9,1,4,1};
inti,j;
doubles;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
{for(j=0;j<N;i++)
{printf("%4d",a[i][j]);}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:%lf\n",s);
}
28.學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fjun(),該函數(shù)的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN12
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
main()
STRECsIN]={{"GA05",85},{"GA03",76},
{"GA02",69},{"GA04",85},{"GA01",91},
{"GA07",72},{"GA08",64},{"GA06",87},
{"GA09",60},{"GAll",79},{"GA12",73},
{"GA10",90}};
STRECh[N],t;
FILE*out;
inti,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichis
higherthan%7.3f:In",n,ave);
for(i=0;i<n;i++)
printf("%s%4.1f\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out90.dat","w");
fprintf(out,"%dkn%7.3f\n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+l;j<n;j++)
if(h[i].s<h[j].s)
{t=hIi];h[i]=h[j];h[j]=t;}
/*分?jǐn)?shù)從高到低排列*/
for(i=0;i<n;i++)
fprintf(out,"%4.1f\n",h[i].s);
fclose(out);
}
29.請編寫一個函數(shù)fun(),它的功能是:求出一個4×M整型二維數(shù)組中最小元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,儀在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#defineM4
#include<stdio.h>
fun(inta[])[M])
{
}
main()
{
intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7);
printf(“min=%d\n”,fun(arr));
}
30.請編寫函數(shù)fun,其功能是:計算并輸出3到n之間(含3和n)所有素數(shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
31.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導(dǎo)*號的個數(shù),形參e給出了字符串中最后*號的個數(shù)。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G。
注意:部分源程序在文件PROGl.C文件中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
32.請編寫函數(shù)fun(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。
S=1+x+x2/2!3/3!+…/xn/n!
例如,當(dāng)n=10,x=0.3時,函數(shù)值為1349859。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(doublex,intn)
{
}
main()
{
clrscr();
printf("%f",fun(0,3,10));
}
33.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫一個函數(shù)fun(),函數(shù)的功能是:求數(shù)組周邊元素的平方和,并作為函數(shù)值返回給主函數(shù)。例如,若數(shù)組a中的值為
01279
1112155
2216111
979102
54141
則返回主程序后s的值應(yīng)為310。
[注意]部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
[試題源程序]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
intfun(intw[][N])
{
}
main()
{
inta[N][N]=(0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1);
inti,j;
ints;
clrscr()
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:%d\n",s);
}
34.函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時ASCII值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一含新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl23456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除:其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“246”。
注意:部分源程序存在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
四、單選題(0題)35.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
五、單選題(0題)36.由兩個棧共享一個向量空間的好處是______。
A.減少存取時間,降低下溢發(fā)生的機(jī)率
B.節(jié)省存儲空間,降低上溢發(fā)生的機(jī)率
C.減少存取時間,降低上溢發(fā)生的機(jī)率
D.節(jié)省存儲空間,降低下溢發(fā)生的機(jī)率
六、單選題(0題)37.以下有關(guān)宏替換的敘述不正確的是()。
A.雙引號中出現(xiàn)的宏名不替換B.使用宏定義可以嵌套C.宏定義儀儀是符號替換D.宏名必須用大寫字母表示
參考答案
1.A第1次for循環(huán),y的值為9,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出8;第2次for循環(huán),y的值為7,“y%3”的值為1,不滿足if條件,不執(zhí)行printf語句;第3次for循環(huán),y的值為6,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出5;第4次for循環(huán),y的值為4,不滿足if條件,不執(zhí)行printf語句;第5次for循環(huán),y的值為3,滿足if條件,輸出2;第6次for循環(huán),y的值為1,不滿足if條件,不執(zhí)行printf語句。故本題答案為A選項。
2.D首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
3.C【答案】:C
【知識點】:需求分析階段的任務(wù)
【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測試計劃,故選C。
4.D
5.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進(jìn)行插入排序。
6.D
7.B
8.AC語言規(guī)定二維數(shù)組作為實參傳遞時,形參必須要指明二維數(shù)組的列數(shù),否則函數(shù)內(nèi)無法識別數(shù)組的寬度,行數(shù)提供沒有任何作用?!?*x)[N]”與“x[][N]”以及“x[M][N]”效果一樣。通過排除法選擇A選項。故本題答案為A選項。
9.C解析:C語言中在做邏輯或運(yùn)算時,自左向右判斷各個參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時,表明整個表達(dá)式一定為真,余下的語句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒有進(jìn)行運(yùn)算,所以y值不變。
10.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。
11.B
12.C
13.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
14.rewind或fseekrewind或fseek
15.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達(dá)式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
對應(yīng)的C語言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。
16.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
17.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空恪,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1);最后一個空格需填寫的是返回的單詞的個數(shù),即num。
18.66解析:本題中,i、j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#;當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#:當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)3次,輸出3個#。當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。
19.functionrunningresultis:9.0
20.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
21.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
22.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運(yùn)行軟件。
23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
24.maxis2maxis2解析:函數(shù)通過參數(shù)來傳遞數(shù)據(jù)是單向的,只能由實參傳給形參而不能由形參傳給實參,但是可以通過函數(shù)的返回值將函數(shù)中的數(shù)據(jù)帶回。注意:函數(shù)的兩種調(diào)用方式及函數(shù)調(diào)用的語法要求。
25.
解析:該程序功能是實現(xiàn)B=A+Aˊ,即把矩陣A加上A的轉(zhuǎn)置。其中,所謂矩陣的轉(zhuǎn)置,是把行中的數(shù)據(jù)與列中的數(shù)據(jù)進(jìn)行對調(diào)。解題過程中首先求得已給的矩陣的轉(zhuǎn)置,然后在循環(huán)過程中對矩陣與該矩陣的轉(zhuǎn)置對應(yīng)元素求和。
26.floatfun(intmintn){inti;doublep=1.0;for(i=1;i<=m;i++)p=p*i;/*求m!*/for(i=1;i<=n;i++)p=p/i;/*求m!/n!*/for(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/returnp;}floatfun(intm,intn)\r\n{\r\ninti;\r\ndoublep=1.0;\r\nfor(i=1;i<=m;i++)p=p*i;/*求m!*/\r\nfor(i=1;i<=n;i++)p=p/i;/*求m!/n!*/\r\nfor(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/\r\nreturnp;\r\n}解析:本題中,欲求P的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實現(xiàn)。注意階乘值應(yīng)當(dāng)是double類型,若定義x,y,z為整型變量,則p=x/(y*z)中的除法為整數(shù)除法。
27.doublefun(intw[][N]){intijk=0;doubleav=0.0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1)/*只要下標(biāo)中有一個為0或N-1則它一定是周邊元素*/{av=av+w[i][j];/*將周邊元素求和*/k++;}returnav/k;/*求周邊元素的平均值*/}doublefun(intw[][N])\r\n{\r\ninti,j,k=0;\r\ndoubleav=0.0;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<N;j++)\r\nif(i==0||i==N-1||j==0||j==N-1)/*只要下標(biāo)中有一個為0或N-1,則它一定是周邊元素*/\r\n{av=av+w[i][j];/*將周邊元素求和*/\r\nk++;\r\n}\r\nreturnav/k;/*求周邊元素的平均值*/\r\n}解析:該題采用逐一判斷的方式,周邊元素的下標(biāo)一定有一個是0或N-1,且只要下標(biāo)中有一個為0或N-1,則它一定是周邊元素。計算周邊元素個數(shù)的方式是當(dāng)給av加一個值時,則k加1。k也可用2*N+2*N-4求得。
28.doublefun(STREC*aSTREC*bint*n){inti;doubleay=0.0;*n=0;for(i=0;i<N;i++)av=av+a[i].s;ay=ay/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];*n-*n+l;}/*將高于等于平均分的學(xué)生存從所指存儲單元中并統(tǒng)計人數(shù)*/returnay;/*返回嚴(yán)均分*/}doublefun(STREC*a,STREC*b,int*n)\r\n{\r\ninti;\r\ndoubleay=0.0;\r\n*n=0;\r\nfor(i=0;i<N;i++)\r\nav=av+a[i].s;\r\nay=ay/N;/*求平均值*/\r\nfor(i=0;i<N;i++)\r\nif(av<=a[i].s)\r\n{b[*n]=a[i];*n-*n+l;}/*將高于等于平均分的學(xué)生存從所指存儲單元中,并統(tǒng)計人數(shù)*/\r\nreturnay;/*返回嚴(yán)均分*/\r\n}解析:本題中第1個循環(huán)的作用求出所有分?jǐn)?shù)的總和,只有進(jìn)行了av=av/N后才得到平均值(我們在前面的程序中碰到過類似問題)。第2個循環(huán)的作用是將高于等于平均分的學(xué)生存入b所指存儲單元中。同一結(jié)構(gòu)體變量之間可以互相賦值。
本程序中直接用*n來表示b的下標(biāo),注意開始時要給,*n賦0,且使用時不能少*號。因為單獨(dú)的n是一個指針變量,而我們要用的是它所指向的那個存儲單元中的值。
29.fun(inta[][M]){intijmin=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j];/*求出二維數(shù)組的最小值*/returnmin;}fun(inta[][M])\r\n{\r\n\u3000inti,j,min=a[0][0];\r\n\u3000for(i=0;i<4;i++)\r\nfor(j=0;j<M;j++)\r\nif(min>a[i][j])\r\nmin=a[i][j];/*求出二維數(shù)組的最小值*/\r\nreturnmin;\r\n}解析:此類求最大值或最小值的C語言問題,我們可以采用逐個比較的方式。要求數(shù)組中的所有元素走動一遍,并從中找出最大、最小值,要注意一開始應(yīng)使min存放數(shù)組中的第—個元素的值。可按逐行查找也可按逐列查找的方式,本題采用的是逐行找的方式。即行下標(biāo)在外層循環(huán),列下標(biāo)在內(nèi)層循環(huán),因為在循環(huán)的嵌套中越在內(nèi)層循環(huán),循環(huán)變化就越快。
30.
解析:函數(shù)fun的功能是計算并輸出3到n之間(含3和n)所有素數(shù)的平方根之和,首先根據(jù)題干中的要求找出3到n之間的素數(shù),并求出素數(shù)的平方根,然后求得這些平方根的和。
31.
解析:該程序功能是刪除字符串前導(dǎo)和尾部的“*”號。解題過程是根據(jù)主函數(shù)中求出的前導(dǎo)和尾部的“*”數(shù)目,作為for循環(huán)條件,并且在循環(huán)過程中第一個非“*'號開始前移,實現(xiàn)函數(shù)功能。
32.doublefun(doublexintn){inti;doubles=1.0.s1=1.0;for(i=1;i<=n;i++){s1=s1*i;/*各項中的階乘*/s=s+pow(xi)/s1;/*按公式求出*/}returns;}doublefun(doublex,intn)\r\n{\r\ninti;\r\ndoubles=1.0.s1=1.0;\r\nfor(i=1;i<=n;i++)\r\n{s1=s1*i;/*各項中的階乘*/\r\ns=s+pow(x,i)/s1;/*按公式求出*/\r\n}\r\nreturns;\r\n}解析:本程序中用s1來表示每項的分母(即各項中的階乘),要注意本程序中s和s1的初值都為1。
33.intfun(intw[][N]){intijk=0;ints=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1){s=s+w[i][j]*w[i][j];}returns;}intfun(intw[][N])\r\n{\r\ninti,j,k=0;\r\nints=0;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<N;j++)\r\nif(i==0||i==N-1||j==0||j==N-1)\r\n{\r\ns=s+w[i][j]*w[i][j];\r\n}\r\nreturns;\r\n}
34.
解析:該程序功能是將字符串中除了下標(biāo)為偶數(shù)、ASCII值也為偶數(shù)的字符外,其余的全都刪除。解題過程利用if條件判斷表達(dá)式選擇符合條件的字符,然后將符合條件的字符放入指定的字符串。
35.C
36.B
37.D解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替換兩類。使用宏時應(yīng)注意以下幾點:①定義僅僅是符號替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。2021-2022學(xué)年浙江省湖州市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(12題)1.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的運(yùn)行結(jié)果是()。
A.852B.963C.741D.875421
2.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4
3.下面不屬于需求分析階段任務(wù)的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
4.最壞情況下時間復(fù)雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
5.排序方法中,將整個無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
6.
7.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
8.有以下程序段:main(){intx[M][N];...Arrlet(x);...}則作為函數(shù)Arrlet的形參,以下表示形式非法的是()。
A.intx[M][]B.int(*x)[N]C.intx[][N]D.intx[M][N]
9.設(shè)x、y、t均為血型變量,則執(zhí)行語句x=y=3;t=++x||++y;后,y的值為______。
A.不定值B.4C.3D.1
10.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
11.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結(jié)構(gòu)
12.
二、2.填空題(12題)13.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
14.在對文件進(jìn)行操作的過程中,若要使文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。
15.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現(xiàn)在請你在下面的函數(shù)中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
16.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
17.下述函數(shù)統(tǒng)計字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
18.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<studio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
19.以下程序的輸出結(jié)果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
20.隊列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
21.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
22.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。
23.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
24.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);}
max(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);}
三、3.程序設(shè)計題(10題)25.請編寫程序fun,函數(shù)的功能是:實現(xiàn)B=A+Aˊ,即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main函數(shù)中輸出。
例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:
123147
456258
789369
程序輸出:
2610
61014
101418
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
26.編寫函數(shù)fun(),它的功能是;根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。m與n為兩個正數(shù)且要求m>n。
P=m!/n!(m-n)!),例如:m=12,n=8時,運(yùn)行結(jié)果為495.000000。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
floatfun(intm,intn)
{
}
main()
{
clrscr();
printf("p=%f\n",fun(12,8));
}
27.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如:若a數(shù)組中的值為
a=01279
19745
23831
45682
59141
則返回土程序后s的值應(yīng)為3.375。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的仟何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
doublefun(intw[][N])
{
}
main()
{
inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,
3,8,3,1,4,5,6,8,2,5,9,1,4,1};
inti,j;
doubles;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
{for(j=0;j<N;i++)
{printf("%4d",a[i][j]);}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:%lf\n",s);
}
28.學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fjun(),該函數(shù)的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN12
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
main()
STRECsIN]={{"GA05",85},{"GA03",76},
{"GA02",69},{"GA04",85},{"GA01",91},
{"GA07",72},{"GA08",64},{"GA06",87},
{"GA09",60},{"GAll",79},{"GA12",73},
{"GA10",90}};
STRECh[N],t;
FILE*out;
inti,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichis
higherthan%7.3f:In",n,ave);
for(i=0;i<n;i++)
printf("%s%4.1f\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out90.dat","w");
fprintf(out,"%dkn%7.3f\n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+l;j<n;j++)
if(h[i].s<h[j].s)
{t=hIi];h[i]=h[j];h[j]=t;}
/*分?jǐn)?shù)從高到低排列*/
for(i=0;i<n;i++)
fprintf(out,"%4.1f\n",h[i].s);
fclose(out);
}
29.請編寫一個函數(shù)fun(),它的功能是:求出一個4×M整型二維數(shù)組中最小元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,儀在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#defineM4
#include<stdio.h>
fun(inta[])[M])
{
}
main()
{
intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7);
printf(“min=%d\n”,fun(arr));
}
30.請編寫函數(shù)fun,其功能是:計算并輸出3到n之間(含3和n)所有素數(shù)的平方根之和。
例如,在主函數(shù)中從鍵盤給n輸入100后,輸出為:sum=148.874270。
注意:要求n的值大于2但不大于100。部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
31.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導(dǎo)*號的個數(shù),形參e給出了字符串中最后*號的個數(shù)。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G。
注意:部分源程序在文件PROGl.C文件中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
32.請編寫函數(shù)fun(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。
S=1+x+x2/2!3/3!+…/xn/n!
例如,當(dāng)n=10,x=0.3時,函數(shù)值為1349859。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(doublex,intn)
{
}
main()
{
clrscr();
printf("%f",fun(0,3,10));
}
33.下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫一個函數(shù)fun(),函數(shù)的功能是:求數(shù)組周邊元素的平方和,并作為函數(shù)值返回給主函數(shù)。例如,若數(shù)組a中的值為
01279
1112155
2216111
979102
54141
則返回主程序后s的值應(yīng)為310。
[注意]部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
[試題源程序]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
intfun(intw[][N])
{
}
main()
{
inta[N][N]=(0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1);
inti,j;
ints;
clrscr()
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:%d\n",s);
}
34.函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時ASCII值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一含新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl23456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除:其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“246”。
注意:部分源程序存在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
四、單選題(0題)35.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
五、單選題(0題)36.由兩個棧共享一個向量空間的好處是______。
A.減少存取時間,降低下溢發(fā)生的機(jī)率
B.節(jié)省存儲空間,降低上溢發(fā)生的機(jī)率
C.減少存取時間,降低上溢發(fā)生的機(jī)率
D.節(jié)省存儲空間,降低下溢發(fā)生的機(jī)率
六、單選題(0題)37.以下有關(guān)宏替換的敘述不正確的是()。
A.雙引號中出現(xiàn)的宏名不替換B.使用宏定義可以嵌套C.宏定義儀儀是符號替換D.宏名必須用大寫字母表示
參考答案
1.A第1次for循環(huán),y的值為9,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出8;第2次for循環(huán),y的值為7,“y%3”的值為1,不滿足if條件,不執(zhí)行printf語句;第3次for循環(huán),y的值為6,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出5;第4次for循環(huán),y的值為4,不滿足if條件,不執(zhí)行printf語句;第5次for循環(huán),y的值為3,滿足if條件,輸出2;第6次for循環(huán),y的值為1,不滿足if條件,不執(zhí)行printf語句。故本題答案為A選項。
2.D首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
3.C【答案】:C
【知識點】:需求分析階段的任務(wù)
【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測試計劃,故選C。
4.D
5.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進(jìn)行插入排序。
6.D
7.B
8.AC語言規(guī)定二維數(shù)組作為實參傳遞時,形參必須要指明二維數(shù)組的列數(shù),否則函數(shù)內(nèi)無法識別數(shù)組的寬度,行數(shù)提供沒有任何作用?!?*x)[N]”與“x[][N]”以及“x[M][N]”效果一樣。通過排除法選擇A選項。故本題答案為A選項。
9.C解析:C語言中在做邏輯或運(yùn)算時,自左向右判斷各個參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時,表明整個表達(dá)式一定為真,余下的語句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒有進(jìn)行運(yùn)算,所以y值不變。
10.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。
11.B
12.C
13.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
14.rewind或fseekrewind或fseek
15.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達(dá)式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
對應(yīng)的C語言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。
16.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
17.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空恪,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1);最后一個空格需填寫的是返回的單詞的個數(shù),即num。
18.66解析:本題中,i、j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#;當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#:當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)3次,輸出3個#。當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。
19.functionrunningresultis:9.0
20.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
21.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
22.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運(yùn)行軟件。
23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
24.maxis2maxis2解析:函數(shù)通過參數(shù)來傳遞數(shù)據(jù)是單向的,只能由實參傳給形參而不能由形參傳給實參,但是可以通過函數(shù)的返回值將函數(shù)中的數(shù)據(jù)帶回。注意:函數(shù)的兩種調(diào)用方式及函數(shù)調(diào)用的語法要求。
25.
解析:該程序功能是實現(xiàn)B=A+Aˊ,即把矩陣A加上A的轉(zhuǎn)置。其中,所謂矩陣的轉(zhuǎn)置,是把行中的數(shù)據(jù)與列中的數(shù)據(jù)進(jìn)行對調(diào)。解題過程中首先求得已給的矩陣的轉(zhuǎn)置,然后在循環(huán)過程中對矩陣與該矩陣的轉(zhuǎn)置對應(yīng)元素求和。
26.floatfun(intmintn){inti;doublep=1.0;for(i=1;i<=m;i++)p=p*i;/*求m!*/for(i=1;i<=n;i++)p=p/i;/*求m!/n!*/for(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/returnp;}floatfun(intm,intn)\r\n{\r\ninti;\r\ndoublep=1.0;\r\nfor(i=1;i<=m;i++)p=p*i;/*求m!*/\r\nfor(i=1;i<=n;i++)p=p/i;/*求m!/n!*/\r\nfor(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/\r\nreturnp;\r\n}解析:本題中,欲求P的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實現(xiàn)。注意階乘值應(yīng)當(dāng)是double類型,若定義x,y,z為整型變量,則p=x/(y*z)中的除法為整數(shù)除法。
27.doublefun(intw[][N]){intijk=0;doubleav=0.0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1)/*只要下標(biāo)中有一個為0或N-1則它一定是周邊元素*/{av=av+w[i][j];/*將周邊元素求和*/k++;}returnav/k;/*求周邊元素的平均值*/}doublefun(intw[][N])\r\n{\r\ninti,j,k=0;\r\ndoubleav=0.0;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<N;j++)\r\nif(i==0||i==N-1||j==0||j==N-1)/*只要下標(biāo)中有一個
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵件通知分發(fā)記錄表
- 健康管理與養(yǎng)生服務(wù)合作協(xié)議
- 中國寓言中的人物性格讀后感
- 企業(yè)內(nèi)訓(xùn)師培訓(xùn)教程作業(yè)指導(dǎo)書
- 生產(chǎn)車間承包協(xié)議
- 購買墳?zāi)雇恋貐f(xié)議書
- 邊坡支護(hù)施工合同
- 辦公室設(shè)備采購申請說明文書
- 西游記賞析傳統(tǒng)神話的魅力
- 走近哲學(xué)世界:大二哲學(xué)導(dǎo)論教學(xué)教案
- 自制龍門架承載力計算說明
- 有關(guān)泵壓計算的相關(guān)公式
- 廣東省清遠(yuǎn)市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 《呼蘭河傳》名著導(dǎo)讀公開課
- 合成樹脂瓦工程檢驗批質(zhì)量驗收記錄表格
- 卡通家庭急救常識知識講座PPT模板
- 小學(xué)五年級語文上冊有趣的漢字課件
- 消防(控制室)值班記錄
- 房屋租賃(出租)家私清單
- 計算機(jī)技術(shù)碩士專業(yè)學(xué)位授權(quán)點申報研究演示課件(PPT 39頁)
- 建筑裝飾材料與構(gòu)造-ppt課件
評論
0/150
提交評論