c语言操作符
A. c语言运算符!
代码1是a%2表示判断a除以2的于是是否为0,这是判断奇偶的标准方法;
代码2是a/2表示判断a除以2的商是否为0,只有输入0的时候才执行else,否则都是显示“奇数”的提示,这个算法判断奇偶是错误的。
B. c语言中操作符运算
(结构体、类、共同体等)取成员运算符,例如,
p->
相当于:
(*p).
p一定是一个指针类型。
举个例子说吧:
struct Student
{
char Name[20];
int Age;
};
你定义个数据:
struct Student *p;
那么,你就可以这个取它的成员了:
(*p).Name (*p).Age
这个等于如下的写法:
p->Name p->Age
应该清楚了吧?看答案怎么样?
C. C语言中,&是什么运算符啊
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
按位“与”运算:按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1
,否则为0。参与运算的数以补码方式出现。
a=1=00000001
b=2=00000010
c=3=00000011
a^b=11111100
(a^b)&c=00000000
所以结果为0
D. C语言 运算符%是怎么运算的
1级优先级左结合
()圆括号
[]下标运算符
->指向结构体成员运算符内
.结构体成员运算符
2级优容先级右结合
!逻辑非运算符
~按位取反运算符
++自增运算符
--自减运算符
-负号运算符
(类型)类型转换运算符
*指针运算符
&地址与运算符
sizeof长度运算符
3级优先级左结合
*乘法运算符
/除法运算符
%取余运算符
4级优先级左结合
+加法运算符
-减法运算符
5级优先级左结合
<<左移运算符
>>右移运算符
6级优先级左结合
<、<=、>、>=关系运算符
7级优先级左结合
==等于运算符
!=不等于运算符
8级优先级左结合
&按位与运算符
9级优先级左结合
^按位或运算符
10级优先级左结合
|按位异或运算符
11级优先级左结合
&&逻辑与运算符
12级优先级左结合
||逻辑或运算符
13级优先级右结合
?:条件运算符
14级优先级右结合
=+=-=*
=/=%=
>=<<=
&=^=|=全为赋值运算符
15级优先级左结合
,逗号运算符
E. C语言运算符
~和<<都是位运算符,~是按位取反运算符,<<是左移运算符。以i=3为例,~(1<<i++)
先计算1<<3(值为00001000),i再变为4
再按位取反,得11110111,将其赋值给P1
F. c语言操作符是什么
你可以把操作符理解为内置的,最基础的函数,它们无法完全被若干个未使用同类型操作符的函数所替代。比如加法运算符,你就不可能写出一个不用+或-的函数来实现任何情况下的加法功能。
运算符和函数还有一个重要区别。函数本身有一段代码,程序执行时,遇到函数时,会先将函数的参数入栈,再跳到函数的代码来运行。而操作符则是在本地直接运算。
比如
#include<stdio.h>
#include<string.h>
int add(int a,int b)
{return a+b;
}
void main()
{
int a,b;
b=a+1;
b=add(a,1);
}
编译后,查看汇编码如下:
11: b=a+1;
0040D458 mov eax,dword ptr [ebp-4] //取a的值
0040D45B add eax,1 //加上1
0040D45E mov dword ptr [ebp-8],eax //和赋给b
12: b=add(a,1);
0040D461 push 1 //参数1入栈
0040D463 mov ecx,dword ptr [ebp-4] //将参数a移到寄存器
0040D466 push ecx //参数a入栈
0040D467 call @ILT+0(add) (00401005) //调用函数add
0040D46C add esp,8 //释放参数占用的内存
0040D46F mov dword ptr [ebp-8],eax //结果赋给b
明显看出函数的调用过程比运算符要复杂。
G. c语言运算符
9除以5商1余4
不是说小数最后位是余数
余数就是在整数的除法中,只有能整除与不能整除两种情况。当不能整除时,就产生余数,所以余数问题在小学数学中非常重要。
余数有如下一些重要性质(a,b,c均为自然数):
(1)余数小于除数。
(2)被除数=除数×商+余数;
除数=(被除数-余数)÷商;
商=(被除数-余数)÷除数。
(3)如果a,b除以c的余数相同,那么a与b的差能被c整除。例如,17与11除以3的余数都是2,所以17-11能被3整除。
(4)a与b的和除以c的余数,等于a,b分别除以c的余数之和(或这个和除以c的余数)。例如,23,16除以5的余数分别是3和1,所以(23+16)除以5的余数等于3+1=4。注意:当余数之和大于除数时,所求余数等于余数之和再除以c的余数。例如,23,19除以5的余数分别是3和4,所以(23+19)除以5的余数等于(3+4)除以5的余数。
(5)a与b的乘积除以c的余数,等于a,b分别除以c的余数之积(或这个积除以c的余数)。例如,23,16除以5的余数分别是3和1,所以(23×16)除以5的余数等于3×1=3。注意:当余数之积大于除数时,所求余数等于余数之积再除以c的余数。例如,23,19除以5的余数分别是3和4,所以(23×19)除以5的余数等于(3×4)除以5的余数。
性质(4)(5)都可以推广到多个自然数的情形。
例1 5122除以一个两位数得到的余数是66,求这个两位数。
分析与解:由性质(2)知,除数×商=被除数-余数。
5122-66=5056,
5056应是除数的整数倍。将5056分解质因数,得到
5056=26×79。
由性质(1)知,除数应大于66,再由除数是两位数,得到除数在67~99之间,符合题意的5056的约数只有79,所以这个两位数是79。
例2 被除数、除数、商与余数之和是2143,已知商是33,余数是52,求被除数和除数。
解:因为被除数=除数×商+余数
=除数×33+52,
被除数=2143-除数-商-余数
=2143-除数-33-52
=2058-除数,
所以 除数×33+52=2058-除数,
所以 除数=(2058-52)÷34=59,
被除数=2058-59=1999。
答:被除数是1999,除数是59。
例3 甲、乙两数的和是1088,甲数除以乙数商11余32,求甲、乙两数。
解:因为 甲=乙×11+32,
所以 甲+乙=乙×11+32+乙=乙×12+32=1088,
所以 乙=(1088-32)÷12=88,
甲=1088-乙=1000。
答:甲数是1000,乙数是88。
例4 有一个整数,用它去除70,110,160得到的三个余数之和是50。求这个数。
分析与解:先由题目条件,求出这个数的大致范围。因为50÷3=16……2,所以三个余数中至少有一个大于16,推知除数大于16。由三个余数之和是50知,除数不应大于70,所以除数在17~70之间。
由题意知(7+110+160)-50=290应能被这个数整除。将290分解质因数,得到290=2×5×29,290在17~70之间的约数有29和58。
因为110÷58=1……52>50,所以58不合题意。所求整数是29。
例5 求478×296×351除以17的余数。
分析与解:先求出乘积再求余数,计算量较大。根据性质(5),可先分别计算出各因数除以17的余数,再求余数之积除以17的余数。
478,296,351除以17的余数分别为2,7和11,(2×7×11)÷17=9……1。
所求余数是1。
例6 甲、乙两个代表团乘车去参观,每辆车可乘36人。两代表团坐满若干辆车后,甲代表团余下的11人与乙代表团余下的成员正好又坐满一辆车。参观完,甲代表团的每个成员与乙代表团的每个成员两两合拍一张照片留念。如果每个胶卷可拍36张照片,那么拍完最后一张照片后,相机里的胶卷还可拍几张照片?
分析与解:甲代表团坐满若干辆车后余11人,说明甲代表团的人数(简称甲数)除以36余11;两代表团余下的人正好坐满一辆车,说明乙代表团余36-11=25(人),即乙代表团的人数(简称乙数)除以36余25;甲代表团的每个成员与乙代表团的每个成员两两合拍一张照片,共要拍“甲数×乙数”张照片,因为每个胶卷拍36张,所以最后一个胶卷拍的张数,等于“甲数×乙数”除以36的余数。
因为甲数除以36余11,乙数除以36余25,所以“甲数×乙数”除以36的余数等于11×25除以36的余数。
(11×25)÷36=7……23,
即最后一个胶卷拍了23张,还可拍36-23=13(张)。
由例6看出,将实际问题转化为我们熟悉的数学问题,有助于我们思考解题。
H. C语言和:操作符怎么用
C语言?和:是三目运算符,也叫三元运算符。
语法:表达式 ? 表达式2 : 表达式3;
函数:先执行表达式1,执行完毕,如果表达式1的结果为真,则执行表达式2,整个表达式的结果就是表达式2的结果,否则执行表达式3,结果是表达式3的结果。
例如:int res=1?10:20;
可以简单理解为表达式1成立吗?成立执行表达式2,否则执行表达式3。
(8)c语言操作符扩展阅读:
关于三目运算符的几点说明:
1、通常,表达式1是用于描述条件表达式中的条件的关系表达式或逻辑表达式。表达式2和3可以是常量、变量或表达式。例如:
(x==y)?y':'n'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='a'&&ch<='z')?(CH+32):CH
2、条件表达式的执行顺序为:首先求解表达式1。如果值为非零,则条件为真,则求解表达式2,并将表达式2的值用作整个条件表达式的值;
如果表达式1的值为0,表示条件为假,则解方程3,表达式3的值是整个条件表达式的值。例如:
(a>=0)?a:-a执行的结果是a的绝对值。
3、在程序中,直接将条件表达式的值赋给变量。例如:
min=(a<b)的结果?a:b是将条件表达式的值赋给变量min,即a和b中的较小者赋给min。