Android_开发_Day2_C语言基础

Android_开发_Day2_C语言基础


一、简单C语言程序hello word的输出解读

<1>每个C程序都会有个头文件stdio.h的导入,其中包含了常用函数scanf,printf。导入时用分号与尖叫号的区别是,用分号编译器会先在该工程中去寻找,后到系统库去寻找,而尖角符号刚好相反。

<2>程序接入点main函数的解读,main函数作为一个程序的主函数它有数据类型,自然有返回值,而返回值就是该函数成功执行的标志,main函数的返回值0代表成功运行,1则表示失败。程序正常退出,程序资源自己分配,非正常退出,程序会没收运行过程中获取的资源。

<3>集成开发环境IDE。一个程序的诞生过程:

写代码:文本编辑器  文本文档  Sublime

编译:编译器(将高级语言如C,Java,C++,转化成低级语言机器代码)  javac  gcc  编译原理:1.预编译/预处理 将头文件进行展开->完整的程序                2.汇编  将高级语言转化为汇编语言   3.编译  二进制数据  4.链接  1.0  2.0  3.0 ->可执行程序.exe  5.运行。

显示结果:console。

二、从C数据类型到循环

<1>main函数的参数即运行时传入main函数的参数,用终端运行时可以向其传入参数,但一般集成开发环境不会让你传入参数。

<2>关键字:编译器定义的  char  不能用关键字命名

<3>注释,分单行注释和多行注释  单行://……   多行/*……*/。对函数注释的内容一般包括:函数功能,参数个数和类型,及其返回值

<4>printf的输出时的技巧:int %d  float(double) %f  long  %ld  char  %c  char * %s    格式控制符%02d可以输出02,05等日期,前面加0可以占位,如果是%5.6f就表示总共5位,小数点后面有6位,如果超了就不管了只管小数点后面的,并且还可以自动四舍五入,当然如果只想保留小数位那直接%.6f就行了。64位系统里面占4个字节,在32位系统里面占2个字节(1字节=八位)。int型能表示的最大数看系统和编译器,如果是64位的系统一个整形4字节,一个字节八位总共32位,即2^(32)。如果用%d的格式输出字符常量的话会输出其ascll码,反之亦然,因此可以用来轻松输出字母a~z,代码如下:

#include "stdafx.h"

#include "iostream"

int _tmain(int argc, _TCHAR* argv[])

{

for (int i = 97; i <123; i++)

{

printf("%c\n", i);

}

system("pause");

return 0;

}

<5>从终端输入用scanf函数,使用时注意要取址&。终端输入到数值接收有一个过程:

1.终端输入  20  a  b  

2.操作系统的io流来接收  缓存  20  a  b

3.将io流放到对应的内存空间  20->0x100

因此连续用scanf函数时要注意缓存的问题同时最后敲的回车键即换行符\n也会被计入缓存 。清除缓存可以用getchar()函数,也可以用fflush(stdin);命令行。

<6>if条件语句,若括号里面的内容非“0”即真。格式有if--else,if--else if--else,switch。

<7>循环语句while,for。for循环中的有3个参数分别是定义,条件,运算,如for(int i=0;i<10,i++){……},执行顺序是从左往右依次进行,若执行条件时满足,则转入执行大括号内的内容,执行完后继续往右执行,全部完成后又开始从条件执行,直到条件不满足为止。应用,如输出1-10中的奇数,代码如下:for(int i=1;i<=10,i+=2){

printf("%d",i);

}

break和continue的区别,break直接不干了,continue本次循环不干了。

三、选择语句、循环语句的实战运用

写一个ATM取款机的程序,界面要求:

UI:

******************************

                  欢迎

******************************

1.取款

2.存款

3.设置密码

4.退出

请选择:

程序要求:

1.进入前先输入密码,密码错误次数达到4次后退出程序

2.选择取款后进入取款操作,取款金额大于原有金额将会报错,取款后自动显示余额

3.选择存款后进入存款操作,存完后自动显示余额

4.选择设置密码后进入设置密码的操作,要求输入原密码与新密码,并确认新密码

5.选择退出后要退出程序

实现代码如下,仅供参考:

#include "stdafx.h"

#include "iostream"

#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])

{

int choice = 0,password=1234,password1;

int toal = 10000, toal1,toal2;

printf("* **  ***  ****\n");

printf("    欢迎\n");

printf("* **  ***  ****\n");

while(1){

for (int i = 0; i < 4; i++){

printf("请输入密码:");

scanf("%d", &password1);

if (password1 == password)

{

break;

}

else

{

printf("密码错误!请重新输入!\n");

}

}

if (password1 == password)

{

break;

}

printf("抱歉!你已经累计输错了4次密码,此卡已冻结,请联系客服!\n");

for (int i = 5; i > 0; i--)

{

printf("\r%d秒后程序将自动退出!", i);

Sleep(1000);

}

exit(EXIT_SUCCESS);

}

//密码验证程序

while (1)

{

printf("    1.取款\n");

printf("    2.存款\n");

printf("    3.设置密码\n");

printf("    4.退出\n");

printf("请选择:");

scanf("%d", &choice);

switch (choice)

{

case 1:

while (1)

{

printf("请输入取款金额:");

scanf("%d", &toal1);

if (toal1>toal)

{

char juge;

printf("抱歉!你的余额不足!是否继续?(y/n)\n");

fflush(stdin);

juge = getchar();

if (juge == 'n')

{

exit(EXIT_SUCCESS);//退出程序

}

else

{

break;

}

}

else

{

toal -= toal1;

printf("取款成功!余额为:%d\n",toal);

break;

}

}

break;

case 2:

printf("请输入存款金额:");

scanf("%d", &toal2);

toal += toal2;

printf("存款成功!余额为:%d\n", toal);

break;

case 3:

int i;

for ( i = 0; i < 4;i++)

{

printf("请输入原密码:");

scanf("%d", &password1);

if (password1 == password)

{

while (1)

{

int password2;

printf("请输入新密码:");

scanf("%d", &password1);

printf("请确认新密码:");

scanf("%d", &password2);

if (password1 != password2)

{

printf("你两次输入的密码不一致,请重新输入!\n");

}

else

{

break;

}

}

password = password1;

printf("密码修改成功!\n");

break;

}

printf("密码错误!请在试一次!\n");

}

if (i==4)

{

for (int  j = 5; j >0; j--)

{

printf("\r你已经输错四次密码了,%d秒后程序将自动退出!", j);

Sleep(1000);

}

exit(EXIT_SUCCESS);

}

break;

case 4:

for (int i = 5; i > 0; i--)

{

printf("\r%d秒后程序将自动退出!", i);

Sleep(1000);

}

exit(EXIT_SUCCESS);

break;

default:

printf("无法识别的指令,请重新输入\n");

break;

}

}

system("pause");

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342