下面程序的运行结果是_______。

下面程序的运行结果是_______。 
  #include  <stdio.h>
  #include  <string.h>
  fun(char *w,int n)
   {char t,*s1,*s2;
    s1=w;s2=w+n-1;
    while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}
  }
  main()
{
  char a[]="1234567",*p=a;
  fun(p,strlen(p));
  printf("%s",a);
}

  A7654321
  B1714171
  C1711717
  D7177171

选A
第一次循环
i=0,ch[0]=‘1’,ch[0]>=‘0’&&ch[0]<=‘9’ 成立,s=0+1=1
第二次循环
i=2,ch[2]=‘a’,ch[0]>=‘0’&&ch[0]<=‘9’ 不成立,循环结束
s最后结果为1追问

A选项是啥?!

温馨提示:内容为网友见解,仅供参考
无其他回答

下面程序的运行结果是 . main( ) { int i,j; for(i=0;i<=3;i++) {...
这个程序运行后会输出一个4行6列的矩形:

3. 下面程序的运行结果是( ). #include <stdio.h> void main() { i...
j为1.||左值为1 右值不执行 所以 这里执行的 只有 j++和i++ k还是22 于是 输出2,2,2 选C

下面程序段的运行结果是( )。 char *p="abcdefgh"; p+=3; printf("%d...
将ABCD赋值个p,他们之间是怎么赋值的呢,让p指针指向“A”的地址,如果取值的话就*P拿到A了。这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,而c语言中默认在ABCD后加个结束符的...

以下程序的运行结果是( )。 main() { int x = 4; do { printf("%2d...
4,C正确,选C——因为输出4后!x就是!4==0,就结束循环了。

2.以下程序的运行结果是___.
2)答案为100 :MIN(x,y) (x)<(y)?(x):(y) 表示当x<y时取x,否则取y.题中i<j所以min(x,y)=10;3)答案为12,6;z=y*x/2=6*(5/2)=6*2=12(整数的除数也取整数);--a表是先将a减一再取值.4 1)b 2)d 3)c ...

下面程序的运行结果是( )。 #include <stdio.h> union data {int...
如果int占2个字节,char a[2]占2个字节, i占2个,d占2个,所以选B 如果int占4个字节,那么因为字节对齐的缘故char a[2]占4个字节, i占4个,d占4个,就共占12个字节

以下程序的运行结果是()#include<stdio.h>main() {int a=1 ,b=2...
这个程序的难点在于while (a<b<c) ,a<b<c是如何判断的,我经过调试,一步一步观察,最后得出的结果是, while里面是从右向左进行比较的,这样只要有一个为真,则值为1,执行下一步,那么,当第一步为0,则不用看后面的比较,跳出循环,那么它就不能往下执行了,还有一点建议就是代码要整齐...

4. 下面程序的运行结果是( ) # lnclude <stdio.h> main( ) { int...
结果为A。p1,*p2,*p为三个指针;p1=&a;P2=&b;p1获得a的地址,指向a,p2获得b的地址,指向b;if(a<b) { p=p1;pl=p2;p2=p;},因为5<8,因此执行语句,这是个交换p1,p2指向的语句,所以p1变更为指向b,p2指向a;printf(”%d, %d”,*P1,*P2);表示输出p1,p2所指向位置的...

下面程序的运行结果是( )。 main() { int c1=2, c2=0; while(!c2...
结果是2,-1 有图 要分~~

下面程序的运行结果为( )。 #include<stdio.h> void main() { int a...
4,C正确,选C。但(*c)[3]=a;错大了,应该写成(*c)[3]=(int (*)[3])a;。

相似回答