以下程序的输出结果是( )

以下程序的输出结果是( ),第1张

if(a>10 && ok1)         |    a=10,所以 a>10 不成立,BTW,这个地方 if else 之间 什么都没有,                                              至少应该有个分号

else if(ok2)x=10;       |    ok2=0,所以  不成立

else x=-1;               |    最后结果  x = -1

程序输出的结果是:a = ‘A’, b = 'b'。

也就是说实参b的值加了1,而a的值则没变,为什么呢?

首先,我们说一下b的值为什么会加1:在函数fun中的第一个形参是一个指针变量,fun(&b,a);中&b的意思是取b的地址,而c在这里其实就是b的值,这里的c = c+1;是对b的值直接进行 *** 作的,因此,b的值会变。

而a的值不变,是因为在C语言中,实参向形参的数据传递方向是单向传递,也就是说,只由实参传给形参,而不能由形参传回给实参。除非我们加个返回值,如

int fun(char c, int d)    //带返回值得函数

{

  c = c+1;

  d = d + 1;

  return d;    //将加1后的d值返回

}

void main()

{

  char a='A',b='a';

  a = fun(&b,a);    //将返回的值赋给a

  printf("%c,%c\n",a,b);

}

这个程序关系到C语言的两个内容,1、指针  2、函数的参数和函数的值 ,建议找一本C语言程序设计的书阅读这两个章节,一切都迎刃而解。

-16

~a意思是反 *** 作

负数计算法则就是取反后+1

所以(~a)=-(15+1)=-16

结果是C

for循环实际就是1~5求和,再加上初值1,所以结果就是-16了。

扩展资料:

for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。

“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。

参考资料来源:百度百科-for循环

GDABC

#include<stdioh>

#include <stringh>

void main()

{ char b[30],chp=b;

strcpy(chp,"GH");//把GH复制到chp中

strcpy(chp+1,"DEF");//CHP+1说明长度由2增加到3,为GDE

strcpy(chp+2,"ABC");//同理chp增加到5(3+2)变为GDABC

printf ("%s\n",chp);

}

你的第一个小程序有一点小问题,你多打了个'}'第一题a=4,b=5,这道题的目的就是统计1~9之间能被2整除的数的个数(2468),和不能被2整除的数的个数(13579),第二道题的值为91,第二道题的目地是统计1~49中既能被3整除,又能被5整除的数(153045)又因为s初值为1所以最后值为91

以上就是关于以下程序的输出结果是( )全部的内容,包括:以下程序的输出结果是( )、下列程序的输出结果是( )。、以下程序段的输出结果是( )。 int a=15; System.out.println(~a); A:11 B:-21 C:-16 D:-15等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9428982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存