河工大二級C語言試題庫_第1頁
河工大二級C語言試題庫_第2頁
河工大二級C語言試題庫_第3頁
河工大二級C語言試題庫_第4頁
河工大二級C語言試題庫_第5頁
已閱讀5頁,還剩202頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.a與b合并成c

1填空STYPEFILEfp將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十

改錯for(i=0;i<=sl;i++)t[sl*2]=\0";位和個位數(shù)依次放在c數(shù)的百位和個位上。4152

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

1填空*fwstrstr將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十

改錯voidfun(longs,long*t)sl=sl*10;位和個位數(shù)依次放在c數(shù)的千位和十位上。1524

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

1填空fpfclose(fp)fname將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十

改錯for(i=j+l;i<n;i++)p=i;位和個位數(shù)依次放在c數(shù)的十位和千位上。2514

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

1填空"r”fsft將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十

改錯if(d%2=0)s/=10;位和個位數(shù)依次放在c數(shù)的百位和個位上。5142

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

1填空0xt++將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十

改錯inti,si;t[i]=s[sl-i-l];位和個位數(shù)依次放在c數(shù)的千位和十位上。1425

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

1填空1si*10將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十

改錯intfun(intn,intxx[][M])位和個位數(shù)依次放在c數(shù)的個位和百位上。4251

printfxx[i][j]);

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

1填空kN-ltemp將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十

改錯voidfun(int(*a)[M],intm)位和個位數(shù)依次放在c數(shù)的個位和百位上。5241

a[j][k]=(k+l)*(j+l);*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

1填空structstudent*a->score[i]a將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十

改錯char*fun(char(*sq)[M])returnsp;位和個位數(shù)依次放在c數(shù)的十位和千位上。2415

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

2.整除

2填空qnextnext求出1到m之內(nèi)(含m)能被7或11整除的所有整數(shù)放在數(shù)組a

改錯P=j;P=i;中。

inti,j=0;*n=0;

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

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

2填空s[i]'9'*t=n求出1到1000之內(nèi)能被7或11整除,但不能同時被7和11整

改錯t=*x;*x=y;return(t);除的所有整數(shù)并將它們放在a所指的數(shù)組中。

inti,j=0;

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

if((i%7==0||i%ll==0)&&i%77!=0)a[j++]=i;

*n=j;

2填空a[i]a[i]0計算并輸出n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒

改錯y=l;d=a-i;數(shù)之和。

inti;doubles=0.0;

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

if(i%5==01|i%9==0)s+=l.0/i;

returns;

2填空'O's++sum求n以內(nèi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的

改錯if((k%13=0)||(k%17==0))}平方根S。

doubles=0.0;inti;

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

if(i%3=0&&i%7-0)s=s+i;returnsqrt(s);

3.字符串

3填空nextt->datat比較兩個字符串的長度,函數(shù)返回較長的字符串。

改錯voidfun(char*a)printf*a);char*p,*tl=t,*sl=s;intn=0,m=0;

while(*sl++)n++;

while(*tl++)m++;

if(n>=m)p=s;

elsep=t;

returnp;

3填空[N]ii+1從傳入的num個字符串中找出最長的一個字符串。

改錯aa[i]=m%k;printf;inti;max=a[0];

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

if(strlen(max)<strlen(a[i]))max=a[i];

returnmax;

3填空i+1k=jt字符串中的內(nèi)容逆置。

改錯voidfun(char*str,charch)chart;inti,n;

if(*str!=ch)n=strlen(s)-l;

str[l]=\0';for(i=0;i<n;i++){t=s[i];s[i]=s[n-i-l];s[n-i-l]=t;}

3填空doubleflf2判斷字符串是否為回文。

改錯p=h->next;p=p->next;inti,n=0,flag=l;char*p=str;

while(*p++)n++;

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

if(str[i]==str[n-l-i])continue;

else{flag=0;break;}

returnflag;

3填空ss[i]n+j1對長度為7個字符的字符串,除首,尾字符外,將其余5個字符

改錯if(*p=-*(p-1)=toupper(*(p-1));按ASCH碼降序排列。

chart;inti,j;

for(i=l;i<num-2;i++)

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

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

3填空NULLnhead,ch將字符串ss中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫。

改錯for(i=0,t=0;p[i];i++)c[t]-\0f;inti,n=0;char*p=ss;

while(*p++)n++;

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

if(ss[i]>=,a*&&ss[i]<=,z'&&i%2!=0)ss[i]-=32;

ss[i]-\0f;

3填空kNa[k][i]將字符串ss中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫。

改錯for(i=strlen(t)-l;i;i-)inti,n=0;char*p=ss;

if(t[j]>t[j+l])while(*p++)n++;

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

if(ss[i]>=,a*&&ss[i]<=,z&&i%2!=0)ss[i]-=32;

ss[i]-\0';

3填空0||1刪除字符串中的所有空格。

改錯t-=l.0/i;returnt;inti=0;char*p=str;

while(*p)

{if(*p!='')str[i++]=*p;p++;}

str[i]=>\09;

3填空klenss[i][j]從字符串中刪除指定的字符。

改錯result*=n-;returnresult;Inti=0;char*p=s;

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

s[i]=>\0J;

3填空t=II'\Of刪除一個字符串中指定下標(biāo)的字符。

改錯while(fabs(t)>=num)t=s/n;IntI,j=0;

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

if(i!=n)b[j++]=a[i];b[j]=>\0^;

3填空datanexthead將S所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新

改錯while(*r)*a=*r;a++;r++;串放在t所指數(shù)組中。

IntI,j=0,n=strlen(s);

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

if(i%2!=0)t[j++]=s[i];

\0J;

3填空STUstd[i].numstd[i]將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一

改錯r++;p++;if(*r==,\0')個新串放在t所指的數(shù)組中。

IntI,j=0,n=strlen(s);

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

if(s[i]%2!=0)t[j++]=s[i];

\0,;

3填空s[i]k'\0'將s所指字符串中ASCII值為奇數(shù)的字符刪除,串中剩余字符形成一

改錯while(*w)if(*r==*p)個新串放在t所指的數(shù)組中。

IntI,j=0,n=strlen(s);

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

if(s[i]%2=0)t[j++]=s[i];

t[j]=>\0,:

3填空jkp將S所指字符串中下標(biāo)為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s中

改錯while(i<j)if(*a)剩余的字符形成的新串放在t所指的數(shù)組中。

IntI,j=0,n=strlen(s);

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

if(!(i%2==0&&s[i]%2!=0))t[j++]=s[i];

\(r;

3填空*nnexthead將S所指字符串中除了下標(biāo)為偶數(shù),同時ASCII值也為偶數(shù)的字符

改錯a=NULL;if(*r==*p)外,其余的全都刪除。

IntI,j=0,n=strlen(s);

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

if(i%2==0&&s[i]%2==0)t[j++]=s[i];

\0';

3填空0i++2.0*i將s所指字符串中除了下標(biāo)為奇數(shù),同時ASCH值也為奇數(shù)的字符之

改錯voidfun(char*s,char*t)t[2*d]=,\0';夕卜,其余的所有字符都刪除。

IntI,j=0,n=strlen(s);

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

if(i%2!=0&&s[i]%2!=0)t[j++]=s[i];

\0;;

3填空j++s[i]=tl[i]j求出ss所指字符串中指定字符的個數(shù)。

改錯for(j=i+l;j<6;j++)*(pstr+i)=?(pstr+j);Intn=0;

while(*ss){if(*ss==c)n++;ss++;}

returnn;

3填空[N]len*n=len統(tǒng)計一個長度為2的字符串在另一個字符串中出現(xiàn)的次數(shù)。

改錯t+=LO/i;returnt;intn=0;char*p,*r;

while(*str)

{p=str;r=substr;

while(*r)

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

elsebreak;

if(*r='\0')n++;str++;}

returnn;

3填空1s[k]c統(tǒng)計在字符串中到'z,26個字母各自出現(xiàn)的次數(shù),并依次放

改錯longs=0,t=0;t=t/10;在PP所指數(shù)組中。

inti;

for(i=0;i<26;i++)pp[i]=0;

while(*tt)

{if(*tt>=,a&&*tt<=,z)a']++;tt++;}

3填空filenamefpfp統(tǒng)計一行字符串中單詞的個數(shù)。

改錯p=(NODE*)malloc(sizeof(NODE));inti,n=0;

returnh;

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

if(s[i]>=,a'z'&&s[i+l]=',||s[i+l]=='\(T)

n++;

returnn;

4.平均分和結(jié)構(gòu)體

4填空xps計算n門課程的平均分。

改錯longk=l;num/=10;floataver=0.0;inti;

for(i=0;i<n;i++)aver+=a[i];aver/=n;

returnaver;

4填空j0i++m個人成績存放在score數(shù)組中,將低于平均分的人數(shù)作為函數(shù)值返

改錯for(i=2;i<=m;i++)y-=l.0/(i*i);回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中o

inti,k=0,aver=0;

for(i=0;i<m;i++)aver+=score[i];aver/=m;

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

if(score[i]<aver)below[k++]=score[i];

returnk;

4填空charch<='9''O'N名學(xué)生的成績已在一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,求出平均分。

改錯b[k]=*p;b[k++]='';floataver=0.0;

while(h!=NULL){aver+=h->s;h=h->next;}

returnaver/N;

4填空fp==fpN名學(xué)生的成績已放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭

改錯n=strlen(aa);ch=aa[i];結(jié)點,找出學(xué)生的最高分。

doublemax=h->s;

for(h=h->next;h->next!=NULL;h=h->next)

if(h->s>max)max=h->s;

returnmax;

4填空a[i]a[j]a[j]某學(xué)生的記錄由學(xué)號,8門課程成績和平均分組成,求出該學(xué)生的平

改錯switch(g)case1:case2:return1;均分放在記錄的ave成員中。

doubleav=0.0;inti;

for(i=0;i<N;i++)av+=a->s[i];av/=N;

a->ave=av;

4填空*a2i+1學(xué)生的記錄由學(xué)號和成績組成,把低于平均分的學(xué)生數(shù)據(jù)放在b所

改錯sum=O.0;if((i+l)%5==0)指的數(shù)組中。

doubleaver=0.0;inti,j=0;

for(i=0;i<N;i++)aver+=a[i].s;aver/=N;

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

if(a[i].s<aver)b[j++]=a[i];*n=j;

returnaver;

4填空->sno->name&t學(xué)生的記錄由學(xué)號和成績組成,把高于等于平均分的學(xué)生數(shù)據(jù)放在

改錯doublefun(doublea,doublexO)b所指的數(shù)組中。

if(fabs(xl-x0)>0.00001)inti,j=0;doubleaver=0.0;

for(i=0;i<N;i++)aver+=a[i].s;aver/=N;

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

if(a[i].s>=aver)b[j++]=a[i];*n=j;

returnaver;

4填空std[i].yearstd[i]n已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,找出成績最高的學(xué)生記錄

改錯IsPrime(intn)if(!(n%i))(規(guī)定只有一個最高分)。

inti,max=a[0].s;

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

if(a[ij.s>max){max-a[ij.s;*s=a[i];}

4填空0.0x[i]/Nj++已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,找出成績最低的學(xué)生記錄

改錯doublefun(intm)for(i=100;i<=m;i+=100)(規(guī)定只有一個最低分)。

inti,min=a[0].s;

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

if(a[i].s<min){min=a[i].s;*s=a[i];}

4填空1ia[p+i]學(xué)生的記錄由學(xué)號和成績組成,把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指

改錯floatk;if(*a<*c)的數(shù)組中,注意:分?jǐn)?shù)最高的學(xué)生可能不止一個。

inti,j=0,n=0,max=a[01.s;

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

if(a[i].s>max)max=a[i].s;

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

if(a[i].s==max){b[j++]=a[i];n++;}

returnn;

4填空a.score[i]學(xué)生的記錄由學(xué)號和成績組成,把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指

改錯if(p=n)return-1;a[i]=a[i+l];的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個。

inti,j=0,n=0,min=a[0].s;

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

if(a[i].s<min)min=a[i].s;

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

if(a[i].s==min){b[j++]=a[i];n++;}

returnn;

4填空n/2ia[n-l-i]學(xué)生的記錄由學(xué)號和成績組成,函數(shù)返回指定學(xué)號的學(xué)生數(shù)據(jù),若沒

改錯n=*p,O';n=n*8+*p'O';找到指定學(xué)號,在結(jié)構(gòu)體變量中給學(xué)號置空串,給成績置-1。

inti;STRECh;

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

if(strcmp(a[i],num,b)==0){h=a[i];break;}

else{strcpy(h.num,;h.s=-l;}

returnh;

4填空999t/10x學(xué)生記錄由學(xué)號和成績組成,按分?jǐn)?shù)高低排列學(xué)生的記錄,高分在

改錯voidfun(longs,long*t)while(s>0)前。

inti,j;STRECt;

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

for(j=i+l;j<N;j++)

if(a[i].s<a[j].s){t=a[i];a[i]=a[j]

4學(xué)生的記錄由學(xué)號和成績組成,把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生數(shù)據(jù)放在

填空structstudentn-1a[i].name,a[j].nameb所指的數(shù)組中,學(xué)生人數(shù)由函數(shù)值返回。

改錯q=p+i;while(q>p)inti,j=0;

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

if(a[i].s>=l&&a[i].s<=h)b[j++]=a[i];

returnj;

5.二維數(shù)組

5填空*stdPERSONstd使數(shù)組左下半三角元素中的值全部置成0。

改錯intk,q,i;pt[i]=str[k][i];inti,j;

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

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

5填空STUscore[i]&std使數(shù)組左下半三角元素中的值乘以n,

改錯if(k>0)elseif(k==0)inti,j;

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

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

5填空*avix[j]使數(shù)組右上半三角元素中的值乘以mo

改錯floatfun(intn)for(i=2;i<=n;i++)inti,j;

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

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

5填空Nbreakn實現(xiàn)矩陣(3行3歹D的轉(zhuǎn)置。

改錯sum=0;scanf&a[i][j]);inti,j,t;

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

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

{t=array[j][i];array[j][i]=array[i][j];array[i][j]=t;}

5填空&&'\(Ts[j]實現(xiàn)B=A+A,,即把矩陣A加上矩陣A的轉(zhuǎn)置,存放在矩陣B中。

改錯for(i=2;i<=m;i++)y+=l.0/(i*i);inti,j,t,at[3][3];

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

for(j=0;j<=2;j++)at[i][j]=a[j][i];

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

for(j=0;j<3;j++)b[i][j]=a[i][j]+at[i][j];

5填空x[i]/Nj++i++求出二維數(shù)組周邊元素之和。

改錯num[k]=0;switch(*s)inti,j,s=0;

for(j=0;j<N;j++)s+=a[0][j]+a[M-l][j];

for(i=l;i<=M-2;i++)s+=a[i][0]+a[i][N-1];

returns;

5填空s/Nj++-1求出數(shù)組周邊元素的平均值。

改錯^include<stdio.h>voidupfst(char*p)inti,j,k=0;doubles=0.0;

for(j=0;j<N;j++){s+=w[0][j]+w[N-l][j];k+=2;}

for(i=l;i<=N-2;i++){s+=w[i][0]+w[i][N-l];k+=2;}

returns/k;

5填空h->nextp->next>將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中。

改錯p=h->next;p=p->next;inti,j;

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

for(j=0;j<nn;j++){b[*n]=s[i][j];(*n)++;}

5填空NODEnextr將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次放到一維數(shù)組中。

改錯if(i%2||s[i]%2=0)t[j]='\O';inti,j;

for(j=0;j<nn;j++)

for(i=0;i<mm;i++){b[*n]=s[i][j];(*n)++;}

5填空FILE*fpch將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個字符

改錯s[j++]=s[i];s[j]-\0*;串中。

inti,j,k=0;

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

for(i=0;i<M;i++)b[k++]=s[i][j];b[k]=,\0,;

5填空nextNULLr將放在字符串?dāng)?shù)組中的M個字符串,按順序合并組成一個新的字符

改錯r=t;if(*r=0)串。

inti,j,k=0;

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

{for(j=0;j<N;j++)

if(a[i][j])b[k++]=*(*(a+i)+j);

elsebreak;}

b[kN\0,;

6.素數(shù)

6填空it++count計算并輸出3到n之間所有素數(shù)的平方根之和。

改錯intfun(inta,intb,intc)intm,k,i;doubles=0.0;

elsereturn1;for(m=3;m<=n;m++)

{k=sqrt(m);

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

if(m%i==0)break;

if(i>=k+l)s+=sqrt(m);}

returns;

6填空a[0][i]<x,y求出小于或等于lim的所有素數(shù)放在aa數(shù)組中,返回所求出的素數(shù)

改錯voidfun(int*x,int*y)t=*x;*x=*y;*y=t;的個數(shù)。

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

if(i%j==0)break;

elsecontinue;

if(j>=i)aa[k++]=i;

6填空s-return0將大于整數(shù)m且緊靠in的k個素數(shù)存入xx所指的數(shù)組中。

改錯doublefun(intn)c=a;a+=b;b=c;intg=0,i,j,flag=l;

for(i=m+l;1;i++)

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

{if(i%j!=0)flag=l;

else{flag=0;break;}}

if(flag=l&&j>=i)

{if(k>=0){xx[g++]=i;k—;}

elsebreak;}}

6填空M<k將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中。

改錯if(Ca<=tt[i])&&(tt[i]<=z'))inti,j,t=0;

tt[i]-=32;for(i=4;i<m;i++)

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

{if(i%j==O){xx[t++]=i;break;}}

*k=t;

7.公式和數(shù)字

7填空*ss++np=加

改錯intj,c=0;doublexa=0.0;if(x[j]>=xa)

inti;floatp,t=l.0;

for(i=l;i<=m;i++)t=t*i;p=t;

for(t=l.0,i=l;i<=n;i++)t=t*i;p=p/t;

for(t=1.0,i=l;i<=m-n;i++)t=t*i;p=p/t;

溫馨提示

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

評論

0/150

提交評論