LinuxC学习日常——语句

来源:互联网 发布:网络语言王炸什么意思 编辑:程序博客网 时间:2024/06/10 12:42

今天学习了C语言的一系列运算符表达式,语句中的顺序结构、选择结构和循环结构

一、运算符

1、基本算术运算符

+ (加)、 - (减) 、 * (乘) 、 / (除) 和 % (求余数)

这五个运算符的优先级为:*、/ 和%同级,但比+和-高。即先乘除后加减。

两个整数相除,结果为一整数;分子小于分母,结果为零。

这五个运算符的结合性为:自左至右。

对于取余运算符%结果的符号与%左边的数一致。

2、赋值运算符

赋值符号:=

将赋值符右边表达式的值赋给赋值符左边的一个变量。

赋值运算符的数据类型若不一致,则要进行类型转换。转换方式为:

将实型数据赋给整型变量时,舍弃实数的小数部分。

将整型数据赋给实型变量时,数值不变。

复合的赋值运算符:(共十个)

+= ,  -= ,  *= ,  /=  ,   %= , <<= ,  >>= ,  &= ,  ^= ,  |=

3、关系运算符

关系运算符用于两个数值之间的比较运算。C语言提供6种关系运算符:

<、<=、>、>=、  优先级相同

 ==、!=                    优先级相同

关系运算符的结合率为:“自左而右”。

4、条件运算符

条件运算符:  ? : 它是一个三目运算符。

条件表达式的一般格式为:

表达式1  ?  表达式2  :    表达式3       

运算过程:表达式1的结果为真(非0)时,表达式2的计算结果作为条件表达式的值;否则,取表达式3的计算结果为条件表达式的值。

如: a>b?a:b 

5、逗号运算符

逗号运算符:  ,

格式: 表达式1, 表达式2, 表达式3, LL, 表达式n

优先级: 最低

从左向右计算每个表达式的值,逗号表达式的值为表达式n的值。

例如:

y=(x=3,5+6,x+5) 逗号表达式的值为8。

6、自增自减运算符

自增、自减运算符:++ ,  --  (使变量的值增1或减1)

例如:  ++i  ,  --i     (先自增或自减,在整个表达式运算之前先自增或自减,适用于windows)

  i++  ,   i--    (后自增或自减,在整个表达式运算结束以后再进行自增或自减运算, 适用于windows)

对于sizeof关键字会将表达式改为最终的类型而不是表达式本身,sizeof内赋值操作无效。

main()

{

int x=8,y,z;

y=(++x)+(x++)+(++x);   

z=(--x)+(x--)+(++x);  

printf(“y=%d,z=%d,x=%d”,y,z,x);

}

在windows系统结果为 y = 30 , z =  33 , x = 10

在Linux系统结果为y = 28 , z = 31 , x = 10


二、语句

1、选择结构

(1)if语句

#if 0if (表达式)   {语句1;}表达式为真 执行语句1if (表达式)   {语句1;}else{语句2;}表达式为真 执行语句1为假,执行语句2if (表达式1)   {语句1;}else if(表达式2){语句2;}else{语句3;}表达式1为真 执行语句1为假,如果表达式2为真执行语句2否则,执行语句3#endif

// 输入三个实数a,b,c,按代数值由小到大次序输出这三个数。int main(){float a;float b;float c;scanf ("%f, %f, %f", &a, &b, &c);float tmp;if (a > b){tmp = a;a = b;b = tmp;}if (a > c){tmp = a;a   = c;c   = tmp;}if (b > c){tmp = b;b   = c;c   = tmp;}printf ("%f, %f, %f\n", a, b, c);return 0;}


(2)switch语句

#if 0switch(表达式){case 表达式1:语句1;break;case 表达式N:语句2;break;default:语句N;break;}表达式的结果必须要是一个整数#endif
/*编写一个能进行两个操作数加减乘除四则运算的计数器模拟程序输入:两个操作数和运算符计算:根据运算符确定运算输出:运算结果*/int main(){int a,b;int result;char ch;/*scanf ("%d", &a);scanf ("%d", &b);scanf ("%c", &ch);scanf ("%c", &ch);*/scanf ("%d %c %d", &a, &ch, &b);switch (ch){case '+':result = a + b;break;case '-':result = a - b;break;case '*':result = a * b;break;case '/':result = a / b;break;default:printf ("非法的操作符\n");break;}printf ("%d\n", result);return 0;}

2、循环结构

(1)while语句

// 计算一条语句中的空格、字母、数字的个数。int main(){char ch = 0;int space_count  = 0;int letter_count = 0;int num_count    = 0;while(ch != '\n'){ch = getchar();if (ch == ' ')space_count++;if ((ch >= 'a' && ch <= 'z')  || (ch >= 'A' && ch <= 'Z'))letter_count++;if (ch >= '0' && ch <= '9')num_count++;}printf ("space_count  : %d\n", space_count);printf ("letter_count : %d\n", letter_count);printf ("num_count    : %d\n", num_count);return 0;}

(2)do while语句

// 1  --  100int main(){int sum = 0;int i = 1;do {sum += i;i++;}while(i <= 100);printf ("%d\n", sum);return 0;}
(3)for语句

/*求100到200之间的素数。输入:无计算: 求素数输出: 输出素数 每4个一行 每个数占4位*/int main(){int i;int j;int flag = 0;int count = 0;for (i = 100; i <= 200; i++){int k = sqrt(i);flag = 0;for (j = 2; j <= k; j++){if (i % j == 0){flag = 1;break;  // 只会跳出一层循环}}if(flag != 1){if (count++ % 4 == 0)putchar ('\n');printf ("%4d", i);}}putchar ('\n');return 0;}
break语句的功能是:

在switch语句中使流程跳出switch结构。

在循环语句中使流程跳出当前循环。

continue语句的功能是在循环语句中使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。





             



原创粉丝点击