[c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等
一、变量
#include<stdio.h>
#include<stdlib.h> void main0(){
//数据使用必须在范围内,否则产生溢出
unsigned short num=+;//+1之后溢出为0
//printf("%d",sizeof(num));
printf("阿飞有%d元",num);
getchar();
} void main1(){
short num=+;//+1之后溢出为-32768
printf("阿飞有%d元",num);
getchar();
} void main2(){
//printf的本质是按照自己的方式,将变量转换为字符串,无论变量以前是什么类型,而且printf不会自动转换
printf("%d",);//%d整数
printf("\n%f",);//%f实数 打印出0.000000 1改成1.0之后打印正确
getchar();
} void main3(){
//使用printf打印的时候,必须要类型匹配,否则出错
printf("%d,%u",-,-);//%d有符号十进制,%u无符号十进制
getchar();
}
//能编译,不能保证结果正确
void main(){
printf("%d",-);//正确
printf("\n%u",-);//错误
printf("\n%x",-);//无符号16进制,错误
printf("\n%o",-);//无符号8进制,错误
getchar();
}
二、随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h> void main(){
//三目运算符:0就执行notepad,非0执行calc
//-1?system("calc"):system("notepad");
int num=rand()%;//0~99的随机数
printf("%d\n",num);
num>?printf("你赢了"):printf("你输了");
getchar();
}
经过测试,上述代码只能产生一次随机数,即多次运行结果不变。那么如何让程序每次都产生不同的随机数呢?
#include<stdio.h>
#include<stdlib.h>
#include<time.h> void main(){
int num;
time_t t;//定义时间类型的变量
//time是一个函数,获取时间,复制给t,转换为unsigned int类型
srand((unsigned int)time(&t)); num=rand()%;//0~99的随机数
num=rand()%+;//100~199的随机数
printf("%d\n",num);
num>?printf("你赢了"):printf("你输了");
getchar();
}
三、随机恶作剧
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h> _declspec(dllexport) void go1(){
while(){
malloc(**);//10M
Sleep();
}
} _declspec(dllexport) void go2(){
while(){
MessageBoxA(,"马化腾邀请你共进晚餐","享受终生QQ红钻",);
Sleep();
}
} _declspec(dllexport) void randgo(){
int num;
time_t t;
srand((unsigned int)time(&t));
num=rand()%;
num>?go1():go2();
}
然后注射到程序中,实现恶作剧
四、数据类型
#include<stdio.h>
#include<stdlib.h> void main()
{
int num=;
char ch='';
printf("%d,%c",num,num);
printf("\n%d,%c",ch,ch);
system("pause");
}

稍作修改如下

#include<stdio.h>
#include<stdlib.h> void main(){
printf("%d",sizeof());//int的常量 4个字节
printf("\n%d",sizeof(4.0));//double 8个字节
printf("\n%d",sizeof(4.0f));//float 4个字节
printf("\n%d",sizeof(4u));//unsigned int 4个字节
getchar();
}

#include<stdio.h>
void main(){
//数据类型指明了二进制该如何解析
int num1=;
float num2=10.0;
printf("%x,%f",num1,num1);
printf("\n%x,%f",num2,num2);
printf("\n%x,%x",&num1,&num2);
getchar();
}

五、三角形面积
#include<stdio.h>
#include<stdlib.h>
#include<math.h> void main(){
float a,b,c,s,p;
scanf("%f%f%f",&a,&b,&c);//数据输入,初始化a,b,c
printf("a=%f,b=%f,c=%f\n",a,b,c);
p=(a+b+c)/;
s=sqrt(p*(p-a)*(p-b)*(p-c));//sqrt求平方根
printf("面积s=%f",s);
system("pause");
}
六、字符转换成整数
#include<stdio.h>
#include<stdlib.h> void main(){
//字符0的编号是48,按照字符是0
printf("字符0编号=%d,字符0的字符=&c",'','');
printf("\n整数0编号=%d,整数0的字符=&c",,);
printf("\n%d",''-);//字符转换成整数
printf("\n%d",''-);//都等于48
system("pause");
}
七、大小写转换
#include<stdio.h>
#include<stdlib.h> void main()
{
char ch=getchar();
//putchar(ch+32);//大写->小写
putchar(ch-);//小写->大写
system("pause");
}
八、字符串拼接
#include<stdio.h>
#include<stdlib.h> void main(){
char str1[]="note";
char str2[]="pad";
char str3[];
sprintf(str3,"%s%s",str1,str2);
system(str3);
getchar();
}
[c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等的更多相关文章
- C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。-使字符串的前导*号不得多于n个,若多余n个,则删除多余的*号,
//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. #include <stdio.h> void fun( char * ...
- php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符
ord('a');//=>97 返回小写a 的ascii码值97 chr(97);//=>a 返回ascii码表上的97对应的 小写a
- 特殊的ASCII码对应的字符
Special Characters " " " quotation mark u+0022 ISOnum p:before { content:"\0022& ...
- 利用浏览器做好数字进制和ASCII码及Unicode教与学
浏览器是现在个人计算机的标配,一般来说一个PC至少安装一种以上的浏览器.主流网页浏览器有Google Chrome.Internet Explorer.Microsoft Edge.Mozilla F ...
- 教程-最全ASCII 码对照表
第一部分由 00H 到 1FH 共 32 个,一般用来通讯或作为控制之用,有些字符可显示于屏幕,有些则无法显示在屏幕上,但能看到其效果(例如换行字符.归位字符). 第二部分是由 20H 到 7FH 共 ...
- C++ ASCII 码的一些问题
关于ASCII码和转义字符的对应问题,一直都有个困惑.所以今天校验了一下是什么情况. 转义字符的百度百科:http://baike.baidu.com/link?url=D9ytjAeiYr1ZGKG ...
- C语言字符转换ASCII码
//函 数 名:CharToHex()//功能描述:把ASCII字符转换为16进制//函数说明://调用函数://全局变量://输 入:ASCII字符//返 回:16进制///////// ...
- C语言之字符集、ASCII码和sizeof运算符
一 字符集和ASCII码 结论:字符本质上也是一个整数,每个字符都有唯一一个与之对应的整数, 比如说小写的a对应97,b对应98,c对应99,大写的A对应65,B对应66,C对应67 所以字符对应的那 ...
- js字母/字符与ASCII码转换
var tempStr="A"; console.log(tempStr.charCodeAt());// 65 ,转ASCII码 console.log(String.fromC ...
随机推荐
- Entity Framework Code First(概要)
EF开源项目地址:https://github.com/aspnet/EntityFramework6 MSDN :https://msdn.microsoft.com/en-us/library/a ...
- Spark以yarn-client提交任务时报错超时,Connection to 192.168.. /has been quiet forms while there are outstanding requests. Failed to send RPC.....
报错信息如上,具体是运行FusionInsight给的样例SparkPi,在local环境下是可以的,但是如果以yarn-client模式就会卡住,然后120s以后超时,其实以yarn-cluster ...
- InstallShield2015制作安装包----------安装后实现电脑开机自启动
开机自启动有两个方法: 一 .把程序的快捷方式放在”开始---启动“目录下. 二.把程序的安装目录放在注册表”“. 实现方法一: 1.编写bat脚本.执行bat启动exe. a)核心:cmd命令 : ...
- div上下左右居中方法
方法一:在浏览器中只有一个div的情况 { position:fixed; position:fixed; ; ; ; ; margin:auto; } 方法一 方法二:一个父元素div和一个已知宽度 ...
- c# mongo 数组里对象更新
var queryDetail = new BsonDocument("cNo", doc.cNo); queryDetail.AddRan ...
- sql 存储过程命名规范
规范的命名可以提高开发和维护的效率,如果你正在创建一个新的存储过程,请参考如下的命名规范. 句法: 存储过程的命名有这个的语法:[proc] [MainTableName] By [FieldName ...
- Unity shader学习之屏幕后期处理效果之Bloom效果
Bloom特效是游戏中常见的一种屏幕效果.这种特效可以模拟真实摄像机的一种图像效果,它让画面中较亮的区域“扩散”到周围的区域中,造成一种朦胧的效果. Bloom的实现原理很简单,首先根据一个阈值提取出 ...
- ECC
素数 prime,又称为质数,是指,除了1和它本身,没有其他因数的数. 素数的定理: 1)在一个大于1的数a和它的2倍之间必定存在至少一个素数: 素数的性质: 1)在所有的大于10的质数中,个位数,只 ...
- kali linux dns劫持
1,確定局域網ip 2,修改/etc/ettercap/etter.dns 添加自己的ip和劫持域名 3,/var/www/index.html (修改html页面替换被劫持的 ...
- javascript(二):数据类型&数值
第一部分:数据类型 javascript数据类型通常来说是6种(ES6新增第七种Symbol类型) number:数值 string:字符串 boolean:布尔类型,true或false undef ...
