C语言第七次课(形参练习题;switch语句;指针)

C语言第七次课重点(形参练习题;switch语句;指针)

(1)回顾练习题
判断是否为闰年:通过设置形参;

#include <stdio.h>
#include <stdlib.h>
bool Is_Leap(int year)
{
   bool leap;
   if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
   {
      leap = true;
   }
   else
   {
      leap = flase;
   }
   return leap;
}
   

//初始化程序 双分支改单分支;

#include <stdio.h>
#include <stdlib.h>
bool Is_Leap(int year)
{
   bool leap = false;//初始化
   if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
   {
      leap = true;
   }
   return leap;
}

(2)Switch多分支结构:只能替代和整形量比较的if else语句。
整型类型:char;short;int;long int; long long.

在这里插入图片描述
举例:划分学生成绩

#include<stdio.h>
int main()
{
   char grade = '\0';
   printf("input gread :(A,B,C,D,E) \n");
   sacnf_s("%c",&grade);//A对应其ASCII值
   switch(grade)
   {
   case 'A':printf("90 - 100 \n");break;
   case 'B':printf("80 - 90 \n");break;
   case 'A':printf("70 - 80 \n");break;
   case 'A':printf("60 - 70 \n");break;
   case 'A':printf("<60 \n");break;
   default;//默认
      printf("input char error \n");
      break;
   }
   return 0;
}

case后必须跟整型常量:
//10 十进制常量
010 八进制常量
0x10 十六进制常量
ob1010 二进制常量
‘a’ 字符常量 转换成对应其ASCII码值
“yhping” 字符串常量
12.23 double型常量
12.23f 浮点型常量
true 真常量 1
flase 假常量 0

判断大小月:

int Get_YM_Day(int year, int month)
{
	int day = 0;
	switch (month)
	{
	case 1:case 3:case 5:case 7:case 8:case 10:case 12:
		day = 31;
		break;
	case 4:case 6:case 9:case 11:
		day = 30;
	default:
		if (Is_Leap(year))
		{
			day = 29;
		}
		else
		{
			day = 28;
		}
		return day;
	}
}

用数组来判断二月的29天

int Get_YM_Day(int year,int month)
{
   int days[13] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
   //              0  1   2  3  4  5  6  7  8  9  10 11 12
   if(month = 2&& Is_leap(year))//二月且闰年
   {
      month = 0;//0所对应的29天
   }
   return days[month];
}
   

计算累加天数

int Get_YMD_Total(int year,int month, int day)
{
   int sum = 0for(int i = 1;i < month;++1)
   {
      sum += Get_YMD_Day(year,i);
    }
    return sum + day;
 }

(3)指针
在这里插入图片描述
//字节为存储单元,每个字节有唯一的编号,称其编号为“地址”或“指针”。
// * 运算符所在的环境不一样 其代表的含义也不一样。
在这里插入图片描述
//此处的“解引用”也可以视为“指向”。

在这里插入图片描述
//区分 (int*)= s,r;这类型名加括号为“强转”,int* s r;这种情况是定义。
//* 星号必须和变量进行结合 如int *a

区分以下内容:

在这里插入图片描述
在这里插入图片描述
//其中int *ip=NULL;此处为“声明”,*ip=100;此处为“指向”或“解引用”。
ip开辟空间,其地址为:0x00daf8ec, ip = &a;则是把a的地址给了ip,此时 *ip就是a本身,把100 赋给 *ip就是把100赋给了a。同理把200赋给了b。
//指针有两个值:一个是自身的值,另一个是指向的值
//int *ip=NULL; 把空给了ip而不是 *ip ,此处的 * 号是“声明”,是一种标识的概念,告诉你这是指针。

在这里插入图片描述
牢记:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值