IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 2021.7.9标准c语言 -> 正文阅读

[C++知识库]2021.7.9标准c语言

一、常量
什么是常量:
程序在运行期间数值不能变化的叫常量
100 默认 int
100u unsigned int
100lu unsigned long
100llu unsigned long long
100l long
100ll long long

    3.14    默认 double
    3.14f   float
    3.14l   long double

问题:100年有多少秒,忽略润平年问题?
#define SEC (3600*24*365*100u)

二、格式化输入输出
%nd 显示n个字符宽度,不够则补空格,右对齐
%-nd 显示n个字符宽度,不够则补空格,左对齐
%0nd 显示n个字符宽度,不够则补0,右对齐
%n.mf 显示n个字符宽度,不够则补空格(小数点算一位),m表示小数点后的位数(四舍五入)
%g 不显示小数点后多余的0

三、运算符
自变运算符:++/-- 使变量的值自动的+1/-1
前自变:++num --num 立即有效
后自变:num++ num-- 下一行语句生效
注意:不要再一行内多次使用自变运算符

算数运算符:+ - * / %
    整数/整数   结果不产生小数,直接取整
    / %     除数不能为0 出现错误:浮点数例外(核心已转轴)

关系运算符: > < >= <= == !=
    比较的结果必须是0或者1,比较的结果还能继续参与运算
    int num = -5;
    if(1 < num < 10)    
    永远为真,运算规则与数学不同
    == 建议常量放左边

逻辑运算符:&& || ! 
    会先把运算对象转换成逻辑值,0转换为逻辑假,非0是真
    A && B  一假即假
    A || B  一真即真
    !A  求反

    && || 具有短路特性:
        当左边的运算对象已经能够确定整个表达式的结果时,右边的所有对象不在执行

三目运算符:运算对象有三个部分
    A ? B : C   
    先判断A的值是否为真,如果为真执行B,否则执行C
    该语句不能使用流程控制语句,因为他必须要有运算

赋值运算符: =  +=
    a += b   <->   a = a + b
    a -= b   <->   a = a - b 
    a *= b   <->   ...
    a /= b 
    ...

位运算符:  &  |  ~  <<  >>

sizeof 也是运算符,但是sizeof括号内的表达式不会计算

四、类型转换
自动类型转换:
只有相同类型的数据才能运算,不同类型的数据必须转换成相同的类型才能进行计算
转换规则:(以不丢失数据为基础,适当地牺牲一些空间)
1.字节少的向字节多的转
2.有符号的向无符号的转
3.整型向浮点型转
强制类型转换:
(新类型)数据
有丢失数据的风险,要慎重使用

五、分支语句
if(表达式) //单分支
{
当表达式为真时,执行此处代码
}

if(表达式)  //双分支
{
    当表达式为真时,执行此处代码
}
else
{
    当表达式为假时,执行此处代码
}

 if(表达式1)  //多分支
{
    当表达式1为真时,执行此处代码
}
else if(表达式2)
{
    当表达式2为真时,执行此处代码
}
else
{
    当表达式都为假时,最后执行此处代码
}

注意:大括号建议上下对齐
    当分支语句只有一条时,大括号可以省略但不建议省略

练习1:输入三个整数,从大到小输出。

(1)
#include <stdio.h>

int main(int arhc,const char* argv[])
{
int num1 = 0;int num2 = 0;int num3 = 0;int temp = 0;
printf(“请输入三个正整数(a b c):”);
scanf("%d %d %d",&num1,&num2,&num3);
if(num1 <= num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
if(num1 <= num3)
{
temp = num1;
num1 = num3;
num3 = temp;
}
if(num2 <= num3)
{
temp = num2;
num2 = num3;
num3 = temp;
}
printf(“从大到小依次是:%d %d %d\n”,num1,num2,num3);
}
(2)
#include <stdio.h>

int main(int arhc,const char* argv[])
{
int a = 0;int b = 0;int c = 0;int t = 0;
printf(“请输入三个正整数(a b c):”);
scanf("%d %d %d",&a,&b,&c);

if(a > b)
{
	if(b > c)
	{
		printf("%d %d %d\n",a,b,c);
	}
	else if(a > c)
	{
		printf("%d %d %d\n",a,c,b);
	}
	else
	{
		printf("%d %d %d\n",c,a,b);
	}
}
else
{	
	if(a > c)
	{
		printf("%d %d %d\n",b,a,c);
	}
	else if(b > c)
	{
		printf("%d %d %d\n",b,c,a);
	}
	else
	{
		printf("%d %d %d\n",c,b,a);
	}
}

}
练习2:输入一个年份,判断是闰年还是平年?
四闰百不闰,四百闰
//练习2:输入一个年份,判断是闰年还是平年?

#include <stdio.h>

int main(int arhc,const char* argv[])
{
int year = 0;
printf(“请输入一个年份:”);
scanf("%d",&year);
if(0 == year%4 && 0 != year%100 || 0 == year%400)
{
printf("%d是闰年。",year);
}
else
{
printf("%d是平年。",year);

}

}
练习3:输入一个年份和月份,判断该月有多少天?
//练习3:输入一个年份和月份,判断该月有多少天?

#include <stdio.h>

int main(int arhc,const char* argv[])
{
int year = 0;int month = 0;
int day1[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
int day2[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf(“请输入年份 月份:”);
scanf("%d %d",&year,&month);
if(0 == year%400)
{
printf("%d年%d月有%d天\n",year,month,day1[month-1]);
}
else if(0 == year%100)
{
printf("%d年%d月有%d天\n",year,month,day2[month-1]);
}
else if(0 == year%4)
{
printf("%d年%d月有%d天\n",year,month,day1[month-1]);
}
else
{
printf("%d年%d月有%d天\n",year,month,day2[month-1]);
}
return 0;
}
练习4:输入一个三位整数,判断是否是水仙花数?
abc == aaa +bbb + ccc
//练习4:输入一个三位整数,判断是否是水仙花数?

#include <stdio.h>

int main(int arhc,const char* argv[])
{
int i = 0;int a = 0;int b = 0;int c = 0;
printf(“请输入一个三位整数:”);
scanf("%d",&i);
c = i/100;
b = (i/10)%10;
a = i%10;
if(aaa+bbb+ccc == i)
{
printf("%d是一个水仙花数\n",i);
}
else
{
printf("%d不是一个水仙花数\n",i);
}
return 0;
}
练习5:输入一个成绩,判断等级?
[100,90] A ;(90,80] B ;(80,70] C ;(70,60] D ;(60,0] E;
outer 输入程序有误
//练习5:输入一个成绩,判断等级?
//[100,90] A ;(90,80] B ;(80,70] C ;(70,60] D ;(60,0] E;

#include <stdio.h>

int main(int arhc,const char* argv[])
{
float grade = 0;
printf(“请输入一个成绩:”);
scanf("%f",&grade);
if(grade >= 0 && grade < 60)
{
printf(“成绩为E等\n”);
}
else if(grade >= 60 && grade < 70)
{
printf(“成绩为D等\n”);
}
else if(grade >= 70 && grade < 80)
{
printf(“成绩为C等\n”);
}
else if(grade >= 80 && grade < 90)
{
printf(“成绩为B等\n”);
}
else if(grade >= 90 && grade <=100)
{
printf(“成绩为A等\n”);
}
else
{
printf(“输入程序有误!\n”);
}
}
六、开关语句
Switch(n) //n可以使数值、表达式,运算结果必须是整数
{
case val: //val必须是整数常量,如果val等于n,则打开执行开关

break; //关闭执行开关
case val:

default:

//如果所有的case都没有匹配成功,则打开执行开关,并放在任何位置都会最后执行
}
注意:如果每个case后都有break,就形成了分支结构。
Switch不能与continue配合使用

注意:
    case a ... b:可以表示范围a~b,但是属于GNU编译器独有的语法,不建议使用
练习6:输入一个月份,判断季节:
    123 春天;456 夏天;789 秋天;10 11 12  冬天

#include <stdio.h>

int main(int arhc,const char* argv[])
{
char month = 0;
printf(“输入一个月份:”);
scanf("%hhd",&month);
switch((month+2)/3)
{
case 1:printf(“春天\n”);break;
case 2:printf(“夏天\n”);break;
case 3:printf(“秋天\n”);break;
case 4:printf(“冬天\n”);break;
default :printf(“输入月份有误\n”);break;
}
return 0;
}
七、循环语句
循环就是让一段代码反复执行,达到想要的效果
1. for 循环语句
for是一种比较灵活且较危险(与其他循环相比)的一种循环
一般用一个变量来引导for循环的运行,这个变量叫做循环变量 i(index)
for([1];[2];[3])
{
[4];
}
[]中可有可无。
1.为循环变量赋初值,只有c99的标准才可以在此处定义循环变量
2.判断循环条件,一般是判断循环变量是否到达了边界
4.如果2为真,则执行此处代码,此处也叫循环体
3.改变循环变量,防止出现死循环,一般对循环变量自加或自减
12432432…

    for 循环的多种写法:
        for(;;)
        {
            //死循环
        }ll

        int i = 0;
        for(; i < 10; i++)
        {
            
        }

        for(int i = 0; i < 10;)
        {
            ...
            i++;
        }
 2. while 循环:
    while(条件) //当条件为真时,执行循环体,为假时结束循环体
    {
        //循环体
    }

    while循环相当于for循环的精简版本
    for循环负责解决明确循环知道循环次数的问题
    while循环负责解决只知道结束条件,而不确定循环次数的问题

3. do while 循环:
    do{
        //循环体
    }while(条件); //分号不能少
    先执行循环体,才判断循环条件是否为真,该循环至少循环一次
    适合先干活,再检查的特殊情况
        例如:输入判断密码
    
    问题:for、while、do-while 有什么区别?
        (个人总结)

4.循环嵌套
    循环语句中包含循环语句
    外层循环执行一次,内层循环执行n次

作业1:计算出所有的水仙花数

作业2:输入一个正整数,判断是否为素数?2 3 5

作业3:输入一个正整数,判断是否为回文数 12321 123321

作业4:输入一个6位密码,输入正确显示"登录成功",输入错误提示"还剩几次机会",可以继续输入,最多输入3次,超过3次,显示"账号已锁定",并结束。

作业5:输入一个整数,分解显示
1234 1 2 3 4

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:21:50  更:2021-07-10 14:23:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 22:02:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码