c语言中-- a输出结果是多少
程序输出的结果为a=11,b=13。
程序的执行过程:首先定义了a的值为12,b的值为12,然后执行我们的输出语句,我们输出的不是a和b的值,而是表达式“--a”和表达式“++b”的值,因为前缀的“++”和“--”都是先进行加一或者减一的操作,再输出。
所以说“--a”输出的结果为11,“++b”输出的结果为13。
扩展资料:
C语言的主要特点:
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试。
C语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作。
1、简洁的语言,C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
2、具有结构化的控制语句,C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
3、丰富的数据类型,C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
4、丰富的运算符,C语言包含34个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
5、代码具有较好的可移植性,C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境。
在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。
“++”前缀自增、“--”前缀自减结合性为自左向右。
参考资料来源:百度百科-C语言
成王腾清肝: 例如:首先要区别x++和++x(--同理).x++是先引用再增值,++x是先增值增引用.例如:int x,a,b;x=0;a=x++; //a=0;a=x++是先把x值给a,,操作完再+1,即先做a=x,然后x再+1 b=x; //b=1 int x,a,b;x=0;a=++x; //a=1;++x是先增值再用,即先做x+1...
宿豫县17799627735: 以下程序的输出结果是 main( ) { int a=12,b=12; printf("%d %d\n",_-a,++b); } - ?
成王腾清肝: 程序输出的结果为a=11,b=13. 程序的执行过程:首先定义了a的值为12,b的值为12,然后执行我们的输出语句,我们输出的不是a和b的值,而是表达式“--a”和表达式“++b”的值,因为前缀的“++”和“--”都是先进行加一或者减一的操作...
宿豫县17799627735: c语言中,原来a=10,表达式a=_-a+a - 运算后的a的值是多少_?
成王腾清肝: 17 --a(a=9),a--(a,a=a-1); 另外..... 原来a=10,表达式a=--a+a--运算后的a的值是多少? 运算式a=18,但之后a=17,因为a要自减1(后缀减1). 无聊的考试. 还有++(--)不同的编译器进栈出栈顺序不同结果也可能不同.
宿豫县17799627735: #include<stdio.h> main() { int a=21 ,b=11; printf("%d\n",_-a+b, - b+a); } 最后的输出结果为30_?
成王腾清肝: printf("%d\n",--a+b,--b+a); }这句是个逗号运算,取后面的值.....但是前面的--a+b也是要运行的,运行了--a后a=20啦!!在运行后面的--b,b就等于10啦!!加起来就等于30.了
宿豫县17799627735: C语言中~(a^~a)运算结果是多少? - ?
成王腾清肝: 结果为0. 连续赋值运算,计算顺序是自右至左的. 所以 a+=a-=a*=a计算顺序是 1 a*=a; 2 a-=a; 3 a+=a; 也就是 1 a=a*a; 2 a=a-a; 3 a=a+a; 可以看到,无论a值是多少,第一步的结果是多少,到第二步的时候,a的值都会是0.所以最终结果,也就是第三步的结果,仍为0. 最终a为0.
宿豫县17799627735: c语言中(printf“%d_-A\n”,score)中 - A是什么意思_?
成王腾清肝: 原样输出!
宿豫县17799627735: 设有语句int a=3,执行语句a+=a - =a*a后,变量a的值是多少啊? - ?
成王腾清肝: 执行该语句的结果为-12,没有错误.注意赋值运算符的顺序为自右到左. 计算过程如下: 首先执行a*a=9,然后a-=9=(a=a-9)=-6,执行后a=-6,然后执行a+=a=(a=a+a)=-12.所以说正确答案是-12. 扩展资料:C语言主要特点 C语言是一种...
宿豫县17799627735: c语言程序输出结果是什么 - ?
成王腾清肝: --k的意思,先将k的值减去1,然后再使用 while(--k) 的意思,先将k的值减1,然后再进行条件判断.k-=3 相当于 k=k-3 所以:一开始 k=5 然后--k后,变成4了,满足循环条件,输出 k=k-3=4-3=1了.然后再--k,k变成0了,while循环条件就不满足了,结束,所以输出1.
宿豫县17799627735: C语言 以下程序段的输出结果是多少?? - ?
成王腾清肝: 第一个是100 var 取b得地址 所以*var = b = 100 , 所以b = 110, 所以*var = 110 第二个,因为== 的优先级高于=的优先级,所以先执行 getchar == 'A', 输入A后,二者相等,返回1 所以ch = 1 p = a ,就是取a数组的第一个元素的地址,所以*p = a[0] = 5;*p++ 这儿优先级相等,结合性为从右至左,且p++只在表达式结束后才自增, 所以就等于*p++ = a[0] = 5 同理和上面一样, ++会在表达式结束后自增,(*p)++ = a[0]++ = 5
宿豫县17799627735: _- - a 在c语言中应该如何理解???
成王腾清肝: 这种讨论没有什么实际的意义.对于---a这个表达式有两种理解-(--a)和--(-a).对于操作符-来说,其操作数可以是左值也可以是右值,--a产生的是一个右值,因此第一个表达式是可以被编译器接受的;而对于操作符--来说,其操作数只能是一个左值,-a产生的是一个右值,因此这是编译器所不能不接受的(类似地,--4不能通过编译).对于上述的语句,编译器在做语法分析时,更倾向于把(---a)解释成(--(-a)),导致编译错误.