a十位和个位放在c个位和百位,b十位和个位放在c十位和千位。
2514
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
填空"r"fsft
改错if(d%2==0)s/=10;
a十位和个位放在c十位和千位,b十位和个位放在c百位和个位。
5142
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
填空kN-1temp
改错voidfun(int(*a)[M],intm)
a[j][k]=(k+1)*(j+1);
a十位和个位放在c十位和千位,b十位和个位放在c个位和百位。
5241
*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);
填空0xt++
改错inti,sl;t[i]=s[sl-i-1];
a十位和个位放在c百位和个位,b十位和个位放在c千位和十位。
1425
*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);
填空structstudent*a->score[i]a
改错char*fun(char(*sq)[M])returnsp;
a十位和个位放在c百位和个位,b十位和个位放在c十位和千位。
2415
*c=(b%10)*1000+(a/10)*100+(b/10)*10+(a%10);
整除
填空qnextnext
改错p=j;p=i;
1到m之内(含m)能被7或11整除的整数放在数组a中。
inti;*n=0;
for(i=7;i<=m;i++)if((i%7==0)||(i%11==0))a[(*n)++]=i;
填空s[i]'9'*t=n
改错t=*x;*x=y;return(t);
1到1000之内能被7或11整除,但不能同时被7和11整除的整数放在数组a中。
inti;*n=0;
for(i=7;i<1000;i++)
if(((i%7)==0||(i%11)==0)&&(i%77)!
=0)a[(*n)++]=i;
填空a[i]a[i]0
改错y=1;d=a-i;
n以内(包括n)能被5或9整除的所有自然数的倒数之和。
inti;doublesum=0.0;
for(i=1;i<=n;i++)
if(i%5==0||i%9==0)sum+=1.0/i;returnsum;
填空'0's++sum
改错if((k%13==0)||(k%17==0))}
n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s。
doublesum=0.0;inti;
for(i=21;i<=n;i++)
if((i%3==0)&&(i%7==0))sum+=i;returnsqrt(sum);
字符串
填空nextt->datat
改错fun(char*a)printf("%c",*a);
比较两个字符串长度,返回较长字符串。
inti;char*p=s,*q=t;
for(i=0;*p&&*q;i++){p++;q++;}
if(*p==0&&*q==0)returns;
if(*p)returns;
elsereturnt;
填空[N]ii+1
改错aa[i]=m%k;printf("%d",aa[i-1]);
从传入num个字符串中找出最长的一个字符串。
if(strlen(a[i])>maxlen){maxlen=strlen(a[i]);k=i;}
填空i+1k=jt
改错voidfun(char*str,charch)
if(*str!
=ch)str[1]='\0';
字符串中内容逆置。
charb[N];inti=0,j;memset(b,0,N);
for(j=strlen(s)-1;j>=0;j--)b[i++]=s[j];strcpy(s,b);
填空doublef1f2
改错p=h->next;p=p->next;
判断字符串是否为回文。
inti,j=strlen(str);
for(i=0;iif(str[i]!
=str[j-i-1])return0;
return1;
填空ss[i]n+j1
改错if(*p=='')*(p-1)=toupper(*(p-1));
对长度为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII码降序排列。
charch;inti,j;
for(i=1;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;}}
带有头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回结点在链表中所处顺序号。
填空NULLnhead,ch
改错for(i=0,t=0;p[i];i++)c[t]='\0';
字符串ss中所有下标为奇数位置上字母转换为大写。
char*p=ss;inti=0;
while(*p){if((i%2)&&(*p>='a'&&*p<='z'))*p-=32;p++;i++;}
returnss;
将a所指4*3矩阵中第k行的元素与第0行的元素交换。
填空kNa[k][i]
改错for(i=strlen(t)-1;i;i--)
if(t[j]>t[j+1])
字符串ss中所有下标为奇数位置上字母转换为大写。
char*p=ss;inti=0;
while(*p){if((i%2)&&(*p>='a'&&*p<='z'))*p-=32;p++;i++;}
returnss;
填空0||1
改错t-=1.0/i;returnt;
删除字符串中所有空格。
char*p=str;inti=0;
while(*p){if(*p!
='')str[i++]=*p;p++;}str[i]='\0';
填空klenss[i][j]
改错result*=n--;returnresult;
从字符串中删除指定字符。
char*p=s;inti=0;
while(*p){if(*p!
=c)s[i++]=*p;p++;}
s[i]='\0';
填空t=ii'\0'
改错while(fabs(t)>=num)t=s/n;
删除字符串中指定下标的字符。
strncpy(b,a,n);b[n]=0;strcat(b,a+n+1);
填空datanexthead
改错while(*r)*a=*r;a++;r++;
s字符串中下标为偶数的字符删除,剩余字符放在t数组中。
inti,j=0;
for(i=1;i填空STUstd[i].numstd[i]
改错r++;p++;if(*r=='\0')
s字符串中ASCII值为偶数的字符删除,剩余字符放在t数组中。
inti,j=0;
for(i=0;i填空s[i]k'\0'
改错while(*w)if(*r==*p)
s字符串中ASCII值为奇数的字符删除,剩余字符放在t数组中。
inti,j=0;
for(i=0;i填空jkp
改错while(is字符串中下标为偶数同时ASCII值为奇数的字符删除,剩余字符放在t数组中。
inti,j=0;
for(i=0;iif(!
((i%2)==0&&(s[i]%2)))t[j++]=s[i];t[j]='\0';
填空*nnexthead
改错a=NULL;if(*r==*p)
s字符串中除了下标为偶数同时ASCII值也为偶数的字符外,其余的都删除。
inti,j=0;
for(i=0;iif(s[i]%2==0)t[j++]=s[i];t[j]='\0';
填空0i++2.0*i
改错voidfun(char*s,char*t)t[2*d]='\0';
s字符串中除了下标为奇数同时ASCII值也为奇数的字符外,其余的都删除。
inti,j=0;
for(i=1;iif(s[i]%2)t[j++]=s[i];t[j]='\0';
填空j++s[i]=t1[i]j
改错for(j=i+1;j<6;j++)*(pstr+i)=*(pstr+j);
ss字符串中指定字符的个数。
intcnt=0;char*p=ss;
while(*p){if(*p==c)cnt++;p++;}
returncnt;
填空[N]len*n=len
改错t+=1.0/i;returnt;
统计一个长度为2的字符串在另一个字符串中出现的次数。
intcnt=0;char*p=str,*q;
while(*p)
{q=strstr(p,substr);
if(q==NULL)break;
p=q+strlen(substr);cnt++;}
returncnt;
填空1s[k]c
改错longs=0,t=0;t=t/10;
统计字符串中‘a’到‘z’26个字母各自出现次数,放在pp数组中。
char*p=tt;inti;
for(i=0;i<26;i++)pp[i]=0;
while(*p){if(*p>='a'&&*p<='z')pp[*p-'a']+=1;p++;}
填空filenamefpfp
改错p=(NODE*)malloc(sizeof(NODE));
returnh;
统计一行字符串中单词个数。
intk=1;
while(*s){if(*s=='')k++;s++;}returnk;
填空0x*10n/10
改错*t=0;if(d%2!
=0)
两个字符串的连接。
char*p=p1;
while(*p)p++;
while(*p2)*p++=*p2++;*p='\0';
平均分和结构体
填空xps
改错longk=1;num/=10;
计算n门课程的平均分。
floatave=0.0;inti;
for(i=0;i填空j0i++
改错for(i=2;i<=m;i++)y-=1.0/(i*i);
m个人成绩存放在score数组中,将低于平均分人数返回,将低于平均分的分数放在below数组中。
floatav=0.0;inti,j=0;
for(i=0;ifor(i=0;iif(av>score[i])below[j++]=score[i];returnj;
填空charch<=’9’‘0’
改错b[k]=*p;b[k++]=’’;
N名学生成绩已在一个带头节点的链表中,求平均分。
STREC*p=h->next;doubleav=0.0;intn=0;
while(p!
=NULL){av=av+p->s;p=p->next;n++;}
av/=n;returnav;
填空fp==fp
改错n=strlen(aa);ch=aa[i];
N名学生成绩已放入一个带头节点的链表中,h指向链表头结点,找出学生最高分。
doublemax=h->s;STREC*p;p=h->next;
while(p){if(p->s>max)max=p->s;p=p->next;}
returnmax;
填空a[i]a[j]a[j]
改错switch(g)case1:
case2:
return1;
某学生记录由学号,8门课程成绩和平均分组成,求出该学生平均分放在记录的ave成员中。
inti;
for(i=0;iave=a->ave+a->s[i];a->ave/=N;
填空*a2i+1
改错sum=0.0;if((i+1)%5==0)
学生记录由学号和成绩组成,把低于平均分学生数据放在b数组中。
inti;doubleave=0.0;*n=0;
for(i=0;ifor(i=0;i填空->sno->name&t
改错doublefun(doublea,doublex0)
if(fabs(x1-x0)>0.00001)
学生记录由学号和成绩组成,把高于等于平均分学生数据放在b数组中。
doublet=0;inti;*n=0;
for(i=0;ifor(i=0;i=t)b[(*n)++]=a[i];returnt;
填空std[i].yearstd[i]n
改错IsPrime(intn)if(!
(n%i))
学生记录由学号和成绩构成,找出成绩最高的学生记录(只有一个最高分)。
inti,max=a[0].s,j=0;
for(i=1;i*s=a[j];
填空0.0x[i]/Nj++
改错doublefun(intm)for(i=100;i<=m;i+=100)
学生记录由学号和成绩构成,找出成绩最低的学生记录(只有一个最低分)。
inti,min=a[0].s,j=0;
for(i=1;ia[i].s){j=i;min=a[i].s;}
*s=a[j];
填空1ia[p+i]
改错floatk;if(*a<*c)
记录由学号和成绩组成,把分数最高的学生数据放在h数组中,分数最高的学生可能不止一个。
inti,max=a[0].s,n=0;
for(i=1;ifor(i=0;ireturnn;
填空structstudenta.namea.score[i]
改错if(p==n)return-1;a[i]=a[i+1];
记录由学号和成绩组成,把分数最低的学生数据放在h数组中,分数最低的学生可能不止一个。
inti,min=a[0].s,n=0;
for(i=1;ia[i].s)min=a[i].s;
for(i=0;ireturnn;
填空n/2ia[n-1-i]
改错n=*p-‘0’;n=n*8+*p-‘0’;
记录由学号和成绩组成,函数返回指定学号的学生数据,若没找到,在结构体变量中给学号置空串,给成绩置-1。
STRECc;inti;c.num[0]=‘\0’;c.s=-1;
for(i=0;iif(strcmp(a[i].num,b)==0)
{strcpy(c.num,a[i].num);c.s=a[i].s;break;}
returnc;
填空999t/10x
改错voidfun(longs,long*t)while(s>0)
记录由学号和成绩组成,按分数高低排列学生记录,高分在前。
STRECtmp;inti,j;
for(i=0;ifor(j=i+1;j填空structstudentn-1a[i].name,a[j].name
改错q=p+i;while(q>p)
记录由学号和成绩组成,把指定分数范围内学生数据放在b数组中。
inti,j=0;
for(i=0;iif(a[i].s>=l&&a[i].s<=h)b[j++]=a[i];returnj;
二维数组
填空*stdPERSONstd
改错intk,q,i;pt[i]=str[k][i];
数组左下半三角元素值全部置成0。
inti,j;
for(i=0;ifor(j=0;j<=i;j++)a[i][j]=0;
填空STUscore[i]&std
改错if(k>0)elseif(k==0)
数组左下半三角元素值乘以n。
inti,j;
for(i=0;ifor(j=0;j<=i;j++)a[i][j]*=n;
填空*avix[j]
改错floatfun(intn)for(i=2;i<=n;i++)
数组右上半三角元素值乘以m。
inti,j;
for(i=0;ifor(j=i;j填空Nbreakn
改错sum=0;scanf("%d",&a[i][j]);
矩阵(3行3列)转置。
inti,j,arr[3][3];memcpy(arr,array,9*sizeof(int));
for(i=0;i<3;i++)
for(j=0;j<3;j++)array[i][j]=arr[j][i];
填空&&'\0's[j]
改错for(i=2;i<=m;i++)y+=1.0/(i*i);
B=A+A’,把矩阵A加上矩阵A的转置存放在矩阵B中。
inti,j,c[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{c[i][j]=a[j][i];b[i][j]=a[i][j]+c[i][j];}
填空x[i]/Nj++i++
改错num[k]=0;switch(*s)
二维数组周边元素之和。
inttot=0,i,j;
for(i=0;ifor(i=1;ireturntot;
填空s/Nj++-1
改错#includevoidupfst(char*p)
数组周边元素的平均值。
inti,j,n=0;doublesum=0;
for(i=0;ifor(i=1;ireturnsum/n;
填空h->nextp->next>
改错p=h->next;p=p->next;
M行N列的二维数组中的数据,按行的顺序放到一维数组中。
inti,j,k;
for(i=0;ifor(j=0;j*n=mm*nn;
填空NODEnextr
改错if(i%2||s[i]%2==0)t[j]='\0';
M行N列的二维数组中的数据,按列的顺序放到一维数组中。
for(i=0;ifor(j=0;j填空FILE*fpch
改错s[j++]=s[i];s[j]='\0';
M行N列的二维数组中的字符数据,按列的顺序放到一个字符串中。
for(j=0;j填空nextNULLr
改错r=t;if(*r==0)
将字符串数组中的M个字符串,按顺序合并组成一个新的字符串。
for(i=0;i素数
填空it++count
改错intfun(inta,intb,intc)
elsereturn1;
3到n之间所有素数的平方根之和。
inti,j=0;doubles=0;
for(i=3;i<=n;i++)
{for(j=2;j
if(i%j==0)break;
if(j==i)s=s+sqrt(i);}
returns;
填空a[0][i]改错voidfun(int*x,int*y)t=*x;*x=*y;*y=t;
小于或等于lim的所有素数放在aa数组中,返回所素数个数。
for(j=2;j<=(i/2);j++)
if(i%j==0)break;
if(j>(i/2))aa[k++]=i;
填空s--return0
改错doublefun(intn)c=a;a+=