
if(a>10 && ok1) | a=10,所以 a>10 不成立,BTW,这个地方 if else 之间 什么都没有, 至少应该有个分号
else if(ok2)x=10; | ok2=0,所以 不成立
else x=-1; | 最后结果 x = -1
也就是说实参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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)