




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年安徽省銅陵市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
2.為了列出當(dāng)前盤當(dāng)前目錄中所有第三個(gè)字符為C的文件名的有關(guān)信息,應(yīng)該使用命令【】。
3.以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。請(qǐng)給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
4.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
5.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
6.strcmp函數(shù)的功能是【】。
7.Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國(guó)的M.Jackson提出的,它是一種面向______的設(shè)計(jì)方法。
8.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請(qǐng)?zhí)羁?,使下面程序段的功能與之完全相同
S=1.0;k=1;
while([8]){s=s+1.0/(k*(k+1));[9];}
printf("s=%f\n\n",s);
9.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
10.下面函數(shù)用來(lái)求兩個(gè)單精度數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>
Voidsub(floatx,noaty,【】z)
{【】=x+y;}
二、單選題(10題)11.數(shù)據(jù)的獨(dú)立性是指______。
A.數(shù)據(jù)庫(kù)的數(shù)據(jù)相互獨(dú)立
B.DBMS和DB相互獨(dú)立
C.用戶應(yīng)用程序與數(shù)據(jù)庫(kù)的數(shù)據(jù)相互獨(dú)立
D.用戶應(yīng)用程序與DBMS相互獨(dú)立
12.
13.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
14.下列哪個(gè)算法是對(duì)一個(gè)list排序的最快方法()
A.快速排序B.冒泡排序C.二分插入排序D.線性排序
15.C語(yǔ)言源程序的擴(kuò)展名是()。
A..CB..exeC..objD..cp
16.若有如下程序:intsub(){staticintn=1;intx=1;x*=n;n++;returnx;}main(){intn,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}則程序運(yùn)行后的輸出結(jié)果是()
A.15B.120C.34560D.-30976
17.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長(zhǎng)度
B.比較兩字符串的大小
C.將字符串s復(fù)制到字符串t中
D.將字符串s連接到字符串t后
18.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
19.實(shí)體聯(lián)系模型中實(shí)體與實(shí)體之間的聯(lián)系不可能是
A.一對(duì)一B.多對(duì)多C.一對(duì)多D.對(duì)零
20.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運(yùn)行結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
三、程序設(shè)計(jì)題(10題)21.請(qǐng)編寫函數(shù)proc(),它的功能是:求出1~1000中能被5或13整除,但不能同時(shí)被5和13整除的所有整數(shù),并將它們放在arr所指的數(shù)組中,通過n返回這些數(shù)。注意:部分源程序給H{如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
22.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫函數(shù)proc(),它的功能是:把指定分?jǐn)?shù)范圍之外的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍之外的學(xué)生人數(shù)由函數(shù)值返回。
例如,輸入的分?jǐn)?shù)是70和79,則應(yīng)當(dāng)把分?jǐn)?shù)低于70和高于79的學(xué)生數(shù)據(jù)輸出,不包含70分和79分的學(xué)生數(shù)據(jù)。主函數(shù)中把70放在low中,把79放在heigh中。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語(yǔ)句。
試題程序:
23.請(qǐng)編一個(gè)函數(shù)voidproc(inttt[M][N],intpp[N]),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。
注意:部分源程序給出如下。
請(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(),其功能是根據(jù)以下公式計(jì)算S,并將計(jì)算結(jié)果作為函數(shù)值返回,通過形參傳入。例如,若n的值為11時(shí),函數(shù)的值為1.833333。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}
25.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語(yǔ)句。試題程序:
26.請(qǐng)編寫函數(shù)proc(),它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。sum=1-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)中填人所編寫的若干語(yǔ)句。試題程序:
27.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫一個(gè)函數(shù)fun(),該函數(shù)的功能是使變量h的值保留兩位小數(shù),并對(duì)第3位進(jìn)行四舍五入(規(guī)定h的值為正數(shù))。若h的值為1234.567,則函數(shù)返回1234.570000;若h的值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:
28.請(qǐng)編寫一個(gè)函數(shù)voidproc(char*tt,intpp[]),統(tǒng)計(jì)在tt字符串中“a”到“z”26個(gè)字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如,當(dāng)輸入字符串a(chǎn)bcdefghxyzabcde“e后,程序的輸出結(jié)果應(yīng)該是:222233110000000000000000111。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
29.使用VC++2010打開考生文件夾下析prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。例如,當(dāng)n=10,x=0.3時(shí),函數(shù)值為1.349859。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:30.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
1122234456666778
9910101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
12345678910
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
四、2.程序修改題(10題)31.給定程序MODII.C中fun函數(shù)的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。
例如,若主函數(shù)中輸入5,則應(yīng)輸出-0.283333。
請(qǐng)改正函數(shù)fun中的錯(cuò)誤或在橫線處填上適當(dāng)?shù)膬?nèi)容并把橫線刪除,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
32.下列給定程序中,函數(shù)fun的功能是按以下遞歸公式求函數(shù)值。
例如:當(dāng)給n輸入5時(shí),函數(shù)值為240;當(dāng)給n輸入3時(shí),函數(shù)值為60。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意;不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
/*************found****+*******/
fun(intn);
{
intc;
/*************found********+*****/
if(n=1)
c=15;
else
c=fun(n-1)*2;
return(c);
}
main()
{
intn;
printf("Entern:");
scanf("%d",&n);
printf("Theresult:%d\n\n",fun(n));
}
33.給定程序中函數(shù)fun的功能是:將一個(gè)由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為與其值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含5位八進(jìn)制數(shù)字字符。
例如,若輸入:77777,則輸出將是:32767。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
[注意]不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
[試題源程序]
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intfun(char*p)
{
intn;
/**********found**********/
n=*p-'o';
p++;
while(*p!=0){
/**********found**********/
n=n*8+*p-'o';
p++;
}
returnn;
}
main()
{
chars[6];inti;intn;
printf("Enterastring(Ocataldigits):");
gets(s);
if(strlen(s)>5)
{
printf("Error:Stringtoolonger!\n\n");
exit(0);
}
for(i=0;s[i];i++)
if(s[i]<'0'||s[i]>'7')
{
printf("Error:%cnotisocataldigits!\n\n",s[i]);
exit(0);
}
printf("Theoriginalstring:");
puts(s);
n=fun(s);
printf("\n%siSconveredtointegernumber:%d\n\n",s,n);
}
34.下列給定程序中函數(shù)fun()的功能是計(jì)算1/n!的值。
例如:給n輸入5,則輸出0.0083330
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conio.h>
/******+****found*************/
intfun(intn)
{doubleresult=1.0;
if(n==0)
return1.0;
while(n>1&&n<170)
/**********found************/
result*=n++;
result=1/result;
returnresult;
}
main()
{
intn;
printf("InputN:");
scanf("%d",&n);
printf("\n1/%d!=%If\n",n,fun(n));
}
35.給定程序MODll.C中函數(shù)fun的功能是:計(jì)算n的5次方的值(規(guī)定n的值大于2、小于8),通過形參指針傳回主函數(shù);并計(jì)算該值的個(gè)位、十位、百位上數(shù)字之和作為函數(shù)值返回。
例如,7的5次方是16807,其低3位數(shù)的和值是15。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
36.給定程序MODll.C中函數(shù)fun的功能是:應(yīng)用遞歸算法求形參a的平方根。求平方根的迭代公式如下:
例如,a為2時(shí),平方根值為:1.414214。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
37.下列給定程序中,函數(shù)fun()的功能是計(jì)算并輸出high以內(nèi)的素?cái)?shù)之和。high由主函數(shù)傳給fun()函數(shù)。
例如:若high的值為100,則函數(shù)的返回值為1060。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
[注意]不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
[試題源程序]
#include<conio.h>
#include<stdio.h>
#include<math.h>
intfun(inthigh)
{
intsum=0,n=0,j,yes;
while(high>=2)
{
yes=1;
for(j=2;j<=high/2;j++)
**********************found**********************/
ifhigh%j==0
{
yes=0;
break;
}
/**********************found**********************/
if(yes==0)
{
sum+=high;
n++;
}
high--;
}
returnsum;
}
main()
{
clrscr();
printf("%d\n",fun(100));
}
38.給定程序MODll.C中函數(shù)fun的功能是:根據(jù)輸入的三個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形:構(gòu)成的是等邊三角形,還是等腰三角形。若能構(gòu)成等邊三角形函數(shù)返回3,若能構(gòu)成等腰三角形函數(shù)返回2,若能構(gòu)成一般三角形函數(shù)返回1,若不能構(gòu)成三角形函數(shù)返回0。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
39.下列給定程序中,函數(shù)fun()的功能是:根據(jù)整型參數(shù)m,計(jì)算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
例如,若m=2000,則應(yīng)輸出0.000160。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
/*************found**************/
fun(intm)
{doubley=0,d;
inti;
/*************found**************/
for(i=100,i<=m,i+=100)
{d=(double)i*(double)i;
y+=l.0/d;
}
return(y);
}
main()
{intn=2000;
clrscr();
printf("\nTheresultis%lf\n",fun(n));
40.給定程序MODll.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)!
五、程序改錯(cuò)題(2題)41.下列給定程序中,函數(shù)proc的功能是根據(jù)整型形參n,計(jì)算如下公式的值:
Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值為l0,則應(yīng)輸出0.817962。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdiOh>
doubleproc(intn)
{
doubley=1.0;
//****found****
intJ=1;.
inti;
for(i=2;i<=n;i++)
{
j=-l*j;//****found****
y+=1/(i*i);
}
return(y);
}
voidmain
{
intn=10:
system("CLS"):
printf("\nTheresultis%1f\n",proc(n));
}
42.下列給定程序中函數(shù)fun()的功能是:求出如下分?jǐn)?shù)序列的前n項(xiàng)之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應(yīng)輸出8.391667。請(qǐng)改正程序中的錯(cuò)誤,使其得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、操作題(2題)43.若變量x、y已定義為int類型且X的值為33,y的值為3,請(qǐng)將輸出語(yǔ)句printf((),x/y);補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=11。
44.有以下語(yǔ)句段:
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值:
n1=10
n2=20
每個(gè)輸出行從第一列開始,請(qǐng)?zhí)羁铡?/p>
參考答案
1.66解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。
2.DIR??C*.*
3.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級(jí)數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個(gè)整型變量i用作循環(huán)計(jì)數(shù)器,定義一個(gè)變量a用來(lái)表示各個(gè)子項(xiàng)的分子,初始為第一個(gè)子項(xiàng)的分子,故為1,定義了一個(gè)變量b用來(lái)表示各個(gè)子項(xiàng)大分母,初始為第一個(gè)子項(xiàng)的分母,故為1,定義一個(gè)變量s存放累加和,初始為第一個(gè)子項(xiàng)的值即為1,然后給各個(gè)定義的變量初始化,然后通過一個(gè)for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個(gè)子項(xiàng)求出來(lái)并累加到s中,所以說,在該題的空格處應(yīng)該填寫將a、b和s賦初值的語(yǔ)句,即為a=1;b=1;s=1:(說明:語(yǔ)句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。
4.a=2b=3a=2,b=3解析:分析程序,程序從x=1語(yǔ)句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語(yǔ)句,switch(x)=switch(1),所以執(zhí)行case1,case1語(yǔ)句中包含一個(gè)復(fù)合switch語(yǔ)句:這時(shí)執(zhí)行第二個(gè)switch語(yǔ)句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語(yǔ)句,退出第二個(gè)switch語(yǔ)句,則整個(gè)case1的復(fù)合語(yǔ)句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語(yǔ)句使其退出第一個(gè)switch語(yǔ)句,所以接著執(zhí)行下列的case2后面的語(yǔ)句,即將a,b各加1,得到a=2,b=3。
5.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。
6.字符串的比較strcmp函數(shù)的原型是intstrcmp(char*s1,char*s2);功能是對(duì)s1和s2所指字符串進(jìn)行比較,若s1<s2返回負(fù)數(shù),若s1==s2返回0,若s1>s2返回正數(shù)。
7.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
8.本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語(yǔ)句“k++”。\r\n\r\n
9.43214321解析:靜態(tài)存儲(chǔ)類的局部變量其生存期為整個(gè)程序的運(yùn)行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。
10.float*z
11.C解析:修改數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時(shí),通過兩級(jí)映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。
12.D
13.B本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。
14.A
15.AC語(yǔ)言源程序的擴(kuò)展名是.C,目標(biāo)文件的擴(kuò)展名是.obj,可執(zhí)行文件的擴(kuò)展名是.exe。故本題答案為A選項(xiàng)。
16.B
17.B在本題中,從題目給出的四個(gè)選項(xiàng)我們就可以知道,程序是對(duì)兩個(gè)字符串進(jìn)行操作。下面將具體分析程序。
程序首先定義兩個(gè)字符型的指針變量s和t,從后面的程序中不難看出這兩個(gè)指針變量應(yīng)該用來(lái)對(duì)兩個(gè)字符串進(jìn)行操作處理。用循環(huán)來(lái)對(duì)字符串進(jìn)行處理時(shí),循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結(jié)果值不為0,且兩結(jié)果值相等。很顯然,指針變量s和指針變量t所指向的結(jié)果值不為0,說明兩字符串沒有結(jié)束,只有結(jié)束時(shí)才為0,而結(jié)果值相等說明兩字符相等,如果不等,循環(huán)則結(jié)束,此時(shí)程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負(fù)關(guān)系我們可以判斷出哪個(gè)元素更大。綜上所述,程序段的作用是用來(lái)比較兩字符串的大小。因此,本題正確的答案選B。
18.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
19.D解析:實(shí)體聯(lián)系模型中實(shí)體與實(shí)體之間的聯(lián)系有一對(duì)一(1:1),一對(duì)多戌多對(duì)一(1:m或m:1),多對(duì)多(m:n)其中一對(duì)一是最常用的關(guān)系。
20.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時(shí),b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時(shí),b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時(shí),b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時(shí),b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項(xiàng)。
21.
【解析】題目中要求出1~1000中能被5或13整除,但不能同時(shí)被5和13整除的所有整數(shù),首先應(yīng)判斷1~1000的每一個(gè)整數(shù)是否符合要求,將符合要求的每一個(gè)整數(shù)放入數(shù)組arr中。最后將整數(shù)的個(gè)數(shù)作為形參返回給主函數(shù)。
22.
【解析】題目要求把指定范圍之外的數(shù)放到h中,將每一個(gè)學(xué)生的成績(jī)與指定的成績(jī)相比較,將符合條件的學(xué)生成績(jī)放在數(shù)組b中,并將符合要求的學(xué)生個(gè)數(shù)返回給主函數(shù)。
23.
【解析】按照題目中要求,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。首先比較二維數(shù)組中每一行的元素,然后找出每一行中的最大元素,放入一維數(shù)組pp中,最后返回到主函數(shù)當(dāng)中。
24.floatfun(intn){ inti,s1=0; floats=0.0; for(i=1;i<=n;i++) { s1=s1+i; /*求每一項(xiàng)的分母*/ s=s+1.0/s1; /*求多項(xiàng)式的值*/ } returns;}首先需要根據(jù)題意分析表達(dá)式的規(guī)律,得出通項(xiàng),然后再完成程序語(yǔ)句。本題中公式的規(guī)律類似于求1+2+…+n的倒數(shù)之和??梢酝ㄟ^for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)第1項(xiàng)到第n項(xiàng)的變化。先根據(jù)題目要求定義變量,注意該變量的數(shù)據(jù)類型。然后對(duì)其進(jìn)行初始化操作,因?yàn)樵撟兞肯喈?dāng)于累加器,所以初值應(yīng)為0(或0.0,根據(jù)變量數(shù)據(jù)類型來(lái)確定),再通過for循環(huán)語(yǔ)句來(lái)完成累加過程。本題中s1用來(lái)表示每一項(xiàng)的分母,每一項(xiàng)的分母都是由前一項(xiàng)分母加項(xiàng)數(shù)得到的。注意,由于s1定義成一個(gè)整型,因此在s=s+1.0/s1語(yǔ)句中不能把1.0寫成1。25.1voidfun(char*a,char*s)2{while(*s!:'。1)3{*a=*s;4a++;5s++;}7*a='\\0';}要將指針變量s所指的字符串存入指針變量a所指的字符串中,程序要求不能使用系統(tǒng)提供的字符串函數(shù)。本題可以使用循環(huán)語(yǔ)句,依次取出a所指字符串中的元素,將其存入s所指的字符串中,最后為s所指的字符串添加字符串結(jié)束標(biāo)志'\\0'。
26.
【解析】首先定義兩個(gè)變量分別用來(lái)存儲(chǔ)級(jí)數(shù)的和與每一項(xiàng)的分母。觀察級(jí)數(shù)的特點(diǎn),其每一項(xiàng)的正負(fù)號(hào)是交替變化的。根據(jù)這些特點(diǎn),每增加一項(xiàng)都需要變換符號(hào)。最后求出級(jí)數(shù)的和。
27.1floatfun(floath)2{3inttmp=(int)(h*1000+5)/10;/*單精度數(shù)h乘以1000后再加5,相當(dāng)于對(duì)h中的第3位小數(shù)進(jìn)行四舍五入,除以10后將其賦給一個(gè)長(zhǎng)整型數(shù)時(shí)就把第3位小數(shù)后的數(shù)全部截去*/4return(float)tmp/I00.0;/*除以100,保留2位小數(shù)*/5}注意:本題要求對(duì)變量h中的第3位小數(shù)進(jìn)行四舍五入運(yùn)算,而不是輸出,即不能用printf(“%7.2f”,h)輸出結(jié)果。四舍五入算法:如果要求精確到小數(shù)點(diǎn)后面的第n位,則需要對(duì)第n+1位進(jìn)行運(yùn)算。方法是將該小數(shù)乘以10的n+1次方后加5,然后除以10并強(qiáng)制轉(zhuǎn)換變量類型為整型,再將該數(shù)除以10的n次方,同時(shí)強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)型。代碼實(shí)現(xiàn)如下:intt;/*定義整型變量t*/t=(int)(h*10n+1+5)/10;/*對(duì)h進(jìn)行操作,得到浮點(diǎn)型值,t取值時(shí)取整數(shù)部分。10n+1為要擴(kuò)大的倍數(shù)*/h=(float)t/10n;/*將t縮小10n倍,并轉(zhuǎn)換成浮點(diǎn)型*/
28.
【解析】由函數(shù)proc()可知,數(shù)組PP中存放26個(gè)字母各自出現(xiàn)的次數(shù),初始化為0。然后判斷字符串tt中每一個(gè)字符,每檢查一個(gè)字符,將數(shù)組pp中相應(yīng)的元素加1。
29.1doublefun(doublex,intn)2{3inti;4doubles=1.0,sl=1.0;5for(i=1/i<=n;i++)6{si=si*i;/*各項(xiàng)中的階乘*/?s=s+pow(x,i)/si;/*按公式求出*/}Returns;10}程序定義了變量Sl和s,sl表示每項(xiàng)的分母(即各項(xiàng)的階乘),S存放累加和。循環(huán)語(yǔ)句控制累加的次數(shù),在循環(huán)體中進(jìn)行階乘和累加操作,將累加的結(jié)果存入S中。此處使用了求乘方函數(shù)pow(X,i),其含義是求X的i次方的值。
30.
【解析】題目中要求刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。首先需要將字符串中的每一個(gè)字符與其后的一個(gè)字符相比較,相同則不做任何操作,不相同則將其放入新的字符串中。最后將新的字符串中的字符個(gè)數(shù)返回給主函數(shù)。
31.(1)t=t-1.0/i;或t-=1.0/i;或t一=(double)1/i;(2)returnt;(1)t=t-1.0/i;或t-=1.0/i;或t一=(double)1/i;(2)returnt;解析:本題中函數(shù)的功能是計(jì)算公式的值。首先根據(jù)題干中給出的公式推出每一項(xiàng)之間的關(guān)系,求出每一項(xiàng)的表達(dá)式,然后求得數(shù)列的值。其中,每一項(xiàng)的值為1/n。
32.(1)錯(cuò)誤:fun(intn);正確:fun(intn)(2)錯(cuò)誤:if(n=1)正確:if(n==1)(1)錯(cuò)誤:fun(intn);正確:fun(intn)\r\n(2)錯(cuò)誤:if(n=1)正確:if(n==1)解析:錯(cuò)誤1:該行是函數(shù)的首部,不是一條語(yǔ)句,因此不能以分號(hào)結(jié)束。錯(cuò)誤2:if垢面應(yīng)該緊跟一個(gè)條件判斷表達(dá)式,若寫成“if(n=1)”,則說明該表達(dá)式的值永遠(yuǎn)為真,也就是說這個(gè)條件永遠(yuǎn)成立,沒有遞歸執(zhí)行。
33.(1)錯(cuò)誤:*p正確:*p(2)錯(cuò)誤:'o';正確:'o';(1)錯(cuò)誤:*p\r\n正確:*p\r\n(2)錯(cuò)誤:'o';\r\n正確:'o';
34.(1)錯(cuò)誤:intfun(intn)正確:doublefun(intn)(2)錯(cuò)誤:result*=n++;正確:result*=n--;(1)錯(cuò)誤:intfun(intn)正確:doublefun(intn)\r\n(2)錯(cuò)誤:result*=n++;正確:result*=n--;解析:錯(cuò)誤1:函數(shù)的返回值為實(shí)型數(shù)據(jù),所以函數(shù)的返回類型應(yīng)為double。錯(cuò)誤2:根據(jù)階乘的概念,從n開始,每遞減1的數(shù)相乘,直到1,因此此處n遞減,而不是遞增。
35.(1)d=1;s=0;(2)d=d/10;(1)d=1;s=0;(2)d=d/10;解析:本題中函數(shù)的功能是計(jì)算n的5次方的值(規(guī)定n的值大于2、小于8),通過形參指針傳回主函數(shù);并計(jì)算該值的個(gè)位、十位、百位上數(shù)字之和作為函數(shù)值返回。本題解題過程首先是求5次方,然后對(duì)結(jié)果進(jìn)行截取以及求和。
36.(1)doublefun(doubleadoublex0)(2)if(fabs(x1-x0)>0.0O001)(1)doublefun(doublea,doublex0)(2)if(fabs(x1-x0)>0.0O001)解析:(1)主函數(shù)中“fun(x,1.0)”,x是double型變量,1.0是浮點(diǎn)數(shù),可知fun有兩個(gè)double型參數(shù),而第一標(biāo)識(shí)下“dounle”不是C語(yǔ)言關(guān)鍵字,所以應(yīng)將“doublefun(doublea,dounlex0)”改為“doublefun(doublea,doublex0)”。
(2)第二個(gè)標(biāo)識(shí)下的if語(yǔ)句是判斷進(jìn)行遞歸運(yùn)算的條件,第二標(biāo)識(shí)下變量x0沒有定義,根據(jù)題意,這里是判斷x1和x0的差值的絕對(duì)值是否比0.00001大,所以第二個(gè)標(biāo)識(shí)下“ifi[fabs(x1-xo)>0.0
37.(1)錯(cuò)誤:ifhigh%j==0正確:if(high%j==0)(2)錯(cuò)誤:if(yes==0)正確:if(yes)(1)錯(cuò)誤:ifhigh%j==0\r\n正確:if(high%j==0)\r\n(2)錯(cuò)誤:if(yes==0)\r\n正確:if(yes)解析:fun函數(shù)的功能是:用while循環(huán)查找high以內(nèi)的素?cái)?shù);用for循環(huán)判斷一個(gè)數(shù)是否為素?cái)?shù);用變量n記錄找到的素?cái)?shù)的個(gè)數(shù):用ret
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 康復(fù)護(hù)理質(zhì)量目標(biāo)管理
- 大班安全別爬窗戶
- 普通心理學(xué)(第2版)課件 第十章 需要與動(dòng)機(jī)
- 形位公差檢測(cè)規(guī)定
- 護(hù)理教育導(dǎo)論課程框架
- 混凝土結(jié)構(gòu)工程施工規(guī)范培訓(xùn)課件
- 婚慶禮儀培訓(xùn)實(shí)務(wù)要點(diǎn)
- 護(hù)理案例分析課件
- 統(tǒng)編版語(yǔ)文一年級(jí)下冊(cè)14文具的家 課件
- 2025年單位保安年終工作總結(jié)模版
- 農(nóng)作物品種(玉米)區(qū)域試驗(yàn)技術(shù)規(guī)程
- 2022年江蘇省衛(wèi)生系統(tǒng)事業(yè)單位招聘考試(護(hù)理學(xué))參考題庫(kù)匯總(含答案)
- 唐詩(shī)三百首word版
- 造林工程模式典型設(shè)計(jì)圖文版
- 硬筆書法考級(jí)專用紙(4—5級(jí))
- WST 661-2020靜脈血液標(biāo)本采集
- 乙型肝炎病毒表面抗原診斷試劑盒(酶聯(lián)免疫法)說明書
- 旅游景區(qū)財(cái)務(wù)制度及流程
- 資料員崗位知識(shí)與專業(yè)技能ppt課件
- 校本教材毽球
- ASYMTEK S2900 快速操作手冊(cè)
評(píng)論
0/150
提交評(píng)論