![2022年福建省南平市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題一卷(含答案)_第1頁(yè)](http://file4.renrendoc.com/view/f5a751b8215d8a51f4aa91f7d4641ce6/f5a751b8215d8a51f4aa91f7d4641ce61.gif)
![2022年福建省南平市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題一卷(含答案)_第2頁(yè)](http://file4.renrendoc.com/view/f5a751b8215d8a51f4aa91f7d4641ce6/f5a751b8215d8a51f4aa91f7d4641ce62.gif)
![2022年福建省南平市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題一卷(含答案)_第3頁(yè)](http://file4.renrendoc.com/view/f5a751b8215d8a51f4aa91f7d4641ce6/f5a751b8215d8a51f4aa91f7d4641ce63.gif)
![2022年福建省南平市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題一卷(含答案)_第4頁(yè)](http://file4.renrendoc.com/view/f5a751b8215d8a51f4aa91f7d4641ce6/f5a751b8215d8a51f4aa91f7d4641ce64.gif)
![2022年福建省南平市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題一卷(含答案)_第5頁(yè)](http://file4.renrendoc.com/view/f5a751b8215d8a51f4aa91f7d4641ce6/f5a751b8215d8a51f4aa91f7d4641ce65.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ì)真題一卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.
2.有以下程序:#include<stdio.h>main(){inti,j=0;chara[]=“ab123c4d56ef7gh89”;for(i=0;a[i];i++)if(a[i]>=‘0’&&a[i]<=‘9’)a[j++]=a[i];a[j]=‘\0’;printf(“%s”,a);}程序運(yùn)行后的輸出結(jié)果是()。
A.123456789abcdefgh
B.abcdefgh
C.123456789
D.1234567896ef7gh89
3.若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為()
A.10,7,9,3,5,1,2
B.10,9,7,5,1,2,3
C.10,9,7,5,3,2,1
D.10,9,7,3,2,1,5
4.有以下程序
include<stdio.h>
main()
{chara[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n%s\n”,a,b);
}
程序運(yùn)行時(shí)若輸入:
howareyou?Iamfine<回車(chē)>
則輸出結(jié)果是A.howareyou?Iamfine
B.howareyou?1amfine
C.howareyou?Iamfine
D.howareyou?
5.以下敘述中正確的是()。A.A.當(dāng)對(duì)文件的讀(寫(xiě))操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)
D.c語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
6.
7.設(shè)有如下定義:intx=10,y=3,z;則語(yǔ)句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
8.
若變量均已正確賦初值,則以下語(yǔ)句中
錯(cuò)誤的是()。
A.tl=t2;
B.t2.numl=tl.numl;
C.t2.mark=tl.Mark
D.t2.num2=tl.hum2;
9.
10.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有‘\0’
11.
12.
二、2.填空題(12題)13.程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過(guò)閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
14.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
15.閱讀程序,填空補(bǔ)充程序。
#define【】30
main()
{【】;
num=10;
total=num*PRICE;
printf("total=%d,num=%d\n",【】);
}
16.以下函數(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];}}
17.有以下程序:
main()
{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("%4c",'');
for(j=______;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式輸出數(shù)組右上半三角:
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是【】。
18.在數(shù)據(jù)庫(kù)理論中,數(shù)據(jù)庫(kù)總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類(lèi)型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)修改應(yīng)用程序,稱(chēng)為_(kāi)_____。
19.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)______。
20.以下程序的功能是建立—個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤(pán)輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(struct
21.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。
22.在兩種基本測(cè)試方法中,【】測(cè)試的原則之一是保證所測(cè)模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。
23.下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
24.下列程序輸出的結(jié)果是【】。
fun(intx)
{staticinta=3;
a+=x;
return(a);
}
main()
{intk=2,m=1,n;
n=fun(k);
n=fun(m);
printf("%d\n",n);
}
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是計(jì)算:
s=(ln(1)+ln(2)+ln(3)+…+ln(m))0.5
在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為20,則fun()函數(shù)值為6.506583。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(20));
}
26.請(qǐng)編寫(xiě)函數(shù)fun,其功能是:計(jì)算并輸出下列多項(xiàng)式的值:
例如,在主函數(shù)中從鍵盤(pán)給n輸入50后,輸出為:s=1.718282。
注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
27.請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過(guò)調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把O至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1],把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類(lèi)推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
28.請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過(guò)N),按J頃序合并組成一個(gè)新的字符串。
例如,若字符串?dāng)?shù)組中的M個(gè)字符串為
AAAA
BBBBBBB
CC
則合并后的字符串內(nèi)容應(yīng)該是AAAABBBBBBBCC
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#defineM3
#defineN20
voidfun(chara[M][N],char*b)
{
}
main()
{
charw[M][N]={"AAAA","BBBBBBB","CC"},i;
chara[100]={"####################"};
printf("Thestring:\n");
for(i=0;i<M;i++)
puts(w[i]);
printf("\n");
fun(w,a);
printf("TheAstring:\n");
printf("%s",a);
printf("\n\n");
}
29.編寫(xiě)一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長(zhǎng)度為2的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為asdasasdfgasdaszx67asdmklo,子字符串為as,則應(yīng)當(dāng)輸出6。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和具他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(char*str,char*substr)
{
}
main()
{
charstr[81],substr[3];
intn;
clrscr();
printf("輸入主字符串");
gets(str);
printf("輸入子字符串");
gets(substr);
puts(str);
puts(substr);
n=fun(shr,substr);
printf("n=%d\n",n);
}
30.請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。
S=1-x+x2(上標(biāo))/2!-x3(上標(biāo))/3!+…+(-1*x)n(上標(biāo))/n!
例如,當(dāng)n=15,x=0.5時(shí),函數(shù)值為0.606531。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(doublex,intn)
{
}
main()
{
clrscr();
printf("%f",fun(0.5,15));
}
31.請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:找出一維整型數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
32.請(qǐng)編寫(xiě)函數(shù)fun,其功能是:計(jì)算并輸出當(dāng)x<0.97時(shí)下列多項(xiàng)式的值,直到|Sn-Sn-2
|<0.000001為止。
例如,在主函數(shù)中從鍵盤(pán)給x輸入0.21后,輸出為:s=1.100000。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
33.請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從p~n-1(p<n-1)的數(shù)組元素平移到數(shù)組的前面。
例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,P的值為6。移動(dòng)后,一維數(shù)組的內(nèi)容應(yīng)為7,8,9,10,11,12,13,14,15,1,2,3,4,5,6。
[注意]部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
[試題源程序]
#inciude<stdio.h>
#defineN80
voidfun(int*w,intp,intn)
{
}
main()
{
inta[N]=(i,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
inti,P,n=15;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n\nEnterp:");
scanf("%d",&p);
fun(a,P,n);
printf("\nThedataaftermoving:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n\n");
}
34.請(qǐng)編寫(xiě)函數(shù)fun(),其功能是:計(jì)算并輸出下列多項(xiàng)式的值。
S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
例如,著主函數(shù)從鍵盤(pán)給n輸入50后,則輸出為S=1.960784。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
doublefun(intn)
{
}
main()
{
intn;
doubles;
printf("\nInputn:");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n\n",s);
}
四、單選題(0題)35.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
五、單選題(0題)36.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
六、單選題(0題)37.有以下程序voidss(char*s,chart){while{*s)if(*s==t)*s-t-'a'+'A';S++;main(){charstrl[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
參考答案
1.C
2.C題干中定義了字符數(shù)組a,它包含數(shù)字字符和字母字符。通過(guò)for循環(huán),將a中所有的數(shù)字字符前移,舍去其他字符,并在數(shù)字字符后添加字符串結(jié)束符‘\\0’,for循環(huán)結(jié)束后,字符串a(chǎn)的值為:123456789。故本題答案為C選項(xiàng)。
3.B
4.B
5.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。c)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。故本題答案為A)。
6.B
7.D
8.C結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個(gè)變量t2的成員mark數(shù)組的地址。因?yàn)榈刂范际枪潭ㄖ?,不能被賦值。結(jié)構(gòu)體可以進(jìn)行整體的賦值。
9.B
10.A題目的fun函數(shù)內(nèi),while循環(huán)條件為“(*b=*a)!=‘\\0’”,執(zhí)行時(shí)先把指針a所指向的字符賦給指針b所在的內(nèi)存單元。如果該字符不是結(jié)束標(biāo)識(shí)‘\\0’,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇到結(jié)束標(biāo)識(shí)為止。故本題答案為A選項(xiàng)。
11.D
12.B
13.靜態(tài)分析靜態(tài)分析解析:程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過(guò)閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
14.55解析:此程序中,for循環(huán)語(yǔ)句后面直接跟了一個(gè)“;”,表明循環(huán)體為空。輸出語(yǔ)句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。
15.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出現(xiàn)了變量num,total以及宏P(guān)RICE,因此應(yīng)在相應(yīng)位置說(shuō)明它們。
16.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列。
17.ii解析:上三角的情況是對(duì)數(shù)組a[i][j],j≥j的時(shí)候,因此,在j≥i時(shí)應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。
18.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)庫(kù)總體邏輯結(jié)構(gòu)改變,而不需要相應(yīng)修改應(yīng)用程序叫做邏輯獨(dú)立性。
19.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。
20.解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類(lèi)型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。
21.一對(duì)多一對(duì)多解析:實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一、一對(duì)多與多對(duì)多。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)教師只歸屬于一個(gè)學(xué)生,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于一對(duì)多的聯(lián)系。
22.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測(cè)試。測(cè)試一般有兩種方法:黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試不考慮程序的內(nèi)部邏輯結(jié)構(gòu)和處理過(guò)程,只著眼于程序的外部特性。用黑盒測(cè)試來(lái)發(fā)現(xiàn)程序中的錯(cuò)誤,必須用所有可能的輸入數(shù)據(jù)來(lái)檢查程序能否都能產(chǎn)生正確的輸出。白盒測(cè)試是在了解程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的基礎(chǔ)上,對(duì)程序的所有路徑進(jìn)行測(cè)試,檢查路徑是否都能按預(yù)定要求正確工作。因此,劃線處應(yīng)填入“白盒(箱)”或“WhiteBox”。
23.b=i+1b=i+1解析:本題考查了for循環(huán)語(yǔ)句的執(zhí)行過(guò)程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。
24.6
25.doublefun(intm){inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);/*計(jì)算s=ln(1)+ln(2)+ln(3)+…+in(m)*/returnsort(s);/*對(duì)s求平方根并返回*/}doublefun(intm)\r\n{\r\ninti;\r\ndoubles=0.0;\r\nfor(i=1;i<=m;i++)\r\ns=s+log(i);/*計(jì)算s=ln(1)+ln(2)+ln(3)+…+in(m)*/\r\nreturnsort(s);/*對(duì)s求平方根并返回*/\r\n}解析:首先,題目要求計(jì)算從1到m的對(duì)數(shù)的和,可用從1到m的循環(huán),每次循環(huán)都累加求和。該題需要注意之處是,log()函數(shù)的形式參數(shù)應(yīng)當(dāng)為double型變量,而用于循環(huán)的基數(shù)變量為整數(shù),需要進(jìn)行強(qiáng)制轉(zhuǎn)換。在返回的時(shí)候求小平方根。
26.
解析:該程序功能是計(jì)算并輸出多項(xiàng)式值。根據(jù)題干中給出的數(shù)列,首先推出每一項(xiàng)的表達(dá)式,然后再對(duì)多項(xiàng)式進(jìn)行累加求和。
27.
解析:該程序功能是統(tǒng)計(jì)各年齡段的人數(shù)。本題中采用的是多if選擇語(yǔ)句,實(shí)現(xiàn)了不同年齡段的分支選擇。
28.voidfun(chara[M][N]char*b){intijk=0;for(i=0;i<M;i++)/*將字符串?dāng)?shù)組中的M個(gè)字符串按順序存入一個(gè)新的字符串*/for(j=0;a[i][j]!='\0';j++)b[k++]=a[i][j];b[k]='\0';/*在字符串最后加上結(jié)束標(biāo)志符*/}voidfun(chara[M][N],char*b)\r\n{\r\ninti,j,k=0;\r\nfor(i=0;i<M;i++)/*將字符串?dāng)?shù)組中的M個(gè)字符串,按順序存入一個(gè)新的字符串*/\r\nfor(j=0;a[i][j]!='\\0';j++)\r\nb[k++]=a[i][j];\r\nb[k]='\\0';/*在字符串最后加上結(jié)束標(biāo)志符*/\r\n}解析:本程序中for(i=0;i<M;i++)循環(huán)的作用是用于對(duì)二維數(shù)組行的控制,第2個(gè)循環(huán)的作用是從同一行中取出字符并存放到一維數(shù)組b中,語(yǔ)句是b[k++]=a[i][j];。
29.intfun(char*strchar*substr){intij=0;for(i=0;str[i+1]!='\0';i++)/*如果一個(gè)長(zhǎng)度為2的子字符串在主字符串中出現(xiàn)一次則j+1如此循環(huán)*/if(str[i]==substr[0]&&str[i+1]==substr[1])j++;returnj;/*返回子字符串在主字符串中出現(xiàn)的次數(shù)*/}intfun(char*str,char*substr)\r\n{\r\ninti,j=0;\r\nfor(i=0;str[i+1]!='\\0';i++)/*如果一個(gè)長(zhǎng)度為2的子字符串在主字符串中出現(xiàn)一次,則j+1,如此\r\n循環(huán)*/\r\nif(str[i]==substr[0]&&str[i+1]==substr[1])\r\nj++;\r\nreturnj;/*返回子字符串在主字符串中出現(xiàn)的次數(shù)*/\r\n}解析:該題中subsu只有兩個(gè)字符,所以可以用if語(yǔ)句來(lái)直接進(jìn)行判斷。要注意if())中str組的下標(biāo)為i和i+1,即比較當(dāng)前字符及其以后的一個(gè)字符是否分別與substr中的字符對(duì)應(yīng)相同,若都相同則表示出現(xiàn)了一次。
30.doublefun(doublexintn){intij=1;doubles=1.0s1=1.0;for(i=1;i<=n;i++){j=-1*j;s1=s1*i/*各項(xiàng)中的階乘*/s=s+j*pow(xi)/s1;/*按公式求出*/}returns;}doublefun(doublex,intn)\r\n{\r\ninti,j=1;\r\ndoubles=1.0,s1=1.0;\r\nfor(i=1;i<=n;i++)\r\n{\r\nj=-1*j;\r\ns1=s1*i/*各項(xiàng)中的階乘*/\r\ns=s+j*pow(x,i)/s1;/*按公式求出*/\r\n}\r\nreturns;\r\n}解析:本程序中用s1來(lái)表示每項(xiàng)的分母(即各項(xiàng)中的階乘),要注意本程序中s和s1的初值都為1。注意到本題的公式中是加減相間的,這里要學(xué)會(huì)使用語(yǔ)句j=-1*j來(lái)實(shí)現(xiàn)。
31.
解析:該程序功能是求一維整型數(shù)組元素中最大的值和它所在的下標(biāo)。其中,求最大元素的方法:用最大值變量nax標(biāo)記第一個(gè)待找數(shù)據(jù),逐個(gè)把所有待找數(shù)據(jù)和max進(jìn)行比較,并用max標(biāo)記其當(dāng)前最大值及其所在位置,從而找出最大值。
32.
解析:該程序功能是計(jì)算并輸出當(dāng)x<0.97時(shí)題
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年模塊組合集成電源合作協(xié)議書(shū)
- 部編道德與法治八年級(jí)下冊(cè)教學(xué)工作計(jì)劃
- 2025年胺類(lèi)合作協(xié)議書(shū)
- 2025年工業(yè)爐窯的新型燃燒裝置合作協(xié)議書(shū)
- 小學(xué)英語(yǔ)外研版(三起點(diǎn))六年級(jí)上Module1課本+翻譯+練習(xí)
- 2025年個(gè)人房屋質(zhì)押借款合同模板(三篇)
- 2025年個(gè)體銷(xiāo)售員勞動(dòng)合同范文(2篇)
- 2025年產(chǎn)品代理銷(xiāo)售合同參考樣本(三篇)
- 2025年中學(xué)食堂合伙經(jīng)營(yíng)協(xié)議(三篇)
- 2025年個(gè)人旅游協(xié)議范文(2篇)
- 智能制造行業(yè)市場(chǎng)競(jìng)爭(zhēng)力分析
- 脾破裂護(hù)理查房
- 人教版高中物理必修一全套課件【精品】
- 四川省中小流域暴雨洪水計(jì)算表格(尾礦庫(kù)洪水計(jì)算)
- 動(dòng)物檢疫技術(shù)-臨診檢疫技術(shù)(動(dòng)物防疫與檢疫技術(shù))
- 《華夏幸福房地產(chǎn)公司人才流失現(xiàn)狀、原因及應(yīng)對(duì)策略》開(kāi)題報(bào)告(文獻(xiàn)綜述)3400字
- 文化墻、墻體彩繪施工方案
- 小型混凝土攪拌機(jī)-畢業(yè)設(shè)計(jì)
- 初中化學(xué)校本課程
- 科技文獻(xiàn)檢索
- GB/T 18665-2008地理標(biāo)志產(chǎn)品蒙山茶
評(píng)論
0/150
提交評(píng)論