其中有不少小的错误,作为程序它是不能运行的。
#include<stdioh>int main( )
{ int y=2,a=1;
while(y--!=-1)
{ do{a =y; a++;} while(y--); }
printf("%d,%d",a,y);
return 0;
}
运行后的输出是:
1,-2
分析运行过程:
y=2,a=1;
判断,为真,y变为1
进入do循环:
a=11=1; a++变为2
内循环判断y--为真,y变为0;
再次内循环:
a=20=0; a++变为1
内循环判断y--为假,y变为-1;
外循环判断为假,y变为-2;
所以,最后的输出是1,-2
这道题真的是这样的么?
如果真的是这样的,那么答案没有一个是正确的呢。
void main()
{
char a[]=“morning”,t;
int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i]) // 如果发现a[i]比a[j]大,则,在j中保存发现的更大的字符的下标
j=i;
// 上面这个循环,作用是找到字符串中ASCII码值最大的那个字符的下标
t=a[j];
a[j]=a[7];
a[7]=a[j];
// 关键是这里的a[7]
// a数组的下标为7的元素应该是“0结束标志”啊
// m o r n i n g \0
// 0 1 2 3 4 5 6 7
// 现在把下标为7的"0结束标志“和字母o进行交换,那么结果是:
// m \0 r n i n g o
puts(a);
// 那么输出结果应该是m
// 因为,C语言对于字符串的处理原则是:遇0则止
}
以上就是关于C语言题目 1.下面程序的运行结果是( )全部的内容,包括:C语言题目 1.下面程序的运行结果是( )、下面程序的运行结果是、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)