版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2023年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試
C語言程序設(shè)計(jì)預(yù)測試題(含答案)
學(xué)校:班級(jí):姓名:考號(hào):
一、2.填空題(10題)
1.數(shù)據(jù)庫保護(hù)分為:安全性控制并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
2.下列程序的運(yùn)行結(jié)果是____o
#include<stdio.h>
main()
{intfun();
fun();
)
fun()
{staticinta[4]={1,2,3,4);
inti:
for(i:0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf("\n");
)
3.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分
為三種;前序遍歷、【】遍歷和后序遍歷。
4.有以下程序
main()
{intt=l,i=5;
for(;i>=0;i—)t*=i;
printf("%d\n",t);
)
執(zhí)行后輸出結(jié)果是______o
5.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,不
能進(jìn)行人隊(duì)運(yùn)算。這種情況稱為【】。
6.以下程序的功能是計(jì)算:s=l+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>
main()
{intt=O,s=O,i;
for(i=l;i<=5;i++)
{t=i+;s=s+t;}
printf("s=%d\n",s);
)
7.下列程序的運(yùn)行結(jié)果是____o
main()
{inta=l,b=10;
do
{b-=a;a++;}while(b—<0);
printf("%d,%d\n",a,b);
)
8.下面程序的輸出結(jié)果是()。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei—;}
i+=ll;
a+=i;
)
printf("%d\n",A);
}
9.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為o
10.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)
組每列元素中的最小值,并計(jì)算它們的和值。和值通過形參傳回主函數(shù)
輸出。請(qǐng)?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][Nl,int*sum)
{inti,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=l;j<M;j++)
if(a[k][i]>aU][i])k=j;
s+=a[k][i];
)
*sum=s;
)
main()
{intx[M][N]={3,2,5,1,4,l,8,3},s;
SumColumMin([]);
printf("%d\n",s);
二、單選題(10題)
11.
設(shè)有定義iRtrurtIchartnadtf)2j;inlnum!sdauUrniun2;!t)?t2;,
若變量均已正確賦初值,則以下語句中
錯(cuò)誤的是()o
A.tl=t2;
B.t2.numl=tl.numl;
C.t2.mark=tl.Mark
D.t2.num2=tl.hum2;
12.
(3)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是
().
A)需求分析B)詳細(xì)設(shè)計(jì)C)軟件設(shè)計(jì)D)概要設(shè)計(jì)
13.有下列程序:
#include<stdio.h>
main()
I
charb[]="happychristmas",k;
for(k=0;b[k];k++)
I
if(b[k]<<m')
b[k]=b[k]-'a'+'A';
printf("%c",b[k]);
程序執(zhí)行后的輸出結(jié)果是0。
A.hAppychristmAs
B.happychristmas
C.HAppyCHrlstmAs
D.HAPPYCHRISTMAS
14.下列程序執(zhí)行后的輸出結(jié)果是()。
main
{charx=OxFFFF;printf("%d\n",x-);}
A.-32767B.FFFEC.lD.32768
15.以下能正確定義一維數(shù)組的選項(xiàng)是____o
A.inta[5]={0,123,4,5};
B.chara[]={0,l,2,3,4,5};
C.chara={'A','B','C');
D.inta[5]="0123";
16.有以下程序:
#include<stdio.h>
#include<string.h>
main()
{chara[]="THIS\O",*b="OK\0\0”;
printf("%d,%d,%d,%d”,strlen(a),sizeof(a),strlen(b),sizeof(b));
)
程序運(yùn)行后的輸出結(jié)果是()o
A.4,6,2,4B.4,4,4,1C.6,5,2,1D.6,4,2,4
17.以下不屬于C語言整數(shù)的是()。
A.12fB.25uC.-32D.+20L
18(28)以下對(duì)C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是().
A)定義了聯(lián)合變最后,即可引用該變量或該變域中的任意成員
B)一個(gè)聯(lián)合變量中可以同時(shí)存放其所有成員
C)聯(lián)合中的各個(gè)成員使用共同的存儲(chǔ)區(qū)域
D)在向聯(lián)合中的一個(gè)成員進(jìn)行賦值時(shí),聯(lián)合中其他成員的值不會(huì)改變
19.假定下列x和y均為int型變量,則不正確的賦值為()。
A.x+=y++B.x++=y++C.x=++yD.++x=++y
20一個(gè)長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一
個(gè)節(jié)點(diǎn),A以步長為1向前移動(dòng),B以步長為3向前移動(dòng),一共需要同
時(shí)移動(dòng)多少步A和B才能再次指向同一個(gè)節(jié)點(diǎn)0。
A.99B.100C.101D.49E.50F.51
三、程序設(shè)計(jì)題(10題)
21.
編寫函數(shù)fun(),其功能是:根據(jù)以下公式求的值(要求精度0.0005,
即某項(xiàng)小于0.0005時(shí)停止迭代)。
?,,1^.12,I2J,1234.12-a
2113535T157135-
程序運(yùn)行后,若輸入精度0.0005,則程序應(yīng)輸出為3.14…。注意:
部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)
容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語句。試題程序:
tftcludch>
3inciiMkVcoaicxh>
?mcludrVath>h>
doublefun(doubleep?)
(
voidmain()
doublexi
pnnif<*1npuiep?i*)i
BcanfLW.A*
prmtlC^Xfwp*,%M?PI-Kl(\a9?
??fun(s>)i
22.n個(gè)人的成績存放在score數(shù)組中,請(qǐng)編寫函數(shù)proc(),它的功能是
將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在down
所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,
84,60,76,100}時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,down中的數(shù)據(jù)應(yīng)為
40565960o注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其
他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干
語句。試題程序:
9aneludek>
9inriudeVcooio.h>
Stnrludr<Ndxxh>
SincludeV,tr?ng.h>
uMproc(miscorrf;.mt???m4owrCl>
roidmaiii()
inil?n?down[9]i
mitcorrO—<99。*0?40*”?5九弘?
?0?7<.|00|1
?ywtem(*CLS*)i
pvoe<Mx>r*?9?down)?
pnntf(*\ndowntotbeaverage?corraret*)?
k>r<i?Oiynil+?>
pnntf(*%d*?downf|]>i
prmt"?\n*)t
23.
請(qǐng)編寫函數(shù)proc(),它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。
sum=l-x+x2/2!-x3/31+...+(-l*x)n/n!例如,當(dāng)n=23,x=0.3時(shí),
函數(shù)值為0.740818。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()
函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編
寫的若干語句。試題程序:
*mcluje<.?tdbhb>
8include<eomo,h>
<mdidh>
”Vaih.h>
doubleproctdoublr??mi?>
voidmaifi<)
*CLS*>(
pnfitl<*K(M?pror<0.3?23))i
24.
編寫函數(shù)proc,它的功能是:計(jì)算和輸出下列級(jí)數(shù)的和。S=1/(12)
+1/(23)+...+"(n(n+l))例如,當(dāng)n=20時(shí),函數(shù)值為0.952381。
注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的
任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試
題程序:
stndtxl*Vjirtlbb.h>
Utndude<conidh>
,indud#b>
doubleproctmin>
VOtdBTVItflC>
■ee<"CLS*)I
prtni?*Sf\ne?proc(IO>)^
25.使用VC++2010打開考生文件夾下progl中的解決方案。此解決方
案的項(xiàng)目中包含一個(gè)源程序文件progl.co在此程序中,編寫函數(shù)fun(),
其功能是將s所指字符串中ASCII值為奇數(shù)的字符刪除,將剩余字符形
成的新字符串放在t所指數(shù)組中。
例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符A的
ASCII值為奇數(shù),字符1的ASCH值也為奇數(shù),都應(yīng)當(dāng)刪除,其他依
此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDF24”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花
括號(hào)中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*s,chartf])
(
)
main()
(
chars[100],t[100],Msg[]-'Pleaseenterstrings:";
printf(Msg);
scanf("%s",s);
fun(s,t);
printf("\nTheresuitis:%s\n”,t);
)
26.使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案
的項(xiàng)目中包含一個(gè)源程序文件prog“。在此程序中,定義了NxN的二
維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是使
數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為197238456
則返回主程序后a數(shù)組中的值應(yīng)為2181426164512注意:部分源程序在
文件progl.c中。請(qǐng)勿改動(dòng)主函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅
在函數(shù)fun。的花括號(hào)中填入你編寫的若干語句。試題程
序:l#include2#include3#include4#include5#defineN56voidfun(inta[][N],int
m)7{89}lOmain()ll{l2inta[N][N],m,i,j;13FILE*out;14printf("***Thearray
***\n");15for(i=0;i<n;i++)
16{for(j=0;j<n;i++)
27{for(j=0;j38{for(j=O;j<n;j++)
39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*******
**found********/44}lvoidfun(inta[][nl,intm)2{3inti,j;4for(j=0;j<n;j++)
5:for(i=0;i<=j;i++)6:a[i][j]=a[i皿*m;/*上三角元素中的值乘以m*/
27.編寫函數(shù)fun,其功能是:求出1?1000之間能被7或11整除,但
不能同時(shí)被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通
過n返回這些數(shù)的個(gè)數(shù)。
注意:部分原程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括
號(hào)中填人你編寫的若干語句。
#inr|udt*<h>
voidfun(ini?a,int?n)
tnain()
Iiniaa[1000],n,k(
voidNONO();
fun(aa,&n);
H>r(k=0;k))
if((k?!)%10==0)pnntf(M\nM):
e!wprintf(**%5d*.aak]);
NONO();
voidNONO()
”?本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用fun雨數(shù)?輸出數(shù)據(jù),關(guān)閉文件?/
in<?a[1000]en,k;
FILEafp:
S-foprn("out.dat"w**)j
fun(aa.An);
fnr(ks0;k<n;k4?)
w
if((k?1)%10??O)fprintf(fpt*\n);
rlwfprintf(fp.*%5d".aa[k]):
岫y(fp);
28.
編寫函數(shù)intproc(intlim,intaa[M]),該函數(shù)的功能是求出小于或等于
lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)。例如,
若輸入12時(shí),則輸出:235711。注意:部分源程序給出如下。請(qǐng)
勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花
括號(hào)中填入所編寫的若干語句。試題程序:
*includeVstdlib.h>
:include<conio.h>
辛includeVstdio.h>
宰defineM100
intproc(intlim*intaa[M])
voidmain(>
(
int
intarrfMli
^ystemC"Cl^")i
printfL輸入?個(gè)整數(shù)?),
"%d"?&limit)?
sum=proc(limit?arr)i
for(i-10;iVsum?i++)
(
if(i%10==0&&i!-0)〃每行輸出10個(gè)數(shù)
printf("\n*)?
printf(H%5d*?arr[ij)i
}
</n;j++)
</n;j++)
<n;i++)
</n;i++)
29.請(qǐng)編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的
數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放
在形參n所指的存儲(chǔ)單元中。
例如,若二維數(shù)組中的數(shù)據(jù)為
13233343
14243444
15253545
則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括
號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
voidproc(int(*s)[103,int*b,int*n,intrain.intnn)
(
}
voidmain
(
intarr[10][10]={{33,33,33,33),{44,44,44,44},
{55,55,55,55}),i,j;
inta[100]={o),n=o;
printf("Thematrix:\n");
for(i=0;i<3;i++)
(
for(j=O;j<4;j++)
printf("%3d",arr[i][j]):
printf("\n");
)
proc(arr,a,&n,3,4):
printf("TheAarray:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]):
printf("\n\n");
30.下列程序定義了MxM的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編
寫函數(shù)fun(intarr[][M]),該函數(shù)的功能是使數(shù)組左下半三角元素中的
值全部置成0。例如,arr數(shù)組中的值為:
I23
■rrw4S6
789
MlMtWRFrf?rrCtOI中仲值應(yīng)力.
023
f00<
AAA
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc。的花括
號(hào)中填入所編寫的若干語句。
試題程序:
ssmeltMlkVCOIMXh>
:£meludrVadic.h>
9include<Csldbk.h>
smcludrVlime.h>
9defineM5
midpfor<IMarr[]£M2>
Eidmam<)
initrr£M'[M,.i?ie
ay?iem(*CLS")?
pniiifc?????Tbtarray????\?*)?
?r?nd《(urvHgrMxl)timc<NULL))i
(or(i-Oit^Mi>4"+>
//i*t-個(gè)■機(jī)的5?SM?
r?nd<>MIOI
print”?%4d"?.rr[i]3)B
printf(a\n*)i
proc^arr)(
pnmfCTHERESVLT\n*)>
fort*>
foHj?0,?+)
pEMf(?為..tfG:[j]”
四、2.程序修改題(10題)
31.給定程序MODU.C中函數(shù)fun的功能是:讀入一個(gè)字符串(長度<
20),將該字符串中的所有字符按ASCII碼升序排序后輸出。
例如,若輸入:edeba,則應(yīng)輸出:abcdeo
請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1linclude<stdio.h>
2linclude<string.h>
3voidfun(chart[])
4(
5charc;
6int1,j;
7/*?????****found***?*?*?***/
8for(i?strlen(t);i;i--)
9for(j?0;j<i;j++)
10/??********found**w********/
11if(t(j)<t[j+1))
12(
13c-t(j);
14t(j)-t[j+1];
15t(j*1]-c;
16
17
18main()
19
20chars[81];
21printf("XnPleaseenteracharacter
string:R);
22gets(s);
23printf(w\n\nBeforesorting:\n
\W,s);
24fun(s);
25printf("XnAftersortingdecendingly:
\n\W,s);
26
32.下列給定程序中,函數(shù)fun()的功能是:通過某種方式實(shí)現(xiàn)兩個(gè)變量
值的交換,規(guī)定不允許增加語句和表達(dá)式。例如變量a中的值原為8,
b中的值原為3,程序運(yùn)行后a中的值為3,b中的值為8。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(int*x,inty)
intt;
/***************'£iQund***************/
t=x;x=y;
/*******不不不不不不不不found不不不不不不*********/
return(y);
)
main()
{inta=3,b=8;
clrscr();
printf("%d%d\n",a,b);
b=fun(&a,b);
printf("%d%d\n",a,b);
)
33.下列給定程序中函數(shù)fun()的功能是:將長整型數(shù)中每一位上為奇數(shù)
的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在沖。高位仍在高位,低位仍在低位。
例如當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為75310
請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conlo.h>
voidfun(longs,long*t)
{intd;
longsl=l;
/***************************/
t=0;
while(s>0)
{d=s%10;
/*************^Qund**************/
if(d%2==0)
{*t=d*sl+*t;
sl*=10;
s/=10;
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:%ld\n",t);
)
34.給定程序M0D11.C中函數(shù)fun的功能是:從低位開始取出長整型
變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在1中。高位仍在高位,
低位仍在低位。
例如,當(dāng)S中的數(shù)為:7654321時(shí),t中的數(shù)為:753lo
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1tinclude<stdio.h>
2Z************found****?*******/
3voidfun(longs,longt)
4{longsl-10;
5*t-s%10;
6while(s>0)
7(s■s/100;
8*t-s%10,si+*t;
9/?***w*******found*******?***?/
10si■sl*100;
11)
12)
13main()
14{longsrt;
15printf("\nPleaseenters:;
R
scanf("%ld#&s);
16fun(sr&t);
17printf(wTheresultis:%ld\n",t);
18
35.下列給定程序中,函數(shù)fun()的作用是,將字符串tt中的大寫字母都
改為對(duì)應(yīng)的小寫字母,其他字符不變。例如,若輸入"Ab,cD",則輸出
"ab,cd"0
請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。
注童:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*fun(chartt[])
(
inti;
for(i=0;tt[i];i++)
/***************************/
{if(('A,<=tt[i]||(tt[i]<='z'))
tt[i]+=32;}
return(tt);
)
main()
{inti;
chartt[81];
clrscr();
printf("\nPleaseenterastring:");
gets(tt);
printf("\nTheresultstringis:\n%s",fun(tt));
)
36.給定程序M0D11.C中函數(shù)fun的功能是:將s所指字符串的正序
和反序進(jìn)行連接,形成一個(gè)新串放在t所指的數(shù)組中。
例如,當(dāng)s所指字符串為:“ABCD”時(shí),則t所指字符串中的內(nèi)容應(yīng)為:
“ABCDDCBA”。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1?include<stdio.h>
2*include<string.h>
3/…………"und…………/
4voidfun(chars,chart)
5(
6inti,d;
7d?strlen(s);
8for(i=0;i<d;t[i]?s[1];
9for(i,0;i<d;i++)t[d+i]=
s(d-l-i);
10/?***********found*******?****/
11t[2*d-l)-,\0,;
12
13main()
14(
15chars[100],t[100];
16printf(w\nPleaseenterstringS:w);
Rw
scanf(%s#s);
17fun(s,t);
wn
18printf(\nTheresultis:%s\nrt);
19
37.給定程序MODU.C中函數(shù)fun的功能是:用下面的公式求兀的近
似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止:
一xM1.I11???
4357
例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414°
請(qǐng)改正程序中的錯(cuò)誤,使它能輸出正確的結(jié)果。
注意:不要改動(dòng)smain函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
**include<math.h>
2!finclude<stdio.h>
?
3;floatfun(floatnum)
{ints;
floatn,t,pi;
s*1;
while(t>=num)
pi=pi?t;
n?n?2;
12!s?-s;
13I/?肯?★???**■■??found*
14\t?s%n;
15
16pi-pi?4;
17returnpi;
18
19main(J
20;(floatnl,n2;
21!printf("Enterafloatnumber:w);
22;scanf(0%f&nl);
23:n2-fun(nl);
Hw
24iprintf(%6.4f\nrn2);
25?1
38.給定程序M0D11.C中函數(shù)fun的功能是:先從鍵盤上輸入一個(gè)3
行3列矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。
請(qǐng)改正函數(shù)fun中的錯(cuò)誤或在橫線處填上適當(dāng)?shù)膬?nèi)容并把橫線刪除,使
它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
1;#include<stdio.h>
2Ifinclude<string.h>
3voidfun()
4(
5inta[3][3],sum;
6intj;
7/**?******found**w*******/
8!;
9jprintf("Inputdata:w);
10;for(i-0;i<3;i*+)
11{for(j?0;j<3;j++)
12*********/
wR
13scanf(%dra[i](jj);
14
15for(i-0;i<3;
16sum-sum*a(i)[i];
Hw
17printf(Sum?%d\nrsum);
18}
19main()
20(
21fun();
22
39.下列給定的程序中,函數(shù)fun()的功能是;將s所指字符串中出現(xiàn)的
n所指字符串全部替換成t2所指字符串,所形成的新的字符串放在w所
指的數(shù)組中。在此處,要求H和t2所指字符串的長度相同。例如:當(dāng)
s所指字符串中所指的內(nèi)容為abcdabfab,tl所指字符串中的內(nèi)容為ab,
t2所指字符串中的內(nèi)容為99時(shí),結(jié)果在w所指的數(shù)組中的內(nèi)容應(yīng)為
99cd99f99。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
/*************^Qund**************/
intfun(char*s,char*tl,char*t2,char*w)
inti;char*p,*r,*a;
strcpy(w,s);
while(*w)
{p=w;El;
/*************f^ound**************/
while(r)
if(*r==*p){r++;p++;}
elsebreak;
if(*r=='\0')
{a=w;r=t2;
/*************■J^Qurid**************/
while(*r){*a=*r;a++;r++}
w+=strlen(t2);
elsew++;
)
main()
{chars[100],tl[100],t2[100],w[100];
clrscr();
printf("\nPleaseenterstringS:");
scanf("%s",s);
printf("\nPleaseentersubstringtl:");
scanf("%s",tl);
printf("\nPleaseentersubstringt2:");
scanf("%s",t2);
if(strlen(tl)==strlen(t2))
(
fun(s,tl,t2,w);
printf("\nTheresultis:%s\n",w);
)
elseprhitf("Error:strlen(t2)\n");
40.給定程序中,函數(shù)fun()的功能是:使數(shù)組中的元素的值縮小5倍。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conio.h>
floatmflO];
/*************f^ound**************/
intfun(void)
intj;
printf("Insubfuncaftercalling\n");
for(j=O;j<10;j++)
/*************^Qund**************/
print("%f",m[j]%5);
)
main()
inti;
printf("Inmainbeforecalling\n");
for(i=0;i<10;i++)
m[i]=i+20;
printf("%f",m[i]);
)
fun();
printf("\nlnmainaftercalling\n");
fbr(i=O;i<10;i++)
printf("%f",m[i]/5);
)
五、程序改錯(cuò)題(2題)
41.
下列給定程序中,函數(shù)fun的功能是:從整數(shù)10-55,查找能被3整除且
有一位上的數(shù)值是5的數(shù),把這些:故放在b所指的數(shù)組中,這些數(shù)的
個(gè)數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放位數(shù),a2放十位數(shù)。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
include<stdio.h>
i;itfun(int*b)
{intk,al,i=0;
for(k=:IO;k<=55;k++)
產(chǎn)m**********a)und*****************/
a2=k/tO;
al=k-a2*10;
if((k%3^==0&&a2==5)fl(k%3==0&&
al==5))
).
/*****************lhund*****************/
returnk;
returnk;
ma:n()
inta[100J?k,m;
m=fuh(a);
printf(n,D]eresultis:\n");
for(k=O;k<m;k++)
printf(',%4d,>[k]);
printf「\n”X
42.
下列給定程序中函數(shù)fun()的功能是:求出如下分?jǐn)?shù)序列的前n項(xiàng)之
和,結(jié)果通過函數(shù)值返回。
T2.*2T*AT*TA*1T2*n
例如,若n=5,則應(yīng)輸出8.391667。請(qǐng)改正程序中的錯(cuò)誤,使其得出
正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不
得更改程序的結(jié)構(gòu)!試題程序:
2iftcludr<Ktdlili.h*1
UmcludrVcomo?h>
smcludeV?uliQ,h>
/????iound????
(Ufl(Mlt■)
itx?一2.bwI?c.bi
4o?ble?*0?0i
,WhlkV?)
//????????
<
????<Do?i4t>a.bi
r?iuni<?>?
rOtdNMiB<>
uitfi-6,
??tMn<-CLS*)?
(E\ATWvalwol(aBctsMi
六、操作題(2題)
43.下列給定程序中,函數(shù)proc()的功能是:根據(jù)輸入的3個(gè)邊長(整
型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等
腰三角形,則返回2;若能構(gòu)成三角形則返回1;若不能,則返回0。例
如,輸入3個(gè)邊長為3,4,5,實(shí)際輸入時(shí),數(shù)與數(shù)之間以Enter鍵分隔
而不是逗號(hào)。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:
不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試
題程序:
?*ifirlodrV加點(diǎn)dh>
答includeCnuith.h>
ifiiproHsnt??mib?intc)
Ab*?>?&&a+?〉!?》
4fcbK&b--*c)
//????louad????
return11
?!”東?―■、|b""cl!>―~c>
mum2i
//????found????
eb*rviwm3i
)
ehemurnOi
voedouim()
KUa?b>r?>lMprt
prmif(M\ntnpul??b?ci?).
?enR?%d%d%di
pruidL'na**%d.b-Kd?%d\tT.a?b?c)i
Rhapceaproc(??b?c)i
prm<l("\n\nThcshape,%dXn*.shape).
44.以下程序運(yùn)行后的輸出結(jié)果是[]o
#include<string.h>
voidfun(char*s,intP,intk)
{inti;
for(i=p;i<k-l;i++)s[i]=s[i+2];
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s)
參考答案
1.完整性控制完整性控制
2.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一
遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個(gè)元素都變
為原來的2倍,然后輸出。在主程序中首先通過intfun。定義了子函數(shù)
fun(),然后再調(diào)用fun()o
3.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉
樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是
指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),
然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪
問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)
點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根
結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,
然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左
子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后
遍歷左子樹;并且遍歷左、右子樹時(shí),仍然光遍歷右子樹,然后訪問根
結(jié)點(diǎn),最后遍歷左子樹。
4.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值
相乘,最后當(dāng)i=-1時(shí)停止循環(huán).該for循環(huán)執(zhí)行完后t的值為
5*4*3*2*1*0=0,故最后輸出I的值為0。
5.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。這
個(gè)運(yùn)算有兩個(gè)基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)
rear=m+l時(shí),置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)
循環(huán)隊(duì)列非空(s=1)且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,
不能進(jìn)行人隊(duì)運(yùn)算,這種情況稱為“上溢”。
6.t*10或或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從
輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個(gè)
t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每
次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i.又因?yàn)閕在5次循環(huán)中分別等
于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、
120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填
空內(nèi)容”應(yīng)是伊10。
7.282,8解析:do...while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢
測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退
出循環(huán)。這里程序初始時(shí)a=l,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,
判斷條件b-<0不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:
a-2,b=8°
8.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值.若為真,
則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值.若仍為真,則重復(fù)
執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假,結(jié)束while語句的執(zhí)行,繼續(xù)
執(zhí)行while語句后面的語句;i=0時(shí)滿足循環(huán)條件,也滿足if的條件,
執(zhí)行語句得i=U,a=U,第2次循環(huán)不滿足if的條件,執(zhí)行i—,i=10,
執(zhí)行i+=ll;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
9.扇出扇出解析在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,
一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
lO.x&sx,&s解析:函數(shù)SumColumMin中變量k存放一列數(shù)組元素中
值最小的數(shù)組元素的行標(biāo),函數(shù)通過形參sum帶回值,sum是指針變量,
將s中的值賦給*sum??諡楹瘮?shù)調(diào)用,函數(shù)SumColumMin有兩個(gè)形參,
二維數(shù)組和指針變量,故空中應(yīng)填x,&so
11.C
結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)
組的地址賦給另一個(gè)變量t2的成員mark數(shù)組的地址。因?yàn)榈刂范际?/p>
固定值,不能被賦值。結(jié)構(gòu)體可以進(jìn)行整體的賦值。
12.A
13.C
程序定義一個(gè)字符數(shù)組b和一個(gè)字符變量kofor循環(huán)通過循環(huán)變量
k,遍歷數(shù)組b中的各個(gè)字符,通過if語句判斷當(dāng)前下標(biāo)為k的字符的
ASCII值與字符'm,的ASCII值的大小,ASCII值小于,m,的ASCII值的
字符改成大寫字母(b[k]=b[k]」a=A),然后輸出b[k]。在字符串
“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所
以程序輸出:HAppyCHrlstmAso本題答案為C選項(xiàng)。
14.C
因?yàn)閤=0xFFFF=11111111,因此當(dāng)以整型形式輸出時(shí)對(duì)應(yīng)的數(shù)為一
lo
15.B解析:選項(xiàng)A)定義的是長度為5的數(shù)組元素,但初值有6個(gè)元素,
所以錯(cuò)誤;選項(xiàng)C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上切;選項(xiàng)D)
的類型說明符錯(cuò)誤,應(yīng)改為char;選項(xiàng)B)中的0,1,2,3,4,5分別
表示對(duì)應(yīng)字符的ASCII碼,所以正確。
16.Astrlen函數(shù)求得參數(shù)中字符串的長度(不包括字符串結(jié)束標(biāo)識(shí)“\\0”)
sizeof函數(shù)求得特定類型參數(shù)所占存儲(chǔ)空間的長度。題干中a是數(shù)組名,
由于定義時(shí)省略維數(shù)大小,因此數(shù)組大小是初始化的字符個(gè)數(shù),即a的
數(shù)組大小為6。綜上,strlen(a)只計(jì)算字符力”“S”,結(jié)果為43izeof(a)
求得數(shù)組a的大小,結(jié)果為6;指針b指向一個(gè)字符串“OKWOWO",所以
strlen(b)只計(jì)算字符結(jié)果為2;sizeof(b)求得指針占用存儲(chǔ)空間
的大小,結(jié)果為4。故本題答案為A選項(xiàng)。
17.AC語言中整型常量,從表示形式來看,有十進(jìn)制、八進(jìn)制或十六進(jìn)
制;從符號(hào)位來看,有有符號(hào)整數(shù)和無符號(hào)整數(shù)兩類。選項(xiàng)A的“12廣
是float類型的實(shí)數(shù),不是整數(shù);選項(xiàng)B的“25u”屬于無符號(hào)整數(shù);選項(xiàng)
C的“-32”是十進(jìn)制形式的有符號(hào)整數(shù);選項(xiàng)D的“+20L”是十進(jìn)制形式
的長整數(shù)。故本題答案為A選項(xiàng)。
18.C
19.B
20.A
21.
【解析】此題考查的是用迭代法求多項(xiàng)式的值。通過觀察題目中給出的
數(shù)學(xué)公式可知,后面一項(xiàng)是前面一項(xiàng)乘以n/(2*n+l),發(fā)現(xiàn)這個(gè)規(guī)律后,
問題迎刃而解。通過定義double類型變量,并且賦初值,用來存放多項(xiàng)
式的總和。此題中需要注意的是,表示每一項(xiàng)的S1和表示多項(xiàng)式之和
的s,兩者的初值都是1.O0
22.
【解析】要找到所有學(xué)生中成績低于平均分?jǐn)?shù)的人數(shù),首先需要算出所
有學(xué)生的平均成績。然后將所有學(xué)生的成績與平均成績相比較。將低于
平均分?jǐn)?shù)學(xué)生的記錄存放在新的數(shù)組中,并將低于平均分?jǐn)?shù)的學(xué)生數(shù)返
回給主函數(shù)。
23.
【解析】首先定義兩個(gè)變量分別用來存儲(chǔ)級(jí)數(shù)的和與每一項(xiàng)的分母。觀
察級(jí)數(shù)的特點(diǎn),其每一項(xiàng)的正負(fù)號(hào)是交替變化的。根據(jù)這些特點(diǎn),每增
加一項(xiàng)都需要變換符號(hào)。最后求出級(jí)數(shù)的和。
24.
【解析】首先定義一個(gè)變量來表示其和s,通過n次循環(huán)求出n項(xiàng)的和,
最后將所得到各項(xiàng)的和值返回給主函數(shù)。
25.voidfun(char*s,chart[])
(
inti,j=0,n;
n=strlen(s);
/*遍歷整個(gè)數(shù)組*/
for(i=0;i<=""p="">
/*如果元素的ASCII值為偶數(shù)*/
if(s[i]%2==0)
(
/*將元素保存到t中*/
t[j]=s[i];
j++;
)
)
要?jiǎng)h除ASCH值為奇數(shù)的字符,也就是要保留ASCII值為偶數(shù)的字符,
將ASCH值為偶數(shù)的字符保存到新字符串。所以本題的算法是對(duì)原字
符串從頭到尾進(jìn)行掃描,找出ASCII值為偶數(shù)的字符并依次存入數(shù)組。
26.1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<="">5for(i=0;i
<=j;i++)6a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/7}本程序
實(shí)現(xiàn)的是:矩陣上三角元素的值乘以mo上三角元素下標(biāo)的特點(diǎn)是行下
標(biāo)小于等于列下標(biāo),即"i<=『使用循環(huán)語句遍歷數(shù)組元素,第1個(gè)循環(huán)
用于控制列坐標(biāo),第2個(gè)循環(huán)用于控制行下標(biāo)。
27.
【考點(diǎn)分析】
本題考查:if語句,用來判斷能被7整除或者能被11整除,但是又不
能同時(shí)被7和11整除的數(shù),在這里充分理解“邏輯與“和“邏輯或”的區(qū)
別;for循環(huán)語句的循環(huán)變量用來控制取值范圍。
【解題思路】
該題需要運(yùn)用循環(huán)判斷結(jié)構(gòu)來實(shí)現(xiàn),其中循環(huán)語句比較容易,只要確
定循環(huán)變量的范圍即可,下面來看判斷語句,題目要求找出能被7或
11整除,但不能同時(shí)被7和11整除的所有整數(shù)。能同時(shí)被7和11整
除的整數(shù)一定能被77整除,且不能被
77整除的數(shù)不一定就是能被7或11整除的數(shù),所以可得出程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長期車輛租憑合同模板
- 物品借合同模板
- 建材購買合同模板
- 裝飾工程掛靠合同模板
- 裝修設(shè)計(jì)簡易合同模板
- 轉(zhuǎn)讓分期合同模板
- 電料供應(yīng)合同模板
- 央企合同模板
- 單位供餐合同模板
- 桌球房轉(zhuǎn)讓合同模板
- 10.噪聲污染與控制課件
- 北師大版四年級(jí)上冊測試題附答題卡
- 社會(huì)體育指導(dǎo)員培訓(xùn)教案(完整版)
- 粵滬版八年級(jí)物理上冊期中考試試卷(含答案).
- ISO9001+ISO14001+ISO45001質(zhì)量環(huán)境及職業(yè)健康安全管理體系內(nèi)部審核資料
- 球蟲病及其免疫(1)
- 《全款購房合同》
- 聚丙烯Spherizone工藝技術(shù)及產(chǎn)品介紹
- 江蘇自考數(shù)學(xué)教育學(xué)知識(shí)點(diǎn)
- [二手房買賣合同正式版] 二手房買賣合同最新版
- 部編版五年級(jí)語文上冊第四單元集體備課教學(xué)計(jì)劃和全部教案
評(píng)論
0/150
提交評(píng)論