2024.7.20 学习c语言第四天,明天休息

1、求100之内自然数中最大的能被17整除的数。

#include <stdio.h>
#include <math.h>
int main(){
    int i;
    for(i=100;i>0;i--){
        if(i%17 == 0 ){
        printf("%d ",i);
        }
    }
    return 0;
}

3、计算并输出200-400之间不能被3整除的整数的和。

#include <stdio.h>
int main(){
    int i;
    int sum = 0;
    for(i=400;i>200;i--){
        if(i%3 == 0 ){
            printf("%d\n ",i);
            sum+= i;
        }
    }
    printf("[200-400)之内所有不能被3整除的数的和是%d", sum);
    return 0;
}

4、从键盘输入10个数,统计非负数的个数,并计算非负数的和

#include<stdio.h>
int main(){
    int a[10] = {0};
    int c = 0;
    int sum = 0;
    for(int i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i = 0;i<=9;i++){
        if(a[i]>=0)

        {
            sum+=a[i];
            c++;
        }
}
    printf("%d %d",c,sum);
    return 0;
}

1.基本算术运算符

所有表达式的运算符:

从左向右两两运算比较优先级,左边高的先计算左边的,右边优先级高的,继续向右走,直到找的相对最高的运算符进行计算,如果优先级相同,看结合性(单目运算右结合,双目运算左结合,三目运算嵌套右结合,计算左结合)

左结合,先计算左边

右结合,继续向右走,直到找到最高的优先级进行计算,

重复以上步骤

注意短路

关于:/

  1. 两个整形数相除,必得整形数,必为地板数;
  2. 分子或分母有一个浮点型数,即为通常意义的除法。
  3. 分母不能为0,否则崩溃。

关于:%取余

  1. 用于计算两个数相除后,得到的余数。
  2. 参与计算的量,必须是整型,其结果也是整型
  3. 某个数和n取余,其结果的范围是【0,n-1】

2. 自增、自减运算符

含义

运算符

优先级

结合性

功能

自增

++

2

右结合

使变量的值增1

自减

--

2

右结合

使变量的值减1

使用形式

Œ ++i --i  变量i先自增或自减1,再引用i

 i++i--   先使用变量i,再自增或自减1 

3.关于++   --

(1)

单独的i++或++i,没有区别。

单独的i--或者--i;没有区别。只有变量才能自增自减

 ( 2).

当i++或者++i在其他表达式上没有区别

符号在前,先自增,在参与所在表达式的运算。

变量在前,先参与所在表达式的运算,在自增。

同理,i--和--i也是如此

(3)

当连续多个+或者多个-一起写的情况

例:i++++i,编辑器会识别前两个++或钱2个-为自增自减运算符。

void main( )

{  int  i=6, a, b;

    printf(“%d\n”, ++i );

    printf(“%d\n”, i++ );

    a=--i ;   printf(“%d\n”, a );

    b=i--;   printf(“%d\n”, b );

    printf(“%d\n”, -i++) ;

    printf(“i=%d\n”, i );

}

练习

#include <stdio.h>
   int main(){
       int a[10] = {1, 2,3, 4,5,6};
       int *p = a;
       if(p[2] == a[2]){
           printf("ok\n");
           }
       p++;//p+n表示p代表的地址向右偏移n个存储单元,得到一个新的地址值。
       p=p+2;
       printf("%d",p[2]);

       return 0;
    }

注意

自增、自减运算只能用于变量, 不能用于常量和表达式。

    例:   i++                 为合法的运算

         ++6, ++(a+b)      为非法的运算

自增、自减运算符是两个+或两个-的一个整体, 中间不能有空格。如果有多于两个+ 或两个-连写的情况,则编译首先识别前两个+或-为增量或减量运算符。

表达式 x+++y 等价于 (x++)+y

自增、自减运算符的运算顺序是右结合,因此对-i++应理解为:   -(i++),而 (-i )++ 是非法的。

          例:      i=3 ;

                printf(“%d”, -i++);    输出:-3

4.标准函数

关于大小端

CPU在处理整型数时,把高字节放到低地址,叫大端

                    把低字节放到低地址,叫小端

练习

#include <stdio.h>
int main(){
    int a = 0*12345678;
    int * p = &a;
    char * q = (char *)p;
    if(q[0]==0*78){
        printf("小端\n");

    }
    else{
        printf("大端!\n");
    }
    return 0;
}

 

5.强制类型转换

格式:

    (数据类型说明符)(表达式)

 注意:

强制转换属单目运算, 运算优先级为2。

强制转换得到的是中间结果类型,原变量类型不变。

数据类型说明符和表达式都必须加括号(单个变量除外)

例:  int  x, y ;    float  z ;

            (float)(x+y) ;

            (int)z+x ;

            (float)(5%3);     (将5%3的值转换为float型)

6.优先级

含义

运算符

优先级

结合性

小于

<

6

左结合

小于等于

<=

大于

>

大于等于

>=

等于

==

7

不等于

!=

算数运算符

自增自减

强转

关系运算符

计算结果只能是0或者1  :0假  1真

只能表示两者之间的关系;否则用逻辑运算符连接

7.逻辑运算符

含义

运算符

优先级

结合性

逻辑非

!

2

右结合

逻辑与

&&

11

左结合

逻辑或

||

12

左结合

注意结果一定是0或1

注意短路

8.三目运算符:

?:   a>b? a:b

条件运算符可以嵌套,  这种嵌套是右结合的。

9.作业


求125之内自然数中偶数之和。

编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。

编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
                                                            周天休闲,结束!

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值