|
发表于 2014-11-9 20:11:11
|
显示全部楼层
我觉得这题的关键在于break语句,break作用是在switch语句中控制case语句,一般每个case语句后面都要加个break,防止执行多个case语句。因此该题break作用是控制switch语句,并非控制for循环语句,因此break语句并不能中断for语句的执行
第一次循环 k = 2,c = str[2] = ‘S’,所以执行default后面的putchar(c),输出‘S’;
第二次循环 k = 3,c = str[3] = ‘W’,所以执行default后面的putchar(c),输出‘W’
第三次循环 k = 4,c = str[4] = ‘L’,所以执行case 'L': 后面的continue
第四次循环 k = 5,c = str[5] = ‘I’,所以执行case 'I': 后面的++k,此时k=5,‘break’表示退出switch语句,然后执行putchar('*')
第五次循环 k = 6,c = str[6] = ‘A’,所以执行default后面的putchar(c),输出‘A’
第六次循环 k = 7,c = str[7] = ‘\0’,退出循环,程序结束
所以结果是 SW* A
|
|