目录

  • ①、程序流程图符号
  • ②、C++ 打印三角形
    • 1. 指定五行直角三角形
    • 2. 由用户指定任意行的等腰三角形
    • 3.平行四边形式等腰三角形拆分
    • 4.菱形
  • ③、C++ 九九乘法表
    • 1.简单版九九乘法表
    • 2.精美格式版九九乘法表
  • ④、求100~200之间不能被3整除的数
  • ⑤、输出100以内所有的素数
  • ⑥、判断一个正整数是不是素数
  • ⑦、a * =3 + a => a = a * (3+a)
  • ⑧、C语言的连续赋值问题
  • ⑨、C语言位运算
  • ⑩、C语言逗号表达式
  • ⑪、C语言混合类型表达式的类型确定
    • 同类型:
    • 自动类型转换
    • 类型转换
  • ⑫、C语言运算符优先级
  • ⑬、break与continue的区别
  • ⑭、C语言的输入输出
  • ⑮、C语言格式说明符
  • ⑯、机器数的表示
  • ⑰、Moore定律
  • ⑱、总线

①、程序流程图符号

②、C++ 打印三角形

1. 指定五行直角三角形

解题思想:
 解决该题的主要难点在于每行的固定输出,那么如何让每行都能固定输出正好的 * 号呢?自然而然的就想到了循环,所以我在这里使用了两个for循环嵌套。
  定义两个变量i和j,通过i来控制外层循环用于控制三角形的行数,通过j来控制内层循环完成每行固定星号的输出。

代码实现:

#include<iostream>
using namespace std;void main(){int i,j;for (i=1;i<=5;i++){for (j=1;j<=i;j++){cout<<"*";}cout<<endl;}}

效果图展示:

2. 由用户指定任意行的等腰三角形

解题思想:
 变量i配合变量n由用户输入控制总行数,根据要得到的图形规律可得:当前空格符数量 = 最大行号 - 当前行号,当前符数量 = 当前行号 * 2 - 1,故设置以下说明:
  i行空格符数量 = 最大行号 - i
  i行
符数量 = i * 2 - 1
  i换行符数量:1

代码实现:

void main(){int i,j,k,n;cout<<"请输入你想要的行数:";cin>>n;for(i = 1;i <= n;i++ ){  //该控制行决定了循环时的当前行号for(j = 1;j <= n-i;j++){  //该控制行决定了打印空格符的数量,i决定行号。cout<<" "; }for(k = 1;k <= i*2-1;k++){  //该控制行决定了打印*符号的数量,i决定行号。cout<<"*";}cout<<endl; //换行}
}

效果图展示:

3.平行四边形式等腰三角形拆分

解题思想:
  左边的三角形原理同2,利用for循环以及由用户输入的变量space来自主设置两个三角形之间的空格,而右边三角形则需要根据规律得出m=2*(n-1),一般是看图,根据图片规律得出,故实现倒置输出。

代码实现:

int main() {
int n,space;cout << "请输入行数:";cin >> n;cout << "请输入间隔数:";cin >> space;cout <<  endl;for (int i = 1; i <= n; ++i) {// leftfor (int k = 0; k < n - i; ++k) {cout << " ";}for (int j = 0; j < 2 * i - 1; ++j) {cout << "*";}// spacefor (int l = 0; l < space; ++l) {cout << " ";}for (int m = 0; m < 2 * (n - i) + 1; ++m) {cout << "*";}cout <<  endl;}return 0;
}

效果图展示:

4.菱形

解题思路:
 思路和等腰三角形基本一致,无非就是在正面输出一遍后,再加一个循环嵌套倒置输出。

代码实现:

void main(){int i,j,k,n;cout<<"请输入你想要的行数:";cin>>n;for(i = 1;i <= n;i++ ){  //该控制行决定了循环时的当前行号for(j = 1;j <= n-i;j++){  //该控制行决定了打印空格符的数量,i决定行号。cout<<" "; }for(k = 1;k <= i*2-1;k++){  //该控制行决定了打印*符号的数量,i决定行号。cout<<"*";}cout<<endl; //每行打印一个换行}for (i = n - 2; i >= 0; i--){for (j = 1; j <n-i; j++){cout<<" "; }for (j = 0; j < 2 * i + 1; j++){cout<<"*";}cout<<endl;}
}

效果图展示:

③、C++ 九九乘法表

1.简单版九九乘法表

解题思路:
  超级简单!一如既往的for循环嵌套,形式如1 x 1,1 x 2,1 x 3,1 x 4……循环到9,其它的也都是这样的思想。

代码实现:

#include <iostream>
using namespace std;void main(){int i,j,n;for (i=1;i<=9;i++){for (j=1;j<=9;j++){n=i*j;cout<<i<<"*"<<j<<"="<<n<<" ";}cout<<endl;}

效果图展示:

2.精美格式版九九乘法表

解题思路
  依旧是很简单的思路,外层循环和之前一样,内层循环条件改成i值,这样就可以有效的避免了重复相乘的出现。

代码实现:

void main(){for (int i = 1; i <= 9; i++)//外层循环9次{//内层循环负责打印信息到屏幕上for (int j=1;j<=i;j++){cout << i << "x" << j <<"="<< i*j << "\t";}//内层循环结束后打印一个回车换行cout << endl;}system("pause");
}

效果图展示:

④、求100~200之间不能被3整除的数

解题思想:
 该题特别简单,一个循环,一个条件,即可解决,方法也同样适用于其它的数。

代码实现:

#include<iostream>
using namespace std;void main(){int n;for (n=100;n<=200;n++){if(n%3!=0)cout<<n<<" ";}cout<<endl;
}

效果图展示:

⑤、输出100以内所有的素数

解题思想:
 两个循环嵌套,两个if语句,一个标记变量,外部循环负责从1遍历到100,内部循环负责从2遍历到i值,标记变量flag负责记录一旦内部循环if条件语句成立,则变值,使该值无法输出,达到只输出素数的目的。

代码实现:

#include<iostream>
using namespace std;void main()
{int i;for(i=1;i<=100;i++){bool flag=true;for(int j=2;j<i;j++){if(i%j==0){flag=false;break;}}if(flag==true)cout<<i<<" ";}
}

效果图展示:

⑥、判断一个正整数是不是素数

解题思想:
 既然是判断一个正整数是不是素数,那么我认为加入一个判断用户输入的数是不是正整数的判断条件是很有必要的,通过while循环来判断是否需要重新输入。而判断正整数是不是素数部分和判断100以内的所有素数的方式方法基本一致,无非就是从2到i值,判断i值和j值取余是否为0,为0则不为素数,不为0则为素数。

代码实现:

void main(){int i,j;cout<<"请输入一个正整数:";cin>>i;while(i<=0){cout<<"该数不是正整数,请重新输入:";cin>>i;}for (j=2;j<i;j++){if (i%j==0){cout<<i<<"不是素数"<<endl;break;}else{cout<<i<<"是素数"<<endl;break;}}
}

效果图展示:

⑦、a * =3 + a => a = a * (3+a)

⑧、C语言的连续赋值问题

 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成 嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于**: e=5; d=e; c=d; b=c; a=b;**

 注意在变量说明中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如: int a=5,b,c;

在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。

 注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。

参考资料:
【独孤星燎】C语言中赋值语句规则

⑨、C语言位运算

 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。

参考资料:
【百度百科】位运算

⑩、C语言逗号表达式

 c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a=(a=35,a4)的值是60,其中(a=35,a4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。

表达式说明
 表达式1,表达式2,表达式3,… ,表达式n
 逗号表达式的要领:
 (1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
 (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
 (3) 逗号运算符的优先级别在所有运算符中最低。

例题:

正确结果为x=2,y=3,z=1
解题思路:
 由于赋值运算符的优先级是14,而逗号表达式的优先级是15,也就是说上面的表达式中应该等价于这样的结合:(z=x++),y++,++y;如果这样写的话,则答案很清晰,为:2,3,1

参考资料:
【百度百科】逗号表达式

⑪、C语言混合类型表达式的类型确定

同类型:


自动类型转换


类型转换


⑫、C语言运算符优先级



 同一优先级的运算符,运算次序由结合方向所决定。

简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

 C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。 而在一个运算量两侧的运算符优先级相同时, 则按运算符的结合性所规定的结合方向处理。 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合, 执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

⑬、break与continue的区别

 break和continue都可在循环语句里面使用,也都可以控制外层的循环。但是continue只能在循环语句里面使用,break也可以使用在switch语句里面。

 break具体作用在循环语句中的具体作用是,跳出当前循环,当然还可以跳出所有的循环。当前循环中break语句之后的语句都不会执行。

参考资料
【博客园】break与continue的区别

⑭、C语言的输入输出

⑮、C语言格式说明符




⑯、机器数的表示

⑰、Moore定律

 1965 年,英特尔联合创始人戈登·摩尔提出以自己名字命名的「摩尔定律」,意指集成电路上可容纳的元器件的数量每隔 18 至 24 个月就会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。

⑱、总线

 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。

2019/9/2 日常学习的一天相关推荐

  1. 2019/8/26 日常学习的一天

    目录 ①.sizeof ②.连续的三目条件语句 例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行. ③.C++编程 杨辉三角 杨辉三角 ④.宏 ⑤.C语言关键字a ...

  2. 把飞书融入日常学习流程:一个人的飞书也挺好

    作为仍然奋斗在学术一线的学生,在很多同学和朋友眼里我一直是个喜欢折腾各种工具的「少数派」.除了每天必看的科研动态和文献之外,自己喜欢在摸鱼的时候折腾一些感兴趣的工具,用能提高效率的工具让自己拥有更多的 ...

  3. 日常学习中遇到的好的资源(Graph Clustering and GNN)(持续更新)

    将自己在日常学习中遇到的好资源记录下来! 本文目录 1.多视图聚类总结: 2.论文阅读:One2Multi Graph Autoencoder for Multi-view Graph Cluster ...

  4. 2019全新大数据系统学习路径!

    2019全新大数据系统学习路径! 很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群: ...

  5. 告别2019:属于深度学习的十年,那些我们必须知道的经典

    选自leogao.dev 作者:Leo Gao,机器之心 参与:一鸣.泽南.蛋酱 2020 新年快乐! 当今天的太阳升起时,我们正式告别了上一个十年. 在这十年中,伴随着计算能力和大数据方面的发展,深 ...

  6. Android:日常学习笔记(8)———探究UI开发(2)

    Android:日常学习笔记(8)---探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...

  7. Android:日常学习笔记(6)——探究活动(3)

    Android:日常学习笔记(6)--探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...

  8. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  9. 日常学习随笔-数组、单链表、双链表三种形式实现队列结构的基本操作(源码注释)...

    一.队列结构(本文侧重于源码实现,基础理论不多赘述) 和栈一样,队列(queue)也是表,然而使用队列是在一端插入数据,在另一端删除数据.这里插入就是入队(enqueue),删除就是(dequeue) ...

最新文章

  1. SQL基础学习总结:6(INSERT语句的相关使用方法)
  2. 高德地图哪个语音包最好_高德地图妲己语音
  3. webstorm / intellij IDEA / phpstorm license server 激活链接 (过期留言更新)
  4. leetcode算法题--Wiggle Subsequence
  5. c语言对中文字符串编码_Python || 学习笔记(1):数据类型字符串变量和编码
  6. linux 命令分号,linux命令之间的分号,, ||
  7. windows libusb打开失败_如何彻底解决windows更新问题!
  8. 【Pix4d精品教程】打开Pix4DMapper时提示Pix4DMapper.exe已停止工作的完全解决办法
  9. 番外.李宏毅学习笔记.12.GNN
  10. 结对编程四则运算第三周-挑战出题(20172301、20172304、20172328)
  11. Cloudflare 与 GoDaddy
  12. Could not enlist in transaction on entering meta-aware object
  13. 基于matlab的2psk功率,基于matlab的相移键控系统仿真.doc
  14. 消息推送----微信小程序,公众号
  15. 模糊综合评判法实现学生互评
  16. 图片名字存在txt文件中,从另一个装有图片的文件夹中筛选对应的图片。python代码
  17. armbian不拔掉TF卡使用usb移动硬盘启动
  18. node-inspector调试node程序
  19. 华为电子邮件显示未读邮件1_电子邮件简介已经过去
  20. Gulp折腾记 - (2)常用任务构建的demo

热门文章

  1. Centos 安装阿里云yum源和EPEL源
  2. Linux启动并进入mongodb指令
  3. 关于kafka集群搭建前后
  4. python3 asyncio github_python3 asyncio
  5. OSChina 周日乱弹 ——怎么证明世界都是虚拟的
  6. reac和redux完整开发篇 项目实战
  7. 中国成为应用程序开发商的新战场
  8. [年中总结]一个骄傲而又自卑的人的内心独白
  9. [企业微信]查看userid
  10. 什么是渲染农场,渲染农场一般怎么收费?