C语言集训—谢思静—第三次作业

140 阅读3分钟

1.学习笔记

1. 运算符

  • 算数运算符

  • 关系运算符

  • 逻辑运算符

  • 赋值运算符

  • 优先级别

    由于打出来的符号间距较小, 不容易区分,我以图片的形式呈现,以下是总结: image.png

这里强调一下赋值运算符,举个例子:

a + = 3 即a = a+3

a / = 3 即a = a/3

  • 自增自减


int main()
{
   int i,j ,k,m;
   i=j=3;
   k=++i;
   m=j++;
   printf("i=%d,j=%d,k=%d,m=%d",i,j,k,m);
    return 0;
}

2.流程控制(非常重要!!!)

  • 流程控制的含义:程序代码执行的顺序

  • 流程控制的顺序

    顺序执行

    选择执行

    循环执行

1.选择. if的最简单用法(基础)


# include 

int main(void)
{
    if (3)
       printf("AAAA\n");  
    if (0)
       printf("BBBB\n");
    if (0 == 0)
       printf("CCCC\n");
       
       return 0;
 }
 
 

运行实操:

image.png

2.if的范围问题(重点)

image.png

  • 总结:由此可见,if只能控制一个语句的执行或不执行,如果想控制多个语句的执行或不执行,就必须把这些语句用{}括起来。

3.选择. if ...else 的用法


# include 

int main(void)
{
    if (2>1)
       printf("AAAA\n");  
    else 
       printf("BBBB\n");
    printf("CCCC/n");
         
       return 0;
 }
 
 

代码实操:

image.png

  • 详解:以上图中代码为例,if(2>1)为条件,若满足这个条件,则输出为AAAA,反之,若不满足这个条件,则输出为BBBB。

  • 注意:printf("CCCC/n")为第二个语句,不属于if管辖范围,因此无论是否满足2>1这个条件,都会输出CCCC。

4.循环 .for语句的用法


# include 

int main(void)
{
    int i;
    int sum = 5;

    for (i = 1; i < 10; i+=2);
    {
        sum = sum + i;
        printf ("hahahahaha\n");
    }

       return 0;
 }
 
 

代码实操:

image.png

注意:图中printf()是为了检验代码运行是否成功

5.while的语句用法


# include 

int main(void)
{
    int i;
    int sum = 0;

    i = 1;
    while (i < 101)
    {
        sum = sum + i;
        ++i;
    }

    printf("sum = %d\n", sum);

       return 0;
 }
 
 

代码实操: image.png

  • 注意:for 和while 通常情况下是可以相互转换的,只不过for 用的情况更多且不容易出错。

6.一元二次方程用do...while语句


# include 
# include 
int main(void)
{
	
		double a,b,c;
		double delta;
		double x1,x2;
		char ch;
		
		do
		{
			printf("请输入一元二次方程的三个系数:\n");
			printf("a = 1");
			scanf("%lf",&a);
			
			printf("b = 2");
			scanf("%lf",&b);
			
			printf("c = 3");
			scanf("%lf",&c);
			
			delta = b*b - 4*a*c;
			
			if(delta > 0)
			{
				x1 = (-b + sqrt(delta))/(2*a);
				x2 = (-b - sqrt(delta))/(2*a);
				printf("有两个解! x1 = %lf,x2 = %lf\n",x1,x2);
			}
			else if(delta == 0)
			{
				x1 = x2 = (-b)/2*a;
				printf("有一个唯一解!x1 = x2 =%lf\n",x1,x2);
			}
			else
			{
				printf("无实数解!\n");
			}
			
			printf("您想继续吗?(Y/N):");
			scanf(" %c",&ch);
	}
	  
	    while('Y'==ch || 'y'==ch);
	return 0;
}

代码实操:

image.png

7.break的语句用法:

  • break用于循环是终止循环
  • break用于switch是为了终止
  • break是不能直接用于if的,除非if属于循环内部的一个语句


#include
int main()
{
    int x=1,y=0,a=0,b=0;
    switch(x)
    {
    case 1:
        switch(y)
        {
        case 0:
            a++;
            break;
        case 1:
            b++;
            break;
        }
        break;
        case 2:
            a++;
            b++;
            break;

    }
    return 0;
}

代码实操:

image.png

8.continue的用法

  • 本次循环的结束语,用于判断下次循环是否继续。

2.课本笔记:

5.10第七题

输出结果为:sos 44.00

image.png

5.10第十三题

代码如下所示:



int main()
{
    int a,b,c;
     printf("请输入天数:");
     scanf("%d",&a);
     b=a/7;
     c=a%7;
     printf("%d周%d天",b,c);

    return 0;
}

5.11第三题


#include  
int main()
{
    int a, b, c;
    
    do
    {
    printf("请输入天数:");
    scanf("%d",&a);
    b = a%7;  
    c = a/7;
    printf("%d days are %d weeks, %d days\n",a, c, b);
    }while (a > 0);
    
    return 0;
}

代码实操:

image.png

5.11 第八题


#include  
int main()
{
    int a, b, c, d;

    printf("请输入第一个整数:");
    scanf ("%d",&a);
    do
    {
        printf("请再次输入一个整数:");
        scanf ("%d",&b);
        c = b%a;  
        printf("%d\n",c);
    }while (b > 0);
    
    return 0;
}

代码实操:

image.png

6.16

第五题和第十二题都不太会嘿嘿嘿。

7.11第二题

a. number >= 90 && number <100;
b. ch!='q' && ch!='k';
c. number >= 1 && number <= 9 && number != 5;
d. number < 1 || number >9

7.11第十题


int main(void)
{
	char ch;
	while((ch=getchar())!='#')
	{
	    if(ch!='\n')
            ;//执行空语句
        printf("Step 1\n");
        if(ch!='c')
            ;//执行空语句
        else if(ch=='b')
            break;
        else if(ch=='h')
            printf("Step 3\n");
        printf("Step 2\n");
	}
	printf("Done\n");
 return 0;
}