c语言12x
‘壹’ 在C语言中如果x==12,那么x++,++x,--x,x--分别等于多少
先增减还是后增减。独立看,x++、++x都等于13,x--、--x都等于11,在表达式中
y=x++: y=12,x=13 先赋值,后增减
y=x--: y=12,x=11
y=--x: y=11,x=11 先增减,后赋值
y=++x:y=13,x=13
‘贰’ 在C语言中unsigned,x=~0>>12与x=~(~0<<4)相等吗
不对。
~0>>12等同于~(0>>12)=~0
~(~0<<4)就是~(~(0<<4))=~(~0)=0
‘叁’ C语言,问大家个题目,main(){int x=12,y=x++;printf(“%d,%d,%d\n",x+y,x++,y++的结果是什么,给出原因
x=12;
y=x++=12
x=13.
printf先从右向左运算。再从左向右输出
所以
y++=12
y=13
x++=13
x=14
x+y=13+14=27
所以是27.13.12
‘肆’ 简单C语言12
格式化输入输出中的控制符号挺多的,这里不多说了,你可以在网络里分别查printf和scanf来了解一下。
printf对应的网络词条:
scanf对应的网络词条:
在此题中,
在printf格式化输出中,#当type=c,s,d,i,u时没有影响,
type=o,x,X时,分别在数值前增加'0',"0x","0X"
在这里,类型type为o,所以在前面加0,
在这句代码中,010,前面是0开头,表示的八进制数,所以010就是8,转换为二进制为:1000,
010<<1,即左移1位,所以二进制数左移后为10000,即十进制的16。
010<<1^1,即16^1,表示成二进制数为:10000^1=10001(即17)
0xe,0x开头表示16进制数,e即表示14(a表示10,b-11,以此类推),表示成二进制数为:1110
0xe<<1,左移1位,即11100,(10进制数28),
(010<<1^1)&(0xe<<1)即表示17&28,按二进制写:10001&11100 = 10000(即16)
所以最终要输出的数是十进制数16,
printf("%#o\n",...)这一句要求以八进制形式输出,前面要带0,所以16转为八进制即20,前面加0就是020。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
‘伍’ C语言中所有的代码及其代表的意思,有谁知道
这个问题问的太。。。。了,给你找了个操作符(operator)用于操作数据。操作符进行计算、检查等式、进行赋值、操作变量和进行其它更奇怪的工作。C++中有许多操作符,这里不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符说明举例
算术运算符
+ 加 x=y+z;
- 减 x=y-z;
* 乘 x=y*z;
/ 除 x=y/z;
赋值运算符
= 赋值 x=10;
+= 赋值与和 x+=10;(等于x=x+10;)
-= 赋值与减 x-=10;
*= 赋值与乘 x*=10;
\= 赋值与除 x\=10;
&= 赋值位与 x&=0x02;
|= 赋值位或 x|=0x02;
逻辑操作符
&& 逻辑与 if(x && 0xFF) {...}
|| 逻辑或 if(x || 0xFF) {...}
等式操作符
== 等于 if(x == 10) {...}
!= 不等于 if(x != 10) {...}
< 小于 if(x < 10) {...}
> 大于 if(x > 10) {...}
<= 小于或等于 if(x <= 10) {...}
>= 大于或等于 if(x >= 10) {...}
一元操作符
* 间接操作符 int x=*y;
& 地址操作符 int* x=&y;
~ 位非 x &=~0x02;
! 逻辑非 if(!valid) {...}
++ 递增操作符 x++(等于x=x+1;)
-- 递减操作符 x--;
类和结构操作符
:: 范围解析 MyClass :: SomeFunction();
-> 间接成员 MyClass-> SomeFunction();
· 直接成员 MyClass . SomeFunction();
可以看出,这个清单长了些,没法一下子记住。使用C++时,你会慢慢熟悉这些操作符的。必须指出,递增操作符既可用作前递增(++x),也可用作后递增(x++)。前递增操作符告诉编译器先递增再使用变量,而后递增操作符则让编译器先使用变量值再递增。例如下列代码:
int x = 10;
cout << "x = " << x++ << end1;
cout << "x = " << x << end1;
cout << "x = " x << end1;
cout << "x = " << ++x << end1;
输出结果如下:
x=10
x=11
x=12
x=12
递减操作符也是这样,这里不想将这些内容讲得太深,但读者可以耐心阅读下去,正如彭兹对奥古斯特所说,“奥古,耐心点,罗马不是一天建成的”。说明 在C++中操作符可以过载(overload)。编程人员可以通过过载标准操作符让它在特定类中进行特定运行。例如,可以在一个类中过载递增操作符,让它将变量递增10而不是递增1。操作符过载是个高级C++技术,本书不准备详细介绍。你也许会发现,有些操作符使用了相同的符号。符号的意义随情境的不同而不同。例如,星号(*)可以作为乘号、声明指针或取消指针引用。这初看起来有点乱,事实上,C++编程老手有时也觉得有点乱。多实践,你会慢慢适应的。本书有许多例子介绍这些操作符。读者不必死记每个操作符的作用,而可以在学习中通过程序和码段去理解其作用。 C++中的函数
函数是与主程序分开的码段。这些码段在程序中需要进行特定动作时调用(执行)。例如,函数可能取两个值并对其进行复杂的数学运算。然后返回结果,函数可能取一个字串进行分析,然后返回分析字串的一部分。新术语 函数(function)是与主程序分开的码段,进行预定的一个服务。函数是各种编程语言的重要部分,C++也不例外。最简单的函数不带参数,返回void(表示不返回任何东西),其它函数可能带一个或几个参数并可能返回一个值。函数名规则与变量名相同。图1.5显示了函数的构成部分。新术语 参数(parameter)是传递给函数的值,用于改变操作或指示操作程度。
返回类型 函数名 参数表
↓ ↓ ↓
int SomeFunction(int x, int y){
函数体→int z = (x * y); return z; ↑返回语句
}
图1.5函数的构成部分使用函数前,要先进行声明。函数声明或原型(prototype)告诉编译器函数所取的参数个数、每个参数的数据类型和函数返回值的数据类型。清单1.4列示了这个概念。新术语 原型(prototype)是函数外观的声明或其定义的说明。
清单1.4Muttiply.cpp
1: #include <iostream.h>
2: #include <conio.h>
3: #pragma hdrstop
4:
5: int multiply(int,int)
6: void showResult(int);
7:
8:int main(int argc,char **argv);
9:{
10: int x,y,result;
11: cout << end1 << "Enter the first value:";
12: cin >> x;
13: cout << "Enter the second value: ";
14: cin >> y;
15: result=multiply(x,y);
16: showResult(result);
17: cout << end1 << end1 << "Press any key to continue...";
18: getch();
19: return 0
20: }
21:
22: int multiply(int x,int y)
23: {
24:return x * y;
25: }
26:
27: void showResult(int res)
28: {
29:cout << "The result is: " << res <<end1;
30: }
这个程序的11到14行用标准输入流cin向用户取两个数字,第15行调用multiply()函数将两个数相乘,第16行调用showResult()函数显示相乘的结果。注意主程序前面第5和第6行multiply()和showResult()函数的原型声明。原型中只列出了返回类型、函数名和函数参数的数据类型。这是函数声明的最基本要求。函数原型中还可以包含用于建档函数功能的变量名。例如,multiply()函数的函数声明可以写成如下:int multiply(int firstNumber,int secondNumber);这里函数multiply()的作用很明显,但代码既可通过说明也可通过代码本身建档。注意清单1.4中函数multiply()的定义(22到25行)在主函数定义码段(8到20行)之外。函数定义中包含实际的函数体。这里的函数体是最基本的,因为函数只是将函数的两个参数相乘并返回结果。清单1.4中函数multiply()可以用多种方法调用,可以传递变量、直接数或其它函数调用的结果:
result = multiply(2,5);//passing literal values
result = multiply(x,y); //passing variables
showResult(multiply(x,y));
//return value used as a
//parameter for another function
multiply(x,y);//return value ignored
注意 最后一例中没有使用返回值。本例中调用函数multiply()而不用返回值没什么道理,但C++编程中经常忽略返回值。有许多函数是先进行特定动作再返回一个数值,表示函数调用的状态。有时返回值与程序无关,可以忽略不计。如果将返回值忽略,则只是放弃这个值,而不会有别的危害。例如,前面的样本程序中忽略了getch()函数的返回值(返回所按键的ASCII值)。函数可以调用其它函数,甚至可以调用自己,这种调用称为递归(recursion)。这在C++编程中是个较复杂的问题,这里先不介绍。新术语 递归(recursion)就是函数调用自己的过程。
‘陆’ C语言刚上,运算顺序不懂,int k=7,x=12 x%=k-k%5 与 (x%=k)-(k%=5)有什么区别两个答案分别是多少
x%=k-k%5
=x%(k-k%5)
=12%(7-7%5)
=12%(7-2)
=12%5
=2
//上面x的值为2,k的值不变。
(x%=k)-(k%=5)
=(x=x%k)-(k=k%5) //x的值变为5,k的值变为2。
=5-2
=3 //这个表达式的值为3,但这个值不保存。
//上面x的值变为5,k的值变为2。