計算機(jī)二級C語言上機(jī)題庫(八)
字符題:
80、將字符串ss中所有下標(biāo)為偶數(shù)位置上的字母轉(zhuǎn)化為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。若輸入abc4Efg,則應(yīng)輸出AbC4EfG.
void fun( char *ss)
{int i;
for(i=0;ss[i]!’\0’;i++)
{if(i%2= =0&&ss[i]>=’a’&&ss[i]<=’z’)
ss[i]=ss[i]-32;}}
81、將ss所指字符串中所有下標(biāo)為偶數(shù)位置的字母轉(zhuǎn)換為小寫(若該位置上不是字母,則不轉(zhuǎn)換)。若輸入ABC4efG,則應(yīng)輸出aBc4efg.
void fun(char *ss)
{int i;
for(i=0;ss[i]!=’\0’;i++)
{if(i%2==0&&ss[i]>=’A’&&ss[i]<=’Z’)
ss[i]=ss[i]!+32;}
82、將s所指字符串中下標(biāo)為偶數(shù)同時ASCII值也為偶數(shù)的字符刪除,s中剩余的字符形成一個新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,最后t所指的數(shù)組中的內(nèi)容應(yīng)是“ABCDEFG135”。
void fun(char *s,char t[])
{int i,slenth,n=0;
slenth=strlen(s);
for(i=0;i<slenth;i++)
{if(s[i]%2==0&&i%2==0)
else t[n++]=s[i];}t[n]=?'\0';}
83、將s所指字符串中下標(biāo)為奇數(shù)、同時ASCII值也為奇數(shù)的字符刪除,串中剩余的字符形成一個新串放在t所指的數(shù)組中。例如:若s所指串中的內(nèi)容為“ABCDEFG12345”,最后,t所指的數(shù)組中的內(nèi)容是“ABCDEFG24”。
void fun(char *s,char t[])
{int i,slenth,n=0;
slenth=strlen(s);
for(i=0;i<slenth;i++)
{if(i%2!=0&&s[i]%2!=0);
else t[n++]=s[i];}t[n]=’\0’;}
84、將s所指字符串中下標(biāo)為奇數(shù)同時ASCII值為奇數(shù)的字符刪除,s中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為”ABCDEFG12345”最后,t所指的數(shù)組中的內(nèi)容應(yīng)是“ACEG12345”。
Void fun(char*s,char t[])
{int i,slenth,n=0;
slenth=strlen(s);
for(i=0;i<slenth;i++)
{if(i%2!=0&&s[i]%2==0);
else t[n++]=s[i];}t[n]=’\0’;}
85、將s所指字符串中下標(biāo)為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi) 容為”ABCDEFG12345”,則在t所指數(shù)組中的內(nèi)容應(yīng)是BDF12345。
void fun(char*s,char t[])
{int i,j=0,n=
strlen(s);
for(i=0;i<n;i++)
if(!(i%2==0&&s[i]%2!=0))
t[j++]=s[i];t[j]=’\0’;}
86、將s所指字符中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)s所指字符串中的內(nèi)容為ABCDEFGHIJK,則在t所指數(shù)組中的內(nèi)容應(yīng)是BDFHJ.
void fun(char *s,char t[])
{int i,j=0,k=strlen(s);
For(i=1;i<k;i=i+2)t[j++]=s[i];t[j]=’\0’;}
87、將s所指字符中下標(biāo)為奇數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)s所指字符串中的內(nèi)容為siegAHdied,則在t所指數(shù)組中的內(nèi)容應(yīng)是seAde.
Void fun(char*s,char t[])
{int i,j=0,k=strlen(s);
For(i=1;i<k;i=i+2)t[j++]=s[i];t[j]=’\0’;}
88、將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一新串放在t所指的數(shù)組中。例如,若 ?所指字符串中的內(nèi)容為ABCDEFG12345,最后t所指的數(shù)組 ?內(nèi)容應(yīng)是ACEG135。
89、將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一新串放在t所指的數(shù)組中。若s ?所指字符串中的內(nèi)容為ABCDEFG1234 ??,最后t所指的數(shù)組 ?的內(nèi)容應(yīng)是BDF24。
Void fun(char*s,char t[])
{int i,j=0,
n=strlen(s);
For(i=0;i<n;i++)
If(s[i]%2==0)
t[j++]=s[i];t[j]=’\0’;}
90、將s所指字符串中除了下標(biāo)為奇婁,同時ASCII值也為奇數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。若s所指字符串中的內(nèi)容為ABCDEFG12345,最后t所指的數(shù)組中的內(nèi)容應(yīng)是135。
Void fun(char*s,char t[])
{int i,j=0,n;n=
strlen(s);
For(i=0;i<n;i++)
If(i%2!=0&&s[i]%2!=0)
T[j++]=s[i];t[j]=’\0’;}
91、將s所指字符串中除了下標(biāo)為偶數(shù)、同時ASCII值也為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。若s所指字符串中的內(nèi)容為ABCDEFG123456,最后t所指的數(shù)組中的內(nèi)容應(yīng)是246。
Void fun(char *s,char t[])
{int i,j=0;
for(i=0;s[i]!=’\0’;i++)
if(i%2= =0&&s[i]%2= =0)
t[j++]=s[i];t[j]=’\0’;}
92、將s所指字符串中除了下標(biāo)為偶數(shù)、同時ASCII碼值為奇數(shù)的字符之外,其余的所有字符刪除,串中剩余字符形成的一個新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為ABCDEFG12345,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。
Void fun(char *s,char t[])
{int i,j=0;
for (i=0;s[i]!=’\0’
;i++)
{if(i%2==0&&s[i]2!=0)
t[j++]=s[i];}t[j]=’\0’;}?
93、將s所指字符串中除了下標(biāo)為奇數(shù)、同時ASII值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若S所指字符串中的內(nèi)容為edB2A4Dsdg,最后t所指數(shù)組中的內(nèi)容應(yīng)是d24。
void fun(char*s,char t[])
{int i,j=0;
for(i=0;s[i]!='\0';i++)
if(i%2!=0&&s[i]%2==0)
t[j++]=s[i];t[j]='\0';}
94、除了尾部的*號之外,將字符串中其他*號全部刪除。形參p已指向字符串中最后一個字母。(不得使用字符串函數(shù))例如,若字符串中的內(nèi)容為****A*BC*DEF*G******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG******.
void fun(char?*a,char?*p)
{char*t=a;
for(;t<=p;t++)
if(*t!='*')*(a++)=*t;
for(;*t!='\0';t++)
*(a++)=*t;*a='\0';}
95、刪除字符串中所有的*號(不得使用字符串函數(shù))。例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是ABCDEFG。
void fun(char?*a)
{int i,j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]!='*')a[j++]=a[i],a[j]='\0';}
96、除了字符前導(dǎo)和尾部的*號之外,將串中其他*號全部刪除。形參h已指向字符串中第一個字母,形參P已指向字符串中最后一個字母。(不得使用字符串函數(shù))。若字符串中的內(nèi)容為***A*BC*DEF*G********,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****ABCDEFG********。
void fun(char?*a,char?*h,char?*p)
{int i=0;char?*q=a;
while(q<h){a[i++]=*q;q++;}
while(q<p)
{if(*q!='*')a[i++]=*q;q++;}
while(*q){a[i++]=*q;q++;}
a[i]='\0';}
97、除了字符串前導(dǎo)的*號之外,將串中其他*號全部刪除。(不得使用字符串函數(shù))。例如,若字符串中的內(nèi)容為****A*BC*DEF*G********,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****ABCDEFG。
void fun(char?*a)
{int i=0;char?*p=a;
while(*p&&*p=='*')
{a[i++]=*p;p++;}
while(*p)
{if(*p!='*')a[i++]=*p;p++;}
a[i]='\0';}
98、將字符串尾部的*號全部刪除,前面和中間的*號不刪除。例如,若字符串中的內(nèi)容為***A*BC*DEF*G*******,刪除后的內(nèi)容則應(yīng)當(dāng)是****A*BC*DEF*G。
void fun (char?*a)
while(*a!='\0')a++;a--;
while(*a=='*')a--;*(a+1)='\0';}
99、只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導(dǎo)*號的個數(shù),形參e給出了字符串中最后*號的個數(shù)。(不得??使用字符串函數(shù))例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是A*BC*DEF*G。
void fun(char?*a,int n,int h,int e)
{int i,j=0;
for(i=h;i<n-e;i++)
a[i++]=a[i];a[j]='\0';}
100、將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后的內(nèi)容則應(yīng)當(dāng)是A*BC*DEF*G*******。
void fun(char *a)
{char *p=a;while(*p=='*'p++;
for(;*p!='0';p++,a++)
*a=*p;*a='\0';}
101、使字符串中前部的*號不得多余n個;若多余n個,則刪除多余的*號,若少于或等于n個,則什么也不做,字符串中間和尾部的*號不刪除。例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******;若n的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****A*BC*DEF*G*******。n的值為4,則字符串中的內(nèi)容為****A*BC*DEF*G*******。n的值在主函數(shù)中輸入。(不得使用字符串函數(shù))。
void fun(char *a,int n )
{int i=0,k=0;char?*p,*t;
p=t=a;while(*t=='*'){k++;t++;}
if(k>n){while(*p){a[i]=*(p+k-n);
i++;p++;}a[i]='\0';}}
102、使字符串中尾部的*號不得多于n個;若多于n個,則刪除多余*號;若少于或等于n個,則什么也不做字符串中間和前面的*號不刪除。例如,字符串中的內(nèi)容為***A*BC*DEF*G*******,若n的值為4,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是***A*BC*DEF*G****;若n的值為7,則字符串中的內(nèi)容仍為****A*BC*DEF*G****; n的值在主函數(shù)中輸入。
void fun(char *a,int n)
{int i=0,k=0;char *p,*t;p=t=a;
while(*t)t++;t--;
while(*t=='*'){k++;t--;}t++;
if(k>n){while(*p&&p<t+n){a[i++]=*p;
p++;}a[i]='\0';}
103、將字符串中的前導(dǎo)*號全部移到字符串的尾部。若字符串中的內(nèi)容為********A*BC*DEF*G****,移動后,字符串中的內(nèi)容應(yīng)當(dāng)是A*BC*DEF*G***********.
void fun(char *a)
{int i=0,n=0;char *p=a;
while(*p=='*'){n++,p++;}
while(*p){a[i++]=*p;p++;}
while(n!=0){a[i++]='*';n--;}
a[j]='\0';}
104、從字符串中刪除指定的字符。同一字母的大、小寫按不同字符處理。例如:若程序執(zhí)行時輸入字符串為turbo c and borland c++從鍵盤上輸入字符n,則輸出后變?yōu)?/span>turbo c ad borlad c++。如果輸入的字符在字符串中不存在,字符串照原樣輸出。
int fun(char s[],int c)
{int i=0;char *p;p=s;
while(*p){if(*p!=c){s[i++]=*p;p++;}
s[i]='\0';}
105、刪除一個字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除后的字符串存放在b 所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個字符串world,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為word。
void fun(char a[],char b[],int n)
{int i,k=0;
for(i=0;a[i]!='\0';i++)
if(i!=n)b[k++]=a[i];b[k]='\0';}
106、刪除字符串規(guī)定下標(biāo)開始的n個字符。例如,字符串內(nèi)容為HellolloWorld!,k中的值為:5,n中的值為3,則調(diào)用該函數(shù)的結(jié)果為:Hello World!
void fun(char *a,int k,int n)
{int i;i=k;
while(a[i-1]!='\0')
{a[i]=a[i+n];i=i+1;}}
107、刪除字符串中的數(shù)字字符。例如輸入字符串:48CTYP9E6,則輸出:CTYPE.
void fun(char *s)
{int i,j=0;char str[100],*p;p=s;
while(*p!='\0')}
{if(*p<'0')||*p>'9')
str[j++]=*p;p++;}str[j]='\0';p=s;
for(i=0;i<j;i++)
p[i]=str[i];p[i]='\0';}
108、刪除字符串中的所有空格。如:輸入asd af aa z67,則輸出為asdafaaz67.
int fun (char *str)
{int i,j=0;
for(i=0;str[i]!='\0';i++)
if(str[i]!='')str[j++]=str[i];
str[j]='\0'}
109、把字符串中的內(nèi)容逆置。例如:字符串中原有的字符串為abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為gfedcba。
fun(char *s)
{char ?ch;int i=0,n;
n=strlen(s)-1;
while(i<(n+1)/2)
{ch=s[i];s[i]=s[n];s[n]=ch;i++;n--;}}
110、判斷字符串是否為回文?若是則函數(shù)返回1,主函數(shù)中輸出YES,否則返回0,主函數(shù)中輸出NO?;匚氖侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。
int fun(char *str)
{int i,n=0,fg=1;char *p=str;
while(*p){n++;p++;}
for(i=0;i<n/2;i++)
if(str[i]==str[n-1-i]);
else{fg=0;break;}return fg;}
111、在字符串中的所有數(shù)字字符前加一個$字符。例如,輸入A1B23CD45,則輸出為:A$1B$2$3CD$4$5.
void fun(char *s)
{charp[80];int i=0,j=0;
while(s[i]!='/0')
{if((s[i]>='0'&&(s[i]<='9'))
{p[j]='$';p[j+1]=s[i];j=j+2;}
else {p[j]=s[i];j=j+1;}i++;}
p[j]='\0';strcpy(s,p);}
112、統(tǒng)計在tt字符串中’a’到’z’26個字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如:當(dāng)輸入字符串abcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000。
void fun(char*tt,int pp[])
{int i;
for(i=0;i<26;i++)pp[i]=0;
for(;*tt!='\0';tt++)
if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;}
113、統(tǒng)計一行字符串中單詞的個數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間有若干個空格隔開,一行的開始沒有空格。
int fun(char *s)
{int i,j=0;
for(i=0;s[i]!='/0';i++)
if(s[i]!=''&&(s[i+1]==''||s[i+1]=='\0'))
i++;return j;}
114、統(tǒng)計字符串S在字符串str中出現(xiàn)的次數(shù)。例如,若輸入字符串“12 ?123 ?12345”和“23”,則應(yīng)輸出2(表示字符串“23”在字符串“12 ?123 ?12345”中出現(xiàn)了兩次)。若輸入字符串“33333”和“33”,則應(yīng)輸出4(表示字符串“33”在字符串“33333”出現(xiàn)了四次)。
int MySearch(char* str;char* s)
{char *p;int n=0;
for(;*str;)
if((p=strstr(str,s))!=NULL)
{n++;str=p+1;}
else str++;return(n);}
115、統(tǒng)計一個長度為2的字符串在另一個字符串中出現(xiàn)的次數(shù)。如假定輸入的字符串為asd ?asasdfg ?asd ?as ?zx67 ?asd ?mklo,子字符串為as,則應(yīng)當(dāng)輸出6。
int fun(char *str, char *substr)
{int i,j=0;
for(i=0;str[i+1]!='\0';i++)
if(str[i]==substr[0]&&str[i+1]==substr[1])
j++;return j;}
116、將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用字符串函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。
long fun(char *p)
{long n=0;int flag=1;
if(*p=='-'){p++;flag=-1;}
else if(*p=='+')p++;
while(*p!='\0'){n=n*10+*p-'0';p++;}
return n*flag;}
117、將字符串tt中的小寫字母都改為對應(yīng)的大寫字母,其它字符不變并返回修改后的字符串。例如:若輸入字符串“Ab、cD”,則輸出字符串“AB,CD”。
char* EXUL(char tt[])
{for(;*tt;tt++)
if((*tt>='a'&&(*tt <='z'))*tt=32;}
118、把字符串中所有的字符前移一個位置,串中的第一個字符移到最后。例如:原有的字符串為:Mn.123xyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:n.123xyZM。
fun(char *s)
{int i,length;
char tmp;length=strlen(s);
if(length==0)return;tmp=s[0];
for(i=0;i<length-1;i++)
s[i]=s[i+1];s[length-1]=tmp;}
119、把字符串中所有的字母改寫在該字母的下一個字母,最后一個字母z改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他的字符不變。例如,原有的字符串為;Mn.123xyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:No.123yzA。
fun(char *s)
{int i,length;
length=strlen(s);
for(i=0;i<length;i++)
{if(!((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&}s[i]<='Z')))continue;
switch(s[i])
{case'z':s[i]='a';break;
case'Z':s[i]='A';break;
defaule:s[i]+1;break;}}}
120、將字符串ss中所有下標(biāo)奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4EFG”,則應(yīng)輸出“aBc4EFG”.
void fun(char *ss)
{int i,n=0;char *p=ss;
while(*p){n++;p++;}
for(i=0;i<n;i++)
if((ss[i]>='a'&&ss[i<='z’)&&(i%2!=0)
ss[i]=ss[i]-32;ss[i]='\0';}
121、將字符串tt中的每個單詞的首字符改為對應(yīng)的大寫字母,首字符后的字母都改為對應(yīng)的小寫字母,其它字符不變并返回修改后的字符串。例如,若輸入“ab,cD Boy!”,則應(yīng)輸出字符串為:“Ab, Cd Boy!”.
charEXUL(char tt[])
{int isfirst=1;int i ,
Lenhth;length=strlen(tt);
For(i=0;i<length;i++)
{if(tt[i]>=’a’&&tt[i]<=’z’){tt[i]=isfirst?(tt[i]+’A’-‘a’);tt
122、移動字符串中的內(nèi)容,移動???則是把第1到第m個字符,平移到???串的最后,把第m+1到最后的字到字符串的前部。例如,字符串???有的內(nèi)容為ABCDEFGHIJK,m的???移動后,字符串中的內(nèi)容應(yīng)該??DEFGHIJKABC.
void fun (char *w,int m)
{int i,j;char t;
for(i=1;i<=m;i++){t=w[0];
for(j=1;w[j]!='\0';j++)
w[j-1]=w[j];w[j-1]=t;}}
123、將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個字符串中。例如若二維數(shù)組中的數(shù)據(jù)為:
W W W W
S S S S
H H H H
則字符串中的內(nèi)容應(yīng)是WSHWSHWSHWSH.
void fun(char (*s)[N],char *b)
{int i,j,k=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)b{k++}=s[j][i];
b[k]='\0';}
124、將放在字符串?dāng)?shù)組中的M個字符串(每串的長度不超過N),按順序合并組成一個新的字符串。例如,若字符串?dāng)?shù)組中的M個字符串為
AAAA
BBBBBBB
CC
則合并后的字符串內(nèi)容應(yīng)該是
AAAABBBBBBBCC
Void fun(char a[M][N],char *b)
{int i,j,k=0;
for(i=0;i<M;i++)
for(j=0;a[i][j]!='\0';j++)
b[k++]=a[i][j];b[k]='\0';}
125、求出SS所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3。
int fun(char *ss, char c)
{int i=0;
for(;*ss!='\0';ss++)
if(*ss==c)i++;return i;}
126、實(shí)現(xiàn)兩個字符串的連接(不使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串后;若分別輸入下面兩個字符串FirstString和SecondString則程序輸出:
irstStringSecondString
void fun(char p1[],char p2[])
{int i,j;
for(i=0;p1[i]!='\0';i++);
for(j=0;p2[j]!='\0';j++)
p1[i++]=p2[j];p1[i]='\0';}
127、對長度為7個字符的字符串,除首、尾字符外,將其余5個字符按ASCII碼降序排列。例如:若原來的字符串為CEAedca,則排序后輸出為CedcEAa.
int fun(char *s, int num)
{char t;int i,j;
for(i=1;i<num-2;i++)
for(j=i+1;j<num-1;j++)
if(s[i]<s[j])
{t=s[i];s[i]=s[j];s[j]=t;}}
128、從傳入的num個字符中找出最長的一個字符串并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。
fun(char (*a)[81],int num,char *max)
{int i=0;max=a[0];
for(i=0;i<num;i++)
if(strlen(max)<strlen(a[i]))
max=a[i];return max;}
129、比較兩個字符串的長度,(不得調(diào)用字符串長度的函數(shù)),函數(shù)返回較短的字符串。若兩個字符串長度相等,則返回第1個字符串。例如,輸入nanjing<CR>nanchang<CR>(<CR>為回車鍵),函數(shù)將返回nanjing。
char *fun(char *s,char *t)
{int i,j;
for(i=0;s[i]!='\0';i++);
for(j=0;t[j]!='\0';j++);
if(i<=j)return s;else return t;}
130、比較兩個字符串的長度,(不得調(diào)用C語言提供的求字符串的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長度相等,則返回第1個字符串。例如,輸入beijing<CR>shanghai<CR>(<CR>為回車鍵),函數(shù)將返回shanghai。
char *fun(char *s,char *t)
{int i,j;
for (i=0;s[i]!='\0';i++);
for(j=0;t[j]!='\0';j++);
if(i>=j)return s;else return t;}
四、
131、N名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。找出學(xué)生的最低分,由函數(shù)值返回。
double fun(STREC *h)
{double min=h->s;
while(h!=NULL)
{if(min>h->s) min>h->s;h->h->next;}
return min;}
132、N名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指??鏈表的頭節(jié)點(diǎn)。的出學(xué)生的最高分,由函數(shù)值返回。
double fun(STREC *h)
{ double max=h->s;
while(h!=NULL)
{if(max>h->s) max=h->s; h->h->next;}return max;}
133、已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。找出成績最低的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最低分)。
fun(STU a[],STU *s)
{int i;*s=a[0];
for(i=0,i<N;i++)
if(s->s<a[i].s)*s=a[i];}
134、已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。找出成績最高的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最高分)。
fun(STU a[], ?STU *S)
{int i;*s=a[0];
for(i=0,i<N;i++)
if(s->s<a[i].s)*s=a[i];}
135、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。注意:分?jǐn)?shù)低的學(xué)生可能不只一個函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。
int fun (STREC *a, STREC *b)
{int i,j=0,min=
a[0].s;
for(i=0;i<N;i++)
if(min>a[i].s)min=a[i].s;
for(i=0;i<N;i++)
if(min==a[i].s)b[j++]=a[i];
return j;}
136、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù):把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)高的學(xué)生可能不只一個函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。
int fun (STREC *a, STREC *b)
{int i,j=0,min=
a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(max==a[i].s)b[j++]=a[i];return j;}
137、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);返回指定學(xué)號的學(xué)生數(shù)據(jù),指定的序號在主函數(shù)中輸入。若沒找到指定的學(xué)號,在結(jié)構(gòu)體變量中給學(xué)號置空串,給成績置-1,作為函數(shù)值返回。
STREC fun(STREC *a, char *b)
{int i;STREC str={"\0",-1};
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)==0)
str=a[i];return str;}
138、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);返回指定成績的學(xué)生數(shù)據(jù),指定的成績在主函數(shù)中輸入。若沒找到指定的成績,在結(jié)構(gòu)體變量中給學(xué)號置空串,給成績置-1,作為函數(shù)值返回。
STREC fun(STREC *a, int b)
{int i;STREC str={"\0",-1};
for(i=0;i<N;i++)
if(a[i].s==b)str=a[i];
return str;}
139、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);把低于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
double fun(STREC*a, STREC*b,int*n)
{int i,j=0;double av=0.0;
for(i=0;i<N;i++)av=av+a[i].s;
av=av/N;
for(i=0;i<N;i++)
if(a[i].s<av) b[j++]=a[i];
*n=j;return av;}
140、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù):把高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
double fun(STREC *a,STREC *b,int *n)
{int i;double av=0.0;*n=0;
for(i=0;i<N;i++)av=av+a[i].s;
av=av/N;
for(i=0;i<N;i++)
if(av<=a[i].s){b[*n]=a[i];*n=*n+1;}
return av;}
141、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù):把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學(xué)生數(shù)據(jù)放在c所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,低于平均分的學(xué)生人數(shù)通過形參n傳回,低于平均分的學(xué)生人數(shù)通過形參m傳回,平均分通過函數(shù)值返回。
double fun(STREC *a,STREC *b,STREC *c,int *n,int*m)
{int i;double av=0.0;*n=0;*m=0;
for(i=0;i<N;i++)
av=av/N;
for(i=0;i<N;i++)
if(av<=a[i].s){b[*n]=a[i];*n=*n+1;}
else{c[*m]=a[i];*m=*m+1;}
return av;}
142、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);按分?jǐn)?shù)的高低排列學(xué)生的記錄,低分在前。
int fun (STREC a[])
{int i,j;STREC t;
for(i=1;i<N;i++)
for(j=0;j<N-1;j++)
if(a[j].s>a[j+1].s)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
143、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
int fun(STREC a[])
{int i,j;STREC t;
for(i=1;i<N;i++)
for(j=0;j<N-1);j++)
if(a[j];s<a[j+1].s)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
144、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù):把指定分?jǐn)?shù)范圍之外的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍之外的學(xué)生人數(shù)由函數(shù)值返回。例如,輸入的分?jǐn)?shù)是80和89,則應(yīng)當(dāng)把分?jǐn)?shù)低于80和高于89的學(xué)生數(shù)據(jù)進(jìn)行輸出,不包含80分和89分的學(xué)生數(shù)據(jù)。主函數(shù)中把80放在low中,把89放在heigh中。
int fun (STREC *a,STREC *b,int 1,int h)
{int i,j=0;
for(i=0;i<N;i++)
of((a[i].s>=0&&a[i].s<1)||(a[i].s<=100))
b[j++]=a[i];return j;}
145、學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,編寫函數(shù);把指定分?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中。
int fun(STREC *a,STREC *b,int 1, int h)
{int i,j=0;
for(i=0;i<N;i++)
if(a[i].s>=1&&a[i].s<=h)
b[j++]=a[i];return j;}
146、某學(xué)生的記錄由學(xué)號、8門課成績和平均分組成,學(xué)號和8門課的成績已在主函數(shù)中給出。編寫函數(shù),求出該學(xué)生的平均分放在記錄的ave成員中。若學(xué)生的成績是
85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)當(dāng)是78.875。
void fun(STREC *p)
{int i;p->ave=0.0;
for(i=0;i<N;i++)p->ave+=p->s[i];
p->ave=p->ave/N;}
147、N名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。編寫函數(shù):求出平均分,由函數(shù)值返回。例如,若學(xué)生的成績是85,76,69,91,72,64,87,則平均分應(yīng)當(dāng)是78.625。
double fun(STREC *h)
{double av=0.0;STREC *p=h->next;
while(p!=NULL){av=av+p->s;
p=p->next;}return av/N}