歷年全國計算機等級考試二級C語言上機考試題庫及答案_第1頁
歷年全國計算機等級考試二級C語言上機考試題庫及答案_第2頁
歷年全國計算機等級考試二級C語言上機考試題庫及答案_第3頁
歷年全國計算機等級考試二級C語言上機考試題庫及答案_第4頁
歷年全國計算機等級考試二級C語言上機考試題庫及答案_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

L填空

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

編號,姓名和電話號碼。班級的人數(shù)和學生的信息從鍵盤讀入,每個人的信息作

為一個數(shù)據(jù)塊寫到名為my的二進制文件中。

請在程序的下劃線處填入正確的內容并把下劃線刪除,是程序得出正確的結

果。

注意:源程序存放在考生文件夾下的BLANKl.c中

不得增行或刪行,也不得更改程序的結構!

voidcheck();

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

intfun(—l—*std)

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

—2—*fp;inti;

if((fp=fopen("my","wb"))==NULL)

return(O);

printf("\nOutputdatatofile!\n");

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

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

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

fclose(fp);

return(1);

}

修改

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

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

例如:當s中的字符串為:“ABCDE"時,

則他中的字符串應為:“ABCDEEDCBA”。

請改正程序中的錯誤,使他能得出正確的結果。

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

voidfun(char*s,char*t)

{inti,sl;

sl=sti·len(s);

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

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

t[i]=s[i];

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

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

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

t[sl]='\O';

程序

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

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

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

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

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

答案:B:STYPEFILEfp

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

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

2.填空

給定程序的功能是:從鍵盤輸入若干行文本(每行不超過80個字符),

寫到文件my中,用-1作為字符串輸入結束的標記。然后將文件的內容讀出

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

請在程序的下劃線處填入正確的內容并把下劃線刪除,是程序得出正確

的結果。

注意:源程序存放在考生文件夾下的BLANKl.c中

不得增行或刪行,也不得更改程序的結構!

main()

{FILE*fp;

if((fp=fopen("my","w"))==NULL)

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

WriteText(fp);

fclose(fp);

if((fp=fopen("my","r"))==NULL)

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

ReadText(fp);

fclose(fp);

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

voidWriteText(FILE—l_)

{ch釭sn·[81];

printf("\nEnterstringwith-1toend:\n");

gets(str);

while(strcmp(str,"-1")!=0){

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

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

gets(str);

voidReadText(FILE*fr)

{charst:1·[8l];

printf("\nReadoutputtoscreen:\n");

fgets(str,81,fr);

while(!feof(fr)){

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

printf("?s”,—3_);

fgets(str,81,fr);

歸給定程序MODil.c中函數(shù)fun的功能是:從低位開始取出長整形變量s中的奇數(shù)

位上的數(shù),依次構成一個新數(shù)放在t中,高位仍放在高位,低位仍放在低位。

例如:當s中的數(shù)為:7654321時,t中的數(shù)為:7531

請改正程序中的錯誤,使他能得出正確的結果。

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

#include<stdio.h>

I************found************I

voidfun(longs,longt)

{longsl=lO;

*t=s%10;

while(s>0)

{s=s/100;

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

I************found************I

s1=s1*100;

}

程序

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

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

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

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

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

2、B:*fwstrstr

M:long*tsl=sl*lO;

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

3.填空

給定程序中,函數(shù)fun的功能是:將自然數(shù)1~10以及它們的平方根寫到

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

請在程序的下劃線處填入正確的內容并把下劃線刪除,是程序得出正確

的結果。

注意:源程序存放在考生文件夾下的BLANKI.c中

不得增行或刪行,也不得更改程序的結構!

intfun(char*fname)

{FILE*fp;inti,n;floatx;

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

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

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

fprintf(二三'%d%f\n",i,sqrt((double)i));

prit1tf("\nSucceed!!\n");

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

—2_;

printf("\nThedatainfile:\n");

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

if((fp=fopen(—3—,“r"))==NULL)

returnO;

fscanf(fp,"%do/of',&n,&x);

while(!feof(fp))

{printf("?do/of\n",n,x);fscanf(fp,"%d%f',&n,&x);}

fclose(fp);

return1;

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

fun(intn,int*a)

{inti,j,p,t;

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

p=J;

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

for(i=j+1;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的功能是:將兩個兩位數(shù)的正整數(shù)a,b合并成一個整數(shù)放在c中。合

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

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

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

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

3、B:fpfdose(fp)fname

M:i<np=i

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

4填空

給定程序的功能是:調用函數(shù)fun將指定源文件中的內容復制到指定的目標文件

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

的內容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標文件名放

在變量tfname中

intfun(char*sot訂ce,char*target)

{FILE*fs,*ft;charch;

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

if((fs=fopen(source,—l—))==NULL)

returnO;

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

returnO;

printf("\nThedatainfile:\n");

ch=fgetc(fs);

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

while(!feof(_2_))

{putchar(ch);

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

fputc(ch,—3—);

ch=fgetc(fs);

fclose(fs);fclose(ft);

printf("\n\n");

return1;

修改

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

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

例如:當s中的數(shù)為:87653142時,t中的數(shù)為:8642

voidfun(longs,long*t)

{intd;

longsl=l;

*t=O;

while(s>0)

{d=s%10;

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

if(d%2=0)

{*t=d*sl+*t;

sl*=10;

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

s\=10;

程序

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

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

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

例如:a=45,b=l2時,調用該函數(shù)后,c=5142

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

4、B:"r"fsft

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

P:*c=(a?lO)*lOOO+(b/10)*1OO+(a/10)*1O+(b%10);

5.填空

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

的數(shù)據(jù)遞增有序鏈表。函數(shù)fun的功能是:把形參x的值放入一個新結點并插入

到鏈表中,插入后結點數(shù)據(jù)域的值仍保持遞增有序。

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h,intx)

{SLIST*p,*q,*s;

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

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

s->data=—l—;

q=h;

p=h->next;

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

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

q=—2—;

p=p->next;

}

s->next=p;

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

q->next=—3—;

修改

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

例如,若輸入:252,則輸入應該是:20.若輸入:202,則輸出應該是:o.

longfun(longnum)

{

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

longk;

do

{k*=num%10;

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

num\=10;

}while(num);

return(k);

請編寫一個函數(shù)fun,它的功能是:它的功能是:計算n門課程的平均分,計算

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

例如:若有5門課程的成績是:90.5,72,80,61.5,55

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

5、B:Xps

M:longk=l;nunl/=10;

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

returnave;

6.填空

給定程序中已建立一個帶有頭結點的單向鏈表,在main函數(shù)中將多次調

用fun函數(shù),沒調用一次fun函數(shù),輸出鏈表尾部結點中的數(shù)據(jù),并釋放該

節(jié)點,是鏈表縮短。

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->next;s=p;

while(t->next!=NULL)

{s=t;

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

t=t->—l—;

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

printf("%d”,—2—-);

s->next=NULL;

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

free(—廠);

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

單補改變字符串中的內容。

例如,若字符串味abed,則應輸出:dcba

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

fun(chara)

{if(*a)

{fun(a+1);

!************found************I

printf("?c"*a);

加請編寫一個函數(shù)fun,他的功能是:比較兩個字符串的長度(不得調用c

語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長

度相同,則返回第一個字符串。

例如,輸入beijing<CR>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é)點按數(shù)據(jù)域

遞增有序連接。函數(shù)fun的功能是:刪除鏈表中數(shù)據(jù)域值相同的結點,使之

只保留一個

typedefsti·uctlist

{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;

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

free(—l—);

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

q=p->—2—;

else

{p=q;

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

q=q->—3—;

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

從小到大的順序進行排序。

voidfun(inta[],intn)

{inti,j,t,p;

forU=0;」<n-l;j++){

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

p=j

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

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

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

p=J;

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

請編寫一個函數(shù)fun,它的功能是:求出l到m之間(含m)能被7或11

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

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

答案:

7、B:qnextnext

M:p=j;p=i;

P:inti;*n=O;

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

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

8.填空

給定程序中,函數(shù)fun的gongn是:在帶有頭結點的單向鏈表中,查找

數(shù)據(jù)域中值為ch的結點。找到后通過函數(shù)值返回改結點在鏈表中所處的順序

號;若不存在值為ch的結點,函數(shù)返回0值

typedefstructlist

{intdata;

sti·uctlist*next;

}SLIST;

SLIST*creatlist(chm*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;intn=O;

p=h->next;

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

while(p!=_l_)

{n++;

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

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

elsep=p->next;

return0;

修改

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

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

輸入字符串是用“#“結束輸入。

fun(char*p)

{inti,t;charc[80];

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

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

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

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

c[t]="\O";

strcpy(p,c);

程序

請編寫一個函數(shù)fun,它的功能是:將ss所指字符串中所有下標為奇數(shù)位置上的

字母轉換成大寫(若該位置上不是字母,則不轉換)

例如:若輸入“abc4EFg",則應輸出“aBc4Efg”。

答案:

8、B:NULLnhead,ch

M:forc[t]='\0';

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

32;

9.填空

給定程序中,函數(shù)fun的功能是:統(tǒng)計出帶有頭結點的單向鏈表中的個

數(shù),存放在形參n所指的存儲單元中。

voidfun(SLIST*h,int*n)

{SLIST*p;

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

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=creatlist(a);outlist(head);

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

fun(—3—,&num);

printf("\nnumber=?d\n”,num);

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

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

地址開始的字符串;若未找到,則函數(shù)值為NULL

例如:當字符串中的內容為“abcdefabcdx"t中的內容為“ab"時,輸出的結果

應是:abcdx

當字符串中的內容為“abcdefabcdx"t中的內容為“abd"時,則程序輸出未找到

信息notbefound

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

{

char*p,*r,*a;

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

a=Null;

while(*s)

{p=s;r=t;

while(*r)

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

if(r==p)

{r++;p++;}

elsebreak;

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

s++;

returna;

程序

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

數(shù)的字符外,其余的全部刪除:串中剩余字符所形成的一個新串放在t所指的數(shù)

組中

例如,若s所指的字符串中的內容為“ABCDEFG123456",其中字符A的ASCII

碼味奇數(shù),因此應當刪除,其中字符b的ASCll碼值為偶數(shù),但是在數(shù)組中的

下標為基數(shù),因此也當刪除;

答案

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)t[j++]=s[i];

tfj]=0;

10.填空

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

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

intfun(SLIST*h)

{SLIST*p;ints=O;

p=h->next;

while(p)

{

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

s+=p->—l—;

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

p=p->_2—;

returns;

修改

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

符串相同的字串全部替換成t2所指字符串,所形成的新串放在w所指的數(shù)組中,

在此處,要求tl和t2所指字符串的長度相同。

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

int1;char*p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=tl;

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

w伍le(r)

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

elsebreak;

if(*r=='\O')

{a=w;r=t2;

while(*r){

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

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

w+=strlen(t2);

}

elsew++;

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

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

例如:當s所指字符串中的內容為:“ABCDEFGIIlJK"

在t所指數(shù)組中的內容應是“BDFHJ"

10、B:datanexthead

M:*rr++;

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

11.填空

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

結構體數(shù)組std中,且編號唯一。函數(shù)fun的功能是:找出數(shù)據(jù)中的編號為空

串。

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

—l—fun(STU*std,ch扣·*num)

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

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

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

if(srr·cmp(—2—,num)==O)

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

re血n(—三);

returna;

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

所指字符串相同的字串的個數(shù)作為函數(shù)返回值

例如,當s所指字符串中的內容為:“abcdabfab",t所指字符串的內容為:

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

intfun(chm*s,char*t)

{

intn;char*p,*r;

n=0;

while(*s)

{p=s;r=t;

while(*r)

if(*r==*p)

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

r++;p++

}

elsebreak;

!************found************/

if(r=='\O')

n++;

s++;

returnn;

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

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

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

ASCII碼值為偶數(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)tU++]=s[i];t[j]=0;

12.填空

人員的記錄由編號和出生年月曰組成N名成員的數(shù)據(jù)已在主函數(shù)中存入結構體

數(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(—l—==year)

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

k[n++]=—2_;

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

return(_3_);

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

因子

例如2310,則應輸出2,3,5,7,11

`/************found************/

IsPrime(intn);

{inti,m·,

m=1;

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

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

if!(no/oi)

{m=O;break;}

return(m);

設計

已知學生的記錄有學號成績構成,N名學生的數(shù)據(jù)已經(jīng)存入結構體數(shù)組a中。編

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

(規(guī)定只有一個最高分)。已給出函數(shù)的首部,請完成該函數(shù)

12、B:std[i].yeai·std[i]nM:分號去掉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=a[j];

13.填空

給定程序通過定義并賦初值的方式,利用結構體變量存儲了一名學生的學號,姓

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

voidshow(STUtt)

{inti;

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

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

printf("%5.lf',tt.score[i]);

printf("\n");

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

voidmodify(—l—*ss,floata)

{inti;

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

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

ss->—2—*=a;

}

main()

{STUstd={l,"Zhanghua",76.5,78.0,82.0};

floata;

printf("\nTheoriginalnumberandnameandscores:\n");

show(std);

printf("\nlnputanumber:");scanf("?f',&a);

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

modify(_3_,a);

printf("\nAresultofmodifying:\n”);

show(std);

修改

給定程序MODI。C中函數(shù)fun的功能是:求k!(k<l3),所求階乘的值作為函數(shù)值

返回,例如若(k=lO,則應輸出:3628800

longfun(intk)

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

ifk>0

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

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

elseif(k=O)

returnIL;

設計

程序定義了N*N的二維數(shù)組。并在主函數(shù)中自動賦值,請編寫函數(shù)fun,函數(shù)的

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

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

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

forU=0;j<=i;j++)a[i][j]*=n;

14填空

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

員進行升序排列

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

voidfun(PERSON_1_)

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

—2—temp;

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

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

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

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

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

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

main()

{PERSONstd[]={5,"Zhanghu",2,"WangLi",6,"LinMin"};

inti;

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

fun(二三

printf("\nTheresultis:\n");

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

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

歸給定程序MODil.c中函數(shù)fun的功能是:將m個字符串連接起來組成一個新串,

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

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

{

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

Intk,q,i;

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

{q=strlen(str[k]);

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

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

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

pt+=q;

pt[O]=0;

設計

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

的功能是:使數(shù)組左下三角元素中的值全部值0

14、B:*stdPERSONstdM:intstr[k][i]P:inti,j;for(i=0;i<N;

i++)forU=0;j<=i;j++)a[i][j]=O;

15填空

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

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

STDfun(STDstd[],intn)

{STDmax:mt1;

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

max=1:

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

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

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

returnmax;

}

main()

{STDstd[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15};

STDmax;

max=fun(std,5);

printf("\nTheresult:\n”);

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

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

婦給定程序MODil.c中函數(shù)fun的功能是:實現(xiàn)兩個整數(shù)的交換

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

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

voidfun(inta,b)

{intt;

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

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

}

設計

請編制一個函數(shù)fun,tt指向一個M行N列的二維數(shù)組,求二維數(shù)組每列中最小

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

15、B:*stdstd[i].ageM:int*bt=*b;*b=*a;*a=t;P:inti,j,

min,k;for(i=0;i<N;i++){min=tt[O][i];k=0;forG=1;j<M;j++)

if(min>ttLi][i]){min=t山][i];k=j;}pp[i]=tt[k][i];}

16填空

程序通過定義并賦初值的方式,利用結構體變量存儲了一名學生的信息,函數(shù)fun

的功能是輸出這位學生的信息

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

voidshow(STU_l_)

{inti;

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

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

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

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

printf("%5.lf',_2_);

printf("\n”);

}

main()

{STUstd={1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0};

printf("\nAstudentdata:\n”);

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

show(_3_);

}

修改

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

大數(shù)和a【0】中的數(shù)對調,次最大數(shù)和a【l】中的書對調

intfun(int*a,intn)

{inti,m,t,k;

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

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

m=O;

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ù)unsignedfun,w是一個大與10的無符號整數(shù),若w是n為的

整數(shù),函數(shù)求出w的低n-1位的數(shù)作為函數(shù)值返回

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

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

P:if(w>10000)w%=10000;elseif(w>1000)w%=1000;elseif(w>100)

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

17填空

給定程序中,函數(shù)fun的功能是:對形參ss所指字符串數(shù)組中的M個字符串按

長度由短到長進行排序。Ss所指字符串數(shù)組中共有M個字符串,且串長《N

voidfun(char(*ss)[N])

{inti,j,k,n[M];chart[N];

for(i=O;i<M;i++)n[i]=sti·len(ss[i]);

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

{k=i;

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

forU=—1—;j<M;j++)

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

if(n[k]>n[i])—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所指串中的

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

#include<string.h>

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

voidfun(charstr,charch)

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

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

if(*str==ch)

{str[0]=ch;

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

str[l]='0';

}設

請編制一個函數(shù)fun,函數(shù)功能是吧s所指字符串中的內容逆值

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

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

strcpy(s,b);

18.填空

給定程序中,函數(shù)fun的功能是:求出形參ss所指的字符串數(shù)組中最長字符

串的長度,其余字符串左邊用字符*補齊,使其與最長的字符串等長,字符串數(shù)

組中共有M個字符串

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;—l—=i;

}

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

if(i!=k)

{m=n;

len=s11-Ien(ss[i]);

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

forU=—2—;j>=O;j--)

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

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

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

—3—='*';

}彥改

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

doublefun(intn)

{

doubleresult=l.O;

while(n>1&&n<l70)

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

result*=--n;

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

return

}

設計

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

字母的大小寫按不同字符處理

18、B:klenss[i]U]M:n--resultP:char*p=s;inti=0;while(*p)

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

19.填空

給定程序中,函數(shù)fun的功能是:求出形參ss所指字符串數(shù)組中最長字符串的

長度,將其余字符串右邊用字符*補齊,使其與最長的字符串等長。Ss所指的字

符串數(shù)組中共有M個字符串

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++){

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

n=strlen(—l—);

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

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

ss[i][_2_]='*';

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

ss[i][n+j+_3_]='\0';

修改

給定程序MODil。C中函數(shù)fun的功能是將:p所指字符串中每個單詞的最后一

個字母改成大寫

#include<stdio.h>

voidfun(char*p)

{

intk=O;

for(;*p;p++)

if(k)

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

if(p==")

k=0;

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

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

else

k=I;

}

設計

請編寫函數(shù)fun,對長多為7個字符的字符串,除首,尾字符外,將其余5個字

符按ASCII降序排列

19、B:ss[i]n+jIM:*p;P:charch;inti,j;for(i=l;i<6;i++)

for(j=i+1;j<6;j++){if(*(s+i)<*(s+j)){ch=*(s+j);*(s+j)=

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

20填空

給定程序中,函數(shù)fun的功能是:求ss所指字符串數(shù)組中長度最長的字符串

所在的行下標,作為函數(shù)值返回,并把其串長放在形參n所指變量中。Ss所指

字符串數(shù)組中共有M個字符串

N

#define20

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

intfun(char(*ss)—l—,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){

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

—3—;

k=i;

return(k);

}

修改

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

1111

t=1+-----+-----+-----+··....+-----

234m

例如,若軸入5,則應粕出2.283333。

doublefun(intm)

{

doublet=1.0;

inti;

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

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

t+=1.0/k;

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

}

設計

編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在另個字符串中出現(xiàn)

的次數(shù)

20、B:[N]len*n=lenM:t+=1.0/i;returnt;P:intcnt=0;

char*p=str,*q;

while(*p){q=strstr(p,substr);if(q==NULL)break;p=q+

strlen(substl-);cnt++;}return

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論