最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)(二)

2021-02-28 08:55 作者:朝顏晚扶桑  | 我要投稿

二、數(shù)組題

69.找出100至n(不大于1000)之間三位數(shù)字相等的所有整數(shù)。

int fun (int *s,int n)

{inti,j,k,a,b,c;j=0;for (i=100;i<n;i++){k=i;a=k%10;k/=10;b=k%10;k/=10;c=k;

if(a==b&&a==c)s[j++]=i;}return j;}

70.找出100~n(不大于1000)之間百位數(shù)字加十位數(shù)字等于個(gè)位數(shù)字的所有整數(shù)。

int fun (int *s,int n)

{inti,j,k,a,b,c;j=0;for (i=100;i<n;i++){k=i;a=k%10;k/=10;b=k%10;k/=10;c=k/10;if(a==b+c)s[j++]=i;}return j;}

71.求出數(shù)組中最大數(shù)和次最大數(shù),并把最大數(shù)和a[0]中的數(shù)對(duì)調(diào)、次最大數(shù)和a[1]中的數(shù)對(duì)調(diào)。例如數(shù)組中原有的數(shù)為:7、10、12、0、3、6、9、11、5、8,輸出的結(jié)果為:12、11、7、0、3、6、9、10、5、8.

int fun (int *a,int n)

{inti,m,t,k;for (i=0;i<2;i++){m=i;for (k=i;k<n;k++)if (a[k]>a[m])m=k;

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

72.計(jì)算數(shù)組元素中值為正數(shù)的平均值(不包括0)。例如:數(shù)組中元素中的值依次為39,-47,21,2,-8,15,0,則程序的運(yùn)行結(jié)果為19.250000.

double fun (int x[ ])

{double sum=0.0;int c=0,i=0;while (x[i]!=0)

{if (x[i]>0)

{sum+=x[i].c++;}i++;}sum/=sum/c;return sum;}

73.?計(jì)算數(shù)組元素中值為負(fù)數(shù)的平均值(不包括0)。例如:數(shù)組中元素中的值依次為43,-47,-21,53,-8,12,0,則程序的運(yùn)行結(jié)果為-25.333333.

double fun(int x[])

{double sum=0.0;int c=0

,i=0;while(x[i]!=\0)

{if(x[i]<0)} {sum+=x[i].c++;}i++;}sum=sum/c;return sum;}

}

74.用選擇法對(duì)數(shù)組中的n個(gè)元素按從大到小的順序進(jìn)行排序。

void fun (int a[],int n)

{inti,j,t,p;for (j=0;j<n-1;j++){p=j;for (i=j+1;i<n;i++)?if (a[i]>a[p])p=j;t=a[p];a[p]=a[j];a[j]=t;}}

75.讀入一個(gè)整數(shù)m(5≤m≤20),函數(shù)getarr調(diào)用函數(shù)rnd獲得m個(gè)隨機(jī)整數(shù),函數(shù)sortpb將這m個(gè)隨機(jī)整數(shù)從小到大排序。例如,若輸入整數(shù)7,則應(yīng)輸出:3,10,17,28,32,36,47.

sortpb (int n,int *a)

{int i,j,p,t;for (j=0;j<n-1;j++){p=j;for (i=j+1;i<n;i++)

if(a[p]>a[i])p=i;if (p!=j){t=a[j];a[j]=a[p];a[p]=t;}}}

76.給定n個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)平均值以上(含平均值)的實(shí)數(shù)個(gè)數(shù)。例如n=8時(shí),輸入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值為195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為5.

int fun (float x[],int n)

{int j,c=0;float xa=0.0;for (j=0;j<n;j++)xa +=x[j]/n;

printf(ave=%f\n, xa)for (j=0;j<n;j++)if(x[j]>= xa)c++;return c;}

77.讀入一個(gè)整數(shù)m(1≤m≤20)和m位學(xué)生的學(xué)號(hào)、數(shù)學(xué)課考分和計(jì)算機(jī)課考分,并從中查找第一個(gè)數(shù)學(xué)課考分<80且計(jì)算機(jī)課考分<70的學(xué)生,若有則輸出他的學(xué)號(hào)和兩門(mén)課分?jǐn)?shù),否則輸出“Not found!”.

int Find (int n,struct student ss[])

{int i;for (i=0;i<n;i++)if ((ss[i].math<80)&&(ss[i].cmpt<70))break;return ((i==n)?-1:i);}

main ()

{int i,m;struct student tt[M];printf ();scanf(%d,&m);printf ();

for(i=0;i<m;i++)}

78.從n個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出高于平均分的學(xué)生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,輸入8名學(xué)生的成績(jī):85,65.5,69,95.5,87,55,62.5,75,則高于平均分的學(xué)生人數(shù)為4(平均分為74.312500)。

int fun (float *s,in n,float *aver)

{float ave,t=0.0;int count=0,k,i;for (k=0;k<n;k++)t+=s[k];aver =t/n;

for(i=0;i<n;i++)if(s[i]>ave

)count++;*aver=ave;return count;}

79.?從n個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,輸入8名學(xué)生的成績(jī):80.5,60,72,90.5,98,51.5,88,64則低于平均分的學(xué)生人數(shù)為4(平均分為75.5625)。

int fun (float *s,int n,float *aver)

{float ave,t=0.0;int count=0,k,i;for(k=0;k<n;i++) t+=s[k];ave=t/n;

for(i=0;i<n;k++) if (s[i]<ave)count++;*aver=ave;return count; }

80.使數(shù)組中的元素的值縮小5倍。

float m[10];

void fun (void)

{int j;printf (In subfunc after calling \n);

for (j=0;j<10;j++){printf (%f,m[j]/5);}}

81. .使數(shù)組中的元素的值增加10倍。

float m[10];

void fun (void)

{int j;printf (In subfunc after calling \n);

for (j=0;j<10;j++){printf (%d,m[j]*10);}}

82.刪除w所指數(shù)組中下標(biāo)為k的元素中的值。

arrout (int *w,int m)

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

printf (%d,w[k]);printf (\n);}

83.假如整數(shù)數(shù)列中的數(shù)不重復(fù),刪除數(shù)列中值為X的元素。N中存放的是數(shù)列中元素的個(gè)數(shù)。

fun (int *a,int n,int x)

{int p=0,i;a[n]=x;while (x!=a[p] )p=p+1;if (p==n)return -1;else {for (i=p;i<n;i++)

a[i]=a[i+1];return n-1;}}

84.按順序給s所指數(shù)組中的元素賦予從2開(kāi)始的偶數(shù),然后再按順序?qū)γ?個(gè)元素求一個(gè)平均值,并將這些值依次存放在w所指的數(shù)組中。若s所指數(shù)組中元素的個(gè)數(shù)不是5的倍數(shù),多余部分忽略不計(jì)。例如,s所指數(shù)組有14個(gè)元素,則只對(duì)前10個(gè)元素進(jìn)行處理,不對(duì)最后的4個(gè)元素求平均值。

fun (double *s,double *w)

{int k,i;double sum;for (k=2,i=0;i<SIZE;i++)

{s[i]=k;k+=2;}sum=0.0;for (k=0,i=0,i<SIZE;i++)

{sum+=s[i];if((i+1)%5==0){w[k]=sum/5;sum=0;k++;}}return k;}

85.N個(gè)有序整數(shù)數(shù)列已放在一維數(shù)組中,函數(shù)的功能是:利用折半查找算法查找整數(shù)m在數(shù)組中的位置。若找到,則返回其下標(biāo)值;反之,則返回-1.折半查找的基本算法是:每次查找前先確定數(shù)組中待查的范圍:low和high(low<high),然后把m與中間位置(mid)中元素的值進(jìn)行比較。如果m的值大于中間位置元素中的值,則下一次的查找范圍放在中間中間位置之后得元素中;反之,下次查找范圍落在中間位置之前的元素中。直到low>high,查找結(jié)束。

int fun (int a[],int m)

{int low=0,high=N-1,mid;while (low<=high)

{mid=(low+high)/2;if (m<a[mid])high =mid-1;

else if (m>a[mid])

low=mid+1;else return(mid);}return (-1);}

{printf (%3d,m[j]=m[j]*10);}

86.在x數(shù)組中放入n個(gè)采樣值,計(jì)算并輸出差值。(函數(shù)省略)

float fun(float x[],int n)

{int j;float xa=0.0,s;for (j=0;j<n;j++)xa+=x[j]/n;s=0;for (j=0;j<n;j++)

S+=(x[j]-xa)*(x[j]-xa)/n;return s;}

87.先讀入整數(shù)m,再讀入m個(gè)從小到大的整數(shù),最后再讀入一個(gè)整數(shù)k并將k插入到該改整數(shù)數(shù)列中,插入后的數(shù)列仍然按從小到大的順序排列。例如,若先輸入4,然后輸入4個(gè)從小到大排列的整數(shù):-1,1,7,98最后輸入待插入的數(shù)19,則輸出結(jié)果應(yīng)為:-1,1,7,19,98.

void InSort (int *n,int vv[],int k)

{int k=0,j;while (k>vv[i]&&i<*n)i++;if (i<*n)for (j=*n;j>i;j--)

vv[j]=vv[j-1];vv[i]=k;++*n;}

main()

{int aa[M].i,k,m;clrscr();printf(\nPlease enter a number:\n);

scanf (%d,&m);printf (\nPlease enter %d numbers:\n,m);

for(i=0;i<m;i++)scanf (%d,&aa[i]); printf (\nPlease enter another numbers:\n);

scanf (%d,&k);InSort(&m,aa,k);for (k=0;k<m;k++)printf(%d,aa[k]);}

88.讀入一個(gè)整數(shù)m(4≤m≤10),例如4,程序?qū)⒆詣?dòng)在a[0]至a[3]四個(gè)數(shù)組元素中分別放入1,4,9,16,且按逆序輸出此4個(gè)元素:16,9,4,1。

main ()

{inta[M]={0},i=0,j,m;printf();scanf(%d,&m);for(j=0;j<m;j++)a[j]=(j+1)*(j+1);printf(\nTheoutput:\n);for(i=m-1;i>=0;i--)printf (%4d,*(a+i));}

89.根據(jù)形參m的值(2≤m≤9),在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由主函數(shù)輸出。例如,若輸入2,則輸出1 ?2

??????????????????????????2 ??4輸入4,則輸出1 ?2 ?3 ?4

??????????????????????????????????????????????2 ?4 ?6 ?8

??????????????????????????????????????????????3 ?6 ?9 ?12

??????????????????????????????????????????????4 ?8 ?12 ?16

void fun (int (*a)[M],int m)

{intj,k;for (j=0;j<m;j++)for (k=0;k<m;k++)a[j][k]=(k+1)*(j+1);}

90.先從鍵盤(pán)上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之積。

int fun()

{int a[3][3],mul;int i,j;mul=1;for (i=0;i<3;i++){for(j=0;j<3;j++)scanf (%d,&a[i][j]);}

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

mul=mul*a[i][j];printf (Mul=%d\n,mul);}

91.先從鍵盤(pán)上輸出一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。

int fun()

{int a[3][3],sum;int i,j; sum=0;for (i=0;i<3;i++)

{for(j=0;j<3;j++)scanf (%d,&a[i][j]);}

for (i=0;i<3;i++) sum = sum +a[i][j];printf (Sum =%d\n, sum);}

92.輸出M行N列整數(shù)方陣然后求兩條對(duì)角線上的各元素的和返回此和數(shù)。

int fun (int n,int xx[][M])

{int i,j,sum=0;printf (\nThe %d x %d matrix:\n,M,M);for (i=0;i<M;i++)

{for (j=0;j<M;j++)printf (%4d,xx[i][j]);

printf (\n);for (i=0;i<n;i++)sum+=xx[i][j]+xx[i][n-i-1];return (sum);}

93. 輸出M行N列整數(shù)方陣然后求兩條對(duì)角線上的各元素的平方和返回此和數(shù)。

int fun (int n,int xx[][M])

{int i,j,sum=0;printf (\nThe %d x %d matrix:\n,M,M);for (i=0;i<M;i++)

{for (j=0;j<M;j++)printf (%4d,xx[i][j]);

printf(\n);for (i=0;i<n;i++)sum+=xx[i][j]*xx[i][n-i-1]*xx[i][n-i-1];

return (sum);}

94.給一維數(shù)組a輸入任意4個(gè)整數(shù),并按如下的規(guī)律輸出。例如輸入1,2,3,4,程序運(yùn)行后輸出以下方陣:4 ?1 ?2 ?3

??????????????????3 ?4 ?1 ?2

??????????????????2 ?3 ?4 ?1

??????????????????1 ?2 ?3 ?4

int fun(int *a)

{inti,j,k,m;printf (Enter4number:);

for(i=0;i<m;i++)scanf(%d,&a[i]);printf (\n\nThe result :\n\n);

for(i=M;i>0;i--){k=a[m-1];for(j=M-1;j>0;j--)a[j]=a[j-1];a[0]=k;

for(m=0;m<M;m++)printf (%d,a[m]);printf(\n);}

三、字符題

95.逐個(gè)比較a,b兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCII值小或相等的字符依次存放到c數(shù)組中,形成一個(gè)新的字符串。例如:a中的字符串為fshADfg,b中的字符串為sdAEdi,則c中的字符串應(yīng)為fdAADf.

void fun (char *p,char *q,char *c)

{intk=0;while(*p||*q){if(*p>=*q)c[k]=*q;elsec[k]=*p;if(*p)p++;if(*q)q++;k++;}}

96.將字符串s中位于偶數(shù)位置的字符或ASCII碼為奇數(shù)的字符放入字符串t中(規(guī)定第一個(gè)字符放在第0位中)。例如:字符串中的數(shù)據(jù)位ADFESHDI,則輸出應(yīng)當(dāng)是AFESDI。

void fun (char *s,char t[ ])

{int i,j=0;for (i=0;i<strlen (s);i++)if (i%2==0||s[i]%2!=0)t[j++]=s[i];t[j]=\0;}

97.讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCII碼降序排序后輸出。例如:輸入dafhc,則應(yīng)輸出hfdca.

void fun (char t[ ])

{charc;inti,j;for (i=0;i<strlen(t)-1;i++)for (j=i+1;j<strlen (t);j++)

if (t[i]<t[j]){c=t[j];t[j]=t[i];t[i]=c;}}

98.依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。

void fun(char *s)

{int i,j;for (i=0,j=0;s[i]!=\0;i++)if((s[i]>=A&&s[i]<=z)||(s[i]>=a&&s[i]<=z))

s[j++]=s[i];s[j]=\0;}

99.在字符串str中找出ASCII碼值最小的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng),例如,調(diào)用fun函數(shù)之前給字符串輸入fagAgBDh,調(diào)用后字符串中的內(nèi)容為AfaggBDh.

void fun(char *p)

{char min,*q;int i=0;min=p[i];while (p[i]!=0){

if(min <p[i]){q=p+i;?min =p[i];}i++;}while (q>p)

{*q=*(q-1);q--;}p[0]= min.;}

100.在字符串str中找出ASCII碼值最小的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng),例如,調(diào)用fun函數(shù)之前給字符串輸入ABCDeFGH,,調(diào)用后字符串中的內(nèi)容為eABCDFGH..

void fun(char *p)

{char max,*q;int i=0;max=p[i];while (p[i]!=0){

if(max<p[i]){q=p+i;max=p[i];}i++;}while (q>p)

{*q=*(q-1);q--;}p[0]=max.;}

101.將字符串tt中的大寫(xiě)字母都改為對(duì)應(yīng)的小寫(xiě)字母,其他字符不變。若輸入“Ab,cD”,則輸出“ab,cd”.

char *fun (char tt[ ])

{inti;for(i=0;tt[i];i++){if((tt[i]>=A)&&(tt[i]<=Z))tt[i]+=32;}return(tt);}

102.將字符串tt中的小寫(xiě)字母都改為對(duì)應(yīng)的大寫(xiě)字母,其他字符不變。若輸入“edS,dAd”,則輸出“EDS,DAD”.

char *fun (char tt[ ])

{int i;for (i=0;tt[i];i++)

{if((tt[i]>=a)&&(tt[i]<=Z))tt[i]-=32;}return(tt);}

103.將(1≤m≤10)個(gè)字符串反著連接起來(lái),組成一個(gè)新串,放入pt所指字符串中,例如:把3個(gè)串DEG,ac,df反著串聯(lián)起來(lái),結(jié)果是dfacDEG.

void fun (char str[ ][10],int m,char *pt)

{intk,q,i,j=0;for(k=m-1;k>=0;k--){q=strlen(str[k]);j+=q;for(i=0;i<q;i++)pt[i]=str[k][i];pt+=q;pt[0]=0;}pt-=j;}

104.用冒泡法對(duì)6個(gè)字符串按由大到小的順序進(jìn)行排序。

void fun (char *pstr[6])

{inti,j;char*p;for (i=0;i<5;i++)for (j=i+1;j<6;j++)if (strcmp(*(pstr+i),*(pstr+j))<0)

{p=*(pstr+i);*(pstr+i)=*(pstr+j);*(pstr+j)=p;}}

105.利用插入排序法對(duì)字符串中的字符按從大到小的順序進(jìn)行排序插入法的基本方法是先先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序然后把第3個(gè)字符插入到前兩個(gè)字符中插入后前3個(gè)字符依然有序再把第4個(gè)字符插入到前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。

void insert(char *aa)

{inti,j,n;charch;n=strlen(aa);for (i=1;i<n;i++)

{ch=aa[i];j=i-1;while ((j>=0)&&(ch>aa[j]))

{aa[j+1]=aa[j];j--;}aa[j+1]=ch;}}?

106.從字符串s刪除所有大寫(xiě)字母‘F’。

void fun(char *s)

{inti,j;for(i=j=0;s[i]!=\0;i++)if(s[i]!=F)s[j++]=s[i];s[j]=\0;}

107.依次取出字符串中所有的數(shù)字字符,形成新的字符串并取代原字符串。

void fun (char *s)

{inti,j;for(i=0,j=0;s[i]!=\0;i++)if(s[i]>=0&&s[i]<=9)s[j++]=s[i];s[j]=\0’;

108.將s所指字符串中最后一次出現(xiàn)的、t1所指子串替換成t2所指子串,所形成的新串放在w所指的數(shù)組中。在此處,要求t1和t2所指字符串的長(zhǎng)度相同,例如,當(dāng)s所指字符串中的內(nèi)容為abcdabfabc,t1所指子串中的內(nèi)容為:ab,t2所指子串中的內(nèi)容為99時(shí),結(jié)果,在w所指的數(shù)中的內(nèi)容為abcdabf99c.

void fun(char *s,char *t1,char *t2,char *w)

{inti;char *p,*r,*a;strcpy(w,s); while (*w){p=w;r=t1;while (*r)?if (*r==*p){r++;p++;}

else break;if (*r==\0)a=w;w++;}r=t2;while (*r)(*a=*r;a+;r++)}

109. 將s所指字符串中出現(xiàn)的t1所指字符串替換成t2所指字符串,所形成的新字符串放在w所指的數(shù)組中。在此處,要求t1和t2所指字符串的長(zhǎng)度相同,例如,當(dāng)s所指字符串中的內(nèi)容為abcdabfab,t1所指子串中的內(nèi)容為:ab,t2所指子串中的內(nèi)容為99時(shí),結(jié)果,在w所指的數(shù)中的內(nèi)容為99cd99f99.

void fun(char *s,char *t1,char *t2,char *w)

{inti;char *p,*r,*a;strcpy(w,s); while (*w){p=w;r=t1;while (*r)?if (*r==*p){r++;p++;}

else break;if (*r==\0){a=w;r=t2;}?while (*r)(*a=*r;a++;r++;}w+=strlen(t2);}else w++;}}

110.求出字符串中最后一次出現(xiàn)的子符串的地址,通過(guò)函數(shù)值返回,若未找到,則函數(shù)值為NULL。如,當(dāng)字符串中的內(nèi)容為abcdabfabcdx,t中的內(nèi)容為ab時(shí),輸出應(yīng)是abcdx。但字符串中的內(nèi)容為為abcdabfabcdx,t中的內(nèi)容為abd時(shí),則程序輸出未找到的信息:Not found!

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

{char *p,*r,*a;a=NULL;while (*s){p=s;r=t;while (*r)if (*r==*p){r++;p++;}else break;if(*r==\0)a=s;s++;}return a;}

111.判斷字符ch是否與str所指字符串中的某個(gè)字符相同;若相同則什么也不做,若不同,則將其插在串的最后。

void fun (char *str,char ch)

{while (*str &&*str !=ch) str++;f(*str ==\0){str[0]=ch;str[1]=\0;}}

112.從s所指字符串中,找出t所指字符串的個(gè)數(shù)作為函數(shù)值返回。例如當(dāng)s所指字符串中的內(nèi)容為abcdabfab,t所指字符串的內(nèi)容為ab,則函數(shù)返回整數(shù)3.

int fun (char *s,char *t)

{int n;char *p,*r;n=0;while (*s){p=s;r=t;while (*r)if (*r==*p){r++;p++;}

else break;if (*r==\0)n++;s++;}return n;}

113.在字符串的最前端加入n個(gè)*號(hào),形成新串,并且覆蓋原串。注意:字符串的長(zhǎng)度最長(zhǎng)允許79.

void fun (char *s,int n)

{char a[80],*p,int i,p=s;for (i=0;i<n;i++)a[i]=*;do {a[i]=*p;i++;p++;}

while (*p);a[i]=\0,strcpy(s,a);}

114將s所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(但Z轉(zhuǎn)化為A,z轉(zhuǎn)化為a),其他字符不變。

void fun (char *s)

{while(*s){if (*s>=A&&*s<=Z||*s>=a&&*s<=z){if (*s==Z) *s=A;

else if (*s==z),*s=a;else *s+=1;}s++;}}

115.將從鍵盤(pán)上輸入的每個(gè)單詞的第一個(gè)字母寫(xiě)為大寫(xiě)字母,輸入時(shí)各單詞必須用空格隔開(kāi),用‘.’結(jié)束輸入。

int fun (char *c,int status)

{if (*c==?)?return 1;else {if (status &&*c<=z?&&*c>=a)*c+=A-a;return 0;}}

116.讀入一個(gè)英文文本行,將其中每個(gè)單詞的第一個(gè)字母忙亂成大寫(xiě),然后輸出此文本行(這里的“單詞“是指由空格隔開(kāi)的字符串)。例如,若輸入I am a student to take the examination,則應(yīng)輸出I Am Student To Take The Examination.

#include stdio.h?

void upfst (char *p)

{int k=0;for (;*p;p++) if(k){if (*p==?)k=0; else if (*p!=’’)

{k=1;*p=toupper(*p);}}

117.將p所指字符串中每個(gè)單詞的最后一個(gè)字母改成大寫(xiě)(這里的“單詞“是指有空格隔開(kāi)的字符串)。例如,若輸入:I am a student to take the examination,則應(yīng)輸出I aM A studenT tO takE thE examinatioN.

void fun(char *p)

{int k=0;for (;*p;p++) if(k){if(*p==?){k=0;

*(p-1)=

toupper(*(p-1));}}else k=1;}

118.計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。

int fun (char *s,char *t)

{intn;char *p,*r;n=0;while (*s){p=s;r=t;while (*r)if (*r==*p){r++;p++;

else break;if(*r==\0)n++;s++;}return n;}}

119.從N個(gè)字符串中找出最長(zhǎng)的那個(gè)串,并將其地址作為函數(shù)值返回。

char *fun (char (*sq)[M])

{int i;char *sp;sp=sq[0];for (i=0;i<N;i++)if (strlen(sp)<strlen(sq[i]))sp=sq[i];return sp;}

120.將s所指字符串中的正序和反序進(jìn)行連接,形成一個(gè)新串在t所指的數(shù)組中。例如,當(dāng)s所指字符串為ABCD時(shí),則t所指字符串中的內(nèi)容應(yīng)為ABCDDCBA.

void fun (char *s,char *t)

{int i,d;d=strlen(s);for (i=0;i<d;i++)t[i]=s[i];for (i=0;i<d;i++)t[d+i]=s[d-1-i];t[d+i]=\0;}

121.先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如:當(dāng)s中的字符串為ABCDE時(shí),則t中的字符串應(yīng)為EDCBAABCDE。

void fun (char *s,char *t)

{int i,s1;s1=strlen(s);for (i=0;i<s1;i++)t[i]=s[s1-1-i];for (i=0;i<s1;i++)

t[s1+i]=s[i];t[2*s1]=\0;}

122.將m(1≤m≤10)個(gè)字符串連接起來(lái),組成一個(gè)新串,放入pt所指字符串中,例如,把3個(gè)串a(chǎn)bc,CD,EF串聯(lián)起來(lái),結(jié)果是abcCDEF.

Void fun (char str[ ][10],int m,char *pt)

{int k,q,i,j=0;for (k=0;k<m;k++){q=strlen(str[k]);j+=q;for (i=0;i<q;i++)

pt [i]=str[k][i];pt+=q;

pt[0]=0;}pt-=j;}

123、分別將a,b字符串中字符倒序,然后按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余的字符接在c所指的數(shù)組的

尾部,例如:若a所指字符串中的內(nèi)容為:abcdef,b所指字符串中的內(nèi)容為:1234,則c所指數(shù)組中的內(nèi)容應(yīng)該為:g4f3e2d1cba.

若a所指字符串中的內(nèi)容為:1234,b所指字符串中的內(nèi)容為:abcdef,則c所指數(shù)組中的內(nèi)容應(yīng)該為:4g3f2e1dcba

Void fun(char *a, char *b, char *c)

{char s1[100],s2[100],*sa,*sb;strcpy(s1,a); strcpy(s2,b);myswap(s1); myswap(s2);sa=s1;sb=s2;while(*sa||*sb){if(*sa){*c=*sa;c++;

sa++; if(*sb){*c=*sb;c++;sb++;}}*c=0;}

124、首先將a字符串中字符按逆序存放,然后和b字符串中字符,按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余的字符接在c所指的數(shù)組的尾部,例如:若a所指字符串中的內(nèi)容為:abcdef,b所指字符串中的內(nèi)容為:1234,則c所指數(shù)組中的內(nèi)容應(yīng)該為:g1f2e3d4cba. 若a所指字符串中的內(nèi)容為:1234,b所指字符串中的內(nèi)容為:abcdef,則c所指數(shù)組中的內(nèi)容應(yīng)該為:4a3b2c1defg

fun(char *a, char *b, char *c)

{char *ap,*at,ch;ap=a;at=a+strlen(a)-1;whiel(ap<=at){ch=*ap;*ap=*at;*at=ch;ap++;at++;} while(*a||*b){if(*a){*c=*a;c++;a++; if(*b){*c=*b;c++;b++;}}*c=0;}}

125、分別將a,b字符串中字符倒序,然后按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余的字符接在c所指的數(shù)組的

尾部,例如:若a所指字符串中的內(nèi)容為:abcdef,b所指字符串中的內(nèi)容為:1234,則c所指數(shù)組中的內(nèi)容應(yīng)該為:g4f3e2d1cba.

void myswap(char *s)

{char *sp,*st,ch; sp=s;st=s+strlen(s)-1;while(sp<=st){ch=*sp;*sp=*st;*st=ch;sp++;st++;}}

Void fun(char *a, char *b, char *c)

{char s1[100],s2[100],*sa,*sb;strcpy(s1,a); strcpy(s2,b);myswap(s1); myswap(s2);sa=s1;sb=s2;while(*sa||*sb){if(*sa){*c=*sa;c++;

sa++; if(*sb){*c=*sb;c++;sb++;}}*c=0;}

126、首先將b字符串中字符按逆序存放,然后將a字符串中字符和a字符串中字符,按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余的字符接在c所指的數(shù)組的尾部,例如:若a所指字符串中的內(nèi)容為:abcdef,b所指字符串中的內(nèi)容為:1234,則c所指數(shù)組中的內(nèi)容應(yīng)該為:a4b3c2d1efg, 若a所指字符串中的內(nèi)容為:1234,b所指字符串中的內(nèi)容為:abcdef,則c所指數(shù)組中的內(nèi)容應(yīng)該為:1g2f3e4dcba

void fun(char *a, char *b, char *c)

{int i,j;char ch;i=0;

j=strlen(b)-1;while(i<j){ch=b[i]; b[i]= b[j]; b[j]=ch;i++;j--;} while(*a||*b){if(*a){*c=*a;c++;a++; if(*b)

{*c=*b;c++;b++;}}*c=0;}}

127、將a所指字符串中的字符和b所指字符串中的字符,按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在c所指數(shù)組的尾部。例如,當(dāng)a所指字符串中的內(nèi)容為“abcdefg”,b所指字符串中的內(nèi)容為“1234”時(shí); c所指數(shù)組中的內(nèi)容應(yīng)該為a1b2c3d4efg;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串中的內(nèi)容為“abcdefg”時(shí), c所指數(shù)組中的內(nèi)容應(yīng)該為“1a2b3c4defg”.。

fun(char *a,char *b,char *c)

{while(*a&&*b){*c=*a;c++;a++;*c=*b;c++;b++;}

if(*a=\0)

while(*b){*c=*b;c++;b++;}

else

while(*a){*c=*a;c++;a++;}

*c=\0;}

128、統(tǒng)計(jì)字符串中各元音字母(即A,E,I,O,U)的個(gè)數(shù)。注意:字母不分大小寫(xiě)。例如,輸入THIs is a boot,則應(yīng)輸出是1 0 2 2 0。

void fun(char *s,int num[5])

{int k,i=5;

for(k=0;k<i;k++)num[k]=0;

for(;*s;s++){i=1;

switch(*s)

{case’a’;case’A’;{i=0;break;}

case’e’;case’E’;{i=1;break;}

case’i’;case’I’;{i=2;break;}

case’o’;case’O’;{i=3;break;}

case’u’;case’U’;{i=4;break;}}

if(i>=0)num[i]++;}}

129、將字符串p中所有字符復(fù)制到字符串b中,要求每復(fù)制3個(gè)字符之后插入一個(gè)空格,例如,在調(diào)用函數(shù)之前給字符串a(chǎn)輸入ABCDEFGHIJK,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為ABC DEF GHI JK。

void fun(char *p,char *b)

{int i,k=0;

while(*p)

{i=0;

while(i<3&&*p)

{b[k]=*p;k++;p++;i++;}

if(*p){b[k++]=’ ‘;}}

b[k]=’\0’;}

130、統(tǒng)計(jì)字符串substr在字符串str中出現(xiàn)的次數(shù)。若字符串為aaas lkaaas,子字符串為as,則應(yīng)輸出2。

fun(char *str,char *substr)

{int i,j,k,num=0;

for(i=0;str[i];i++)

for(j=i,k=0;substr[k]==str[j];k++,j++)

if(substr[k+1]=?=’\0’)

{num++;break;}return num;}

131、刪除字符串s中所有空白字符(包括Tab字符、回車(chē)符及換行符)。輸入字符串時(shí)用‘#’結(jié)束輸入。

fun(char *p)

{int i,t;char c[80];

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

if(!isspace(*(p+i)))c[t++]=p[i];c[t]=’\0’;strcpy(p,c);

132、此函數(shù)的功能是從字符串s中,刪除所有小寫(xiě)字母‘C’。

void fun(char *s)

{inti,j;for(i=j=0;s[i]!=’\0’;i++)if(s[i]!=’c’)s[j++]=s[i];s[j]=’\0’;}

133、逐個(gè)比較a、b兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCII值大或相等的字符依次存入到c數(shù)能中,形成一個(gè)新的字符串。例如,若a中的字符串為:aBCDeFgH,,b中的字符串為:Abcd,則c中的字符串應(yīng)為:aBcdeFgH.

void fun{char *p,char *q,char*c}

{int k=0;

while(*p||*q){if(*p<=*q)c[k]=*q;else c[k]=*p;

if(*p) ?p++;

if(*q) ?q++;k++;}}

134、分別統(tǒng)計(jì)字符串中大寫(xiě)字母和小寫(xiě)字母的個(gè)數(shù)。例如:給字符串s輸入:AaaaBBb123CCccccd,則應(yīng)輸出結(jié)果:

upper=6,lower=8.

Void fun(char *s,int *a,int *b)

{while(*s){if(*s>=A&&*s<=Z)(*a)++; if(*s>=a&&*s<=z)(*b)++;}}

135、將字符串s中位于奇數(shù)位置的字符或ASCII碼為偶數(shù)的字符放入字符串t中(規(guī)定第一個(gè)字符放在第0位中)。例如:

將字符串中的數(shù)據(jù)為AABBCCDDEEFF,輸出的應(yīng)當(dāng)是:ABBCDDEFF

Void fun(char *s,char t[])

{int i,j=0;for(i=0;i<strlen(s);i++)if(i%2==0||s[i]%2= =0)t[j++]=s[i];t[j]=\0;}

136、比較兩個(gè)字符串,將長(zhǎng)的那個(gè)字符串的首地址作為函數(shù)返回。

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

{int s1=0,t1=0;char *ss,*tt;ss=s;tt=t;while(*ss){s1++;ss++;} while(*tts){t1++;tt++;}if(t1>s1)return t;else return s;}

137、首先將大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母;若小寫(xiě)字母為a~u,則將其轉(zhuǎn)換為其后第5個(gè)字母,若小寫(xiě)字母為v~z,使其值減21,轉(zhuǎn)換為后的小寫(xiě)字母作為函數(shù)值返回.例如:若形參是字母A,則轉(zhuǎn)換為小寫(xiě)字母f,若形參是字母W,則轉(zhuǎn)換為小寫(xiě)字母b。

char fun(char c)

{ if(c>=A&&c<=Z)c=tolower(c);?if(c>=a&&c<=u)c=c+5;else if(c>=v&&c<=z)c=c-21;return c;}

139、將字符串中的內(nèi)容按逆序輸出,但不改變字符串中的內(nèi)容,例如:若字符串為abcd,則應(yīng)輸出dcba。

fun(char *a)

{if(*a){fun(a+1)printf(%c,*a);}}

140、讀入字符串(長(zhǎng)度<20),將該字符串中的所有字符升序排序后輸出,例如:若輸入為edcba,則應(yīng)輸出abcde。

Void fun(char t[])

{char c;int i,j;for(i=strlen(t)-1;i;i--)for(j=0;j<i;j++)if(t[j]> t[j+1]){c= t[j]; t[j]= t[j+1]; t[j+1]=c;}}

141、交換主函數(shù)中兩個(gè)字符串中的內(nèi)容,例如:若a所指字符串中的內(nèi)容為:123456,b所指字符串中的內(nèi)容為:abcde

程序運(yùn)行后,a所指字符串中的內(nèi)容為:abcde,b所指字符串中的內(nèi)容為: 123456

void *fun(char *a,char *b)

{charc[N];int i;for(i=0;a[i];i++)c[i]=a[i]; c[i]=0; for(i=0;b[i];i++)a[i]=b[i]; a[i]=0; for(i=0;c[i];i++)b[i]=c[i]; b[i]=0;}

四、結(jié)構(gòu)體、文件題

142、建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)fun的功能是將單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。

Int fun(NODE *h)

{int sum=0; NODE *p;p=h->next;while(p!=NULL){if(p->data%2= =0)sum+=p->data ; p=p->next;}return sum;}

143、函數(shù)creatlink的功能是:創(chuàng)建帶頭結(jié)點(diǎn)的單向鏈表,并為各結(jié)點(diǎn)數(shù)據(jù)域賦0到m-1的值。

NODE *creatlink(int n,int m)

{NODE *h=NULL,

*p,*s;int i;s=( NODE *)malloc(sizeof(NODE ));h=p;p=s;for(i=1;i<n;i++){s=(NODE*)malloc(sizeof(NODE ));

s->data=rand()%(m-1);s->next=p->next; p->next =s;p= p->next ;}return h;}

144、下列給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)數(shù)據(jù)域賦值,函數(shù)fun 的作用是求出單向鏈表

結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域中的最大值,并作為函數(shù)值返回。

int fun(NODE *h)

{int max= -1; NODE *p;p=h->next;while(p){if(p->data>max)max= p->data ; p=p->next;} return max;}

145、對(duì)N名學(xué)生的學(xué)習(xí)成績(jī),按從高到低的順序找出前m(m10)名學(xué)生,并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。

STU *fun(STU a[],int m)

{STUb[N],*t;inti,j,k;t=(STU*)calloc(m,sizeof(STU));for(i=0;i<N;i++)b[i]=a[i]; for(k=0;k<m;k++){ for(i=j=0;i<N;i++)

If(b[i].s>b[j].s)j=i;t[k]=b[j];t[k].s=b[j].s;b[j].s =0;}return t;}


計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)(二)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
兰西县| 墨竹工卡县| 金溪县| 武宣县| 景东| 库伦旗| 潞西市| 营山县| 大庆市| 保定市| 大连市| 永丰县| 克东县| 治县。| 彩票| 定结县| 社旗县| 林西县| 习水县| 华池县| 南靖县| 瑞金市| 上饶县| 邮箱| 西充县| 高雄县| 贡嘎县| 津南区| 忻城县| 焦作市| 塔河县| 盐源县| 出国| 剑阁县| 黔西县| 缙云县| 抚顺市| 瓮安县| 兴安盟| 山东| 营山县|