2024年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)和答案_第1頁(yè)
2024年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)和答案_第2頁(yè)
2024年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)和答案_第3頁(yè)
2024年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)和答案_第4頁(yè)
2024年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)和答案_第5頁(yè)
已閱讀5頁(yè),還剩146頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.填空

給定程序的功能是調(diào)用fun函數(shù)建立班級(jí)通訊錄。通訊錄中記錄每位學(xué)生

日勺編號(hào),姓名和號(hào)碼。班級(jí)的人數(shù)和學(xué)生的信息從鍵盤(pán)讀入,每個(gè)人的信息作

為一種數(shù)據(jù)塊寫(xiě)到名為myfile5.dat的J二進(jìn)制文獻(xiàn)中。

請(qǐng)?jiān)诔绦虻南聞澗€處填入對(duì)的H勺內(nèi)容并把下劃線刪除,是程序得出對(duì)的的成

果。

注意:源程序寄存在考生文獻(xiàn)夾下的BLANK1.c中

不得增行或刪行,也不得更改程序的構(gòu)造!

voidcheck();

/**********found**********/

intfun(1___*std)

(

/**********found**********/

―2*fp;inti;

if((fp=fopen("myfile5.dat","wbH))==NULL)

return(O);

printf("\n0utputdatatofile!\n");

for(i=0;i<N;i++)

/**********f^)und**********/

fwrite(&std[i],sizeof(STYPE),1,3___);

fclose(fp);

return(1);

)

修改

給定程序M0DI1.C中函數(shù)fun的功能是:先將在字符串s中的字符按正序寄存

到t串中,然后把s中時(shí)字符按逆序連接到t串背面。

例如:當(dāng)s中的I字符串為:“ABCDE”時(shí),

則他中的字符串應(yīng)為:“ABCDEEDCBA”。

請(qǐng)改正程序中的錯(cuò)誤,使他能得出對(duì)日勺的成果。

注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不得更改程序的構(gòu)造!

voidfun(char*s,char*t)

{inti,si;

si=strlen(s);

/************fbund************/

for(i=0;i<=s1;i++)

t[i]=s[i];

for(i=0;i<s1;i++)

”[s1+i]=s[sl-i-l];

/************found************/

t[si]='\0,;

程序

函數(shù)fun日勺功能是:將兩個(gè)兩位數(shù)日勺正整數(shù)a,b合并成一種整數(shù)放在C中。合

并的方式是:將a數(shù)日勺十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)日勺十位和

個(gè)位數(shù)依次放在c數(shù)日勺百位和個(gè)位上。

例如:a=45,b=如時(shí),調(diào)用該函數(shù)后,c=4152.

注意:部分源程序存在文獻(xiàn)PR0G1.C中。數(shù)據(jù)文獻(xiàn)IN.DAT中日勺數(shù)據(jù)不得修

改。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填

入你編寫(xiě)的若干語(yǔ)句。

答案:B:STYPEFILEfp

M:for(i=0;i<si;i++)t[2*s1]=0;

P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);

2.填空

給定程序的功能是:從鍵盤(pán)輸入若干行文本(每行不超過(guò)80個(gè)字符),寫(xiě)到

文獻(xiàn)myfile4.txt中用作為字符串輸入結(jié)束日勺標(biāo)識(shí)。然后將文獻(xiàn)的內(nèi)容讀出

顯示在屏幕上。文獻(xiàn)的讀寫(xiě)分別有自定義函數(shù)ReadText和WriteText實(shí)

現(xiàn)。

請(qǐng)?jiān)诔绦驎r(shí)下劃線處填入對(duì)歐I的內(nèi)容并把下劃線刪除,是程序得出對(duì)時(shí)

日勺成果。

注意:源程序寄存在考生文獻(xiàn)夾下的BLANK1.c中

不得增行或刪行,也不得更改程序的構(gòu)造!

main()

{FILE*fp;

if((fp=fopen("myfile4.txt";'wu))==NULL)

{printf("openfail!!\nM);exit(0);}

WriteText(fp);

fclose(fp);

if((fp=fopen(Hmyfile4.txt",Mrn))==NULL)

{printf(Mopenfai1!!\nH);exit(0);}

ReadText(fp);

fc1ose(fp);

)

/**********found**********/

voidWriteText(FILE__1)

{charstr[81];

printf("\nEnterstringwith_1toend:\n");

gets(str);

whi1e(strcmp(str,H-1*')!=0){

/**********砧und**********/

fputs(___2,fw);fputs("\nM,fw);

gets(str);

}

)

voidReadText(FILE*fr)

{charstr[81];

printf(n\nReadfileandoutputtoscreen:\nH);

fgets(str,8l,fr);

while(!feof(fr)){

/**********fQund**********/

printf("%sn,—3—);

fgets(str,81,fr);

)

}

修改

給定程序MODI1.c中函數(shù)fun的功能是:從低位開(kāi)始取出長(zhǎng)整形變量s中的奇數(shù)

位上的I數(shù),依次構(gòu)成一種新數(shù)放在t中,高位仍放在高位,低位仍放在低位。

例如:當(dāng)s中時(shí)數(shù)為:7654321時(shí),t中時(shí)數(shù)為:7531

請(qǐng)改正程序中的錯(cuò)誤,使他能得出對(duì)的的I成果。

注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不得更改程序的構(gòu)造!

#inc1ude<stdio.h>

/************向und************/

voidfun(longs,1ongt)

{longs1=10;

*t=s%10;

while(s>0)

{s=s/100;

*t=s%10*s1+*t;

/************found************/

osl=Sl*l()();

)

)

程序

函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a,b合并成一種整數(shù)放在c中。合并

於J方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的J千位和十位上,b數(shù)/、J十位和個(gè)

位數(shù)依次放在c數(shù)的百位和個(gè)位上。

例如:a=45,b=12時(shí),調(diào)用該函數(shù)后,c=1524.

注意:部分源程序存在文獻(xiàn)PROG1.C中。數(shù)據(jù)文獻(xiàn)IN.DAT中的數(shù)據(jù)不得

修改。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

2、B:*fwstrstr

M:1ong*tsi=s1*10;

P:*c=(b/10)*1000+(a%10)*l00+(b%10)*10+(a/10);

3.填空

給定程序中,函數(shù)funH勺功能是:將自然數(shù)1-10以及它們H勺平方根寫(xiě)到

名為myfile3txt的文本文檔中,然后再次序讀出顯示在屏幕上。

請(qǐng)?jiān)诔绦虻南聞澗€處填入對(duì)時(shí)的內(nèi)容并把下劃線刪除,是程序得出對(duì)的

的成果。

注意:源程序寄存在考生文獻(xiàn)夾下的JBLANKl.c中

不得增行或刪行,也不得更改程序的構(gòu)造!

intfun(char*fname)

{FILE*fP;inti,n;floatx;

if((fp=fopen(fname,"wM))==NULL)return0;

for(i=l;i<=10;i++)

/**********f0und**********/

fprintf(1,"%d%f\n“,i,sqrt((double)i));

printf(n\nSucceed!!\nH);

/**********found**********/

―2—;

printf(n\nThedatainfile:\n");

/**********Sund**********/

M

if((fp=fopen(_3,”r))==NULL)

return0;

fscanf(fp,"%d%f',&n,&x);

whi1e(!feof(fp))

(printf(n%d%f\n,n,x);fscanf(fp,"%d%f,&n,&x);}

fc1ose(fp);

return1;

)

修改

給定程序MODI1.c中fun函數(shù)的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。

fun(intn,int*a)

{inti,j,p,t;

for(j=0;jvn-1;j++)

{p=j;

/************foufid************/

for(i=j+l;i<n-1;i++)

if(a[p]>a[i])

/************found************/

t=i;

if(P!=j)

(t=a[j];a[j]=a[p];a[p]=t;}

)

)

程序

函數(shù)fun曰勺功能是:將兩個(gè)兩位數(shù)的正整數(shù)a,b合并成一種整數(shù)放在c中。合并

的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個(gè)

位數(shù)依次放在c數(shù)的百位和個(gè)位上。

例如:a=45,b=12時(shí),調(diào)用該函數(shù)后,c=2514

注意:部分源程序存在文獻(xiàn)PR0G1.C中。數(shù)據(jù)文獻(xiàn)IN.DAT中的數(shù)據(jù)不得修改。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填

入你編寫(xiě)的若干語(yǔ)句。

3、B:fpfc1ose(fp)fname

M:i<np=i

P:*c=(b%10)*l000+(a%10)*100+(b/10)*10+(a/10);

4.填空

給定程序的功能是:調(diào)用函數(shù)fun將指定源文獻(xiàn)中日勺內(nèi)容復(fù)制到指定的目的文獻(xiàn)

中,復(fù)制成功時(shí)函數(shù)返回值為1,失敗時(shí)返回值為0,在復(fù)制的過(guò)程中,把復(fù)制的

內(nèi)容輸出到終端屏幕。主函數(shù)中源文獻(xiàn)名放在變量sfname中,目的文獻(xiàn)名放在

變量tfname中

intfun(char*source,char*target)

{FILEcharch;

/**********found**********/

if((fs=fopen(source,1))==NULL)

return0;

if((ft=fopen(target,Mw"))==NULL)

return0;

printf("\nThedatainfile:\nH);

ch=fgetc(fs);

/*********und**********I

while(!feof(_2))

{putchar(ch);

/******und**********/

fputc(ch,___3);

ch=fgetc(fs);

fc1ose(fs);fclose(ft);

printf("\n\n");

return1;

)

修改

給定程序MODH.C中函數(shù)fun的功能是:將長(zhǎng)整形數(shù)中每一位上為偶數(shù)的數(shù)依

次取出,構(gòu)成一種新數(shù)放在t中。高位仍在高位,低位仍在低位。

例如:當(dāng)s中的數(shù)為:87653142時(shí),t中H勺數(shù)為:8642

voidfun(longs,long*t)

{intd;

longsl=1;

=0;

while(s>0)

{d=s%10;

/************found***/********/

if(d%2=0)

{*t=d*s1+*t;

si*=10;

/************砧und************/

s\=10;

}

)

程序

函數(shù)funin功能是:將兩個(gè)兩位數(shù)的正整數(shù)a,b合并成一種整數(shù)放在c中。合

并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位

和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。

例如:a=45,b=12時(shí),調(diào)用該函數(shù)后,c=5142

注意:部分源程序存在文獻(xiàn)PROG1.C中。數(shù)據(jù)文獻(xiàn)IN.DAT中的數(shù)據(jù)不得修

改。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入

你編寫(xiě)的若干語(yǔ)句。

4、B:"r"fsft

M:(d%2=0)s/=10;

P:*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);

5.填空

給定程序中已建立一種帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各節(jié)點(diǎn)按結(jié)點(diǎn)數(shù)據(jù)域中

的數(shù)據(jù)遞增有序鏈表。函數(shù)fun的功能是:把形參x日勺值放入一種新結(jié)點(diǎn)并插

入到鏈表中,插入后結(jié)點(diǎn)數(shù)據(jù)域時(shí)值仍保持遞增有序。

typedefstruct1ist

(intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h,intx)

{SLIST*p,*q,*s;

s=(SLIST*)malloc(sizeof(SLIST));

/**********found**********/

s—>data=___1;

q=h;

p=h->next;

whi1e(p!=NULL&&x>p->data){

/**********found**********/

q=2;

p=P->next;

)

s->next=p;

/********d**********/

q—>next=___3____;

)

修改

給定程序MOD".C中函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之

積。例如,若輸入:252,則輸入應(yīng)當(dāng)是:20.若輸入:202,則輸出應(yīng)當(dāng)是:0.

longfun(longnum)

(

/************found************/

1ongk;

do

{k*=num%10;

/*******ound************/

num\=10;

}whi1e(num);

return(k);

)

請(qǐng)編寫(xiě)一種函數(shù)fun,它的功能是:它的功能是:計(jì)算n門課程的平均分,計(jì)算成果

作為函數(shù)值返回。

例如:若有5門課程『、J成績(jī)是:90.5,72,80,61.5,55

則函數(shù)的值為:71.80

5、B:xps

M:1ongk=1;num/=10;

P:inti;floatave=0.0;for(i=0;i<n;i++)ave=ave

+a[i];ave=ave/n;returnave;

6.填空

給定程序中已建立一種帶有頭結(jié)點(diǎn)由1單向鏈表,在main函數(shù)中將多次調(diào)

用fun函數(shù),沒(méi)調(diào)用一次fun函數(shù),輸出鏈表尾部結(jié)點(diǎn)中的數(shù)據(jù),并釋放該節(jié)

點(diǎn),是鏈表縮短。

voidfun(SLIST*p)

{SLIST*t,*s;

t=p—>next;s=p;

while(t->next!=NULL)

{s=t;

/**********f0und**********/

t=t->1;

}

/********und**********/

printf(“%d",—2—);

s—>next=NULL;

/**********found**********/

free(3);

)

修改

給定程序M0DI1.C中函數(shù)fun的功能是:將字符串中的字符按逆序輸

出,單補(bǔ)變化字符串中日勺內(nèi)容。

例如,若字符串味abed,則應(yīng)輸出:deba

/************f0口nd************/

fun(chara)

{if(*a)

{fun(a+1);

/************Cund************/

printf(M%cH*a);

)

)

程序

請(qǐng)編寫(xiě)一種函數(shù)fun,他日勺功能是:比較兩個(gè)字符串的長(zhǎng)度(不得調(diào)用c語(yǔ)

言提供日勺求字符串長(zhǎng)度日勺函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度

相似,則返回第一種字符串。

例如,輸入beijing<CR>shanghai<CR>(<CR>為回車鍵),函數(shù)將

返回shanghai

6、B:nextt->datat

M:fun(char*a)printf(M%c",*a);

P:inti;char*p=s,*q=t;

for(i=0;*p&&*q;i++)

(

P++;q++;

)

if(*p==0&&*q==0)returns;

if(*p)returns;elsereturnt;

7.填空

給定程序中建立一種帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中日勺各節(jié)點(diǎn)按數(shù)據(jù)域

遞增有序連接。函數(shù)fun日勺功能是:刪除鏈表中數(shù)據(jù)域值相似日勺結(jié)點(diǎn),使之只

保留一種

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h)

SLIST*p,*q;

p=h->next;

if(p!=NULL)

{q=p->next;

while(q!=NULL)

{if(p->data==q->data)

{p—>next=q—>next;

/**********fbund**********/

free(1);

/**********found**********/

q=p—>一2;

)

else

{P=q;

/**********rund**********/

Q=q->一3一;

)

}

}

}

修改

給定程序MODI1.C中函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按

從小到大的次序進(jìn)行排序。

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;j<n—1;j++){

/************Cund************/

P=j

for(i=j:i<n;i++)

if(ali]<a[p])

/************found************/

p=j;

t=a[p];a[p]=a[j];a[j]=t;

)

)

請(qǐng)編寫(xiě)一種函數(shù)fun,它的功能是:求出1到m之間(含m)能被7或11

整除的所有整數(shù)放在數(shù)組a中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳3送給m

的之位50,則程序輸出:7111421221833354244

49

答案:

7、B:qnextnext

M:P=j;p=i;

P:inti;*n=0;

fbr(i=7;i<=m;i++)

if((i%7==0)|I(i%11==0))a[(*n)++]=i;

8.填空

給定程序中,函數(shù)fun的Jgongn是:在帶有頭結(jié)點(diǎn)的I單向鏈表中,查找

數(shù)據(jù)域中值為ch的結(jié)點(diǎn)。找到后通過(guò)函數(shù)值返回改結(jié)點(diǎn)在鏈表中所處的次序

號(hào):若不存在值為ch的結(jié)點(diǎn),函數(shù)返回0值

typedefstruct1ist

{intdata;

structlist*next;

}SLIST;

SL1ST*creat1ist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;intn=0;

p=h->next;

/*********found**********I

while(p!=___1)

n++;

/**********found**********/

if(p->data==ch)return2___;

eIsep=p->next;

}

return0;

)

修改

給定程序MODILC中函數(shù)fi】n的功能是:刪除p所指字符串中的所有

空白字符(包括制表符,回車符及換行符)

輸入字符串是用“#"結(jié)束輸入。

fun(char*p)

{inti,t;charc[801;

/************found************/

For(i=0,t=0;pfi];i++)

if(!isspace(*(p+i)))c[t++]=p[i];

/************found************/

c[U="\0";

strcpy(p,c);

)

程序

請(qǐng)編寫(xiě)一種函數(shù)fun,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上的

字母轉(zhuǎn)換成大寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換)

例如:若輸入“abc4EFg",則應(yīng)輸出“aBc4Efg二

答案:

8、B:NULLnhead,ch

M:forc[t]='\0

P:inti;for(i=1;i<str1en(*ss);i+=2){if(ss[i]>=

'a'&&ss[i]<=?/)ss[i]-=32;

9.填空

給定程序中,函數(shù)fun日勺功能是:記錄出帶有頭結(jié)點(diǎn)的單向鏈表中的I個(gè)數(shù),

寄存在形參n所指的存儲(chǔ)單元中。

voidfun(SLIST*h,int*n)

{SLIST*p;

/**********found**********/

―1二0;

p=h->next;

while(p)

{(*n)++;

/**********found**********/

P=p->____2;

}

)

main()

{SLIST*head;

inta[N]={12,87,45,32,91,16,20,48),num;

head=creat1ist(a);outlist(head);

/*********und**********/

fun(___3___,&num);

printf(n\nnumber=%d\nM,num);

)

修改

給定程序MODIl.C中函數(shù)fun的功能是:求出s所指字符串中最終一

次出現(xiàn)日勺t所指子字符串日勺地址,通過(guò)函數(shù)返回值返回,在主函數(shù)中輸出從此地

址開(kāi)始日勺字符串;若未找到,則函數(shù)值為NULL

例如:當(dāng)字符串中的內(nèi)容為“abcdefabcdx”t中的內(nèi)容為例如時(shí),輸出的成果

應(yīng)是:abcdx

當(dāng)字符串中的內(nèi)容為“abcdefabcdx”t中區(qū)I內(nèi)容為“abd”時(shí),則程序輸出未找

到信息notbefound

char*fun(char*s,char*t)

char*p,*r,*a;

/************fQ血d************/

a=Nul1;

whi1e(*s)

{P=s;r=t;

while(*r)

/************found************/

if(r==p)

{r++;p++;}

elsebreak;

if(*r=='\0')a=s;

s++;

)

returna;

)

程序

函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)問(wèn)為偶數(shù),同步ASCII值也為

偶數(shù)的字符外,其他的所有刪除伴中剩余字符所形成的一種新串放在t所指的

數(shù)組中

例如,若s所指的字符串中日勺內(nèi)容為“ABCDEFG123456",其中字符A的IASCII

碼味奇數(shù),因此應(yīng)當(dāng)刪除,其中字符b日勺ASCII碼值為偶數(shù),不過(guò)在數(shù)組中的下標(biāo)

為基數(shù),因此也當(dāng)刪除;

答案

9、B:*nnexthead

M:a=NULL;*r==*p

P:inti,j=0;

for(i=0;i<strlen(s);i+=2)

if(s[i]%2==O)t[j++]=s[i]:

t[j]=0;

10.填空

給定程序中,函數(shù)fun的功能是:計(jì)算出帶有頭結(jié)點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域

中值之和作為函數(shù)的返回值。

intfun(SLIST*h)

(SLIST*p:ints=0:

p=h->next;

while(p)

(

/**********found**********/

s+=p->1;

/**********砧und**********/

P=P->____2____

)

returns;

)

修改

給定程序M0DI1.C中函數(shù)fun的功能是:將s所指字符串中出現(xiàn)的與11所指字

符串相似的字串所有替代成12所指字符串,所形成的新串放在w所指口勺數(shù)組中,

在此處,規(guī)定t1和t2所指字符串的長(zhǎng)度相似。

intfun(char*s,char*tl,char*t2,char*w)

(

inti;char*p,*r,*a;

strcpy(w,s);

whi1e(*w)

{P=w;r=tl;

/************found************/

whi1e(r)

if(*r==*p){r++;p++;}

elsebreak;

if(*r=='O')

aw;rt2;

while(*r){

/************Cund************/

*a=*r;a++;r++

)

w+=strien(t2);

)

e1sew++;

)

)

程序

函數(shù)fun的功能是;將s所指字符串下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的

新串放在t所指的數(shù)組中

例如:當(dāng)s所指字符串中的內(nèi)容為:“ABCDEFGHIJK”

在t所指數(shù)組中的內(nèi)容應(yīng)是“BDFHJ”

10、B:datanexthead

M:*rr++;

P:inti,j=0;for(i=1;i<str1en(s);i+=2)t[j++]

=slij;t[j]=0;

11.填空

人員記錄有編號(hào)和出生年月日構(gòu)成,N名人員的數(shù)據(jù)已在主函數(shù)中存入構(gòu)

造體數(shù)組std中,且編號(hào)唯一。函數(shù)fun的功能是:找出數(shù)據(jù)中H勺編號(hào)為空串o

/**********found**********/

1fun(STU*std,char*num)

{inti;STUa={”",9999,99,99};

for(i=0;i<N;i++)

/**********found**********/

if(strcmp(___2___,num)==0)

/**********found**********/

return(__3一);

returna;

}

修改

給定程序MODIl.C中函數(shù)fun的功能是:從s所指字符串中,找出與

t所指字符串相似的字串的個(gè)數(shù)作為函數(shù)返回值

例如,當(dāng)s所指字符串中的內(nèi)容為:“abcdabfab",t所指字符串的內(nèi)容為:

“ab”則函數(shù)返回整數(shù)3

intfun(char*s,char*t)

(

intn;char*p,*r;

0;

while(*s)

{p=s;r=t;

while(*r)

if(*i?二二*p){

/***********und************/

r++;p++

}

elsebreak:

/***********f0und************/

if(r=='VO1)

n++;

s++;

)

returnn;

)

函數(shù)fun的功能是:將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中

剩余字符形成一種新串放在t所指的數(shù)組中

例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345",其中字符B的

ASCII碼值為偶數(shù).....

答案:

11、B:STUstd[i].numstd[i]

M:p++;*r==>\0';

P:inti,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2)t[j++]=

s[il;t[jl=0;

12.填空

人員的記錄由編號(hào)和出生年月日構(gòu)成N名組員的數(shù)據(jù)已在主函數(shù)中存入構(gòu)造體

數(shù)組sid中,函數(shù)fun的功能是:找出指定出生年份的人員,將其數(shù)據(jù)放在形參k

所指的數(shù)組中,由主函數(shù)輸出另事有函數(shù)值返回滿足指定條件的人數(shù)

intfun(STU*std,STU*k,intyear)

{inti,n=O;

for(i=0;i<N;i++)

/**********found**********/

if(1==year)

/**********found**********/

kLn++]=_2___;

/**********found**********/

return(3);

)

修改

給定程序MODI12oC的功能是:讀入一種整數(shù)k(2《k《1000),打印她的所有

因子

例如2310,則應(yīng)輸出2,3,5,7,11

/************f0und************/

IsPrime(intn);

{inti,m;

m=1;

for(i=2;i<n;i—F)

/************fQUnd************/

if!(n%i)

{m=0;break;}

return(m);

)

設(shè)計(jì)

己知學(xué)生的記錄有學(xué)號(hào)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已經(jīng)存入構(gòu)造體數(shù)組a中。編

寫(xiě)函數(shù)fun,函數(shù)功能是:找出成績(jī)最高的學(xué)生記錄,通過(guò)形參指針傳回主函數(shù)

(規(guī)定只有一種最高分)。已給出函數(shù)的首部,請(qǐng)完畢該函數(shù)

12、B:std[i].yearstd[i]nM:分號(hào)去掉if(!(n%i))

P:inti,max=a[OJ.s,j=0;for(i=1;i<N;i++)i

f(max<a[i].s){j=i;max=a[i].s;}*s=a[j];

13.填空

給定程序通過(guò)定義并賦初值的方式,運(yùn)用構(gòu)造體變量存儲(chǔ)了一名學(xué)生的學(xué)號(hào),姓

名和3們課程的成績(jī),函數(shù)fun的功能是將該學(xué)生的各科成績(jī)都乘以一種系數(shù)a

voidshow(STUtt)

{inti;

printf(H%d%s:U,tt.num,tt.name);

for(i=0;i<3;i++)

printf("%5.1f",tt.score[i]);

printf

)

/**********fbund**********/

voidmodify(1___*ss,floata)

{inti;

for(i=0;i<3;i++)

/**********found**********/

ss->___2___*=a;

)

main()

{STUstd={1,nZhanghuaH,76.5,78.0,82.0);

floata;

printf(M\nTheoriginalnumberandnameandscores:\n");

show(std);

printf(n\nInputanumber:*');scanf(n%f\&a);

/**********found**********/

modify(3___,a);

printf("\nAresu1tofmodifying:\n");

show(std);

)

修改

給定程序MODLC中函數(shù)fun的功能是:求k!(k<13),所求階乘時(shí)值作為函數(shù)值

返回,例如若(k=10,則應(yīng)輸出:3628800

1ongfun(intk)

(

/************found************/

ifk>0

return(k*fun(k-1));

/**********ound************/

elseif(k=0)

return1L;

)

設(shè)計(jì)

程序定義了N*N時(shí)二維數(shù)組。并在主函數(shù)中自動(dòng)賦值,請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功

能是:使數(shù)組左下三角元素時(shí)值乘以n

例如:若n日勺值為3,a數(shù)組日勺值為

13、B:STUscore[i]&stdM:()k==0P:inti,

j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j1

*=n;

14.填空

給定程序中,函數(shù)fun的功能是:將形參所指構(gòu)造體數(shù)組中的三個(gè)元素按num組

員進(jìn)行升序排列

/**********found**********/

voidfun(PERSON_1—)

(

/**********found**********/

2temp;

if(stdL0].num>std[1].num)

{temp=std[0];std[O]=std[l];std[1]=temp;}

if(std[0].num>std[2].num)

{temp=std[0];stdl0]=std[2];std[2]=temp;}

if(std[1].num>std[2].num)

(temp=std[l];std[l]=std[2];std[2]=temp;}

)

main()

(PERSONstdf]={5,MZhanghu",2,"WangLi",6,nLinMin'1};

inti;

/*********found**********/

fun(_3);

printf("\nTheresultis:\n");

for(i=0;iv3;i++)

printf(u%d,%s\nn,std[i].num,std[);

)

修改

給定程序MODIl.c中函數(shù)fun的功能是:將m個(gè)字符串連接起來(lái)構(gòu)成一種新

串,放入pt所指存儲(chǔ)區(qū)中

intfun(charstr[If10],intm,char*pt)

{

/************於und************/

Intk,q,i;

for(k=0;k<m;k++)

{q=strlen(str[k]);

for(i=0;i<q;i++)

/************found************/

pt[i]=str[k,i];

pt+=q;

pt[0]=0;

}

)

設(shè)計(jì)

程序定義了N*N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值,請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的

功能是:使數(shù)組左下三角元素中日勺值所有值0

14、B:*stdPERSONstdM:intstr[k][i]P:inti,j;fo

r(i=0;i<N;i++)for(j=0;j<=i;j++)a[ij[j]=0;

15.填空

給定程序中,函數(shù)fun的功能是:將形參std所指構(gòu)造體數(shù)組中年齡最大者的數(shù)據(jù)

作為函數(shù)值返回,并在主函數(shù)中輸出

STDfun(STDstd[],intn)

{STDmax;inti;

/**********found**********/

max=1;

for(i=l;iVn;i++)

/**********^Qund**********/

if(max.age<___2)max=std[i];

returnmax;

)

main()

{STDstd[5]={"aaau,l7;'bbb';16,"cccH,18,Mddd",17,

eee",15};

STDmax;

max=fun(std,5);

printf(u\nTheresult:\n");

I******und**********/

printf("\nName:%s,Age:%d\nH,3___,max.age);

)

修改

給定程序MODH.c中函數(shù)fun的功能是:實(shí)現(xiàn)兩個(gè)整數(shù)的互換

例如給a和b分別輸入60和65,輸出為:a=65b=60

/**********fQund**********/

voidfun(inta,b)

(intt;

/**********found**********/

t=b;b=a;a=t;

}

設(shè)計(jì)

請(qǐng)編制一種函數(shù)fun,tt指向一種M行N列H勺二維數(shù)組,求二維數(shù)組每列中最小

元素,并以此放入pp所指一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予

15B:*stdstd[i].agemax.nameM:int*bt=*b;*b=

"a;*a=i;P:inti,j,min,k;fbr(i=0;i<N;

i++){min=tt[O][i];k=0;for(j=l;j<M;j++)

if(min>tt[j][i]){min=tt[j][i];k=j;}pplij=

tt[k][i];}

16.填空

程序通過(guò)定義并賦初值的方式,運(yùn)用構(gòu)造體變量存儲(chǔ)了一名學(xué)生的信息,函數(shù)fun

的功能是輸出這位學(xué)生的信息

/**********fQund**********/

voidshow(STU___1)

{inti;

printf("\n%d%s%c%d-%d—%d",tt.num,tt.name,tt.sex,

tt.birthday.year,tt.birthday.month,tt.birthda

y.day);

for(i=0;iv3;i++)

/**********found**********/

printf("%5.1fH,2—);

n

printf(\n");

)

main()

{STUstd={l;,ZhanghuaM;M/,1961,10,8,76.5,78.0,82.0};

printf(H\nAstudentdata:\nH);

/**********found**********/

show(3);

)

修改

給定程序MODH.c中函數(shù)fun的功能是:求出數(shù)組中最大數(shù)和次大數(shù),并把最

大數(shù)和a[0]中時(shí)數(shù)對(duì)調(diào),次最大數(shù)和a[1]中的書(shū)對(duì)調(diào)

intfun(int*a,intn)

{inti,m,t,k;

for(i=0;i<2;i++){

/**********found**********/

m=0;

for(k=i+1;k<n;k++)

/**********found**********/

if(a[k]>a[m])k=m;

t=a[i];a[i]=a[m];a[m]=t;

}

)

設(shè)計(jì)

請(qǐng)編寫(xiě)一種函數(shù)unsignedfun,w是一種大與10的無(wú)符號(hào)整數(shù),若w是n為日勺整

數(shù),函數(shù)求出w的低n?l位時(shí)數(shù)作為函數(shù)值返回

例如w為5923則函數(shù)返回923;

16B:tttt.score[i]stdM:m=im=k

P:if(w>l0000)w%=10000;eIseif(w>1000)w%=

1000;elseif(w>100)w%=100;elseif(w>10)w%=10;return

w;

17.填空

給定程序中,函數(shù)fun的功能是:對(duì)形參ss所指字符串?dāng)?shù)組中日勺M個(gè)字符串按長(zhǎng)

度由短到長(zhǎng)進(jìn)行排序。Ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)《N

voidfun(char(*ss)[N])

{inti,j,k,n[MJ;chart[NJ;

for(i=0;i<M;i++)n[i]=strlen(ss[i]);

for(i=0;i<M—1;i++)

k=i;

/**********Sund**********/

for(j=1;j<M;j++)

/**********found**********/

if(n[k]>n[j])2;

if(k!=i)

{strcpy(t,ss[i]);

strcpy(ss[i],ss[k]);

/**********found**********/

strcpy(ss[k],__3___);

n[k]=n[i];

}

I

}

給定程序MODI。C中函數(shù)fun日勺功能是:判斷ch中字符與否與str所指串中

的某個(gè)字符相似;若相似,什么也不做,若不同樣,則將其插在串的最終

#inc1ude<string.h>

/*****und**********/

voidfun(charstr,charch)

{while(*str&&*str!=ch)str++;

/**********fbund**********/

if(*str==ch)

{str[0]=ch;

/**********found**********/

str[11=O;

)

)

設(shè)計(jì)

請(qǐng)編制一種函數(shù)fun,函數(shù)功能是吧s所指字符串中的內(nèi)容逆值

17^B:i+1k=jtM:char*str!=0

P:charb[N];inti=0,j;for(j=strlen(s)-1;j>=

0;j--)b[i++]=s[j];b[i]=0;strcpy(s,b);

18.填空

給定程序中,函數(shù)fun的功能是:求出形參ss所指日勺字符串?dāng)?shù)組中最長(zhǎng)字符

串的長(zhǎng)度,其他字符串左邊用字符*補(bǔ)齊,使其與最長(zhǎng)的字符串等長(zhǎng),字符串?dāng)?shù)組

中共有M個(gè)字符串

voidfun(char(*ss)[N])

{inti,j,k=0,n,m>len;

for(i=0;i<M;i++)

{len=strlen(ss[i]);

if(i==0)n=len;

if(len>n){

/**********fbund**********/

n=1en;___1___=i;

)

)

for(i=0;i<M;i++)

if(i!=k)

{m=n;

1en=strlen(ss[ij);

/**********f

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論