阅读以下代码,回答问题1至问题3,将解答填入答题纸的对应栏内。 【代码1】 #include Void swap(int x, int y) { int tmp=x; x=y; y=tmp; } int main() { int a=3,

admin2017-11-28  48

问题 阅读以下代码,回答问题1至问题3,将解答填入答题纸的对应栏内。
【代码1】
#include
Void swap(int x,  int y)
{
int tmp=x;    x=y;    y=tmp;
}
int main()
{
int a=3,  b=7;
printf(“a1=%d  b1=%d\n”,  a,  b);
swap(a,b);
printf(“a2=%d  b2=%d\n”,  a,  b);
return 0;
}
【代码2】
#include
#define SPACE ’’ //空格字符
int main()
{
char str[128]=“Nothing is impossible!  ”;
int i,num=0,wordMark=0;
for(i=0;str;i++)
if(str:=SPACE)
wordMark=0;
else
if(wordMark==0){
wordMark=1;
num++;
}
printf(“%d\n”,num);
return 0;
}
【代码3】
#include
#define SPACE  ’’  //空格字符
int countStrs(char*);
int main()
{
char str[128]=“Nothing is impossible!  ”;
printf(“%d\n”,(1)(str));
return 0;
}
int countStrs(char*p)
{
int num=0,wordMark=0;
for(;(2);p++)  {
if(  (3)  ==SPACE)
wordMark=0;
else
if(!wordMark)(
WordMark=1;
++num
}
}
return  (4);
}
写出代码2运行后的输出结果。

选项

答案3

解析 本问题考查程序的基本结构和运算逻辑。
首先确定变量的作用,num用来对单词进行计数。for循环语句的作用是遍历字符串中的字符。对字符串中的每个字符str,如果是空格字符,则将wordMark设置为0,然后继续考查下一个字符。观察存储在数组str中的字符串,空格字符的作用是作为单词的分隔符。显然,对于每个单词的第一个字符,此时wordMark的值一定为0。当字符str不是空格字符,接下来通过判断wordMark是否为0来决定num是否增加,以及是否改变wordMark。据此可以看出,对于一个单词的第一个字符之后的其他字符,通过将wordMark设置为1,使得对每个单词,num的值仅自增1次。因此,程序的功能是对字符串中的单词进行计数(与单词连载一起的特殊符号也算作单词的一部分,单词仅以空格分隔)。
转载请注明原文地址:https://jikaoti.com/ti/0HW7FFFM
0

最新回复(0)