版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(12題)1.判斷一個棧ST(最多元素為Maxsize)為滿的條件是()。
A.ST->top!==-1
B.ST->top==-1
C.ST->top!==Maxsize-1
D.ST->top==Maxsize-1
2.已知一個有序表為(15,19,30,33,49,50,65,88,93,126,164),當(dāng)二分查找值為126的元素時,檢索成功需進(jìn)行的比較次數(shù)為()。
A.1次B.2次C.3次D.4次
3.
4.采用開放定址法處理散列表的沖突時,其平均查找長度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
5.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
6.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的運(yùn)行結(jié)果是()。
A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0
7.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是()。A.6B.10C.11D.15
8.以下選項(xiàng)中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
9.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
10.以下選項(xiàng)中,值為1的表達(dá)式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
11.若已定義x和y為double類型,則表達(dá)式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
12.下面哪些使用的不是貪心算法()
A.單源最短路徑中的Dijkstra算法
B.最小生成樹的Prim算法
C.最小生成樹的Kruskal算法
D.計算每對頂點(diǎn)最短路徑的Floyd-Warshall算法
二、2.填空題(12題)13.下列循環(huán)的循環(huán)次數(shù)是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
14.以下程序運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
15.下列程序輸出的結(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);
}
16.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
17.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。
main()
{inta;floatb;
【】
【】}
輸入形式:3.52<空格>6<回車>
輸出形式:a*b=21.12
18.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
2345678910
請?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
19.下列程序的輸出結(jié)果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
20.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
21.以下條件表達(dá)式可計算:1+|a|的值,請?zhí)羁铡>=0?【】:【】
22.若fp已下確定義為一個文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁眨员銥椤白x”而打開此文件:fp=fopen(【】);。
23.以下程序的運(yùn)行結(jié)果為【】。
#include<stdio.h>
main()
{staticintb[2][3]={{1,2,3},{4,5,6}};
staticint*pb[]={b[0],b[1]};
inti,j;
i=0;
for(j=0;j<3;j++)
printf("b[%d][%d]=%d",i,j,*(pb[i]+j));
printf("\n");
}
24.下列程序的輸出結(jié)果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5;++)
PRINT(a+i);
printf("\n");
}
三、3.程序設(shè)計題(10題)25.請編寫函數(shù)fun(),它的功能是計算下列級數(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ù)值為0.606531。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(doublex,intn)
{
}
main()
{
clrscr();
printf("%f",fun(0.5,15));
}
26.請編寫函數(shù)fun(),其功能是:將s所指字符串中下標(biāo)為奇數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。
例如,當(dāng)s所指字符串中的內(nèi)容為siegAHdied,則在t所指數(shù)組中的內(nèi)容應(yīng)是seAde。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*S,chart[])
{
}
main()
{
chars[100],t[100];
clrscr();
printf("\nPleaseenterstrings:");
scanf("%S",S);
fun(S,t);
printf("\nTheresultis:%s\n",t);
}
27.請編寫函數(shù)fun(),它的功能是:移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個整數(shù),要求把下標(biāo)從0到p(含p,p<n-1)的數(shù)組元素平移到數(shù)組的最后。例如:一維數(shù)組中的原始內(nèi)容為:1,2,3,4,5,6,7,8,9,10;p的值為3。移動后,一維數(shù)組中的內(nèi)容應(yīng)為:5,6,7,8,9,10,1,2,3,4。部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
#include<stdiO.h>
#defineN80
voidfun(int*w,intp,intn)
{
}
main()
{in[a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
inti,p,n=15;
printf("Theodginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
printf("\nEnterp:");
scanf("%d",&p);
fun(a,p,n);
printf("\nThedataaftermoving:\n");
for(i=0;i<n;i++)printf("%3d”,a[i]);
}
28.請編一個函數(shù)voidfun(inttt[M][N],intpp[N],tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{
}
main()
{
intt[M][N]={{68,32,54,12},{14,24,88,
58},{42,22,44,56}};
intp[N],i,j,k;
clrscr();
printf("Theriginaldatais:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:\n");
for(k=0;k<N;k++)
printf("%4d",p[k]);
printf("\n");
}
29.請編寫一個函數(shù)fun,它的功能是:比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長度相同,則返回第一個字符串。
例如,輸入beijingshah曲aj(為回車鍵),函數(shù)將返回shanghai。
注意:部分源程序存在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
30.m個人的成績存放在score數(shù)組中,請編寫函數(shù)fun(),它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為10,20,30,40,50,60,70,80,90時,函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為10,20,30,40。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(intscore[],intm,intbelow[])
{
}
main()
{
ihti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,
80,90};
clrscr();
n=fun(score,9,below);
printf("\nBelowtheaveragescoreare:");
for(i=0;i<n;i++)
printf("%d",below[i]);
}
31.請編寫一個函數(shù),用來刪除字符串中的所有空格。
例如:輸入asdafaaz67,則輸出為asdafaz67。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
puts(str);
fun(str);
printf("***Str:%s\n",str);
}
32.請編寫一個函數(shù)fun(),它的功能是:將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入ABC4efG,則應(yīng)輸出aBc4efg。
注意:部分源程序給出如下。
請勿改動主函數(shù)miain和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*SS)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80
characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
\%s",tt);
fun(tt);
printf("\nbecomes\n\%S\n",tt);
}
33.請編寫函數(shù)fun(),該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個字符串(每串的長度不超過N),按J頃序合并組成一個新的字符串。
例如,若字符串?dāng)?shù)組中的M個字符串為
AAAA
BBBBBBB
CC
則合并后的字符串內(nèi)容應(yīng)該是AAAABBBBBBBCC
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序:
#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");
}
34.編寫函數(shù)fun(),它的功能是:計算和輸出下列級數(shù)的和。
S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))
例如,當(dāng)n=10時,函數(shù)值為0.909091。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
試題程序;
#include<conio.h>
#include<stdio.h>
doublefun(intn)
{
}
main()
{
clrscr();
printf("%f\n",fun(10));
}
四、單選題(0題)35.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
五、單選題(0題)36.在位運(yùn)算中,操作數(shù)每右移一位,其結(jié)果相當(dāng)于()
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以16D.操作數(shù)乘以16
六、單選題(0題)37.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
參考答案
1.D
2.C
3.B
4.B
5.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
6.C本題中“if(a=1)b=1”與“elsed=3;”之間多了語句“c=2;”,所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。故本題答案為C選項(xiàng)。
7.C本題考查數(shù)組的使用。本題定義了兩個數(shù)組,注意數(shù)組的下標(biāo)是從0開始的,進(jìn)行第1次for循環(huán):當(dāng)i=0時,b[0]為數(shù)組b中第l個元素,結(jié)果為0,那么a[0]也是數(shù)組a中第l個元素,結(jié)果為1,所以S的值為1。第2次循環(huán):i此時自加為l,b[1]為數(shù)組的第2個元素,值為2,所以可求出a[2](數(shù)組中的第3個元素)的值為3,s=s+3,所以S的值為4。進(jìn)入第3次for循環(huán),依此類推,第3次for循環(huán)結(jié)束時s的值為6。第4次for循環(huán),s的值變?yōu)閘0。第5次for循環(huán)時,此時i的值為4,s的值變?yōu)閘l,i=5不符合題意,所以跳出循環(huán),輸出結(jié)果,所以本題答案為C。
8.AA選項(xiàng)中逗號是一個操作符。
9.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
10.B字符‘\\0’為空值,其ASCII值為0,所以B選項(xiàng)的值為1。字符‘0’的ASCII值為48,所以A、C、D選項(xiàng)的值均不為1。故本題答案為B選項(xiàng)。
11.C解析:這是一個逗號表達(dá)式,它的值應(yīng)為表達(dá)式y(tǒng)=x+3/2的值,而前一個表達(dá)式已給x賦值1,在沒有進(jìn)行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。
12.D
13.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會使k為0,所以不能進(jìn)入循環(huán)。
14.0240480,2,4\r\n0,4,8解析:本題主要考查了for循環(huán)語句的使用以及靜態(tài)局部變量的特點(diǎn)。
15.6
16.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
17.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);
18.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注意本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。
19.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因?yàn)閷定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
20.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
21.1+a1-a1+a,1-a解析:考查條件運(yùn)算符的使用。因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則;當(dāng)a>=0時,絕對值取本身,當(dāng)a<0時,絕對值取相反數(shù),再結(jié)合條件運(yùn)算符的計算規(guī)則,可得到本題的答案為a>=0。
22.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打開文件的函數(shù)為fopen(”文件名”,“mode”),其中“mode”表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”?!皉”表示以只讀方式打開?!皐”表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件?!癮”為追加方式打開。若文件存在時;將打開這個文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件?!皉+”打開一個已存在文件用于更新(可讀可寫)?!皐+”創(chuàng)建個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。“a+”打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填“d1.dst”,“rb”或其他等價的表達(dá)法。
23.b[0][0]=1b[0][1]=2b[0][2]=3
24.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2;第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3;第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。
25.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來表示每項(xiàng)的分母(即各項(xiàng)中的階乘),要注意本程序中s和s1的初值都為1。注意到本題的公式中是加減相間的,這里要學(xué)會使用語句j=-1*j來實(shí)現(xiàn)。
26.voidfun(char*Schart[]){intij=0k=strlen(s);/*k為字符串的長度*/for(i=0;i<k;i=i+2)/*將s所指字符串中下標(biāo)為偶數(shù)的字符存入t所指字符串中*/t[j++]=s[i];t[j]='\0';/*在字符串最后加上結(jié)束標(biāo)志*/}voidfun(char*S,chart[])\r\n{\r\ninti,j=0,k=strlen(s);/*k為字符串的長度*/\r\nfor(i=0;i<k;i=i+2)/*將s所指字符串中下標(biāo)為偶數(shù)的字符存入t所指字符串中*/\r\nt[j++]=s[i];\r\nt[j]='\\0';/*在字符串最后加上結(jié)束標(biāo)志*/\r\n}解析:本題使用了一種i永遠(yuǎn)是偶數(shù)的循環(huán)方法,即for(i=0;i<k;i=i+2),因?yàn)殚_始時i的值為0,當(dāng)i+2循環(huán)時,此值永遠(yuǎn)是偶數(shù)。
27.voidfun(int*wintpintn){intiJ;inta[N];for(i=0;i<=p;i++)a[i]=w[i]for(i=p+1j=0;i<n;i++j++)w[j]=w[i];for(i=0;i<=p;i++)w[n-p-1+i]=a[i];}voidfun(int*w,intp,intn)\r\n{inti,J;\r\ninta[N];\r\nfor(i=0;i<=p;i++)a[i]=w[i]\r\nfor(i=p+1,j=0;i<n;i++,j++)w[j]=w[i];\r\nfor(i=0;i<=p;i++)w[n-p-1+i]=a[i];\r\n}解析:將數(shù)組后面的元素向前平移,肯定會將前面的元素覆蓋。因此,可以定義一個數(shù)組用來暫時存放前面的元素。可以先將w[0]~w[p]依次賦給a[0]~a[p];然后將w[p]~w[n—1)
移到數(shù)組的前面:再將a[0]~a[p)依次賦給w[n-p-1+i]~w[n—1]。
28.voidfun(inttt[M][N]intpp[N]){intiimax;for(j=0;j<N;j++){max=tt[0][j];/*假設(shè)各列中的第一個元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max)/*如果各列中的其他元素比最大值大則將這個更大的元素看作當(dāng)前該列中最大元素*/max=tt[i][j];pp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/}}voidfun(inttt[M][N],intpp[N])\r\n{\r\ninti,i,max;\r\nfor(j=0;j<N;j++)\r\n{\r\nmax=tt[0][j];/*假設(shè)各列中的第一個元素最大*/\r\nfor(i=0;i<M;i++)\r\nif(tt[i][j]>max)/*如果各列中的其他元素比最大值大,則將這個更大的元素看作當(dāng)前該列中最大元素*/\r\nmax=tt[i][j];\r\npp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/\r\n}\r\n}解析:本題中函數(shù)的功能是求出二維數(shù)組中每列的最大元素。首先,假設(shè)各列中的第一個元素最大,然后利用行標(biāo)值的移動來依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個更大的元素看做當(dāng)前該列中最大的元素,繼續(xù)與該列中其他元素比較。
29.
解析:該程序功能是比較兩個字符串的長度。解題過程是首先分別求得兩個字符串的長度,然后對這兩個值進(jìn)行判斷,實(shí)現(xiàn)兩個字符串長度的比較。
30.intfun(intscore[]intmintbelow[]){intij=0;floatav=0.0;for(i=0;i<m;i++)av=av+score[i]/m;/*求平均值*/for(i=0;i<m;i++)if(score[i]<av)/*如果分?jǐn)?shù)低于平均分則將此分?jǐn)?shù)放入below數(shù)組中*/below[j++]=score[i];returnj;/*返回低于平均分的人數(shù)*/}intfun(intscore[],intm,intbelow[])\r\n{\r\ninti,j=0;\r\nfloatav=0.0;\r\nfor(i=0;i<m;i++)\r\nav=av+score[i]/m;/*求平均值*/\r\nfor(i=0;i<m;i++)\r\nif(score[i]<av)/*如果分?jǐn)?shù)低于平均分,則將此分?jǐn)?shù)放入below數(shù)組中*/\r\nbelow[j++]=score[i];\r\nreturnj;/*返回低于平均分的人數(shù)*/\r\n}解析:該題第1個循環(huán)的作用是求出平均分av,第2個循環(huán)的作用是找出低于平均分的成績并存入below數(shù)組中。
31.intfun(char*str){intij=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')/*將字符串中的空格刪去*/str[j++]=str[i];/*注意該程序中空格字符的表達(dá)方法*/str[j]='\0';/*在字符串最后加上結(jié)束標(biāo)記符*/}intfun(char*str)\r\n{\r\ninti,j=0;\r\nfor(i=0;str[i]!='\\0';i++)\r\nif(str[i]!='')/*將字符串中的空格刪去*/\r\nstr[j++]=str[i];/*注意該程序中空格字符的表達(dá)方法*/\r\nstr[j]='\\0';/*在字符串最后加上結(jié)束標(biāo)記符*/\r\n}解析:前面我們接觸到的題是刪除字符,但本題要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車輛質(zhì)押貸款合同模板5篇
- 二零二五版白酒市場調(diào)研與分析服務(wù)合同2篇
- 二零二五版便利店區(qū)域代理合作合同范本2篇
- 二零二五年度花卉市場花卉供貨與品牌孵化服務(wù)合同3篇
- 二零二五年環(huán)境監(jiān)測地形圖測繪與污染防控合同3篇
- 二零二五版電影影視基地建設(shè)贊助合同3篇
- 2025版金融機(jī)構(gòu)出納人員現(xiàn)金擔(dān)保責(zé)任合同范本3篇
- 二零二五年建材城商鋪?zhàn)赓U合同環(huán)保及安全責(zé)任承諾書3篇
- 二零二五年度民間借貸合同管轄權(quán)變更協(xié)議3篇
- 二零二五年度房地產(chǎn)買賣居間合同模板(含稅費(fèi)繳納)下載3篇
- 餐飲行業(yè)智慧餐廳管理系統(tǒng)方案
- EGD殺生劑劑化學(xué)品安全技術(shù)說明(MSDS)zj
- GB/T 12229-2005通用閥門碳素鋼鑄件技術(shù)條件
- 超分子化學(xué)-第三章 陰離子的絡(luò)合主體
- 控制變量法教學(xué)課件
- 血壓計保養(yǎng)記錄表
- 食品的售后服務(wù)承諾書范本范文(通用3篇)
- 新外研版九年級上冊(初三)英語全冊教學(xué)課件PPT
- 初中中考英語總復(fù)習(xí)《代詞動詞連詞數(shù)詞》思維導(dǎo)圖
- 植物和五行關(guān)系解說
- 因式分解法提公因式法公式法
評論
0/150
提交評論