阅读以下代码,回答问题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  25

问题 阅读以下代码,回答问题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);
}
写出代码1运行后的输出结果。

选项

答案a1=3 b1=7, a2=3 b2=7

解析 本问题考查函数调用时的参数传递。
C语言仅支持传值调用方式,实参传递给形参的值可以是数值,也可以是地址值。根据题目中给出的函数swap(int x,int y)定义信息,在main中执行函数调用“swap(a,b)”时,是将实参a的值传递给形参x、实参b的值传递给形参y,这个传递过程是单方向的,此后再执行swap中的操作时,x、y的修改与a、b再无关联,因此在main函数中,a和b的值没有变化。
转载请注明原文地址:https://jikaoti.com/ti/sHW7FFFM
0

最新回复(0)