我是个初学者,谢谢大家帮忙:)

荣之梦 2004-09-28 07:23:18
1,以下与库函数strcpy(cLar *P1,char *p2)功能不相等的程序段是:
A. strcpyl(char *pl,char *p2)
{while((*pl++=*p2++)!='\0');}
B. strcpy2(char *pl,char *p2)
{while((*P1=*p2)!=\'O')
C. strcpy3(char *p1,char *p2)
{while((*p1++=*P2++);}
D. strepy4(char *p1,char *p2)
{while(*p2) *P1++=*p2++;}
2,以下与库函数stremp(char *s,cbar *t)的功能相等的程序段是:
A)strcmpl(char *s,char *t)
{for(;*s++==*t++;)
if(*s==\'O') return O;
return(*s—*t);
}
B)strcmp2(char *s, char *t)
{for(;*s++==*t++:)
if(! *s) return O;
return(*s一*t);
}
C)strcmp3(char *s,char *t)
{for(;*t==*s;)
{if(! *t) return O;t++;s++;}
return(*s一*t);
}
D)strcmp4(char *s,char *t)
{for(;*s==*t;s++,t++)
if(! *s) return 0;
return(*t-*s);
}

3.struct aa
{int x,*y;}*p;
int a[8]={10,20,30,40,50,60,70,80};
struct aa b[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};
main()
{p=b;
printf("%d",*++p->y);
printf("%d\n",++(p->x));
}
求最后输出结果:


4.main()
{char a[10]={'1','2','3','4','5','6','7','8','9','10'},*p;
int i;
i=8;
p=a+i;
printf("%s\n",p-3);
}
求最后输出结果:


5.main()
{static int a[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{switch(abs(i-j))
{case 0:if(i==0||i==2) a[i][j]+=3;
else a[i][j]++;break;
case 1:a[i][j]+=2;break;
case 2:a[i][j]+=3;
}
}
printf("%d,%d,%d\n",a[1][1],a[1][2],a[2][0]);
}
求最后输出结果:

6.
#include<stdio.h>
main()
{char *a="1234";
fun(a);
printf("\n");
}
fun(char *s)
{char t;
if(*s)
{t=*s++;fun(s);}
if(t!='\0');
putchar(t);
}
运行结果为:

7.
main()
{int i;
union{unsigned char c;unsigned int i[4];}z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%d\n",z.c);
}
运行结果为:

8.
#include<stdio.h>
f(int a)
{int b=0;
static c=3;
a=c++,b++;
return(a);
}
main()
{int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
运行结果为:

谢谢了!:)
...全文
141 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Tycool 2004-09-28
作业题,没法告诉你
回复
daylove 2004-09-28
没有看,看来已经搞定了,
回复
Flood1984 2004-09-28
Sorry 上面应该是 “三个条件互相独立”
回复
Flood1984 2004-09-28
第5题:1,2,3
首先因为static 所以所有的a[i][j]=0;
case 0 指对角线上的3个数
case 1 指a[0][1],a[1][0],a[1][2],a[2][1]
case 2 指a[0][3],a[3][0]
三个条件不独立 所以可以通过要求哪个数来向上看他的对应算法:
得:
a[1][1]=1;
a[1][2]=2;
a[1][3]=3;
回复
Flood1984 2004-09-28
大家看看我说的对否:
第一题:
A.和库函数一样
B.它有可能导致死循环
C.运行期间错误,数组越界
D.和库函数一样

第三题:40201
因为*++p->y执行时:
P初值=b[0];
++P将使P=b[1];
*++p->y将输出a[3](值40);
++(p->x)将使200+1(值201);

第四题:678910+乱码
p=a+i;使p指向a[8]('9');
p-3将从a[5]('6')开始打印到'\0'结束
但字符串数组后面没有'\0'故会一直打印下去,所以有乱码

以下的题我不想看了
因为我觉得出题人很不严谨
回复
aruo98 2004-09-28
巨多来问作业题的
回复
pacman2000 2004-09-28
作业题自己先想想。
回复
荣之梦 2004-09-28
加油啊。谢了
回复
zgy166 2004-09-28
1. c
2. d
3. 30101
4. 678910(乱码)
5. 1,2,3
6. 7321
7. 57
8. 4

理由自己想,很简单的问题
回复
grooving 2004-09-28
第一题:BC
回复
荣之梦 2004-09-28
帮我回答上面的问题啊!谢谢
回复
wsdzmhongm 2004-09-28
不谢! 干吗?
回复
荣之梦 2004-09-28
没人回答吗?谢谢各位,万分感谢!~~~~~~~~~~~~
回复
荣之梦 2004-09-28
谢谢好心人!~
回复
somedummy 2004-09-28
这些都是函数吗?看不出来,至少肯定不是C++的函数,C函数在描述的时候也应该带返回值得
回复
nicholas1910 2004-09-28
为什么人家的作业题就没人回答?
人家也是忙活了一阵才贴出来的
回复
相关推荐
发帖
新手乐园
创建于2007-09-28

3.3w+

社区成员

C/C++ 新手乐园
申请成为版主
帖子事件
创建了帖子
2004-09-28 07:23
社区公告
暂无公告