美文网首页Android开发成长史
Android_开发_Day2_C语言基础

Android_开发_Day2_C语言基础

作者: 不要问我问就是百度 | 来源:发表于2019-07-29 22:04 被阅读3次

                             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;

    }

    相关文章

      网友评论

        本文标题:Android_开发_Day2_C语言基础

        本文链接:https://www.haomeiwen.com/subject/xzlvrctx.html