×

c语言的表达式

c语言的表达式(求c语言表达式大全)

admin admin 发表于2022-12-23 20:56:01 浏览38 评论0

抢沙发发表评论

本文目录

求c语言表达式大全


C语言语法参考大全(流程控制语句) ----------------------------------------------------------------------------------------------------------01条件语句的一般形式为: if(表达式) 语句1; else 语句2; 上述结构表示: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语 句1从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。 注意: 1. 条件执行语句中“else 语句2;“部分是选择项, 可以缺省, 此时条件语句变成: if(表达式) 语句1; 表示若表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。 2. 如果语句1或语句2有多于一条语句要执行时, 必须使用“{“和“}“ 把这些语句包括在其中, 此时条件语句形式为: if(表达式) { 语句体1; } else { 语句体2; } 3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个if对应哪else。 例如: if(x》20||x《-10) if(y《=100&&y》x) printf(“Good“); else printf(“Bad“); 对于上述情况, Turbo C2.0规定: else语句与最近的一个if语句匹配, 上例中的else与if(y《=100&&y》x)相匹配。为了使else与if(x》20||x《-10)相匹配, 必须用花括号。如下所示: if(x》20||x《-10) { if(y《=100&&y》x) printf(“Good“); } else printf(“Bad“); 4. 可用阶梯式if-else-if结构。 阶梯式结构的一般形式为: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; . . else 语句n; 这种结构是从上到下逐个对条件进行判断, 一旦发现条件满点足就执行与它有关的语句, 并跳过其它剩余阶梯; 若没有一个条件满足, 则执行最后一个else语句n。最后这个else常起着“缺省条件“的作用。 同样, 如果每一个条件中有多于一条语句要执行时, 必须使用“{“和“}“把这 些语句包括在其中。 02switch语句 在编写程序时, 经常会碰到按不同情况分转的多路问题, 这时可用嵌套if-else-fi语句来实现, 但if-else-if语句使用不方便, 并且容易出错。对这种情况, Turbo C2.0提供了一个开关语句。 开关语句格式为: switch(变量) { case 常量1: 语句1或空; case 常量2: 语句2或空; . . . case 常量n; 语句n或空; default: 语句n+1或空; } 执行switch开关语句时, 将变量逐个与case后的常量进行比较, 若与其中一个相等, 则执行该常量下的语句, 若不与任何一个常量相等, 则执行default 后面的语句。 注意: 1. switch中变量可以是数值, 也可以是字符。 2. 可以省略一些case和default。 3. 每个case或default后的语句可以是语句体, 但不需要使用“{“和“}“括起来。 下例的switch中变量为整数型。 main() { int test; for(test=0; test《=10; test++) { switch(test) /*变量为整型数的开关语句*/ { case 1: printf(“%d “, test); break; /*退出开关语句*/ case 2: printf(“%d “, test); break; case 3: printf(“%d “, test); break; default: puts(“Error“); break; } } } 下例的switch中变量为字符型。 #include《stdio.h》 main() { char c; while(c!=27) /*循环直到按Esc键结束*/ { c=getch(); /*从键盘不回显接收一个字符*/ switch(c) { case A: /*接收的字符为A*/ putchar(c); break; /*退出开关语句*/ case B: putchar(c); break; default: /*接收的字符非A和B*/ puts(“Error“); break; } } } 03for循环 for循环是开界的。它的一般形式为: for(《初始化》; 《条件表过式》; 《增量》) 语句; (1)初始化总是一个赋值语句, 它用来给循环控制变量赋初值; (2) 条件表达式是一个关系表达式, 它决定什么时候退出循环; (3) 增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;“分开。 例如: for(i=1; i《=10; i++) 语句; 上例中先给i赋初值1, 判断i是否小于等于10, 若是则执行语句, 之后值增加1。再重新判断, 直到条件为假, 即i》10时, 结束循环。 注意: 1. for循环中语句可以为语句体, 但要用“{“和“}“将参加循环的语句括起来。 2. for循环中的“初始化“、“条件表达式“和“增量“都是选择项, 即可以缺省, 但“;“不能缺省。省略了初始化, 表示不对循环控制变量赋初值。 省略了条件表达式, 则不做其它处理时便成为死循环。省略了增量, 则不对循环控制变量进行操作, 这时可在语句体中加入修改循环控制变量的语句。 3. for循环可以有多层嵌套。 例16: main() { int i, j, k; printf(“i j k “); for (i=0; i《2; i++) for(j=0; j《2; j++) for(k=0; k《2; k++) printf(%d %d %d “, i, j, k); } 04while循环与do-while 循环 while循环的一般形式为: while(条件) 语句; while循环表示当条件为真时, 便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句. 例17: #include《stdio.h》 main() { char c; c=; /*初始化c*/ while(c!=X0D) /*回车结束循环*/ c=getche(); /*带回显的从键盘接收字符*/ } 上例中, while循环是以检查c是否为回车符开始, 因其事先被初始化为空,所以条件为真, 进入循环等待键盘输入字符; 一旦输入回车, 则c=X0D, 条件为假, 循环便告结束。 与for循环一样, while循环总是在循环的头部检验条件, 这就意味着循环可能什么也不执行就退出。 注意: 1. 在while循环体内也允许空语句。 例如: while((c=getche())!=X0D); 这个循环直到键入回车为止。 2. 可以有多层循环嵌套。 3. 语句可以是语句体, 此时必须用“{“和“}“括起来。 例18: #include《stdio.h》 main() { char c, fname; FILE *fp; /*定义文件指针*/ printf(“File name:“); /*提示输入文件名*/ scanf(“%s“, fname); /*等待输入文件名*/ fp=fopen(fname, “r“); /*打开文件只读*/ while((c=fgetc(fp)!=EOF) /*读取一个字符并判断是否到文件结束*/ putchar(c); /*文件未结束时显示该字符*/ } 05do-while 循环 do-while 循环的一般格式为: do 语句; while(条件); 这个循环与while循环的不同在于: 它先执行循环中的语句, 然后再判断条件是否为真, 如果为真则继续循环; 如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。同样当有许多语句参加循环时, 要用“{“和“}“把它们括起来。 06continue 语句 continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。 continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用, 用来加速循环。 main() { char c; while(c!=0X0D) /*不是回车符则循环*/ { c=getch(); if(c==0X1B) continue; /*若按Esc键不输出便进行下次循环*/ printf(“%c “, c); } } 07break语句 break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时, 可使程序跳出switch而执行switch以后的语句; 如果没有break语句, 则将成为一个死循环而无法退出。 当break语句用于do-while、for、while循环语句中时, 可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。 即满足条件时便跳出循环。 main() { int i=0; char c; while(1) /*设置循环*/ { c=; /*变量赋初值*/ while(c!=13&&c!=27) /*键盘接收字符直到按回车或Esc键*/ { c=getch(); printf(“%c “, c); } if(c==27) break; /*判断若按Esc键则退出循环*/ i++; printf(“The No. is %d “, i); } printf(“The end“); }

C语言中什么是逻辑表达式,什么是关系表达式举几个例子


逻辑表达式是指运算符为或||、与&&、非!的表达式。返回值为0或1,0表示daofalse,非0表示true. 例如!0返回1,0&&1返回0,0||1返回1。

关系表达式是指运算符为《,《=,》,》=,==,!=的表达式。返回值同样为0或1,例如a!=b,a》=0等。

C语言用整数"1"表示"逻辑真"、用"0"表示"逻辑假"。但在判断一个数据的"真"或"假"时,却以0和非0为根据:

如果为0,则判定为"逻辑假";如果为非0,则判定为"逻辑真"。

例如,假设num=12,则: !num的值=0 ,num》=1 && num《=31的值=1 ,num || num》31的值=1。

逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。

短路原则:非常重要,在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。换句话说:

对于逻辑与运算,如果第一个操作数被判定为"假",系统不再判定或求解第二操作数;对于逻辑或运算,如果第一个操作数被判定为"真",系统不再判定或求解第二操作数。

扩展资料:

C语言逻辑表达式注意:

由于浮点数在计算机中不能非常准确地表示,所以,判断两个浮点数是否相同时,通常不使用关系运算符“等于”(==),而是利用区间判断方法来实现。为了判断x是否等于5.003,可利用如下逻辑表达式:x》5.002 && x《5.004。

当此逻辑表达式为“真”时,就可以认为x等于5.003

逻辑及性质保真性:所有变量的真值皆为“真”的命题在逻辑或运算后的结果为真。保假性:所有变量的真值皆为“假”的命题在逻辑或运算后的结果为假。

参考资料:百度百科-逻辑表达式


C语言条件表达式


由条件运算符及其相应的操作数构成的表达式称为条件表达式。

条件表达式的一般形式:表达式1?表达式2:表达式3

含义:若条件表达式1的值非0,则该条件表达式的值是表达式2的值,否则是表达式3的值。

例如:

1、max=((a》b)?a:b)

就是将a和b二者中较大的一个赋给max。

2、min=(a《b)?a:b

就是将a和b二者中较小的一个赋给min。

扩展资料

条件表达式的优先级

条件运算符优先级高于赋值、逗号运算符,低于其他运算符

例如: int m=5,n=10,a=1,b=3

(1) m《n ? X: a+3

等价于: (m《n) ?(x) :(a+3)

(2) a++》=10 && b--》20 ? a : b

等价于: (a++》=10 && b--》20) ? a : b

(3) x=((3+a》5 )? 100 : 200)

等价于:x=((3+a》5)?100:200)


谈谈C语言的表达式


main()
{int,a=10、b=20;
c=a+b;
printf(%d,c)}这是基本表达式,main(主函数)之后的小括号不能省略,大括号内容即为函数体,每行分号不能省略,以示这句话完结。

C语言表达式


#include《iostream》 #include《stdio.h》 #include《stdlib.h》 #include《string》 #include《math.h》 #define STACK_INIT_SIZE 100 using namespace std;typedef struct {char date[STACK_INIT_SIZE];int top;}OptrStack; //操作符结构体 typedef struct {double date[STACK_INIT_SIZE];int top;}OpndStack; //操作数结构体 //操作符相关操作 OptrStack *Init_OptrStack(); //置栈空 int Empty_OptrStack(OptrStack *s);//判空栈 int Push_OptrStack(OptrStack *s, char x);//入栈(注意:判断栈是否已满) char Pop_OptrStack(OptrStack *s, char x);//出栈(注意:判断栈是否已空) char GetTop_OptrStack(OptrStack *s, char x);//取栈顶元素,先判空 //操作数相关操作 OpndStack *Init_OpndStack();//置栈空 int Empty_OpndStack(OpndStack *t);//判空栈 int Push_OpndStack(OpndStack *t, double y);//入栈(注意:判断栈是否已满) double Pop_OpndStack(OpndStack *t, double y);//出栈(注意:判断栈是否已空) double GetTop_OpndStack(OpndStack *t, double y);//取栈顶元素 //表达式求值函数 void Error(char *s); //错误处理函数 int Judge_optr(char ch); //用于判断字符ch是否是运算符 int Operate(int a, int b, char top); //用于计算当前的值,并将该值返回 void Jsbds_operate(char str); //读入一个简单算术表达式的值 //操作符函数实现部分 OptrStack *Init_OptrStack() {OptrStack *s;s = (OptrStack *)malloc(sizeof(OptrStack));s-》top = -1;return s;}int Empty_OptrStack(OptrStack *s)//判空栈 {if (s-》top != -1)return 1;else return 0;}int Push_OptrStack(OptrStack *s, char x)//入栈(注意:判断栈是否已满) {if (s-》top == (STACK_INIT_SIZE - 1)){return 0;}else s-》date[++s-》top] = x;return 1;}char Pop_OptrStack(OptrStack *s, char x)//出栈(注意:判断栈是否已空) {if (!Empty_OptrStack(s)){return 0;}else x = s-》date[s-》top];s-》top--;return x;}char GetTop_OptrStack(OptrStack *s, char x)//取栈顶元素,先判空 {if (!Empty_OptrStack(s)){return 0;}else x = s-》date[s-》top];return x;}//操作数函数实现部分 OpndStack *Init_OpndStack()//置栈空 {OpndStack *t;t = (OpndStack*)malloc(sizeof(OpndStack));t-》top = -1;return t;}int Empty_OpndStack(OpndStack *t)//判空栈 {if (t-》top != -1)return 1;else return 0;}int Push_OpndStack(OpndStack *t, double y)//入栈(注意:判断栈是否已满) {if (t-》top == (STACK_INIT_SIZE - 1)){return 0;}else t-》date[++t-》top] = y;return 1;}double Pop_OpndStack(OpndStack *t, double y)//出栈(注意:判断栈是否已空) {if (!Empty_OpndStack(t)){return 0;}else y = t-》date[t-》top];t-》top--;return y;}double GetTop_OpndStack(OpndStack *t, double y)//取栈顶元素 {if (!Empty_OpndStack(t)){return 0;}y = t-》date[t-》top];return y;}//表达式求值函数实现 void Error(char *s) //错误处理函数 {std::cout 《《 s 《《 endl;exit(1);}int Judge_optr(char top)//用于判断字符ch是否是运算符 {int x;//cout 《《 top 《《 “test“ 《《 endl; switch (top){case ’+’:case ’-’:x = 1; break;case ’*’:case ’/’:x = 2; break;}return x;}double Operate(double b, double a, char top) //用于计算当前的值,并将该值返回 {double c = 0;switch (top){case ’+’:c = b + a;break;case ’-’:c = b - a;break;case ’*’:c = b * a;break;case ’/’:if (a == 0){printf(“分母为零!\n“);return 0;}else c = b / a;break;default:printf(“输入的字符非法!\n“);break;}return c;}void Jsbds_operate(char str) //读入一个简单算术表达式,并将计算结果返回到主函数 {OptrStack *optr = Init_OptrStack(); //初始化操作符栈 OpndStack *opnd = Init_OpndStack(); //初始化操作数栈 int i, j; //i,j为循环变量,a,b接收从操作数栈中出栈的元素 double f; //接收将字符数转换为浮点数的值 double a = 0;double b = 0;double c = 0;char d; //储存字符串中连续的‘数’ char top = 0; //接收从操作符栈中出栈的元素 for (i = 0; str[i]; i++) //将字符串中的元素按顺序入到栈中 {switch (str[i]){case ’+’:case ’-’:/*先判断当前运算符与操作符栈栈顶元素的优先级,如果高于栈顶元素,则入栈; 小于栈顶元素,则从操作数栈中依次出两个数,并将操作符栈中栈顶元素出栈, 再将从操作数栈中出的两个数,按从操作符栈栈中出的运算符运算, 并将结果压入操作数栈中,再将当前的操作符压入操作符栈中。*/ if (!Empty_OptrStack(optr)) //当操作符栈为空的时候压栈保存 {Push_OptrStack(optr, str[i]);}else {a = Pop_OpndStack(opnd, a); //接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b); //接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top);Push_OpndStack(opnd, c);//将计算后的值压入操作数栈中 Push_OptrStack(optr, str[i]);}break;case ’*’:case ’/’:if ((!Empty_OptrStack(optr))||(Judge_optr(str[i]) 》 Judge_optr(GetTop_OptrStack(optr, top)))){ //当操作符栈为空或者该操作符的优先级大于栈顶元素的优先级是入栈保存 Push_OptrStack(optr, str[i]);}else {a = Pop_OpndStack(opnd, a);//接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b);//接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top);Push_OpndStack(opnd, c);//将计算后的值压入操作数栈中 Push_OptrStack(optr, str[i]);}case ’\0’:break;default:j = 0;do {d[j++] = str[i];i++;} while (str[i] 》= ’0’ && str[i] 《= ’9’); //可存入一个或多个数字字符 d[j] = ’\0’; //将输入的连续多个数字字符拼成了字符串 i--;f = atof(d); //调用库函数atoi()将字符数转换为浮点数 Push_OpndStack(opnd, f); //将转换后的数压入操作数栈中 break;}}while (Empty_OptrStack(optr)) //当操作符栈不为空的时候执行 {a = Pop_OpndStack(opnd, a);//接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b);//接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top);Push_OpndStack(opnd, c);//将计算后的值压入操作数栈中 }cout 《《 “该表达式的计算结果为:“;std::cout 《《 GetTop_OpndStack(opnd, c) 《《 endl;//将操作数栈中的元素(即表达式的最终结果)打印出来 }int main() {char str;std::cout 《《 “请输入算术表达式(功能:+,-,*,/)“ 《《 endl;cin 》》 str;Jsbds_operate(str);return 0;}
二.包括括号运算(粘贴修改部分)
int Judge_optr(char top)//用于判断字符ch是否是运算符{ int x; //cout 《《 top 《《 “test“ 《《 endl; switch (top) { case ’(’: x = 0; break; case ’+’: case ’-’: x = 1; break; case ’*’: case ’/’: x = 2; break; case ’)’: x = 3; break; } return x;}double Operate(double b, double a, char top) //用于计算当前的值,并将该值返回{ double c = 0; switch (top) { case ’+’: c = b + a; break; case ’-’: c = b - a; break; case ’*’: c = b * a; break; case ’/’: if (a == 0) { printf(“分母为零!\n“); return 0; } else c = b / a; break; default: printf(“输入的字符非法!\n“); break; } return c;}void Jsbds_operate(char str) //读入一个简单算术表达式,并将计算结果返回到主函数{ OptrStack *optr = Init_OptrStack(); //初始化操作符栈 OpndStack *opnd = Init_OpndStack(); //初始化操作数栈 int i, j; //i,j为循环变量,a,b接收从操作数栈中出栈的元素 double f; //接收将字符数转换为浮点数的值 double a = 0; double b = 0; double c = 0; char d; //储存字符串中连续的‘数’ char top = 0; //接收从操作符栈中出栈的元素 for (i = 0; str[i]; i++) //将字符串中的元素按顺序入到栈中 { switch (str[i]) { case ’(’: case ’+’: case ’-’: /*先判断当前运算符与操作符栈栈顶元素的优先级,如果高于栈顶元素,则入栈; 小于栈顶元素,则从操作数栈中依次出两个数,并将操作符栈中栈顶元素出栈, 再将从操作数栈中出的两个数,按从操作符栈栈中出的运算符运算, 并将结果压入操作数栈中,再将当前的操作符压入操作符栈中。*/ if ((!Empty_OptrStack(optr)) || (Judge_optr(str[i]) 》 Judge_optr(GetTop_OptrStack(optr, top)))||(str[i]==’(’)) //当操作符栈为空的时候压栈保存 { Push_OptrStack(optr, str[i]); } else { a = Pop_OpndStack(opnd, a); //接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b); //接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top); Push_OpndStack(opnd, c); //将计算后的值压入操作数栈中 Push_OptrStack(optr, str[i]); } break; case ’*’: case ’/’: if ((!Empty_OptrStack(optr)) || (Judge_optr(str[i]) 》 Judge_optr(GetTop_OptrStack(optr, top))) || (str[i] == ’(’)) { //当操作符栈为空或者该操作符的优先级大于栈顶元素的优先级是入栈保存 Push_OptrStack(optr, str[i]); } else { a = Pop_OpndStack(opnd, a);//接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b);//接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top); Push_OpndStack(opnd, c); //将计算后的值压入操作数栈中 Push_OptrStack(optr, str[i]); } break; case ’)’: Push_OptrStack(optr, str[i]); break; case ’\0’: break; default: j = 0; do { d[j++] = str[i]; i++; } while (str[i] 》= ’0’ && str[i] 《= ’9’); //可存入一个或多个数字字符 d[j] = ’\0’; //将输入的连续多个数字字符拼成了字符串 i--; f = atof(d); //调用库函数atoi()将字符数转换为浮点数 Push_OpndStack(opnd, f); //将转换后的数压入操作数栈中 break; } } while (Empty_OptrStack(optr)) //当操作符栈不为空的时候执行 { if ((GetTop_OptrStack(optr, top) == ’)’) || (GetTop_OptrStack(optr, top) == ’(’)) { top=Pop_OptrStack(optr, top); } else { a = Pop_OpndStack(opnd, a);//接收从操作数栈中出栈的元素 b = Pop_OpndStack(opnd, b);//接收从操作数栈中出栈的元素 top = Pop_OptrStack(optr, top);//接收从操作符栈中出栈的元素 c = Operate(b, a, top); Push_OpndStack(opnd, c); //将计算后的值压入操作数栈中 } } cout 《《 “该表达式的计算结果为:“; std::cout 《《 GetTop_OpndStack(opnd, c) 《《 endl;//将操作数栈中的元素(即表达式的最终结果)打印出来

c语言的表达式是什么


推荐你一个比较全面的资料。
运算所需变量为一个的运算符叫单目运算符
有以下几类:
逻辑非运算符【!】、
按位取反运算符【~】、
自增自减运算符【++ --】、
负号运算符【-】、
类型转换运算符【(类型)】、
指针运算符和取地址运算符【*和&】、
长度运算符【sizeof】

在C语言中:表达式是什么意思


一、表达式的意义
  引表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。
  给与自由变量一些数值指定,可能可以给与一个表达式数值,即使对于一些自由变量的值,表示式或许没有定义。因此,一个表达式代表一个函数,其输入为自由变量的定值,而其输出则为表示式因之后所产生出的数值。
  举例来说,表达式x / y,分别使自由变量x和y定值为10和5,其输出为数字2;但在y值为0时则没有定义。
  一个表达式的赋值和算符的定义以及数值的定义域是有关联的。
  两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。
  一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。
  表达式和其赋值曾在一九三○年代由阿隆佐·邱奇和Stephen Kleene在其Λ演算中被公式化。Λ演算对现代数学和电脑编程语言的发展都曾有过重大的影响。
编辑本段
二、表达式的分类
  1、算术表达式:
  算术表达式是最常用的表达式,又称为数值表达式。它是通过算术运算符来进行运算的数学公式。我们先来看Visual Basic中的算术运算符:
  算术运算符
  1)乘法运算符 *
  X*Y 求X乘Y的值 举例:6*7=42
  2) 除法运算符 /
  X/Y 求X除Y的值(浮点数运算) 举例:2.76/1.2=2.3
  3)整除运算符 div
  X div Y 求X除Y的整数商(对整型数计算) 举例:25=5
  4)取余运算符 Mod
  X mod Y 求X除Y的余数(对整型数运算) 举例:25 mod 4=1
  5)加法运算符 +
  X+Y 加法运算 举例:32+2=34
  6)减法运算符 -
  - X-Y 减法运算 举例:48-21=27
  由于Visual Basic只能识别按其格式书写的数学表达式,所以必须将我们常用的数学表达式转换成Visual Basic表达式。
  2、逻辑表达式
  逻辑运算的结果只有两个:True(真)和False(假)。Visual Basic提供了六种关系运算符和三种逻辑运算符:
  =(等于)、《(小于)、《=(小于等于)、》(大于)、》=(大于等于)、《》(不等于)
  NOT(非)、AND(与)、OR(或)
  运算关系
  p q NOT p p AND q p OR q
  True True False True True
  True False False False True
  False True True False True
  False false True False False
  例如:5》3 结果为 True, “a”》”b” 结果为False
——来自百度百科
详细请参加百度百科: 表达式 条目。不给网址,给网址需要审核,麻烦。
度娘会告诉你更多的。