程序设计实践——第二章
一、字符加密
编写程序,将“China”译成密码。密码规律:用原来的字母后面第4个字母代替原来的字母,例如:字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”并输出。
程序分析:
- 字符型数据在C语言当中实际上是以ASCII码的形式存储在内存单元中,例如‘a’的ASCII码值为97,字符b的ASCII码值为98。
- 由上图可知,字符’a’+1的值与字符’b‘的ASCII的码值相同。
示例代码
#include "stdio.h"
int main()
{char c='a',c2='b';c=c+1;printf("c=%c,c2=%c\n",c,c2);return 0;
}
输出结果
3.由此可知,若需要将密码翻译为字母后4位,只需要在原来的基础上把ASCII的码值加4即可。
示例代码
#include "stdio.h"
int main()
{char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;
}
知识扩展
根据ASCII码表可知,大写字母和小写字母之间的码值相差32,即可得:
字符大写转小写 +32
字符小写转大写 -32
- 下面是一个字母大小写字符转换的程序案例。
#include "stdio.h"
int main()
{char c1='*';scanf("%c",&c1);if(c1>='A' && c1<='Z')//大写字母 {c1=c1+32; //由于在ASCII码表中,大小写字符的差值为32,所以+32转换成小写 }else if(c1>='a' && c1<='z')//小写字母 {c1=c1-32; //转换成大写 }printf("%c",c1);return 0;
}
输出结果
补充:
- (逻辑与)&&:
在两个条件同时达成时,条件为真。
例如:if( a>=3 && a<=8 )
则当a的值为 3~8之间时,if语句里面的条件才成立,否则都不成立
二、数值拆分
编写程序,将一个三位数整数256的个位、十位和百位分离后输出,输出结果为a=2,b=5,c=6。
程序分析
- 运算符
‘/’:取整运算符
‘%’取余运算符
任何大于10的数都不可以被10整除,所以任何数对10取余都可以得到这个数的个位。
例:
#include "stdio.h"
int main()
{int a;scanf("%d",&a);printf("%d",a%10) ;return 0;
}
输出结果
2. 我们现在已经可以获取个位的值了,那么怎么获得一个数的十位呢?我们只需要把这个数/10%10就可以得到这个数的10位,它的原理是通过取整10抹掉这个数的最后一位,然后十位就变成了个位,我们再进行取余就可以获得十位上的数值了!
#include "stdio.h"
int main()
{int a;scanf("%d",&a);printf("%d",a/10%10) ;return 0;
}
输出结果
3.依次类推,下面是获取256每一位值的程序代码。
#include "stdio.h"
int main()
{int x=256;int a=x/100%10;int b=x/10%10;int c=x%10;printf("a=%d\n",a) ;printf("b=%d\n",b) ;printf("c=%d",c) ;return 0;
}
输出结果
三、浮点数运算
已知x=3.6,y=4.2。编写程序,求表达式x+y及(int)x%(int)(x+y)的值。
程序分析:
- 取余运算
取余运算只能进行整数之间的运算,所以我们在进行小数之间的取余运算时,需要先把小数类型转换为整数类型,再进行运算。 - 类型转换
- 隐式类型转换(自动转换)
在有多种数据类型混合计算的时候,若未人为控制类型,系统会自动进行类型转换
转换的规则是:存储长度较短的转换成存储长度较长的,且不丢失数据
char—>short—>int—>unsigned int(—>long—>unsigned long)—>double
↑
float-------
- 强制类型转换
隐式类型转换或赋值转换有时不会得到我们预期的结果,这时我们可以使用强制类型转换来实现我们想要的类型转换结果。
强制类型转换:人为地将某类型转换为另一类型
强制类型转换符:()括号
3.下面是强制类型转换的示例代码
#include "stdio.h"
int main()
{float x=3.6,y=4.2; int c;c=(int)x%(int)(x+y); //通过(int)将float类型强制转换为整数,然后进行取余运算。 printf("x+y=%f, (int)x%%(int)(x+y)=%d \n",x+y,c);return 0;
}
运行结果
补充:
- 运算优先级
C语言中,运算符除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符。
运算符的运算优先级共分为15 级,1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
此处例程先进行强制类型转换,然后再进行取余运算。
程序设计实践——第二章相关推荐
- 攻下《JavaScript高级程序设计》——第二章 在HTML中使用JavaScript
从上一章我们知道了,JavaScript是一种专门为网页交互而设计的脚本语言,那么,它就免不了和HTML打交道,所以在设计JavaScript的时候,Netscape首要面临的就是,怎么让HTML和J ...
- c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...
1.第2章 数据类型.运算符与表达式,语言的数据类型 常量与变量 运算符与表达式 不同类型数据间的转换,2.1语言的数据类型,数据是计算机程序处理的所有信息的总称,数值.字符.文本等都是数据,在各种程 ...
- 学习笔记 | Python编程从入门到实践 | 第二章变量和简单数据类型
前言 小白记录自己学习python的学习贴,如有错误请大佬指正 第二章是变量和简单数据类型的学习. 关于变量 在程序中随时可以修改变量的值,python将始终记录变量的最新值 变量名只能包含字母.数字 ...
- 《Kotlin 程序设计》第二章 快速开始:HelloWorld
第二章 快速开始:HelloWorld 使用云端在线IDE学习Kotlin 我们不需要搭建任何环境,只要有一台能联网的设备,打开浏览器访问: https://try.kotlinlang.org 你就 ...
- 大型网站系统与Java中间件实践 第二章大型网站及其架构演进过程
2.1什么是大型网站 通过第 1 章我们了解了分布式系统的相关基础知识, 大型网站是一种很常见的分布式系统,而本书重点要介绍的中间件系统也是在大型网站的架构变化中出现并发展的,那么我们很有必要从大型网 ...
- Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-下
2.2 IA-32处理器体系结构 如前所述,IA-32是指始于Intel386直到当前最新的奔腾4的系列的处理器(额...这本书是什么时候写的啊,表示现在应该是I7啊),在IA-32的发展过程中,I ...
- Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-上
第2章 IA-32处理器体系结构 2.1 基本概念 本章以程序员的视角描述Intel IA-32处理器家族机器计算机系统,包括所有的Intel兼容处理器,如AMD的速龙(Athlon)和皓龙(Op ...
- 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.6 scroll-view组件,在小程序中如何实现滚动锚定,如何渲染一个滚动的长列表?
scroll-view 是一个可以滚动的视图区域的容器组件. 一.重要属性 scroll-view 的滚动属性,实现了两套功能 左右或上下滚动 下拉更新 1.1 与滚动有关的属性: scroll-x ...
- 《windows程序设计》第二章学习心得
Unicode简介 Unicode是ASCII字符编码的一个扩展.Unicode用的是16位字符编码,而不是像ASCII那样的7位编码. ------------------------------- ...
- 深度学习理论与实践第二章作业-FNN手写数字识别
命名格式:按照课程网站中的课后作业要求 1. 根据Course02课程中对全连接神经网络的讲解,将缺失的全连接神经网络中代码块补全,并完成一次训练 需要填充的部分已经在第一部分的全连接神经网络代码中用 ...
最新文章
- 张口闭口就是焦虑,现在的程序员怎么了?
- .net中的SelectList在Html.DropdownList中的使用
- Python windows安装MYSQL_db
- Kotlin实践(3)-入口 函数
- 清华团队最新成果:可致特朗普能咏比特币,AI写古诗“更上一层楼”
- Win7 格式化U盘
- java压缩传输_简单实现字符串的压缩,减轻传输压力
- 建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+Yule-Walker方程_Python...
- java redis 原子操作_7000字 Redis 超详细总结笔记 !建议收藏
- 康奈尔大学做笔记的方法——文献
- R语言绘制差异火山图示例
- (个人笔记)EDEM耦合Recurdyn流程
- Ubuntu安装DGE-530T网卡驱动
- 泛微OA云桥 未授权任意文件读取
- 大数据职业理解_大数据职业发展方向
- ggplot2_coor_xxx()坐标系变换
- linux如何查看cpu型号
- 什么是云数据库RDS
- Oracle 、SqlServer 根据日期逐日、逐月递增累加、逐行累加
- 鼠标动不了(灯亮着)