elsereturn(mid);
}
return(-1);
}
voidmain()
{staticinta[]={4,0,2,3,1};inti,t,j;
for(i=1;i<5;i++){
t=a[i];j=i-1;
while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}
a[j+1]=t;
}
printf("%d\n",binary(3,a,5));
}
输出结果:
1
21.#include
#include
voidmain()
{doublef(double,int);
printf("%1f\n",f(2.0,14));
}
doublef(doublex,intn)
{doublet;
if(n==1)t=x;
else{
if(n/2*2==n)t=x*f(x,n/2);
elset=x*pow(f(x,n/2),2.0);
}
returnt;
}
输出结果:
256.000000
22.#include
doublex,u,v
doublet(doublea,double(*f)(double))
{return(*f)(a*a);}
doublef(doublex)
{return2.0*x;}
doubleg(doublex)
{return2.0+x;}
voidmain()
{x=4.0;u=t(x,f);v=t(x,g);
printf("u=%5.3fv=%5.3f\n",u,v);
}
输出结果:
U=32.000v=18.000
23.#include
voidmain()
{staticstructs1{charc[4],*s;};
s1={"abc","def"};
staticstructs2{char*cp;structs1ss1;}
s2={"ghi",{"jkl","mno"}};
printf("%c,%c\n",s1.c[0],*s1.s);
printf("%s,%s\n",s1.c,s1.s);
printf("%s,%s\n",s2.cp,s2.ss1.s);
printf("%s,%s\n",++s2.cp,++s2.ss1.s);
}
输出结果:
a,d
abc,def
ghi,mno
hi,no
24.#include
structs1{char*s;inti;structs1*s1p;};
voidmain()
{statics1a[]={{"abcd",1,a+1},{"efgh",2,a+2},{"ijkl",3,a}};
inti;
for(i=0;i<2;i++){
printf("%d\n",--a[i].i);
printf("%c\n",++a[i].s[3]);
}
}
输出结果:
0
e
1
i
25.#include
voidmain()
{FILE*fp;inti;
chars1[80],s[]="abcdefghijklmnop";
fp=fopen("alf.dat","wb+");i=sizeof(s);
fwrite(s,i,1,fp);rewind(fp);fread(s1,i,l,fp);
printf("all=%s\n",s1);fseek(fp,0,0);
printf("seek1ch=%c\n",fgetc(fp));
fseek(fp,10,1);
printf("seek2ch=%c\n",fgetc(fp));
fseek(fp,1,1);
printf("seek3ch=%c\n",fgetc(fp));
fclose(fp);
}
输出结果:
All=abcdefghijklmnop
seek1ch=a
seek2ch=l
seek3ch=n
26.#include
voidmain()
{structT1{charc[4],*s;}
s1={"abc","def"};
structT2{char*cp;T1ss1;}
s2={"ghi",{"jkl","mno"}};
printf("%c,%c\n",s1.c[0],*s1.s);
printf("%s,%s\n",s1.c,s1.s);
printf("%s,%s\n",s2.cp,s2.ss1.s);
printf("%s,%s\n",++s2.cp,++s2.ss1.s);
}
输出结果为
a,d
abc,def
ghi,mno
hi,no
27.#include
voidmain()
{structinfo{intdata;info*pn;};
info*base,*p;
base=NULL;
for(inti=0;i<10;i++){
p=newinfo;p->data=i+1;
p->pn=base;base=p;
}
p=base;
while(p!
=NULL){printf("%2d",p->data);p=p->pn;}
printf("\n");
}
输出结果为:
10987654321
28.#include
#include
voiddel_bk(char*p)
{char*p1;p1=p;
while(*p1!
='\0')
if(*p1==''&&*(p1+1)=='')strcpy(p1,p1+1);
elsep1++;
}
voidmain()
{char*aa="aabbccccdddefgh";
printf("%s\n",aa);del_bk(aa);printf("%s\n",aa);
}
输出结果:
aabbccccdddefgh
aabbccccdddefgh
29.#include
voidmain()
{intm[]={1,2,3,4,5,6,7,8,9},i,j,k;
for(i=0;i<4;i++){
k=m[i];m[i]=m[8-i];m[8-i]=k;
for(j=0;j<9;j++)
printf("%d",m[j]);
putchar('\n');
}
}
输出结果为:
923456781
983456721
987456321
987654321
30.#include
voidmain()
{intx[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};
inti,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
*(*(x+i)+j)/=*(*(x+i)+i);
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf("%3d",*(*(x+i)+j));
putchar('\n');
}
}
输出结果为:
1234
0156
0018
0001
31.#include
#include
voidmain()
{charline[]="123456789";
inti,k=strlen(line);
for(i=0;i<4;i++){
line[k-i]='\0';
puts(line+i);
}
}
输出结果为:
123456789
2345678
34567
456
32.#include
#include
voidmain()
{chara[5][20]={"abc","def","123",