c语言集训席永强第三次作业

152 阅读3分钟

一.学习内容

1.运算符

  • 算数运算符

+,-,/,%(取余),*. 对于/的运算,如果被除数与除数都为整数则商为整数,如果有一个为浮点数则商的输出为浮点数;而%运算,商的符号只与被除数有关

  • 关系运算符

,<,<=,>=;!=(不等于);==;

  • 逻辑运算符

!非;&&且;||或;注意:当&&左为假,则右不会执行;当||的左为真,则右不会执行。

  • 赋值运算符

=;+=;-=;即a+=3为a=a+3.

  • 自增自减

**自增:**后自增:a++,即a不断地加1下去;**自减:**a--即a不断的减1下去。 前自增:++a。 不同之处:前自增整体表达式的值是a加1之后的值 后自增整体表达式的值是a加1之前的值

  • 三目运算符

格式: A?B;C 等价于 if(A) B; else C;

  • 运算符的优先级

算数>关系>逻辑>赋值。当区别运算的先后是我们可以采用()来方便判断运算顺序。

2.流程控制

定义:

程序代码执行的顺序

分类

顺序:按由上到下,由左到右。

选择:有选择的执行代码

1.if else
  • if的简单用法 1.格式: if(表达式) 语句 功能: 如果表达式为真,则执行语句,否则不执行。注意:如果if后面接有两个以上的语句,则只执行第一个语句;如果控制多个语句,则需要用{}将其括起来。

2.if 。。。。 else if 。。。else用法

格式: if(1) A else if(2) B else if(3) C else D

循环:重复某一个或多个环节

  • for语句

for(语句A;语句B;语句C) | for | 语句A| 语句B | 语句C | |---|---|---|---| | | 初始条件 | 循环条件 | 循环动作 | eg(框架):for(int i=1;i<=n;i++){ fact*=i; }

  • while语句

格式:while(循环语句){内为循环体} eg:while(x>0){ x/=10; n++; }

  • switch

格式:switch(控制表达式){ case常量(也可为常数计算表达式): 语句 break case常量: 语句 break 。。。。。(类推) break(表示结束) default: 语句 break }

  • do while语句

格式: do { <循环体> }while(循环条件); 注意:得先执行一遍后再以循环条件判断

  • break与continue区别

首先break用于循环是用来终止循环,且在多层switch镶套中只能终止它最近的switch;而contunue用于跳过本次循环余下的语句,转去判断是否血药执行下次循环

二.学习任务(超过100行代码要用分享)

1.笔记(代码和手写笔记)

while一元二次方程

int main ()
{
	double a,b,c;
	double delta;
	double x1,x2;
	do
	{
	
	printf("请输入一元二次方程的三个系数:\n");
	printf("a=");
	scanf("%lf",&a);
	
	printf("b=");
	scanf("%lf",&b);
	
	printf("c=");
	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=%f,x2=%f\n",x1,x2);
	}
	else if(0==delta)
	{
		x1=x2 =(-b)/(2*a);
		printf("有唯一解,x1=x2=%f\n",x1,x2);
	 } 
	 else
	 {
	 	printf("无实数解!\n");
	 }
    }while(1); 
	 return 0;
}

67.png

对任意三个数排序

{
  int a,b,c,t;
  scanf("%d%d%d",&a,&b,&c);
  if(a<b)
 {
   t=a;
   a=b;
   b=t;
 }
 if(a<c)
 {
     t=a;
     a=c;
     c=t;
-  }
 if(b<c)
 {
     t=b;
     b=c;
     c=t;
 }
  printf("%d%d%d",a,b,c);
  return 0;
}

成绩分析

#include<stdio.h> int main (void) { float score;

printf("请输入您的考试成绩:");

scanf("%f", &score);

if (score > 100)

printf("这是做梦!\n");

else if (score>=90 && score<=100)

printf("优秀!\n"); else if (score >= 80 && score < 90 )

printf("良好!\n");

else if (score >= 60 && score <80)

printf("及格!\n");

else if (score>=0 && score < 60)

printf("不及格,继续努力!\n");

else printf("输入的分数过低,请不要自卑!\n");

return 0 ;

}

13.png

数值交换

int main(void)
{
 int i = 3;
 int j= 5 ;
 int t;
 t=i;
 i=j;
 j=t;
  printf("i=%d,j=%d\n",i,j);
  
  return 0;

14.png

求回文数

int main()
{
	int val;//存放判断数字 
	int m;
	int sum;
	printf("请输入你要判断的数字") ;
	scanf("%d,&val") ;
	m=val;
	while(m)
	{
		sum=sum*10+m%10;
		m/=10;
	}
	if(sum==val)
	printf("Yes!\n");
	else
	printf("No!\n");
	eturn 0;
}

145.png

手写笔记

111.jpg

112.jpg

115.jpg

116.jpg

2.课后习题

5.10

第七题

e2.png 第十三题

a:12 b;101,102,103,104 c:stuvw

5.11

第三题

の.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

第十题

3.png

3.杭州oj账号注册

d1.png