下面程序的运行结果是()

main()
{ int i,r;
char s1[80]="bus",s2[80]="book";
for(i=r=0;s1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]) i++;
else { r=s1[i]-s2[i]; break; }
printf("%d",r);
}

要解释的
谢谢!

第1个回答  2010-12-27
i=0时,s1[0]=s2[0]='b',故执行if内语句,i为1;
但是此后还要执行for循环括号中的i++使i加1,此时i变为2;
s1[2]='s',s2[2]='o',相应的ASCII码相减得到r=4;
跳出循环,输出r的值。
第2个回答  2010-12-26
当i=0,s1[i]=s2[i],故执行if内语句,i为1;之后for循环括号中的i++使i加1,为2;s1[2]='s',s2[2]='o',相应的ASCII码相减得到r=4;跳出循环,输出r。本回答被提问者采纳

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所指向位置的...

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

2.以下程序的运行结果是___.
1)b 2)d 3)c

下面程序运行的结果是
for (i =0; ch[i]>=’0’ &&ch[i]=’0’ &&ch[i] 问题二:50、下面的程序,其运行的结果是……… ( ) char c[5]={'a','b','\\0','c' 答案是B 因为输出%s时遇到\\0结束,c指向c[0],所以输出了c[0]和c[1],由于c[2]是\\0,所以结束。问题三:以下程序的运行结果...

C语言问题:下面程序的运行结果是
看看程序逐步运行跟踪结果:i=1;[i=1] i<5成立,开始循环: i%2为真, printf输出[*], printf累计输出[*#]i++;[i=2] i<5成立,继续循环: i%2为假, continue;i++;[i=3] i<5成立,继续循环: i%2为真, 累计输出[*#*], 累计输出[*#*#]i++;[i=4] i<5成立,继续循环: i%2为...

分析以下程序的运行结果( )
运行结果为10,20 因为虽然在fun函数中进行了a,b值的交换,但是a,b仅仅是fun函数的内部变量,他们的值的变化不影响main函数中的x,y的值,所以x,y还是10,20。具体执行过程:main函数中调用func(),并将x,y的值赋给fun()函数的两个临时变量a,b 在fun函数中交换a,b的值 退出fun函数,输出main...

下面程序执行的结果是【】(C 语言)
m=++i;n=j++;printf("%d,%d,%d,%d",,i,j,m,n);} \/\/分析:首先要清楚i++和++i的区别:i++的意思是先使用i的值,然后在对i进行+1操作,例如a=i++,意思相当于a=i;和i++两个语句(顺序不能颠倒),而a=++i,意思则相当于i++;和a=i;(顺序也不能颠倒)。所以m=++i;就相当于i...

下面的Java 程序编译运行结果是( )。 (选择一项)
答案是c。我才测试过!接口中可以定义变量,但是,不管你是否明确写出,系统都会隐含设定为public static final。也就说,不能继承的静态变量。那么,这个静态变量什么作用呢?主要是用来描述接口本身的。在题目中,super指的是父类,无论如何都不会找到接口的,所以,结果为1.PS:你程序中错误太多!所有...

下面程序运行后的输出结果是( ) #include <stdio.h> main( )
以上代码实际上会出现编译警告(IDE:VS2019, Language: C++17),更正后代码如下:include <stdio.h> int main(){ int a = 3, b = 4;printf("%d %d %d ", a = a + 1, b + a, b + 1);printf("%d %d %d", a = a + 1, b + a, b + 1);return 0;} 输出结果为:4 ...

以下程序运行后的输出结果是 main() {int a,b,c; a=1;b=3;c=5; pri...
结果是3,10啊。这主要是由于自增操作符++前置还是后置决定的,比如说++a,就是先自增再使用,而a++就是说先使用再自增。执行printf(“%d,%d\\n”,(++a,b++),a+b+c)这条语句的过程中,a=2(就是说已经自增了),b=3(还没自增)。等这条语句执行完之后,那么a=2 b=4~...

相似回答