C 语言集训-邹振鹏-第三次作业

191 阅读4分钟

运算符

算数运算符

名称符号说明
加法运算符+双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有右结合性。
减法运算符-双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。
乘法运算符*双目运算符,具有左结合性。
除法运算符/双目运算符,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。
求余运算符(模运算符)%双目运算符,具有左结合性。要求参与运算的量均为整型,不能应用于float或double类型。 求余运算的结果等于两数相除后的余数,整除时结果为0。
符号运算符- 和 +一元运算符,用于标记和改变一个值的代数符号。

关系运算符

关系运算符含  义数学中的表示
<=小于或等于
>=大于或等于
<小于<
大于>
==等于=
!=不等于

逻辑运算符

设变量A和B的值分别为0和1.

运算符解释例子
&&逻辑与运算符。如果两个操作数都非零,则条件为真(A && B)为假
逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真(AB)为真
!逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假!(A && B)为假

赋值运算符

变量 = 赋给概变量的值;

其中‘=’为赋值运算符,表示将右边的值赋给左边的变量(不是相等)

自增自减

‘++’和‘--’分别表示自加和自减,符号与变量的位置不同含义不同

设有变量A

例子含义
++A表示先加一后使用A
A++表示先使用A后加一
--A表示先减一后使用A
A--表示先使用A后减一

三目运算符

(条件)?结果1:结果2;

含义:当条件为真时,此运算符运行结果为结果1;
当条件为假时,此运算符运行结果为结果2.

优先级

流程控制

  • if else 语句

    if(条件表达式)
    {
        复合语句A; //if体
    }
    else
    {
        复合语句B; //else体
    }`
    

    如果条件表达式为真,执行复合语句A;
    如果条件表达式为假,执行复合语句B;

  • for 语句

    • 一般形式

      for(单次表达式;条件表达式;末尾循环体)
      
      {
      
      中间循环体;
      
      }
      

      其中表达式可以省略,但分号不可省略

  • while 语句

    while (表达式)
    {
           复合语句;
    }
    

    当表达式为真时,执行复合语句

  • switch 语句

    switch(表达式)
    {
        case 整型数值1: 语句 1;
        case 整型数值2: 语句 2;
        ......
        case 整型数值n: 语句 n;
        default: 语句 n+1;
    }
    

    先计算表达式的值,之后从第一个case开始,将表达式的值与执行数值比较,如果相等,则从此语句开始执行到n+1语句;如果不等,则与下一个语句比较;

  • do while 语句

    do
    
    {
    
    循环体;
    
    }
    
    while (条件表达);
    

和while语句相似,不过while先判断,后执行;而do while 先执行后判断

  • break与continue区别
    break:从循环中跳出;
    continue:跳出此循环,进入下一个循环;

课后习题

  • 5.10 第七题 第十三题
    • 第十三题
      a. x = x-1;
      b. m = n%k;
      c. p = q/b-a;
      d. x = (a+b)/(a*b);

    • 第七题

#include <stdio.h>
int main(void)
{
    char c1,c2;
    int diff;
    float num;

    c1 = 'S';
    c2 = 'O';
    diff = c1 - c2;
    num = diff;
    printf("%c%c%c:%d %3.2f\n",c1,c2,c1,diff,num);
    return 0;
}

运行结果

image.png

  • 5.11 第三题 第八题

    • 第三题
    
    #include <stdio.h>
    #define WEEK 7
    int main(void)
    {
        int a,b,c;
    
        printf("Please enter days!\n");
        scanf("%d",&a);
    
        b = a/WEEK;
        c = a%WEEK;
    
        printf("%d days are %d weeks, %d days.\n",a,b,c);
    
        return 0;
    }
    

    运行结果

    image.png

    • 第八题
    #include <stdio.h>
    int main(void)
    {
        int a,b;
        b = 1;
    
        printf("Please enter a numbers:");
        scanf("%d",&a);
        while (b>=0)
        {
            printf("Please enter next number:\n");
            /* code */
            scanf("%d",&b);
            printf("The value of remainders is %d",b%a);
        }
    
        return 0;
    }
    

    运行结果

    image.png

  • 6.16 第五题 第十二题 (计算机二级内容) 第十八题
    • 第五题
* 第十二题  

```#include <stdio.h>
#include <math.h>
int main(void)
{
    double num1,num2,i;
    int n;

    while(1)
    {
    printf("\nPlease enter the number of times the sum was added\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        num1 = num1+(1/i);
        num2 = num2+pow(-1,i+1)*(1/i);
    }
    printf("%f\n%f",num1,num2);
    }

    return 0;
}
```
运行结果

![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6b9f5b8a4ad24c3fa52203b184302ce5~tplv-k3u1fbpfcp-watermark.image?)
* 第十八题

```
#include <stdio.h>
int main(void)
{
    int n,i;
    n = 5;
    i = 1;

    while(n<=150)
    {
        n = (n-i)*2;
        i++;
        printf("%d\n",n);
    }

    return 0;
}
```
运行结果

![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/12f6cd3e93224a19ae97651752d0029b~tplv-k3u1fbpfcp-watermark.image?)
  • 7.11 第二题 第十题

    • 第二题
      a. 10<=number<=100
      b. (ch!='q')||(ch!='k')
      c. (1<=number<=9)&&(number!=5)
      d.!(1<=number<=9)
    • 第十题
    #include <stdio.h>
    int main(void)
    {
       char ch;
    
       while ((ch = getchar()) != '#')
       {
            if (ch == 'c')
                printf("Step 1\n");
    
            else if (ch == 'b'){
                 printf("Step 1\n");
                 break;
            }
            else if (ch == 'h'){
                printf("Step 3\n");
            }
            else if(ch == '\n');
    
            else{
                printf("Step 1\n");
                printf("Step 2\n");
                printf("Step 3\n");
            }
    
    
    
       }
       printf("Done\n");
    
       return 0;
    }
    

    运行结果

    image.png

杭州oj注册

图片 image.png