




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年陜西省西安市全國計算機(jī)等級考試
C語言程序設(shè)計真題(含答案)
學(xué)校:班級:姓名:考號:
一、2.填空題(10題)
1.下面程序執(zhí)行后輸出的結(jié)果是[】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
)
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
)
2.下面程序的功能是【】。
doublesub(doublex,inty)
{intn;doublez;
for(n=1,z=x;n<y;n++)z=z*x;
returnz;}
main()
{doublea=2.0,b=4.0,c;
c=sub(a,b);printf("%f",c);}
3.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
)
4.注釋一般分為序言性注釋和注釋。
5.對有14個結(jié)點(diǎn)的完全二叉樹的結(jié)點(diǎn)以從上到下、從左到右的順序進(jìn)
行編號后,序號最小的葉結(jié)點(diǎn)的序號【】。
6.由計算機(jī)、操作系統(tǒng)、DBMS、數(shù)據(jù)庫、應(yīng)用程序及用戶組成的一個
整體叫做【】。
7.下列程序的運(yùn)行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
8.以下程序的輸出是【】。
main()
charstrl[]="Howdoyoudo",*pl=strl;
strcpy(strl+strlen(strl)/2,"esshe");
printf("%s\n",pl);
9.下列程序的運(yùn)行結(jié)果是
main()
{inti,a[10];
a[0]=a[l]=l;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-l];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
)
10.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=l;i+l;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
二、單選題(10題)
11.設(shè)有序表中的元素為(13,18,24,35,47,50,62),則在其中利用
二分法查找值為24的元素需要經(jīng)過()次比較容易
A.lB.2C.3D.4
12.下面不屬于需求分析階段任務(wù)的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件
集成測試計劃D.需求規(guī)格說明書評審
13.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b='a';c='A';
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf("\n”);
)
程序運(yùn)行后的輸出結(jié)果是
A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
14.軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪
些功能的階段是()o
A.概要設(shè)計B.軟件設(shè)計C.可行性研究和計劃制定D.需求分析
15.二叉樹的后序排列DBEFCA,中序排列DBAECF,那么對其做先序
線索化二叉樹,節(jié)點(diǎn)E的線索化指向節(jié)點(diǎn)0
A.BCB.ACC.DFD.CF
16.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人
數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%lf,,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%lf,p);
17.
(1)算法的空間復(fù)雜度是指()。
A)算法程序的長度B)算法程序中的指令條數(shù)
C)算法程序所占的存儲空間D)律法執(zhí)行過程中所需要的存儲空間
18.有以下程序:
#include<stdio.h>
main()
{chars[]="012xy\O8s34f4w2t;
inti;n=0;,
for(i=0;s[i]!=O;i++)
if(s[i]>=0s[i]<=9)n++;
printf("%d\n",n);
)
程序運(yùn)行后的輸出結(jié)果是()oA.oB.3C.7D.8
19.下列程序的輸出結(jié)果是()。
駕mciifdcVvtdo.
shtnn^.b>
voidfuci(mtb[j)
(statictnii-Oi
do
?whale<??Y
matf)()
{mtIt?B(3]-1l?3?5?4?9|i
lwn(a)i
for(k-GBk<5」++)printK*llid*??tkj)i
A.13579B48579C.48549D.48999
20.程序運(yùn)行后的輸出結(jié)果是()。
#inchide<stdio.h>
main。
{
inti,j,m=1;
fbr(i=1;i<3;i++)
{fbr(j=3;j>0;j----)
{if(i*j>3)break;
=}
}
printf(,'m=?odnn,m);
)
A.m=4
B.m=2
C.m=6
D.m=5
三、程序設(shè)計題(10題)
21.編程將文件read.txt中的字符讀出顯示到屏幕上。
22....請編寫函數(shù)。fun能是:判斷形參n中的正整數(shù)是幾位數(shù)(輸入數(shù)
據(jù)的位數(shù)不超過4位),并將結(jié)果通過函數(shù)值返回。例如:若輸入的數(shù)
據(jù)為123,則輸出結(jié)果為:輸入的數(shù)字是3位。注意:部分源程序存在
PR0G1.C中,請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函
數(shù)fun的花括號中填入所縮寫的若干語句。試題程
linclude<stdio.h>
voidNONOO;
intfun(intn)
main()
{intn,place;
do(
printf(”請輸入一個4位以內(nèi)的正整數(shù):■);
scanf&n);
)while(n<0IIn>9999);
place-fun(n);
printf("輸入的數(shù)字是3位place);
NONO();
)
voidNONO()
</?本函數(shù)用于打開文件,輸入數(shù)據(jù).調(diào)用雨敷,輸出數(shù)據(jù),關(guān)閉文件。?/
FILE?fp,?wf;
inti,n,place;
fp-fopen(wc:\test\in.dat","r");
wf-fopen("c:\test>cut.datw,Hw-);
for(i-0;i<10;i-H-)
(
fscanf(fp,"Id。,4n);
place=fun(n);
fprintf(wfr"%d\n"rplace);
>
fclose(fp);
fclose(wf);
序:,
23.請編一個函數(shù)fun(char*str),該函數(shù)的功能是把字符串中的內(nèi)容逆
置。例如,字符串中原有的字符串為asdfg,則調(diào)用該函數(shù)后,串中的
內(nèi)容為gfdsa。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在
函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
gMtdwdc<string.h>
iflcludrVcom0k
SincludeVsidio.
FdefineN100
voidfunCehar?Mr>
vo?dtnatn<)
chara[N]i
FILE?<Mit>
pntid<*Enter■?tnn<ie>i
print"*Theor<tMlwtnnc?)1
pvt?(a>s
pnM((aTheMrtnga/itrmo4iftedi*>i
?irepy(??*Welrome!*)t
fun<l>S
<Xilwfopea(.gtlile.)|
fprinrftgt.?蘇??..).
fck?e<otft)t
24.規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:
除了字符串前導(dǎo)的*號之外,將串中其他*號全部刪除。在編寫函數(shù)時,
不得使用c語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符
串中的內(nèi)容應(yīng)當(dāng)是:
****ABCDEFG。
注意:部分源程序在文件PR0G1.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括
號中填入你編寫的若干語句。
#include<stdin,h>
voidfun(rhar?■)
main()
chars[81];voidNONO();
printf(*Enterastring:\nN);geu(B);
fun(、):
|irintf("Thestringafterdeleted:\n");puts(?);
NONO():
voidNONO()
!/?本南數(shù)用于打開文件.輸入數(shù)據(jù),調(diào)用函數(shù),臨出數(shù)據(jù),關(guān)閉文件.?/
FILE?in,?oul;
mtt;chars[81J;
in=fopen("in.dat",**r**);
outwfopcn("out.dat**.ww*);
fw(i=
f?canf(in.**%?*,?);
fun(?)(
fprinlf(out.H%?\n**..);
(cloec(in);
IcloseCout);
25.使用VC++2010打開考生文件夾下progl中的解決方案。此解決方
案的項目中包含一個源程序文件progl.c。在此程序中,定義了NxN的
二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun(),其功能是求出數(shù)組
周邊元素的平均值并將其作為函數(shù)值返回給主函數(shù)中的s。例如,若a
數(shù)組中的值為
01279
19745
23831
45682
59141
則返回主程序后s的值應(yīng)為3.375o
注意:部分源程序在文件progl.c中。
請勿改動主函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花
括號中填入你編寫的若干語句。
試題程序:
1#include<stdio.h>
2#include<conio.h>
3#include<stdlib.h>
4#defineN5
5doublefun(intw[][n])
6{
7
8)
9voidmain()
10{
11FILE*wf;
12inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,
13inti,j;
14doubles;
15system("CLS");
16printf("***Thearray***\n");
17for(i=0;i<N;i++)
18{for(j=0;j<N;j++)
19{printf("%4d",a[i][j]);}
20printf("\n");
21}
22s=fun(a);
23printf("***TheResult***\n");
24printf("Thesumis:%lf\n",s);
25/******************/
26wf=fopen("out.dat","w");
27fprintf(wf,"%if',s);
28fclose(wf);
29/******************/
30}
26.下列程序定義了MxM的二維數(shù)組,并在主函數(shù)中自動賦值。請編
寫函數(shù)fun(intarr口[M]),該函數(shù)的功能是使數(shù)組左下半三角元素中的
值全部置成0。例如,arr數(shù)組中的值為:
I23
■rrw4S6
7?。
中的值應(yīng)力.
023
art-00?
OOo
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括
號中填入所編寫的若干語句。
試題程序:
ttVen*(K
MidtMftrVzdio.
9include<*ldbK
8includeVtime.Ii>
adefineM5
voidpror<mtarr£:二M2)
voidmainC)
mtart,M2[M^?i?ji
*ywtrm(*Cl.S*>?
p<rtnt((*????Thearray????\n*”
(uttMgiird)time<NULD)i
foc(i-O.i<M11++1
m一個i?機(jī)的
-famil>M10s
print(<*K4dM??rtLiJUJ)i
pnntf(N\n*)s
pfoc^arr)?
prtmfCTHERESVLT\tTh
forG-0t><^Msi?*)
,or?j?0"V+
pnixfC-%4d'.?Mi,
27.m個人的成績存放在score數(shù)組中,請編寫函數(shù)proc(),它的功
能是:將高于平均分的人數(shù)作為函數(shù)值返回,將高于平均分的分?jǐn)?shù)放
在up所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為100,80,76,
60,59,48,43,35,59時,函數(shù)返回的人數(shù)應(yīng)該是4,up中的數(shù)據(jù)
應(yīng)為100,80,76,95o注意:部分源程序給出如下。請勿改動
main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號
中填入所編寫的若干語句。試題程序:
itV.idlib.Ii>
?tincludeVcomo.b>
SinHifde<Btdio.
includeV-mng,h>
iMprocCkiM?core{]?intm?intup£j)
〃?內(nèi)高于f均分MA.Ct
votd01*19()
iaii?n?up(9;i
ini,IOO.8O.76.6O.59.
4S?43?3S?9SI?
?y?trNi(d3a)?
nwproc(scorv?9?up)i
pru>tl(\ntipioihr*corv*1*":'uv\n?n);
loc(i?ON<ti.i++)
*9*id"?upLij4
28.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所
在的下標(biāo),并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index
存放最大值所在元素的下標(biāo)。
注意:部分源程序給出如下。
請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花
括號中填入你編寫的若干語句。
試題程序:
"include<timv.h>
stincludeVstdlib.h>
9includeVstdio.h>
void(un(in(a[1?int?max?in(?d)
vntHmnin()
inii,x[20j,max*index*n'10(
sranf((unsigned)time(NULL))t
for(i=(hiV=iui++)
(
x[ij=rand()%50t
printf(M%4dH?x£i]>j"輸出一個fill機(jī)數(shù)"I
prinif<*\n")?
fun(x?n?&max?&index)?
printf("Max-%5d.Index=%1d\n".max.in-
dex)?
29.使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案
的項目中包含一個源程序文件progl.co在此程序中,請編寫函數(shù)fun(),
該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函
數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”。回文字符串是指順
讀和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串
123312就不是回文。注意:部分源程序在文件progl.c中。第3部分無紙
化考武題庠請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)
fun()的花括號中填入你編寫的若干語句。試題程序:
1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];1OFILE*o
ut;llchar*test[]={"1234321","123421","123321","abcdCBA");12inti;13pri
ntf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf(
"YES\n");l9else20printf("NO\n");2]/******************/22out=fopen("
out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26e
lse27fprintf(out,"NO'n");28fclose(out);29/******************/30}
30.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返
回此值。
例如,若輸入字符串123412132,輸入字符為1,則輸出3。
注意:部分源程序在文件PR0G1.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括
號中填入你編寫的若干語句。
Winclude<stdio.h>
itincludc<string,ii>
M8!
intfun(rhnr?charc)
main()
|chura;MJ,ch;
voidNONO():
printf("\nPlmseenterastring:");grb?(a);
printf(**XnPleaseenterachar:"I;ch=grtchar();
printf(w\nThcnumberofthecharis:%d\n**.fun(?.ch));
NONO():
voidNONO()
|/?本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù).檢出數(shù)據(jù),關(guān)閉文件。*/
inii:
FILE*rf,?M1
rhara(Mj,b(M],ch;
rf-fbf)cn("imqht"Jr");
wf=r(>prn("ouLdal'*w");
fbr(is0;i<10?i?-f)|
(Bcnnf(rf,M%?**.a);
ftwanf(if,M%sM.b);
ch=?b;
fprinlf(wf.".ch.fun(a?ch));
(clone(if);
fcl<we(wf);
四、2.程序修改題(10題)
31.下列給定程序中,函數(shù)fun()的功能是:給一維數(shù)組a輸入任意4個
整數(shù),并按如下的規(guī)律輸出。例如輸入1,2,3,4,程序運(yùn)行后輸出以
下方陣:
4123
3412
2341
1234
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意;不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序;
#include<stdio.h>
#defineM4
voidfun(inta)
{inti,j,k,m;
printf("Enter4number:");
for(i=0;i<M;i++)scanf("%d",&a[i]);
printf("\n\nTheresult:\n\n");
for(i=M;i>0;i—)
{k=a[M-l];
for(j=M-l;j>0;j—)
a[j]=a[j+l];
a[0]=k;
for(m=0;m<M;m++)printf("%d",a[m]);
printf("\n");
)
)
main()
{inta[M];
fun(a);printf("\n\n");
32.給定程序MODE.C中函數(shù)fun的功能是:從整數(shù)1到55之間,選
出能被3整除、且有一位上的數(shù)是5的那些數(shù),并把這些數(shù)放在b所指
的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中al放個位數(shù),
a2放十位數(shù)。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
1finclude<stdio*h>
2intfun(int*b)
3{intalra2ri-0;
4for(k-10;k<?55;k++){
5*****?**/
6a2-k/10;
7al-k-a2*10;
8if((k%3??0&&a2-?5)||(k%3-0
&&al?=5))
9(b(i)?k;
10}
11/************found***?????*???/
12returnk;
13}
14main()
15{inta[100],krm;
16m?fun(a);
17printf("Theresultis:\nw);
wn
18for(k=0;k<m;k++)printf(%4dr
a[k]);printf(H\nw);
19
33.給定程序MOD11.C中函數(shù)。fun的功能是:從3個紅球,5個白
球,6個黑球中任意取出8個作為一組,進(jìn)行輸出。在每組中,可以沒
有黑球,但必須要有紅球和白球。
組合數(shù)作為函數(shù)值返回。正確的組合數(shù)應(yīng)該是15。程序中i的值代表紅
球數(shù),j的值代表白球數(shù),k的值代表黑球數(shù)。
請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1?include<stdio.h>
2intfun()
3(intifjrsum*0;
4printf(w\nTheresult:\n\n");
5/*吉****★★★★***found**?*****??**?/
6for(i*0;i<=3;i++)
7(for(j?l;j<=5;j++)
8{k?8-i-j;
9/…★………found
10if(K>?0&&K<-6)
11{sum*sum4-l;
12printf("red:%4dwhite:
vv
%4dblack:14d\n,irjrk);
13
14
15
16returnsum;
17)
18main()
19{intsum;
20sum=fun();
M
21printf("sum?%4d\n\nrsum);
22)
34.給定程序M0D11.C中函數(shù)fun的功能是:從n(形參)個學(xué)生的成績
中統(tǒng)計出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在
形參aver所指的存儲單元中。
例如,若輸入8名學(xué)生的成績:80.5607290.59851.58864則低于
平均分的學(xué)生人數(shù)為:4(平均分為:75.5625)。
請改正程序中的錯誤,使它能統(tǒng)計出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1;#include<stdio.h>
2!#defineN20
3intfun(float*srintn,float
*aver)
4(floatave#t?0.0;
5intcount?0rk,i;
6for(k-0;k<n;k++)
7/??foundmff*/
8t=s[k];
9ave?t/n;
10for(i?0;i<n;i++)
11if(s[i]<ave)counts-1-;
12/………★…found……?……/
13*aver?Ave;
14returncount;
15I
16main()
17{floats[30],aver;
18intm,i;
19printf("\nPleaseenterm:
ww
scanf(%dr&m);
20printf(R\nPleaseenter%dmark:
\n”,m);
21for(i-0;i<m;i++)scanf
M
(%frs+i);
22printf(w\nThenumberofstudents:
%d\n”,fun(s,m,&aver));
wM
23printf(Ave?%f\nraver);
24)
35.下列給定程序是建立一個帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各
結(jié)點(diǎn)數(shù)據(jù)域賦值。函數(shù)fun()的作用是求出單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))
數(shù)據(jù)域中的最大值,并且作為函數(shù)值返回。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedefstructaa
{intdata;
structaa*next;
}NODE;
/*************foun(
fun(NODE*h)
{intmax=-1;
NODE*p;
p=h->next;
while(p)
{if(p->data>max)
max=p->data;
/*************found**************/
p=h->next;
returnmax;
}
outresult(ints,FILE*pf)
{fprintf(pf,"\nThemaxinlink:%d\n
NODE*creatlink(intn,intm)
{NODE*h,*p,*s,*q;
inti,x;
h=p=(NODE*)malloc(sizeof(NODE));
h->data=9999;
for(i=l;i<=n;i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%m;s->next=p->next;
p->next=s;p=p->next;
p->next=NULL;
returnh;
)
outlink(NODE*h,FILE*pf)
{NODE*p;
p=h->next;
fprintf(pf,"\nTheLIST:\n\nHEAD");
while(p)
{fprintf(pf,>%d",p->data);
p=p->next;}
fprintf(pf,"\n");
)
main()
{NODE*head;intm;
clrscr();
head=creatlink(12,100);
outlink(head,stdout);
m=fun(head);
printf("\nTheRESULT:\n");outresult
(m,stdout);
)
36.下列給定程序中,函數(shù)fun。的功能是:判斷一個整數(shù)m是否是素
數(shù),若是返回L否則返回0。在main()函數(shù)中,若fun()返回1則輸出
YES,若fun()返回0則輸出NO!
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(intm)
{intk=2;
while(k<=m&&(m%k))
k++
if(m=k)
return1;
elsereturnO;
)
main()
{ihtn;
clrscr();
printf("\nPleaseentern:");
scanf("%d",&n);
if(fun(n))printf("YES\n");
elseprintf("NO!\n");
37.給定程序MOD11.C中函數(shù)fun的功能是:為一個偶數(shù)尋找兩個素
數(shù),這兩個素數(shù)之和等于該偶數(shù),并將這兩個素數(shù)通過形參指針傳回主
函數(shù)。
請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
?include<stdio.h>
2?include<math.h>
3voidfun(inta,int*b,int*c)
4(int
5for(i-3;i<-a/2;i-i42)(
6/?…………found…?………/
7Y-1;
8for(j-2;j<-sqrt((double)i);
j++)
9if(i%j??0)y?0;
10if(y-1)(
11j/??***********foundw*******?**??/
12!d?-a-i;
13for(j-2;j<-sqrt((double)d);
14if(d%j??0)y?0;
15if(y—1)
16{*b?i;*c*d;}
17
18
19
20main()
21(inta,bfc;
22do
23{printf(w\nlnputa:");scanf
LW,,a);)
24while(at2);
25fun(a,6c);
ww
26printf(\n\n%d?%d.%d\nra#brc);
27
38.數(shù)列中,第一項為3,后一項都比前一項的值增5。下列給定程序中,
函數(shù)fun()的功能是:計算前n(4SnS50)項的累計和。在累加過程中把那
些被4除后余2的當(dāng)前累加值放入數(shù)組中,符合此條件的累加值的個數(shù)
作為函數(shù)值返回主函數(shù)里。如,當(dāng)n的值為20時,該數(shù)列為3,8,13,
18,23,28,93,98o符合此條件的累加值應(yīng)為42,126,366,
570,1010o
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineN20
intfun(ihtn,int*a)
/*************found*************/
{inti,j,k,sum;
sum=0;
for(k=3,i=0;i<n;i++,k+=5)
{sum=sum+k;
/************found***************/
if(sum%4=2)
a[j++]=sum;
/*************found**************/
returnj;
main()
{inta[N],d,n,i;
printf("\nEntern(4<=n<=50):");
scanf("%d",&n);
d=fun(n,a);
printf("\n\nTheresult:\n");
for(i=0;i<d;i++)printf("%6d",a[i]);
printf("\n\n");
39.假如整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給定的程序中,
函數(shù)fun()的功能是:刪除數(shù)列中值為X的元素。N中存放的是數(shù)列中
元素的個數(shù)。
請改正程序中的錯誤,使它能夠得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineN20
fun(int*a,intn,intx)
{intp=0,i;
a[n]=x;
while(x!=a[p])
P=P+1;
if(p==n)return-1;
else
{for(i=p;i<n;i++)
/*************found**************/
a[i+l]=a[i];
returnn-1;
main()
{intw[N]={-3,0,1,5,7,99,10,15,30,90),
x,n,i;
n=10;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%5d",w[i]);
printf("\nlnputx(todelete):");
scanf("%d",&x);
printf("Delete:%d\n",x);
n=fun(w,n,x);
if(n==-l)printf("***Nobefound!
***\n\n");
else
{printf("Thedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%5d",
w[i]);printf("\n\n");
40.給定程序M0D11.C中函數(shù)fun的功能是:根據(jù)以下公式求加值,
并作為函數(shù)值返回。
例如,給指定精度的變量eps輸入0.0005時,應(yīng)當(dāng)輸出Pi=3.141480。
23353573579
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
1tinclude<math.h>
2[finclude<stdio.h>
3jdoublefun(doubleeps)
4?{doubles,t;intn?l;
5s-0.0;
6?/***********wfound*****?*?*?*?
7t-0;
8while(t>eps)
9(s+?tj
10;t-t?n/(2*n>l);
11!
12;)
13\???***??**?*found*#****??**??
14\
return(s);
15?
16fimain()
17?{doublex;
18!printf("\nPleas?entera
precision:H);scanf(w%lf&x)
19printf("\neps?%lfr
w
Pi-%lf\n\n,xrfun(x));
20}
五、程序改錯題(2題)
41.
下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字
母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,
則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注
意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
耳tftclvdeVctMwo.
includeVstdio,b>
9includeVzring.h>
char?lun《char<t[J>
infii
//????found????
Il“i(iJ<?',',)
//????????
tt[i]?
rrtwraCft)i
voidm>in(>
char
pnntfC*\nf*Se*MenteraMnog:">?
get?(tt)t
pnntfCv\nTh?EokMnng*B>KAna?fwn(tt))?
42.
下列給定程序中,函數(shù)proc()的功能是:計算并輸出下列級數(shù)的前N
項之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3
/2+4/3+(N+l)/N例如,若q的值為57,則函數(shù)值為59.593612。
請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main
()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
「includeVpt(UiKk>
UincludeVcottioib>
9include<stdicxh>
//????fownd????
doubleproHdoubleq>
minsdovkle
wh?Je<.<1)
ft????|OUM|????
?urn-sum4-<nI>/nt
■++<
//????fou?4????
rvtiaraMicni
voidmainC>
By?i<tn(*CLS*)i
pnntf(*%(\n-?proc<^0)H
六、操作題(2題)
43.下列給定程序中,函數(shù)fun()的功能是:按順序給s所指數(shù)組中的元
素賦予從2開始的偶數(shù),然后再按順序?qū)γ?個元素求一個平均值,并
將這些值依次存放在w所指的數(shù)組中。若s所指數(shù)組中元素的個數(shù)不是
5的倍數(shù),多余部分忽略不計。例如,s所指數(shù)組有14個元素,則只對
前10個元素進(jìn)行處理,不對最后的4個元素求平均值。
請改正函數(shù)fun()中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineSIZE20
fun(double*s,double*w)
{intk,i;doublesum;
for(k=2,i=0;i<SIZE;i++)
{s[i]=k;k+=2;}
sum=0.0;
for(k=0,i=0;i<SIZE;i++)
{sum+=s[i];
/*************found**************/
if(i+l%5==0)
{w[k]=sum/5;Sum=0;k++;)
)
returnk;
)
main()
{doublea[SIZE],b[SIZE/5];
inti,k;
k=fun(a/b);
printf("Theoriginaldata:\n");
for(i=0;i<SIZE;i++)
(
if(i%5==0)printf("\n");
printf("%4.0f"/a[i]);
}
printf{"\n\nTheresult:\n");
for(i=0;i<k;i++)printf("%6.2f,b[i]);
printf("\n\n");
44.以下程序的功能是:輸出a、b、c三個變量中的最小值。
#include<stdio.h>
main()
{inta,b,c,tl,t2;
scanf("%d%d%d",&a,&b,&c);
tl=a<b?[];
t2=c<tl?[];
printf("%d\n",t2);
參考答案
1.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部
變量(值為3)o函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,
fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
2.本程序的功能是求a的b次方本程序的功能是求a的b次方
3.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
4.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性
注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋
一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
5.8
6.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)
7.efghefgh解析:函數(shù)ss的作用是讓形參指針s指向該字符串的右半部
分。主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str,并
初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可
知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即
指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(str)
的返回值)所指向的字符串為“efgh”。
8.HowdoessheHowdoesshe解析:strcpy(strl,si);字符串拷貝函數(shù),
作用是將字符串si拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str
的長度,函數(shù)的值為字符串中實際長度,不包括在內(nèi)。本題中
strlen(strl)的值為13,貝IJstrcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于
strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe
9.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,
代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)
組中前面兩項的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語
句if(i%2==0)pfintf(,\\n,)是要將數(shù)組中的元素以每行2個的形式輸出。
10.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用
在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=l時,因為if語句條件
不滿足,所以直接執(zhí)行printf(1%d\\n',i++);輸出1,同時i自加1;執(zhí)行第
二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行
printf(%d\\n;i++);輸出3,同時i自力口1;執(zhí)行第三次for循環(huán)時,i=5,if
語句條件滿足,所以執(zhí)行printf(%d\\n,,i),輸出5,然后break語句跳出了
for循環(huán)。
11.C
12.C
【答案】:C
【知識點(diǎn)】:需求分析階段的任務(wù)
【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定
軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他
有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解
決目標(biāo)系統(tǒng)“做什么”的問題。可分為需求提出、需求描述及需求評審
三個階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測試計
劃,故選C。
13.B
解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對2
求余非零時輸出ASCII碼為i+b)的字符;當(dāng)i的值對2求余為零時輸
出ASCII碼為i+c的字符。分析程序可知本題選B。
14.DW通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用、退役的
過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該
軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。軟件生命周期
的主要活動階段為:可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開
發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可
能方案,制定完成開發(fā)任務(wù)的實施計劃。
W需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)
確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提
交評審。
\n軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的
基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
\n軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。即完成源
程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測
試計劃。
\n軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編
寫測試分析報告。
\n運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),
根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。
\n本題答案是D)o
\n
15.D
16.D
double*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量
a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If,p)表示用
鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在
輸入double型數(shù)據(jù),格式控制符必須用%If。否則,數(shù)據(jù)不能正確輸
入。所以選項D正確。
17.D
18.B
考查簡單的C程序數(shù)組和循環(huán)。for循環(huán)是指i=0,如果s/[3]!=0,則
i自動加1。if循環(huán)指的是s國中的元素大于等于。且小于等于9,則n
加1,所以答案為B
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CGCC 40-2019青團(tuán)
- T/CEMIA 014-2018光纖預(yù)制棒用四氯化硅充裝規(guī)范
- T/CECS 10344-2023綠色裝配式邊坡防護(hù)面層
- T/CECS 10311-2023自動測斜管
- T/CBMCA 032-2022負(fù)離子表面涂覆材料應(yīng)用技術(shù)規(guī)程
- T/CBMCA 025-2022凈化海砂
- T/CARSA 1.5-2022基于低空無人機(jī)的高分衛(wèi)星遙感產(chǎn)品真實性檢驗第5部分:組網(wǎng)觀測
- golang基礎(chǔ)面試題及答案
- 洪山美術(shù)面試題及答案
- 管理技巧面試題及答案
- 知識圖譜構(gòu)建與應(yīng)用試題及答案
- 湖北省武漢市2025屆高三五月模擬訓(xùn)練英語試題(含答案無聽力原文及音頻)
- 基因編輯技術(shù)的臨床應(yīng)用與未來發(fā)展方向-洞察闡釋
- 靜脈輸液不良反應(yīng)應(yīng)急預(yù)案與處理流程
- 《論亞太局勢》課件
- 基于深度學(xué)習(xí)的日志異常檢測技術(shù)研究
- 大學(xué)生勞動就業(yè)法律問題解讀(華東理工大學(xué))智慧樹知到見面課、章節(jié)測試、期末考試答案
- 水電站收購分析報告
- 水泥粉助磨劑項目可行性研究報告發(fā)改委立項模板
- 2025年浙江寧波市余姚市糧食收儲有限公司招聘筆試參考題庫附帶答案詳解
- 濟(jì)南公共交通集團(tuán)有限公司招聘筆試題庫2025
評論
0/150
提交評論