




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年福建省寧德市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.在循環(huán)中,continue語(yǔ)句與break語(yǔ)句的區(qū)別是:______語(yǔ)句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
2.軟件是程序、數(shù)據(jù)和【】的集合。
3.有以下程序:
voidswap1(intc[])
{intt;
t=c[0];c[0]=c[1];c[1]=t;
}
voidswap2(intc0,intc1)
{intt;
t=c0;c0=c1;c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swaplA);swap2(b[0],b[1]);
printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是【】。
4.以下程序的功能是輸出字符串。請(qǐng)?zhí)羁铡?/p>
main()
{char*a[]={"Pascal","Clanguage","dbase","Cobol"};
char【】;
intj=0;
p=a;
for(;j<4;j++)
print{("%s\n",*【】);
}
5.以下程序的功能是:輸出x、y、z三個(gè)變量中的最大值,請(qǐng)?zhí)羁铡?/p>
main()
{intx,y,z,u;
printf("Enterx,y,x;");scanf("%d%d%d",&x,&y,&z);
if(【】)u=x;
elseu=y(tǒng);
if(【】)u=z;
printf("u=%d",u);
}
6.以下程序的運(yùn)行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf(:Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t:MAX(a+b,c+d);PRINT(t);}
7.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
8.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請(qǐng)?zhí)羁铡?/p>
#include<stdio,h>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
prinff("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];'
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
9.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
10.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{intI,j;
for(I=0;I<N;I++)
{b[I][N-1]=【】;【】=a[N-1][I];}}
二、單選題(10題)11.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為()。x=10;x=x-=x-x;
A.10B.20C.40D.30
12.
13.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3
14.棧和隊(duì)列的共同特點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
15.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運(yùn)行結(jié)果是
A.A.331
B.41
C.2
D.1
16.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
B.退出Windows后再關(guān)機(jī)
C.退出Windows后重新啟動(dòng)計(jì)算機(jī)
D.終止當(dāng)前應(yīng)用程序的運(yùn)行
17.以下有關(guān)宏的描述不正確的是()。
A.宏定義不做語(yǔ)法檢查B.雙引號(hào)中出現(xiàn)的宏名不進(jìn)行替換C.宏名無(wú)類型D.宏名必須用大寫字母表示
18.
19.下列4項(xiàng)說(shuō)法中,不正確的是______。
A.數(shù)據(jù)庫(kù)減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫(kù)避免了一切數(shù)據(jù)的重復(fù)D.數(shù)據(jù)庫(kù)具有較高的數(shù)據(jù)獨(dú)立性
20.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運(yùn)行后輸出的結(jié)果是()。A.246810B.13579C.12345D.678910
三、程序設(shè)計(jì)題(10題)21.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),它的功能是求小于形參n同時(shí)能被3與7整除的所有自然數(shù)之和的平方根,并將其作為函數(shù)值返回。例如,若n為1000時(shí),程序輸出應(yīng)為s=153.909064。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:
22.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串“World”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“Word”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf(“Enterthestring:\n”); gets(str1); printf(“Enterthepositionofthestringdeleted:”); scanf(“%d”,&n);fun(str1,str2,n); printf(“Thenewstringis:%s\n”,str2);}
23.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個(gè)字符串中。例如,若二維數(shù)組中的數(shù)據(jù)為:
WWW
SSS
HHH
III
則字符串中的內(nèi)容應(yīng)是WSHIWSHIWSHI。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語(yǔ)句。
試題程序:
24.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4EFg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}
25.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符為l,則輸出3。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
26.編程計(jì)算下列表達(dá)式:s=n!(n從鍵盤上輸入)
27.請(qǐng)編寫一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個(gè)數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
28.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將a、b兩個(gè)兩位正整數(shù)合并成一個(gè)新的整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個(gè)位數(shù)依次放在變量c的百位和個(gè)位上,b中的十位數(shù)和個(gè)位數(shù)依次放在變量c的千位和十位上。例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=1425。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}
29.編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫(kù)函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的后面。
例如,分別輸人下面兩個(gè)字符串:FirstString——SecondString
程序運(yùn)行后的輸出結(jié)果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
30.M名學(xué)生的成績(jī)已在主函數(shù)中放人一個(gè)帶頭結(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭結(jié)點(diǎn)。請(qǐng)編寫函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
四、2.程序修改題(10題)31.下列給定程序中,函數(shù)fun()的作用是:將字符串tt中的小寫字母都改為對(duì)應(yīng)的大寫字母,其他字符不變。例如,若輸入“edS,dAd”,則輸出“EDS,DAD”。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conlo.h>
/*************found*************/
charfun(chartt[])
{
inti;
for(i=0;tt[i];i++)
{
/*************found*************/
if((tt[i]>='A')&&(tt[i]<='2'))
tt[i]-=32;
}
return(tt);
}
main()
{
inti;
chartt[81];
clrscr();
printf("\nPleaseenterastring:");
gets(tt);
printf("\nTheresultstringiS:/n%s",fun(tt));
}
32.給定程序MODll.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)!
33.給定程序MODll.C中函數(shù)fun的功能是:對(duì)N名學(xué)生的學(xué)習(xí)成績(jī),按從高到低的順序找出前m(m≤10)名學(xué)生來(lái),并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
34.給定程序MODll.C中fun函數(shù)的功能是:求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。
和值通過函數(shù)值返回main函數(shù)。
例如,若n=5,則應(yīng)輸出:8.391667。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
35.下列給定程序中,函數(shù)fun()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之積。
請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
intfun()
{
inta[3][3],mu1;
inti,j;
mu1=l;
for(i=0;i<3;i++)
{
/*************found*************/
for(i=0;i<3;j++)
scanf(“%d”,&a[i][j]);
}
for(i=0;i<3;i++)
/*************found*************/
mu1=mu1*a[i][j];
printf("Mu1=%d\n",mu1);
}
main()
{
fun();
}
36.下列給定程序中,函數(shù)fun()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))
例如,若p=10,則應(yīng)輸出0.617977。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)mah函數(shù),不得增行或刪行,也不得更改程序的蛄構(gòu).
試題程序:
#include<conio.h>
#include<stdio.h>
/**************found********************/
ihtfun(ihtn)
{floatA=l;inti;
/**************foudn********************/
for(i=2;i<n;i++)
A=1.0/(i+A);
returnA;
}
main()
{intn;
clrscr();
printf("\nPleaseentern:");
$canf("%d",&n);
printf("A%d=%lf\n",n,fun(n));
}
37.下列給定程序中,函數(shù)fun()的功能是:計(jì)算整數(shù)n的階乘。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
doublefun(intn)
{
doubleresult=l.0;
whil(n>l&&n<170)
/**************found********************/
result*=--n;
/**************found********************/
return;
main()
{int.n;
clrscr();
printf("Enteraninteger:");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n",n,fun(n));
}
38.下列給定程序中,函數(shù)fun()的功能是:給定n個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)平均值以上(含平均值)的實(shí)數(shù)個(gè)數(shù)。例如,n=8時(shí),輸入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值為195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為5。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(floatx[],intn)
/***************found*******************/
ihtj,c=0;floatxa=0.0;
for(j=0;j<n;.j++)
xa+=x[j]/n;
printf("ave=%f\n",xa);
for(j=0;j<n;j++)
if(x[j]>=xa)
c++;
returnc;
}
main()
{floatx[l00]={193.199,195.673,195.757,
196.051,196.092,196.596,
196.579,196.763};
clrscr();
printf("%d\n",fun(x,8));
}
39.下列給定程序中,函數(shù)fun()的功能是:求整數(shù)x的y次方的低3位值。例如,整數(shù)5的6次方為15625,此值的低3位值為6250
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
longfun(intx,inty,long*p)
{inti;
longt=1;
/**************found***************/
for(i=1;i<y;i++)
t=t*x;
*p=t;
/**************found***************/
t=t/1000;
returnt;
}
main()
{longt,r;intx,y;
printf("\nInputxandy:");scanf
("%1d%1d",&x,&y);
t=fun(x,y,&r);
printf("\n\nx=%d,y=%d,r=%1d,last=
%1d\n\n",x,y,r,t);
}
40.給定程序MODll.C中函數(shù)fun的功能是:求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。和值通過函數(shù)值返回到main函數(shù)。
例如,若n=5,則應(yīng)輸出:8.391667。
請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
五、程序改錯(cuò)題(2題)41.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型參數(shù)m,計(jì)算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,則應(yīng)輸出0.000162。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
42.下列給定程序中,函數(shù)proc的功能是找出100~m(m不大于1000)之間百位數(shù)字加十位數(shù)字等于個(gè)位數(shù)字的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個(gè)數(shù)作為函數(shù)值
返回。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineM1000
intproc(int*S.intn)
{
inti,j,k,a,b,c;
j=0;
for(i=100;i<n;i++)
{
//****found****
k=n:
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c)
//****found****
s[j]=i:
}
returnj;
}
voidmain
{
inta[M],m,num=0,i;
do
{
printf("\nEnterm(<=1000):");
scanf("%d",&m);
}
while(m>1000);
num=proc(a,m);
printf("\n\nTheresult:\n");
for(i=0;i<num;i++)
printf("%5d",a[i]);
printf("\n\n");
}六、操作題(2題)43.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
44.fun1函數(shù)的功能是將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個(gè)變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個(gè)變量中的值。補(bǔ)足所缺語(yǔ)句。
fun2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2)fun2(*P2,*p3);
if(*p1<*p3)fun2(______);
if(*p1<*p2)fun2(______);
}
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
fun1(&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
參考答案
1.continuecontinue解析:continue語(yǔ)句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語(yǔ)句是終止整個(gè)循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
2.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
3.53355335解析:函數(shù)swap1的形參是數(shù)組,故形參的改變能夠影響實(shí)參,所以執(zhí)行完swap1(a)后,a[0]=5、a[1]=3;函數(shù)swap2的形參是簡(jiǎn)單變量,故形參的改變不能夠影響實(shí)參,所以執(zhí)行完swap2(b)后,b[0]=3、b[1]=5;正確答案為5335。
4.**p(p+i)
5.x>yz>u
6.C
7.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
8.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個(gè)3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當(dāng)外層循環(huán)執(zhí)行一次時(shí),內(nèi)層循環(huán)則從一行的4個(gè)數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。
9.4545解析:對(duì)于長(zhǎng)度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
10.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,\ue008b[I][0]=a[N-1][I]實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。
11.A執(zhí)行x=x-=x-x語(yǔ)句可寫成x=x-(x-x),可看出結(jié)果為10,故八選項(xiàng)正確。
12.A
13.D
14.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。
15.D本題考查if-else語(yǔ)句的使用。if-else語(yǔ)句可以在條件為“真”或?yàn)椤凹佟睍r(shí)執(zhí)行指定的動(dòng)作,由if引導(dǎo)條件為“真”時(shí)執(zhí)行的操作;由else引導(dǎo)條件為“假”時(shí)執(zhí)行的操作。else語(yǔ)句要與上面最近的if語(yǔ)句進(jìn)行匹配,如果要嵌套調(diào)用if-else語(yǔ)句,需要將嵌套部分用{}括起來(lái),避免程序報(bào)錯(cuò)。題目中給出了一個(gè)if語(yǔ)句和一個(gè)if-else語(yǔ)句,if-else語(yǔ)句為第一個(gè)if語(yǔ)句的子語(yǔ)句。首先執(zhí)行外層if語(yǔ)句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語(yǔ)句,直接執(zhí)行語(yǔ)句printf("%d\\n",x++);,該語(yǔ)句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。
16.D
17.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識(shí)符字符串.標(biāo)識(shí)符稱為宏名,無(wú)類型;②雙引號(hào)中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語(yǔ)句,不做語(yǔ)法檢查。
18.A
19.C解析:數(shù)據(jù)庫(kù)系統(tǒng)具有以下4個(gè)特點(diǎn):數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。
20.D本題中exch函數(shù)是用數(shù)組中的第6個(gè)元素對(duì)第1個(gè)元素進(jìn)行賦值,所以數(shù)組的值應(yīng)該為678910。21.1doublefun(intn)doublesum=0.0;inti;for(i=21;i<=n;i++)if((i%3==0)&&(i%7==0))sum+=i;returnsqrt(sum);本題考查算術(shù)運(yùn)算的算法。首先利用一個(gè)for循環(huán)判斷小于n且能同時(shí)被3和7整除的整數(shù),并將滿足條件的整數(shù)累加到sum。之后調(diào)用Sqrt()函數(shù)計(jì)算sum的平方根,并將其作為函數(shù)的返回值返回。22.voidfun(chara[],charb[],intn){ inti,k=0; for(i=0;a[i]!=‘\0’;i++) if(i!=n) /*將不是指定下標(biāo)的字符存入數(shù)組b中*/ b[k++]=a[i]; b[k]=‘\0’; /*在字符串最后加上字符串結(jié)束標(biāo)志*/}本題要求刪除字符串中指定下標(biāo)的字符,即把非指定下標(biāo)的字符保留。所以if語(yǔ)句條件表達(dá)式為“i!=n”。字符串最后不要忘記加上字符串結(jié)束標(biāo)志‘\\0’。
23.
(2)錯(cuò)誤:if(*r==0)
正確:if(*r==ˊ\0ˊ)
【解析】由于后面的語(yǔ)句控制變量r是指向字符串t的指針,而不是指向字符串str的指針,因此,“r=p;”應(yīng)改為“r=t;”。while循環(huán)結(jié)束后,如果r指向字符串t的結(jié)束符,證明字符串str中包含一個(gè)t字符串,因此,“if(*r=0)”應(yīng)改為“if(*r==ˊ\0ˊ)”。
24.voidfun(char*ss){ inti; for(i=0;ss[i]!=‘\0’;i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母*/ if(i%2==1&&ss[i]>=‘a(chǎn)’&&ss[i]<=‘z’) ss[i]=ss[i]-32;}將指定字符串中奇數(shù)位置的字母轉(zhuǎn)換為大寫字母,首先需要判斷奇數(shù)位置,再判斷該位置字符是不是小寫字母,如果是小寫字母,則將小寫字母轉(zhuǎn)換為大寫字母。字母大小寫轉(zhuǎn)換操作中,只要將小寫字母的ASCII值減去32即可轉(zhuǎn)換為大寫字母。25.
【考點(diǎn)分析】
本題考查:for循環(huán)語(yǔ)句遍歷字符串,并通過if條件語(yǔ)句,判斷字符串是否結(jié)束。
【解題思路】
從字符串中查找指定字符,需要使用循環(huán)判斷結(jié)構(gòu),循環(huán)語(yǔ)句用來(lái)遍歷字符串,循環(huán)條件為字符串沒有結(jié)束,即當(dāng)前字符不是‘\0’,判斷語(yǔ)句用來(lái)判斷當(dāng)前字符是否為指定字符。最后返回指定字符的個(gè)數(shù)。26.\n\t#include'stdio.h'
\nmain
\n{longt=1;
\ninti;
\nfor(i=1;i<=10;i++)
\nt=t*i;
\nprintf('%ld',t);}
\n27.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)
\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中
\n*n=j;//返回這些數(shù)的個(gè)數(shù)
\n}
\n【解析】本題需要先判斷1~m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過形參n返回主函數(shù)。\n28.voidfun(inta,intb,long*c){/*b%10獲取b的個(gè)位數(shù),a/10獲取a的十位數(shù),a%10獲取a的個(gè)位數(shù),b/10獲取b的十位數(shù)*/ *c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;}本題主要考核如何取出變量a和b的個(gè)位數(shù)和十位數(shù),取出后如何將其表示成c中相應(yīng)的位數(shù)。由于變量a和b都是只有兩位的整數(shù),因此分別對(duì)它們除以10可得到它們的十位數(shù),分別用10對(duì)它們求余可得到它們的個(gè)位數(shù)。將得到的數(shù)對(duì)應(yīng)乘以1000、100、10、1,即可得到c的千位數(shù)、百位數(shù)、十位數(shù)、個(gè)位數(shù)。注意使用變量c時(shí)要進(jìn)行指針運(yùn)算。29.
voidfun(charpl[],charp2[])
in“,j;
for(i=0;pl[i]f=。、0’;i++);
for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];
p1[i],_。、0’;}
【考點(diǎn)分析】“
本題考查:不使用字符串函數(shù)實(shí)現(xiàn)字符串連接操作。通過for循環(huán)語(yǔ)句來(lái)完成,不要忘了最后需要加上字符串結(jié)束標(biāo)識(shí)‘、0’。
【解題思路】
本題用兩個(gè)循環(huán)完成操作,第1個(gè)循環(huán)的作用是求出第1個(gè)字符串的長(zhǎng)度,即將i指到第1個(gè)字符串的末尾。第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連到第l個(gè)字符申的末尾。最后在第l個(gè)字符串的結(jié)尾加上字符串結(jié)束標(biāo)識(shí)‘、0’。
30.
【解析】要找出學(xué)生的最高分,就要比較所有學(xué)生的成績(jī)。定義一個(gè)變量max用來(lái)存放學(xué)生的最高分,初始化為第一個(gè)學(xué)生的成績(jī),依次與其后的學(xué)生成績(jī)相比較,最后將得到的最高分返回主函數(shù)。
31.(1)錯(cuò)誤:charfun(chartt[])正確:char*fun(chartt[])(2)錯(cuò)誤:if((tt[i]>=‘A’)&&(tt[i]<=‘Z’))正確:if((tt[i]>=‘a(chǎn)’)&&(tt[i]<=‘z’))(1)錯(cuò)誤:charfun(chartt[])正確:char*fun(chartt[])\r\n(2)錯(cuò)誤:if((tt[i]>=‘A’)&&(tt[i]<=‘Z’))正確:if((tt[i]>=‘a(chǎn)’)&&(tt[i]<=‘z’))解析:錯(cuò)誤1:函數(shù)的返回值是字符串的首地址,是指針類型,所以在函數(shù)名前要加'*'號(hào)。錯(cuò)誤2:題目要求將小寫字母改為大寫字母,所以if語(yǔ)句的判斷條件是小寫字母。
32.(1)voidfun(char*schar*t)(2)t[2*d]=‘\0’;(1)voidfun(char*s,char*t)(2)t[2*d]=‘\0’;解析:本題中函數(shù)的功能是將字符串的正序和反序進(jìn)行連接。題目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,實(shí)現(xiàn)正序和逆序的連接。
33.(1)t=(STU*)calloc(sizeof(sTu)m);(2)t[k]=b[j];(1)t=(STU*)calloc(sizeof(sTu),m);(2)t[k]=b[j];解析:本題中函數(shù)的功能是按學(xué)習(xí)成績(jī)從高到低的順序找出前m(m≤10)名學(xué)生。利用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)對(duì)定義的結(jié)構(gòu)體中的成績(jī)域進(jìn)行排序。
34.(1)doublefun(intn)(2)c=a;a+=b;b=c;(1)doublefun(intn)(2)c=a;a+=b;b=c;解析:本題中函數(shù)的功能是求出分?jǐn)?shù)序列的前n項(xiàng)之和。首先根據(jù)題干中給出的公式推出每一項(xiàng)之間的關(guān)系,求出每一項(xiàng)的表達(dá)式,然后求得數(shù)列的和。每一項(xiàng)的分母是前一項(xiàng)的分子,分子是前一項(xiàng)分子和分母的和。
35.(1)錯(cuò)誤:for(i=0;j<3;j++)正確:for(j=0;j<3;j++)(2)錯(cuò)誤:mu1=mu1*a[i][j];正確:mu1=mul*a[i][i];(1)錯(cuò)誤:for(i=0;j<3;j++)正確:for(j=0;j<3;j++)\r\n(2)錯(cuò)誤:mu1=mu1*a[i][j];正確:mu1=mul*a[i][i];解析:錯(cuò)誤1:循環(huán)結(jié)構(gòu)中,要給變量j賦初值0。錯(cuò)誤2:主對(duì)角元素的行號(hào)和列號(hào)相等,所以參加乘法的是a[i][i],而不是a[i][j]。
36.(1)錯(cuò)誤:intfun(intn)正確:floatfun(intn)(2)錯(cuò)誤:for(i=2;i<n;i++)正確:for(i=2;i<=n;i++)(1)錯(cuò)誤:intfun(intn)正確:floatfun(intn)\r\n(2)錯(cuò)誤:for(i=2;i<n;i++)正確:for(i=2;i<=n;i++)解析:該題中fun()函數(shù)的作用是計(jì)算數(shù)列前n項(xiàng)的和,而數(shù)列的組成方式是:第n項(xiàng)的分母是功口第n-1項(xiàng)的值,分子為1,如果循環(huán)累加按for(i=2;i<n;i++)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)上冊(cè)數(shù)學(xué)教案-3.1認(rèn)識(shí)長(zhǎng)方形和正方形-蘇教版
- 《圖形與測(cè)量》(教案)2024-2025學(xué)年數(shù)學(xué)六年級(jí)下冊(cè)北師大版
- 2025年關(guān)于畢業(yè)學(xué)位論文原創(chuàng)的協(xié)議
- 五年級(jí)上冊(cè)數(shù)學(xué)教案-第5單元 積的近似值∣蘇教版
- 2024年家用電熱電力器具及類似產(chǎn)品項(xiàng)目項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年度個(gè)人房屋租賃合同模板(含租賃登記)
- 2025年度醫(yī)院聘用制醫(yī)院電梯管理員勞動(dòng)合同協(xié)議
- 2025年度不銹鋼雨棚戶外裝飾與照明一體化合同
- 二零二五年度商業(yè)地產(chǎn)租賃合同終止執(zhí)行通知范本
- 2025年度企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)委托書合同范文
- 幼兒園食堂生鮮進(jìn)貨記錄表
- nasm cpt考試試題及答案
- 2023年吉林省吉林市統(tǒng)招專升本民法自考真題(含答案)
- 幼兒園大班教案《改錯(cuò)》含反思
- 國(guó)企治理三會(huì)一層詳解
- MT 211-1990煤礦通信、檢測(cè)、控制用電工電子產(chǎn)品質(zhì)量檢驗(yàn)規(guī)則
- GB/T 8888-2014重有色金屬加工產(chǎn)品的包裝、標(biāo)志、運(yùn)輸、貯存和質(zhì)量證明書
- GB/T 18400.4-2010加工中心檢驗(yàn)條件第4部分:線性和回轉(zhuǎn)軸線的定位精度和重復(fù)定位精度檢驗(yàn)
- GB/T 12265-2021機(jī)械安全防止人體部位擠壓的最小間距
- GB 8537-2018食品安全國(guó)家標(biāo)準(zhǔn)飲用天然礦泉水
- 主要農(nóng)作物(糧食作物)課件
評(píng)論
0/150
提交評(píng)論