2021年度全國(guó)大學(xué)生歷年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)及答案_第1頁(yè)
2021年度全國(guó)大學(xué)生歷年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)及答案_第2頁(yè)
2021年度全國(guó)大學(xué)生歷年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)及答案_第3頁(yè)
2021年度全國(guó)大學(xué)生歷年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)及答案_第4頁(yè)
2021年度全國(guó)大學(xué)生歷年全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)考試題庫(kù)及答案_第5頁(yè)
已閱讀5頁(yè),還剩114頁(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é)生信息從鍵盤讀入,每個(gè)人信息作為一種數(shù)據(jù)塊寫(xiě)

到名為myfile5.dat二進(jìn)制文獻(xiàn)中。

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

注意:源程序存儲(chǔ)在考生文獻(xiàn)夾下BLANKI.c中

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

voidcheck();

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

intfun(_1*std)

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

2*fp;inti;

if((m=fopen("myme5.dat“Jwb"))==NULL)

return(O);

printf(n\nOutputdatatofile!\n')

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

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

fwrite(&stdLi],sizeof(STYPE),1,_3_);

fclose(fp);

return(1);

修改

給定程序MODil.C中函數(shù)fun功能是:先將在字符串s中字符按正序存儲(chǔ)到t

串中,然后把S中字符按逆序連接到t串背面。

例如:當(dāng)s中字符串為:“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);

/********found類*******火***/

for(i=O;i<=sl;i++)

t[i]=s[i];

for(i=O;i<sl;i++)

t[sl+i]=s[sl-i-l];

/****大**火去***********/

t[sl]='\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=12時(shí),調(diào)用該函數(shù)后,c=4152.

注意:某些源程序存在文獻(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ǔ)句。

答案:B:STYPEFILEfp

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

P:*c=(a/10)*1000+(b/10)*100+(ao/ol0)*1O+(bo/olO);

2.填空

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

到文獻(xiàn)myfile4.txt中,用一]作為字符串輸入結(jié)束標(biāo)記。然后將文獻(xiàn)內(nèi)容讀出

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

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

果。

注憩:源程序存儲(chǔ)在考生文獻(xiàn)夾下BLANKl.c中

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

main()

{FILE*fp;

if((fp=fopen("myfile4.txt","w"))==NULL)

{printf("openfail!!\n");exit(O);}

WriteText(fp);

fclose(fp);

if((fp=fopen("myfile4.txt","r"))==NULL)

{printf("openfail!!\n");exit(O);}

ReadText(fp);

fclose(fp);

}

/**************

voidWriteText(FILE1_)

{charstr[81];

printf(M\nEnterstringwith-1toend:\n'r);

gets(str);

while(strcmp(str,',-r,)!=O){

2—;fw);fputs("\n\fw);

gets(str);

}

)

voidReadText(FILE*fr)

{charstr[81];

printf(u\nReadfileandoutputtoscreen:\nn);

fgets(str,81,fr);

while(!feof(fr)){

/**********fond**********/

printf("%s^^—3—);

fgets(str,81,fr);

修改

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

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

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

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

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

#include<stdio.h>

/************found************]

voidfun(longs,longt)

longsl=10;

*t=s%IO;

while(s>0)

s=s/100;

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

/********founds********&■**

si=sl*IOO;

j

程序

函數(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=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:long*tsi=sl*lO;

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

3.填空

給定程序中,函數(shù)fun功能是:將自然數(shù)卜1()以及它們平方根寫(xiě)到名為

myfile3txt文本文檔中,然后再順序讀出顯示在屏幕上。

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

果。

注意:源程序存儲(chǔ)在考生文獻(xiàn)夾下BLANKl.c中

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

intfun(char*fname)

{FILE*fp;inti,n;floatx;

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

for(i=1;i<=lO;i++)

/*******干火火*******/

fprint(—11,"%d%f\nH,i,sqrt((double)i));

printf(n\nSucceed!!\n°);

/**********^^und**********[

—2—;

printf(n\nThedatainfile:\nH);

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

if((fp=fopen(_3—,f,))==NULL)

returnO;

fscanf(fp,no/odo/of,&n,&x);

while(!feof(fp))

{printf(no/odo/ot\nn,n,x);fscanf(fp,"o/odo/of',&n,&x);

fclose(fp);

return1;

)

修改

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

fun(intn,int*a)

{int

for(j=O;j<n-l;j++)

{P=J;

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

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

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

***********[ound冰***********/

t=i;

if(p!=j)

{t=a[j];ali]=i|p];a|pI:l;I

程序

函數(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)PROGLC中。數(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:fpfclose(fp)fname

M:i<np=i

P:*c=(b%10)*l()()0+(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)

{FILE*fs,*ft;charch;

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

if((fs=fopen(source,—1—)手書(shū)ULL)

return0;

if((ft=fopen(target,”w”)尸=NULL)

return0;

printf(n\nThedatainfile:\nH);

ch=fgetc(fs);

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

while(!feof(_2_))

{putchar(ch);

/**********fond**********/

fputc(ch,-3-);

ch=fgetc(fs);

)

fclose(fs);fclose(ft);

printf(n\n\n");

return1;

修改

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

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

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

voidfun(longs,long*t)

{intd;

longsl=l;

*t=0;

while(s>0)

{d=s%10;

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

if(d%2=0)

{*t=d*sl+*t;

si*=10;

s\=10;

程序

函數(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=5142

注意:某些源程序存在文獻(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ǔ)句。

4、B:"r"fsft

M:(d%2==0)sl=10;

P:*c=(a%10)*1OOO+(b/l0)*1OO+(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ù)域值仍保持遞增有序。

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SL!ST*h,intx)

{SLIST*p,*q,*s;

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

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

s->data=_1_;

q=h;

p=h->next;

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

/*********手ound**********/

q=2_;

p=p->next;

s->next=p;

/*********中ound**********I

q->next=_3_;

修改

給定程序MODil.C中函數(shù)fun功能是:計(jì)算正整數(shù)num各位上數(shù)字之積。例蛆,

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

longfun(longnum)

/***********干ound************/

longk;

do

{k*=num%10;

/***********千o1und***********毛

num\=10;

}while(num);

return(k);

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

為函數(shù)值返回。

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

則函數(shù)值為:71.80

5、B:xps

M:longk=l;num/=10;

P:inti;floatave=0.0;for(i=O;i<n;i++)ave=ave+a[i];ave=ave/n;

returnave;

6.填空

給定程序中已建立一種帶有頭結(jié)點(diǎn)單向鏈表,在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;

/**************/

t=t->—1一;

/**********R)und**********[

printf("%d—2—);

s->next=NULL;

free(-3-);

}

修改

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

補(bǔ)變化字符串中內(nèi)容。

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

/************tound************/

fun(chara)

{if(*a)

{fun(a4-l);

/************f^^un*****求*****/

printf("%c"*a);

程序

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

供求字符串長(zhǎng)度函數(shù)),函數(shù)返回較長(zhǎng)字符串。若兩個(gè)字符串長(zhǎng)度相似,則返

回第一種字符串。

例如,輸入beijingvCR>shanghai〈CR>(〈CR>為回車鍵),函數(shù)將返回

shanghai

6、B:nextt->datat

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

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

for(i=O;*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)

{SL1ST*p,*q;

p=h->next;

if(p!=NULL)

{q=p->next;

whi!e(q!=NULL)

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

{p->next=q->next;

free(_l_);

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

q=p->—2—

{p=q;

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

q=q->_3.

修改

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

到大順序進(jìn)行排序。

voidfun(intaLJ,intn)

{inti,j,t,p;

forU=0;j<n-1;j++){

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

if(a[i]<a|p|)

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,

則程序輸出:711142122183335424449

答案:

7、B:qnextnextM:

P=j;P=i;

P:inti;*n=O;

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

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

8.填空

給定程序中,函數(shù)fungongn是:在帶有頭結(jié)點(diǎn)單向鏈表中,查找數(shù)據(jù)域

中值為ch結(jié)點(diǎn)。找到后通過(guò)函數(shù)值返回改結(jié)點(diǎn)在鏈表中所處順序號(hào);若不存

在值為ch結(jié)點(diǎn),函數(shù)返回0值

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;intn=0;

p=h->next;

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

while(p!=_1)

n++;

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

if(p->data==ch)return——2——;

elsep=p->next;

return0;

)

修改

給定程序MODi1.C中函數(shù)fun功能是:刪除p所指字符串中所有空白字

符(涉及制表符,回車符及換行符)

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

fun(char*p)

{inti,t;charc[80];

/************found************]

For(i=O,t=0;p[i];i++)

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

/************found亭***********/

c[t]="\O";

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]='\O';

P:inti;for(i=I;i<strlen(*ss);i+=2){if(ss[i]>='a!&&ss[i]<='z')ss[i]

-=32;

9.填空

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

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

voidfun(SLIST*h,int*n)

{SLIST*p;

/***************/

一1一=0;

p=h->next;

while(p)

{(*n)++;

/*火火蟲(chóng)*大大加tmd*******火**/

p=p->——2——

main()

{SLIST東head;

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

head=creatlist(a);outlist(head);

fun(3,&num);

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

修改

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

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

字符串;若未找到,則函數(shù)值為NULL

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

abcdx

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

notbefound

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

/************found************[

a=Null;

while(*s)

p二S;

while(*r)

/f^Und************[

if(r==P)

{r++;p++;}

elsebreak;

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

s++;

return

程序

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

字符外,別的所有刪除:串中剩余字符所形成一種新串放在t所指數(shù)組中

例如,若s所指字符串中內(nèi)容為“ABCDEFG123456",其中字符AASCII碼味奇

數(shù),因而應(yīng)當(dāng)刪除,其中字符bASCH碼值為偶數(shù),但是在數(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==0)HJ++]=s[ij;

tU]=O;

10.填空

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

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

intfun(SLIST*h)

{SLIST*p;ints=O;

p=h->next;

while(p)

(

/***************/

s+=p->一1一;

/亭*********found字*********/

P=P->-'2—;

returns;

修改

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

相似字串所有替代成t2所指字符串,所形成新串放在w所指數(shù)組中,在此處,

規(guī)定tl和t2所指字符串長(zhǎng)度相似。

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

intJ;char*p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=tl;

/***★****fo&rvd類********卅**

while(r)

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

elsebreak;

if(*r=='。)

「a=w;r=t2;

while(*r){

[************found************/

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

w+=strlen(t2);

elsew++;

程序

函數(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<strlen(s);i+=2)tU++)=s[i];tUJ=0;

11.填空

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

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

1_fun(STU*std,char*num)

{inti;STUa={『9999,99,99};

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

/******火火***火***/

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

[**********found**********/

return(_3一);

returna;

)

修改

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

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

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

則函數(shù)返回整數(shù)3

intfun(char*s,char*t)

intii;char*p,*r;

n=0;

while(*s)

{p=s;r=t;

while(*r)

if(*r==*p){

/***¥********found************/

r++;p++

J

elsebreak;

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

if(r=='\Of)

n++;

s++;

returnn;

}

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

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

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

碼值為偶數(shù)..

答案:

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

M:p++;*r=='\O';

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

12.填空

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

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

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

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

{inti,n=O;

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

/*********亭found**********[

if(—1—==year)

/*******他und**********/

k[n++]=-2—;

[**********found**********/

return(_3—);

}

修改

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

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

/************found**********求*]

IsPrime(intn);

int1,m;

m=1;

for(i=2;i<n;i++)

/*******斗:贊)*******/

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[O].s,j=0;for(i=1;i<N;i++)if(max<a[i].s){j

=i;max=a[i].s;}*s=au];

13.填空

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

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

voidshow(STUtt)

{inti;

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

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

printf(n%5.1f\tt.score|ij);

printf(n\nn);

/**********代jund*****求****/

voidmodify(1*ss,floata)

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

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

ss->—2—*=a;

main()

{STUstd={I,nZhanghuan,76.5,78.0,82.0};

floata;

printf("\nTheoriginalnumberandnameandscores:\n'7

show(std);

printf(u\nlnputanumber:");scanf("%f\&a);

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

modify(_3_,a);

printf("\nAresultofmodifying:\n");

show(std);

修改

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

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

longfun(intk)

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

ifk>0

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

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

elseif(k=O)

returnIL;

設(shè)計(jì)

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

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

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

13、B:STUscored]&stdM:()k==OP:inti,j;for(i=0;i<N;

i++)for(j=0;j<=i;j++)a[i]U]*=n;

14填空

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

進(jìn)行升序排列

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

voidfun(PERSON—1_)

(

/********火***大***/

----2-----temp;

if(std[O].num>std[l].num)

{temp=stdlO];stdlO]=std[l];std[lJ=temp;}

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

{temp=std[O];std[O]=std[2];std[2]=temp;}

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

{temp=std[l];std[l]=std|2|;std[2]=temp;

main()

{PERSONstd[]={5,,'Zhanghun,2;,WangLi',,6,,,LinMinn};

int

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

fun(-3——);

printf(°\nTheresultis:\nn);

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

printf("%d,%s\n",std[i],num,std[i].name);

}

修改

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

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

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

/************found************]

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

{q=strlen(str[k]);

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

/************(ound************]

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

pt+=q;

pt[OJ=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;for(i=0;i<

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

15填空

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

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

STDfun(STDstd[],intn)

{STDmax;inti;

/*:*********nd**********]

max=1:

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

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

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

returnmax;

main()

{STDstd[5]={Haaau,17,"bbbn,l6,nccc",18,"ddd",17,"eee",15);

STDmax;

max=fun(std,5);

printf(M\nTheresult:\n");

]**********found**********/

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

}

修改

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

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

/*********und**********]

voidfun(inta,b)

{intt;

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

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

設(shè)計(jì)

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

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

15、B:*stdstdLiJ.M:int*bt=*b;*b=*a;*a=t;P:int

i,j,min,k;for(i=0:i<JST;iH-4-Ji-rin=tt(P][i];k=O;for(J-1;

j<M;j++)if(min>{min=tt[j]Ci];k=j;}pp[i]=tt[k][i]:}

16填空

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

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

/**********found**********]

voidshow(STU_1_)

{inti;

printf(n\n%d%s%c%d-%d-%dn,tt.num,,tt.sex,

tl.birthday.year,tt.birthday.month,tt.birthday.day);

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

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

printf(M%S.lf\_2_);

printf("\nu);

main()

{STUstd={1,uZhanghua,';M,,1961,10,8,76.5,78.0,82.0);

printf("\nAstudentdata:\nu);

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

show(_13-

修改

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

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

intfun(int*a,intn)

{inti,m,t,k;

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

[**********found**********/

m=O;

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

/*******fbdn曰**********/

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ù)值返回

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

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

P:if(w>lOOOO)w%=10000;else氓w>IOOO)w%=1000;elseif(w>lOO)

w%=100;elseif(w>10)w%=10;returnw;

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[M];chart[N];

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

for(i=O;i<M-l;i++)

/**********fiound*********[for^j

=一1一;j<M;j++)

/*******found*******火**/

if(n[k]>nU])—2—;

if(k!=i)

{strcpy(t,ss[i]);

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

/*火大大大**found**********/

strcpy(ss[k],—3—):

n[k]=n[i];

}

}

}

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

字符相似;若相似,什么也不做,若不同,則將其插在串最后

#include<string.h>

/*******************/

voidfun(charstr,charch)

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

j**********found**********/

if(*str==ch)

{str[0)=ch;

/林*火***捌uhd***火***#'**

str[I]=*0';

}

)

設(shè)計(jì)

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

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

P:charb[N];inti=O,j;for(J=strlen(s)-1;j>=0;j-)b[i++]=sLi);

b[i]=O;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=O,n,m,len;

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

{len=strlen(ss[i]);

if(i==O)n=len;

if(len>n){

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

n=len;]=

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

if(i!=k)

{m=n;

len=strlen(ss[i]);

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

fbrU=12——;j>=O:j—)

ss[il|m-]=ss[i]Li];

forU=O;j<n-len;j++)

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

3

)

)

修改

給定程序MODi1.c中函數(shù)fun功能是:計(jì)算整數(shù)n階乘

doublefun(intn)

doubleresult=I.O;

while(n>l&&n<l70)

/*********found*********[

result*=—n;

/*********]nd*********[

return;

設(shè)計(jì)

編寫(xiě)函數(shù)fun,函數(shù)功能是:從s所指字符串中刪除給定字符。同一種字母

大小寫(xiě)按不同字符解決

18、B:klenss[i]Li]M:n—resultP:char*p=s;inti=O;while(*p)

{if(*p!=c)s[i++]=*p;p++;}s[i]=0;

19填空

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

將別的字符串右邊用字符*補(bǔ)齊,使其與最長(zhǎng)字符串等長(zhǎng)。Ss所指字符串?dāng)?shù)組中共

有M個(gè)字符串

voidfun(char(*ss)|N])

{inti,j,n,len=O;

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

{len=strlen(ss[i]);

if(i==O)n=len;

if(len>n)n=len;

for(i=O;i<M;i++){

/**********^^und**********

n=strlen(-1—);

forU=O;j<len-n;j++)

/**********£^)und**********/

ss[i][—2—拄*';

/*****不***¥found**********

ss[i][n+j+—3—]=<0';

修改

給定程序MODIIoC中函數(shù)fun功能是將:p所指字符串中每個(gè)單詞最后一種字

母改成大寫(xiě)

#include<stdio.h>

voidfun(char*p)

intk=O;

for(;加;p4+)

if(k)

(

/****************

K

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

*(p-1)=toupper(*(p-I))

else

k=l;

j

設(shè)計(jì)

請(qǐng)編寫(xiě)函數(shù)fun,對(duì)長(zhǎng)多為7個(gè)字符字符串,除首,尾字符外,將別的5個(gè)字符

按ASCII降序排列

19、B:ss[ijn+j1M:*p;P:charch;inti,j;for(i=l;i<

6;i++)

forU=i+I;j<6;j++){if(*(s+i)<*(s+j)){ch=*(s+j);*(s+j)

=*(s+i);*(s+i)=ch;}}

20填空

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

行下標(biāo),作為函數(shù)值返回,并把其串長(zhǎng)放在形參n所指變量中。Ss所指字符串?dāng)?shù)

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

N

#define20

******fbund*******才**

intfun(char(*ss)1,int*n)

{inti,k=O,len=O;

for(i=O:i<M;i++)

{len=strlen(ss[i]);

[*木********found**********/

if(i==O)*n=-2-;

if(len>*n){

/*******fbiand**********/

_____3.

k=i;

return(k);

修改

給定程序MODil.c中函數(shù)fun功能是:依照形參m,計(jì)算如下公式值

t-1+-----+---—+-------

234m

例如,若輸入5.則應(yīng)輸出2.283333c

doublefun(intm)

doublet=1.0;

■mti;

for(i=2;i<=m;i++)

/**********fi_iond**********/

t+=1.0/k;

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

設(shè)計(jì)

編寫(xiě)一

溫馨提示

  • 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)論