答案应该是
10,x
因为结构体变量做实参,属于值传递类型。在调用函数期间,改变形参的值,是无法返回到主调函数的。
struct
n{
int
x;
char
c;
};
/定义结构体类型名/
main()
{struct
n
a={10,'x'};
/定义结构体变量a/
func(a);
/调用函数/
printf("%d,%c",ax,ac);
}
/输出结果/
func(struct
n
b)
/定义调用函数/
{
bx=20;
bc='y';
}
第一次func(a,b)函数时,传递过来的两个值是4,1 即在func(a,b)函数中a=4,b=1 static int m=0,i=2,定义了两个静态变量,即一直战用内存,函数调用结束不释放,结果依然是上一次改变后的结果。
执行 i+=m+1 →即 i=2+0+1=3;
执行 m=i+a+b; → m=3+4+1=8;
执行 return(m) →返回 m=8;
printf("%d,",p); 输出 8
第二次执行func函数 依然传递 4,1
在func函数中,因为m 和i是静态变量,所以这时m=1,i=3
执行 i+=m+1; → i=3+8+1=12;
执行 m=i+a+b; → m=12+4+1=17;
执行 return(m) →返回 m=17;
printf("%d,",p); 输出 17
最后结果为 8 ,17
其中有不少小的错误,作为程序它是不能运行的。
#include<stdioh>int main( )
{ int y=2,a=1;
while(y--!=-1)
{ do{a =y; a++;} while(y--); }
printf("%d,%d",a,y);
return 0;
}
运行后的输出是:
1,-2
分析运行过程:
y=2,a=1;
判断,为真,y变为1
进入do循环:
a=11=1; a++变为2
内循环判断y--为真,y变为0;
再次内循环:
a=20=0; a++变为1
内循环判断y--为假,y变为-1;
外循环判断为假,y变为-2;
所以,最后的输出是1,-2
你好
1程序的运行结果是:1,-2
2解释每一步的运行过程:
#include <stdioh>
void main()
{
int y, a ;
y=2, a=1;
while (y--!=-1)
{
do{
a=y ;
a++ ;
} while(y--);
}
printf("%d,%d\n",a,y);
}
从y=2,a=1开始哈
(首先我们要知道后自减y--型的返回值是y自减前的值 例如y=2 y--就返回2)
进入while循环
y--返回2 不等于-1 (此时y=1)
于是循环继续进入do while循环
执行a=y;a++后
a=2 y=1
y--返回1 是非零 于是do while循环继续进行 (此时y=0)
执行a=y;a++后
a=1 y=0
y--返回0 于是do while循环终止 (此时y=-1)
再判断while的循环条件: y--返回-1 于是while循环终止 此时y=-2
(讲的比较多 希望楼主能理解了)
aabb cc abc
A N
Press any key to continue
#include<stdioh>
void main()
{
char
c1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
//c1前面是逗号
printf("\t\b%c %c\n",c4,c5);
}
//多一个}
结果时 28 70,所以D)正确,选D)。把缩进写好这代码是这样的:
main(){int x,i;
for(i=1;i<=100;i++){
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%3d",x);
}
return 0;
}
可见意思是:从2到100间,从某个数开始连续的3个数符合最小能被2整除、中间的能被3整除、最大的能被7整除。输出最大的数。找出的第一个数是28,28能被7整除,27能被3整除,26能被2整除。找出的第2个数是70,70能被7整除,69能被3整除,68能被2整除。那3个if的条件实质是“与”的关系,所以写成一句if(++x%2==0 && ++x%3==0 && ++x%7==0)也是可以的。
以上就是关于以下程序的运行结果是( )。全部的内容,包括:以下程序的运行结果是( )。、以下程序的正确运行结果是、C语言题目 1.下面程序的运行结果是( )等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)