您的位置首页百科知识

c语言门1

c语言门1

1)#include

char *ss(char *s)

{

char *p,t;

p=s+1;t=*s; //p的地址初始化,指向s首地址的下一位,t暂存*s里的第一个值

while(*p) //当p地址的值不为空时,执行循环

{*(p-1)=*p;p++;}//p地址里的每个值向前移动一个地址存储

*(p-1)=t; //将t赋值给p存储空间的最后一个地址上,即把*s的第一个值放到*p的最后一位

return s;}

main()

{

char *p,str="abcdefgh";

p=ss(str); //传入 str首地址到ss函数,执行ss函数后,str="bcdefgha";

printf("%s\n",p); //所有输出:bcdefgha

}

2)#include

void fun(char *s,int p,int k)

{

int i;

for(i=p;i

}

main()

{

char s[]="abcdefg";

fun(s,3,strlen(s)); //传入字串s首地址,给指针*s,参数3给p

//strlen(s)计算字串长度得7,给k

// 执行函数,结果d和e分别被f和g替换

puts(s); //输出为abcfg

}

3)题目不完整

4)#define SA(i) i*i

#define SB(j) (j)*(j)

main()

{

int a,b,x,y;

a=3; b=7;

x=SA(a+b)/SA(a+b); // x=a+b*a+b/a+b*a+b

y=SB(a+5)/SB(b+2); // y=(a+5)*(a+5)/(b+2)*(b+2)

printf("x=%d,y=%d\n",x,y); //x=54,y=63

}

5)#define f(x) (x*x)

main()

{ int i1,i2;

i1=f(8)/f(4); //带进去(8*8)/(4*4)=4

i2=f(4+4)/f(2+2); //带进去(4+4*4+4)/(2+2*2+2)=4

printf('%d,%d\n",i1,i2);

}

4,3是对的

6)#define f(x) x*x

main()

{

int i;

i=f(4+4)/f(2+2); //带进去4+4*4+4/2+2*2+2=28

printf(“%d\n",i);

}

结果为:28

7)#define s(x) 4*x*x+1

main()

{

int i=6,j=8;

printf("%d\n",s(i+j));//s(6+8)=4*6+8*6+8+1=81

}

希望能帮助到你