版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年廣東省茂名市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
2.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
3.對(duì)于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
4.
5.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針q所指結(jié)點(diǎn)是指針結(jié)點(diǎn)p的直接前驅(qū),若在*q與*p之間插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
6.
7.對(duì)于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個(gè)元素往后查找該數(shù)據(jù)元素
B.從第1個(gè)元素往后查找該數(shù)據(jù)元素
C.從第n個(gè)元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關(guān)
8.按照標(biāo)識(shí)符的要求,()符號(hào)不能組成標(biāo)識(shí)符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
9.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī).,則表SC的關(guān)鍵字(鍵或碼)為()
A.課號(hào),成績(jī)B.學(xué)號(hào),成績(jī)C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績(jī)
10.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。
A.breakB.charC.SwithchD.return
11.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項(xiàng)中的語句,則能正確執(zhí)行的語句是()。
A.scanf(“%d”,a,b,c);
B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%d”,p);
D.scanf(“%d”,&p);
12.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()
A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半
二、2.填空題(12題)13.買來一張新盤后,在存入文件前,必須進(jìn)行【】處理。
14.數(shù)據(jù)模型是用來描述數(shù)據(jù)庫的結(jié)構(gòu)和語義的,數(shù)據(jù)模型有概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩類,E-R模型是【】
15.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
16.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?/p>
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]);
printf("\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;
}
}
17.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請(qǐng)將語句補(bǔ)充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
18.將以下程序段寫成三目運(yùn)算表達(dá)式:【】。
if(a>b)max=a;
elsemax=b;
19.設(shè)當(dāng)前盤為A盤,當(dāng)前系統(tǒng)提示符為“>”在不改變當(dāng)前盤情況下,顯示C盤的當(dāng)前目錄路徑,應(yīng)使用命令【】。
20.若變量n中的值為24,則prnt函數(shù)共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
21.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)血型數(shù)據(jù)。
22.測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
23.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
24.若輸入2、2,則下列程序的運(yùn)行結(jié)果為【】。
main()
{inti,j,(*p)[4],
a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
scanf("%d%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));
}
三、3.程序設(shè)計(jì)題(10題)25.函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值也為奇數(shù)的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為:“ABCDEFGl2345”,其中字符A的ASCII碼值雖為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此必需刪除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:“135”。
注意:部分源程序存在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
26.請(qǐng)編寫一個(gè)函數(shù)intfun(int*s,intt,int*k),用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。
例如,輸入如下整數(shù):
876675896101301401980431451777
則輸出結(jié)果為6,980。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{
}
main()
{
inta[10]={876,675,896,101,301,401,
980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
27.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun(),它的功能是:除了尾部的,:號(hào)之外,將字符串中其他*號(hào)全部刪除。形參p已指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言的字符串函數(shù)。
例如,若字符串中的內(nèi)容為****A*BC*DEF*G******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG******。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(char*a,char*p)
{
}
main()
chars[81],*t;
printf("Enterastring:\n");
gets(s);
t=s;
while(*t)
t++;
t--;/*指針t指向字符串尾部*/
while(*t=='*')
t--;/*指針t指向最后一個(gè)字母*/
fun(s,t);
printf("Thestringafterdeleted:\n");
puts(s);
}
28.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a,b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。
例如,當(dāng)a=45時(shí),b=12,調(diào)用到該函數(shù)后,c=5142。
注意:部分源程序給出如下.
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidfun(inta,intb,long*c)
{
}
main()
{
inta,b;
longc;
clrscr();
printf("Inputa,b:");
scanf(,%d%d",&a,&b);
fun(a,b,&c);
printf("Theresultis:%ld\n",c);
}
29.函數(shù)fun的功能是:將a、b中的兩個(gè)兩位正整數(shù)合并形成一個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十位和個(gè)位數(shù)依次放在變量c的百位和個(gè)位上,b中的十位和個(gè)位數(shù)依次放在變量c的千位和十位上。
例如,當(dāng)a=45,b=12。調(diào)用該函數(shù)后,c=1425。
注意:部分源程序存在文件PROGl.C中。數(shù)據(jù)文件in.dat中的數(shù)據(jù)不得修改。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
30.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
[注意]部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
[試題源程序]
#include<stdio.h>
#defineN16
typedefstruct
{
charnum[i0];
ints;
}STREC;
intfun(STRECa[])
{
}
main()
{
STRECs[N]={
{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
inti;
FILE*out;
fun(s);
printf("Thedataaftersorted:\n");
for(i=0;i<N;i++)
{
if((i)%4==0)
printf("\n");
printf("%s%4d",s[i].num,s[i].s);
}
printf("\n");
}
31.請(qǐng)編寫函數(shù)fun(),函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。
例如:若二維數(shù)組中的值為
13579
29994
69998
13570
則函數(shù)值為61。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineM4
#defineN5
intfun(inta[M][N])
{
}
main()
{
intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},
{6,9,9,9,8},{1,3,5,7,0}};
inti,j,y;
clrscr();
printf("Theoriginaldatais:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%6d",aa[i][j]);
printf("\n");
}
y=fun(aa);
printf("\nThesun:%d\n",y);
printf("\n");
}
32.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun(),它的功能是:把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值返回。
例如,輸入的分?jǐn)?shù)是60和69,則應(yīng)當(dāng)把分?jǐn)?shù)在60到69的學(xué)生數(shù)據(jù)進(jìn)行輸出,包含60分和69分的學(xué)生數(shù)據(jù)。主函數(shù)中把60放在low中,把69放在heigh中。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b,int1,inth)
{
}
main()
{
STRECs[N]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",96},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012",64},
{"GA014",91},{"GA011",90},{"GA017",64},
{"GA018",64},{"GA016",72}};
STRECh[N],tt;
FILE*out;
inti,j,n,low,heigh,t;
printf("Enter2integernumberlow&
heigh:");
scanf("%d%d",&low,&heigh);
if(heigh<low)
{t=heigh;heigh=low;low=t;}
n=fun(s,h,low,heigh);
printf("Thestudent'sdatabetween
%d--%d:\n",low,heigh);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
/*輸出指定分?jǐn)?shù)范圍內(nèi)的學(xué)生記錄*/
printf("\n");
ut=fopen("out74.dat","w")
fprintf(out,"%d\n",n)-
n=fun(s,h,80,98);
for(i=0;i<n-1;i++)
/*分?jǐn)?shù)在80~98之間的學(xué)生記錄按他數(shù)從低到高排序*/
for(j=i+l;j<n;j++)
if(h[i].s>h[j].s)
{tt=h[i];h[ii=h[j];h[j]=tt;}
for(i=0;i<n;i++)
fprintf(out,"%4d\n",h[i].s);
fprintf(out,"\n");
fclose(out);
}
33.編寫一個(gè)函數(shù),從傳入的num個(gè)字符中找出最長(zhǎng)的一個(gè)字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。
注意:部分源程序給出如下.
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
fun(char(*a)[81],intnum,char*max)
{
}
main()
{
charss[l0][81],*ps;
intn,i=0;
clrscr();
prlntf("輸入若干個(gè)字符串");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
/*用****作為結(jié)束輸入的標(biāo)志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,&ps);
print~("\nmax=%s\n",ps);
}
34.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun(),它的功能是:把低于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio,h>
#defineN8
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
main()
{
STRECs[N]={{"GA05",85},{"GA03",76}
{"GA02",69},{"GA04",85}
{"GA01",91}{"GA07",72},{"GA08",64}
{"GA06",87}};
STSCh[N],t;
FILE*out;
int.i,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichis
lowerthan%7.3f:\n"n,ave);
for(i=0;i<n;i++)
/*輸出成績(jī)低平均值的學(xué)生記錄*/
printf("%s%4lf\n"h[i]num,
h[i].s);
printf("\n");
ut=fopen("out71dat","w"
fprintf(out,"%d\n%7.3f\n",nave);
/*輸出平均值/
for(i=0;i<n-1;i++)
for(j=i+l;j<n;j++)
if(h[i].s>h[j].s)
{t=h[i];h[i]=h[j];h[j]=t;}
/*將成績(jī)由低至高排列*/
for(i=0;i<n;i++)
fprintf(out,"%4lf\n"h[i]s);
fclose(out);
}
四、單選題(0題)35.以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
五、單選題(0題)36.設(shè)有以下程序段:要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯(cuò)誤的輸入語句是()A.seanf(”%s”Ptrtitle);
B.scanf(”%s”,rec.title);
C.scanf(’’%s”,(*pu).title);
D.scanf(”%s”,ptr->title);
六、單選題(0題)37.
參考答案
1.A解析:在C語言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間,函數(shù)調(diào)用時(shí)返回的地址和自動(dòng)類局部變量等存放在動(dòng)態(tài)存儲(chǔ)區(qū)域中。auto變量和register變量都屬于自動(dòng)類局部變量,因此選項(xiàng)A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。
2.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。
3.D
4.A
5.B
6.D
7.C
8.A
9.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。
10.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。
11.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個(gè)選項(xiàng)中,C選項(xiàng)符合要求。故本題答案為C選項(xiàng)。
12.B
13.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
14.概念數(shù)據(jù)模型概念數(shù)據(jù)模型
15.棧棧解析:考查考生對(duì)棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。
16.br[i]
17.k*kk*k解析:本題考查的知識(shí)點(diǎn)是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開)。而第;個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。
18.max=(a>b)?a:bmax=(a>b)?a:b解析:本題考查三目運(yùn)算符的用法,條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
所以,本題可以寫成(a>b)?a:b,它是一個(gè)條件表達(dá)式,執(zhí)行順序是:如果條件(a>b)為真,則條件表達(dá)式取值a,否則取值b。
19.CDC:(CD與C:中間至少要有一個(gè)空格)CDC:(CD與C:中間至少要有一個(gè)空格)
20.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時(shí),則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個(gè)數(shù)。
21.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(葉旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。
22.調(diào)試調(diào)試
23.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個(gè)循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
24.a[22]=11
25.
解析:該程序功能是將字符串中除了下標(biāo)為奇數(shù)、ASCII值也為奇數(shù)的字符外,其余的全都刪除。解題過程利用if判斷表達(dá)式選擇符合條件的字符,然后將符合條件的字符放入指定的字符串。
26.intfun(int*sinttint*k){inti;*k=0;/*k所指的數(shù)是數(shù)組的下標(biāo)值*/for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;/*找到數(shù)組的最大元素把該元素的下標(biāo)賦給k所指的數(shù)*/returns[*k];/*返回?cái)?shù)組的最大元素*/}intfun(int*s,intt,int*k)\r\n{\r\ninti;\r\n*k=0;/*k所指的數(shù)是數(shù)組的下標(biāo)值*/\r\nfor(i=0;i<t;i++)\r\nif(s[*k]<s[i])*k=i;/*找到數(shù)組的最大元素,把該元素的下標(biāo)賦給k所指的數(shù)*/\r\nreturns[*k];/*返回?cái)?shù)組的最大元素*/\r\n}解析:本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開始應(yīng)讓*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。
27.voidfun(char*achar*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;/*將p以前所有不是*號(hào)的字符保留下來*/for(;*t!='\0';t++)*(a++)=.t;/*將p以后的所有*號(hào)保留下來*/*a='\0';/*在字符串最后加上結(jié)束標(biāo)記位*/voidfun(char*a,char*p)\r\n{\r\nchar*t=a;\r\nfor(;t<=p;t++)\r\nif(*t!='*')\r\n*(a++)=*t;/*將p以前所有不是*號(hào)的字符保留下來*/\r\nfor(;*t!='\\0';t++)\r\n*(a++)=.t;/*將p以后的所有*號(hào)保留下來*/\r\n*a='\\0';/*在字符串最后加上結(jié)束標(biāo)記位*/解析:本題曾在歷年上機(jī)考試及模擬試題中多次出現(xiàn),一般用兩個(gè)循環(huán)語句來實(shí)現(xiàn)。第1個(gè)循環(huán)的作用是將p以前所有不是*號(hào)的字符保留下來,即刪除所有的*號(hào)。第2個(gè)循環(huán)的作用是將p以后的所有*號(hào)保留下來。
28.voidfun(intaihtblong*c){*c=a%10*i000+b/10*l00+a/10*10+b%10;/*將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上*/}voidfun(inta,ihtb,long*c)\r\n{\r\n*c=a%10*i000+b/10*l00+a/10*10+b%10;/*將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和\r\n個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上*/\r\n}解析:本題中主要的問題是怎么取出a和b的個(gè)位數(shù)和十位數(shù),取出后怎么表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),所以分別對(duì)它們除10可得到它們的十位數(shù),分別用10對(duì)它們求余可得到它們的個(gè)位數(shù)。如45/10結(jié)果為4而不是4.5(這是由于兩個(gè)數(shù)都為整型,所以結(jié)果出為整型),45%10結(jié)果為5。若a為45,則a/10*10的結(jié)果為40而非45。乘1000,乘100和乘10的作用是分別使其膠面的數(shù)成為*c的千位數(shù)、百位數(shù)。注意要使用c時(shí)要注意進(jìn)行指針運(yùn)算,即*c,不能少了*號(hào)。
29.*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);解析:該程序功能是將正整數(shù)a、b合并形成一個(gè)新整數(shù)。本題類型首先要考慮整數(shù)的位數(shù)分離,然后要進(jìn)行位數(shù)合成。也就是先將數(shù)字的各位數(shù)拆開,改變排列順序后,再組合成新的數(shù)字。
30.#include<stdi0.h>#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STRECa[]){STRECtmp;intij;for(i=0;i<N;i++)for(j=i+1;j<N;J++)if(a[i].s<a[j].S){tmp=a[i];a[i]=a[j];a[j]=tmp;}}#include<stdi0.h>\r\n#defineN16\r\ntypedefstruct\r\n{\r\ncharnum[10];\r\nints;\r\n}STREC;\r\nintfun(STRECa[])\r\n{\r\nSTRECtmp;\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=i+1;j<N;J++)\r\nif(a[i].s<a[j].S)\r\n{\r\ntmp=a[i];\r\na[i]=a[j];\r\na[j]=tmp;\r\n}\r\n}
31.intfun(inta[M][N]){intijsum=0;for(i=0;i<M;i++)for(j=0;i<N;j++)if(i==0||i==M-1||j==0||j==N-1)/*只要下標(biāo)中有一個(gè)為0或M-1或N-1則它一定是周邊元素*/sum=sum+a[i][j];/*將周邊元素相加*/returnsum;}intfun(inta[M][N])\r\n{\r\ninti,j,sum=0;\r\nfor(i=0;i<M;i++)\r\nfor(j=0;i<N;j++)\r\nif(i==0||i==M-1||j==0||j==N-1)/*只要下標(biāo)中有一個(gè)為0或M-1或N-1,則它一定是周邊元素*/\r\nsum=sum+a[i][j];/*將周邊元素相加*/\r\nreturnsum;\r\n}解析:本題采用逐一判斷的方式,周邊元素的下標(biāo)一定有一個(gè)是0或M-1或N-1,且只要下標(biāo)中有一個(gè)為0或M-1或N-1,則它一定是周邊元素。
32.intfun(STREC*aSTREC*bint1inth){intij=0;for(i=0;i<N;i++)if(a[i].s>-l&&a[i].s<=h)/*將分?jǐn)?shù)高于1低于h的學(xué)生記錄存在于結(jié)構(gòu)體數(shù)組b中*/b[j++]=a[i];returnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/}intfun(STREC*a,STREC*b,int1,inth)\r\n{\r\ninti,j=0;\r\nfor(i=0;i<N;i++)\r\nif(a[i].s>-l&&a[i].s<=h)/*將分?jǐn)?shù)高于1,低于h的學(xué)生記錄存在于結(jié)構(gòu)體數(shù)組b中*/\r\nb[j++]=a[i];\r\nreturnj;/*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/\r\n}解析:處理此類分段統(tǒng)計(jì)問題,可采用多分支選擇語句或條件選擇語句。此處采用條件選擇語句解
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全生產(chǎn)責(zé)任基金抵押合同
- 2025年在線醫(yī)療健康平臺(tái)用戶注冊(cè)協(xié)議
- 2025年保密協(xié)議信息轉(zhuǎn)換書
- 2025年代理渠道合作協(xié)議
- 2025年旅游項(xiàng)目管理標(biāo)準(zhǔn)協(xié)議
- 《英語選修課》課件
- 2024 浙江公務(wù)員考試行測(cè)試題(A 類)
- 2025版美容護(hù)膚中心場(chǎng)地租賃合同范本4篇
- 2025版基礎(chǔ)設(shè)施建設(shè)工程施工合同終止補(bǔ)充協(xié)議2篇
- 買賣墓地合同(2024版)
- 2025年度房地產(chǎn)權(quán)證辦理委托代理合同典范3篇
- 職業(yè)衛(wèi)生培訓(xùn)課件
- 柴油墊資合同模板
- 湖北省五市州2023-2024學(xué)年高一下學(xué)期期末聯(lián)考數(shù)學(xué)試題
- 城市作戰(zhàn)案例研究報(bào)告
- 【正版授權(quán)】 ISO 12803:1997 EN Representative sampling of plutonium nitrate solutions for determination of plutonium concentration
- 道德經(jīng)全文及注釋
- 2024中考考前地理沖刺卷及答案(含答題卡)
- 多子女贍養(yǎng)老人協(xié)議書范文
- 彩票市場(chǎng)銷售計(jì)劃書
- 骨科抗菌藥物應(yīng)用分析報(bào)告
評(píng)論
0/150
提交評(píng)論