c语言题目(编程题)

Amongthefollowingstatements,__isequivalenttowhile(*s++=*t++);.(2分)A.do{*s=*t++;}while... Among the following statements, __ is equivalent to while( *s++ = *t++ );. (2分)

A.do { *s = *t++; } while ( *s++ );
B.while ( *t ) *s++ = *t++;
C.do { *s++ = *t++; } while ( *t );
D.while ( *s ) *s++ = *t++;
答案为啥是A啊?第一次执行的话*s++是啥
展开
 我来答
happyXUB
2018-12-27 · TA获得超过221个赞
知道小有建树答主
回答量:172
采纳率:90%
帮助的人:26万
展开全部
while(*s++=*t++); 在语义上等同于(注意条件部分是一个=,不是2个):

while((*t) != 0)
{ *s = *t;
s++;
t++; }
do - while循环是先执行,后判断。
追问
但是答案为什么是A呢。这个题的意思是把t这个指针所对应的内容赋值给s指向的东西吧。
现在看A,第一次执行循环,while中是*s++,那*s++是什么?
ef1ff5
2018-12-27 · TA获得超过3724个赞
知道大有可为答主
回答量:4866
采纳率:83%
帮助的人:221万
展开全部
#include <stdio.h>
#define N 4 //N---多少行//
#define M 5 //M---多少列//
void main()
{
int a[N][M],i,j,t,k,max,min,l=0;
printf("请输入数组:\n");
for (i=0;i<N;i++)
for (j=0;j<M;j++)
scanf("%d",&a[i][j]);
for (i=0;i<N;i++)
{
max=a[i][0];k=0;
for (j=1;j<M;j++)
if (a[i][j]>max)
{
max=a[i][j];k=j;
}
min=a[0][k];
for (t=1;t<N;t++)
if (a[t][k]<min)
min=a[t][k];
if (max==min)
{printf("所要的数在数组中的%d行%d列值为%d\n",i,t,max);l++}
}
if(l==0)
printf("there is no such number.\n");
}
追问
?????
这答案跟题没关系啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式