全部问题 > 当前问题

if判定为假,那么puts还执行吗



像海一样蓝 2016-3-17 21:41:27

共 2 个回答

最佳答案

小跳 2016-3-17 21:54:57

执行   if语句只到后面的一个语句块,就是花括号结束。

嘿嘿大人 2016-3-19 13:02:54

if作用域只有其后的一个语句或者语句块,所以是要执行puts

问题来自: 字符串数组
有以下程序:
#include <stdio.h>
main()
{ char a[5][10]={"one","two","three","four","five"};
  int i,j;
  char t;
  for(i=0;i<4;i++)
    for(j=i+1;j<5;j++)
      if(a[i][0]>a[j][0])
      { t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t; }
  puts(a[1]);
}
程序运行后的输出结果是 ______ 。
A. fwo
B. fix
C. two
D. owo
答案:A
解析:本题是对5个字符串的首字母进行冒泡排序。 for循环: i=0,j=1 a[0][0]=o,a[1][0]=t o&lt;t所以不交换 i=0,j=2 a[0][0]=o,a[2][0]=t o&lt;t所以不交换 i=0,j=3 a[0][0]=o,a[3][0]=f o&gt;t所以交换a[0][0]=f,a[3][0]=t i=0,j=4 a[0][0]=f,a[4][0]=f f=f所以不交换所以此时a[0][0]=f,后面依次类推 排序结果为f、f、o、t、t,由于排序过程中仅对首字母进行了交换,所以排序结果为{"fne","fwo","ohree","tour","tive"},因此选A。