【C語(yǔ)言學(xué)習(xí)】十進(jìn)制轉(zhuǎn)二進(jìn)制和十六進(jìn)制|函數(shù)封裝|數(shù)組等基礎(chǔ)要點(diǎn)講解

心得感悟

對(duì)于宏定義的使用,我還只是一知半解,不過(guò)在日后學(xué)習(xí)過(guò)程中回頭看,應(yīng)該會(huì)有新的理解和感悟吧。封裝和數(shù)組的使用的確讓程序變得更加簡(jiǎn)潔方便,在練習(xí)數(shù)組的使用時(shí),了解到了知識(shí)盲區(qū),如果給一個(gè)數(shù)組賦初值0(或不賦值),則里面的所有元素的值都為0。經(jīng)過(guò)幾天的練習(xí),我明顯感覺(jué)到我編程的速度比以前快了,準(zhǔn)確地說(shuō)應(yīng)該是程序邏輯思維更強(qiáng)了。果然編程還是需要自己思考多一點(diǎn),想明白每個(gè)程序的原理,慢慢地就會(huì)發(fā)現(xiàn)自己不知何時(shí)就掌握了程序的邏輯思維。


1. 目的

  • 復(fù)習(xí)float,int,long,char類型用法
  • 復(fù)習(xí)比較運(yùn)算符
  • 理解掌握數(shù)據(jù)類型轉(zhuǎn)換
  • 掌握自定義頭文件和實(shí)現(xiàn)文件的使用
  • 掌握數(shù)組的使用

2. 技術(shù)

  • char類型的使用
  • 比較運(yùn)算符的注意事項(xiàng)
  • ++ -- 的運(yùn)用
  • 自定義頭文件和實(shí)現(xiàn)文件
  • 封裝
  • 解決“頭文件互相引用出錯(cuò)”的問(wèn)題
  • 數(shù)組的基本使用
  • 寫一個(gè)程序,用數(shù)組儲(chǔ)存1-100的數(shù),并輸出它們的和
  • 寫一個(gè)程序,實(shí)現(xiàn)由十進(jìn)制轉(zhuǎn)二進(jìn)制,十進(jìn)制轉(zhuǎn)十六進(jìn)制

3. 技術(shù)的使用

  • char類型的使用

char型數(shù)值可用%d,%c打印,用%d打印出來(lái)則為ASCII碼

  • 比較運(yùn)算符的注意事項(xiàng)

比較運(yùn)算符有 > < == != || &&
&& 前為假,后面不執(zhí)行
| | 前為假,后面執(zhí)行

i = 10;
j = 20;
if(i < 20 && j++ >10){…};//前為假,j++不執(zhí)行
運(yùn)行后 j = 20
if(i < 20 || j++ >10){…};//前為假,j++執(zhí)行
運(yùn)行后 j = 21
  • ++ -- 的運(yùn)用

a++ 表達(dá)式結(jié)束后才+1
++a 先+1,再運(yùn)算

    int temp1 = 20;
    printf("1:%d\n",temp1++);
    printf("1:%d\n",temp1);
    //運(yùn)行結(jié)果為20,21
    //a++ 當(dāng)表達(dá)式結(jié)束之后 在+1
    //++a;先+1 再去運(yùn)算
  • 自定義頭文件和實(shí)現(xiàn)文件

.h 函數(shù)的聲明,變量的聲明(不能賦值)
.c 具體實(shí)現(xiàn) 實(shí)現(xiàn)函數(shù)的功能 操作變量

1.新建一個(gè)頭文件

void login(void);

2.新建一個(gè)實(shí)現(xiàn)文件

#include"ATMapp.h"
#include<stdio.h>
#include "stdafx.h"
void login(void) {
    printf("************************\n\n");
    printf("         登錄\n\n");
    printf("************************\n\n");
}
  • 封裝
    1.創(chuàng)建.h文件
    2.創(chuàng)建.c文件
    3.在.h文件導(dǎo)入.c文件
    4.在使用的地方導(dǎo)入.h文件
#include "stdafx.h"
#include"ATMapp.h"
#include<iostream>
int main()
{
    login();
    return 0;
}
  • 解決“頭文件互相引用出錯(cuò)”的問(wèn)題
    解決辦法:使用宏定義
    宏定義優(yōu)點(diǎn):
    1.給特定數(shù)值一個(gè)特定的意義
    2.便于管理
#ifndef
#define
    代碼塊(.c)
#endif
  • 數(shù)組的基本使用

什么時(shí)候用?
答:需要存儲(chǔ)多個(gè)同種類型數(shù)據(jù)時(shí)。
1.能存儲(chǔ)數(shù)據(jù) 就必須有內(nèi)存
2.如何定義一個(gè)數(shù)組同時(shí)為他分配內(nèi)存
3.數(shù)組定義必須明確知道數(shù)組大小
??a.初始化幾個(gè)就是幾個(gè)
4.數(shù)組的名字就是數(shù)組的首地址(第一個(gè)元素的地址)

int main(int argc, char const *argv[])
{
    //int a = 10;
    //定義一個(gè)數(shù)組 里面存的都是float的值 可以存4個(gè)數(shù)據(jù)
    //4*4byte=16byte
    float score[]={29,235,235,245};

    //訪問(wèn)第一個(gè)元素的值  0....n-1
    score[0];

    //獲取第一個(gè)元素的地址
    &score[0];

    //使用%p打印地址
    printf("%p\n",&score[0]);
    printf("%p\n",score);
    //b.在定義時(shí)明確指定數(shù)組的大小
    int temp[5];
    //c.明確指定大小 并且初始化部分?jǐn)?shù)據(jù)
    int temp2[5] = {1,2};
    
    //如何使用數(shù)組
    //訪問(wèn) 通過(guò)下標(biāo)來(lái)訪問(wèn) 0 —— n-1
    printf("%d\n",temp2[0] );

    //賦值
    temp2[0] = 6;
    return 0;
}
  • 寫一個(gè)程序,用數(shù)組儲(chǔ)存1-100的數(shù),并輸出它們的和
    for循環(huán)實(shí)現(xiàn)
int main()
{
    int num[100];
    int i = 0;
    int sum = 0;
    for (i = 0; i < 100; i++) {
        num[i] = i + 1;
        sum += num[i];
    }
    printf("%d", sum);
    system("pause");
    return 0;
}

while循環(huán)實(shí)現(xiàn)

int main()
{
    int num[100];
    int i = 0;
    int sum = 0;
    while (i<100)
    {
        num[i] = i + 1;
        sum += num[i];
        i++;
    }
    printf("%d", sum);
    system("pause");
    return 0;
}
  • 寫一個(gè)程序,實(shí)現(xiàn)由十進(jìn)制轉(zhuǎn)二進(jìn)制,十進(jìn)制轉(zhuǎn)十六進(jìn)制

先選一個(gè)十進(jìn)制數(shù)計(jì)算,弄清楚它的運(yùn)算順序,再進(jìn)行編寫
順序:對(duì)原數(shù)字求余,并存入數(shù)組→原數(shù)字/2(/16)→到數(shù)組下一個(gè)位置
十六進(jìn)制有字母,在此用以下方法打印

#include "stdafx.h"
#include<iostream>

int main()
{
    int num1 = 0;
    int i = 0;
    int j = 0;
    int two[20];
    printf("【轉(zhuǎn)換成二進(jìn)制】\n");
    printf("請(qǐng)輸入一個(gè)數(shù)字:");
    scanf_s("%d", &num1);
    while(1){
        two[i] = num1 % 2;
        num1 /= 2;
        if (num1 == 0) {
            break;
        }
        i++;
    }
    for (j=i; j >= 0; j--) {
        printf("%d", two[j]);
    }
    printf("\n\n");

    int num2 = 0;
    int m = 0;
    int n = 0;
    char six[20];
    printf("【轉(zhuǎn)換成十六進(jìn)制】\n");
    printf("請(qǐng)輸入一個(gè)數(shù)字:");
    scanf_s("%d", &num2);
    while (1){
        six[m] = num2 % 16;
        num2 /= 16;
        if (num2 == 0) {
            break;
        }
        m++;
    }
    for (n=m; n >= 0; n--) {
        int k = six[n];
        if (k >= 10) {
            printf("%c", 'A' + k - 10);
            //'A'對(duì)應(yīng)的ASCII碼值為10
        }
        else
        {
            printf("%d", k);
        }
    }
    printf("\n\n");
    system("pause");
    return 0;
}

4.進(jìn)制轉(zhuǎn)換程序的實(shí)現(xiàn)效果

進(jìn)制轉(zhuǎn)換演示1.gif
進(jìn)制轉(zhuǎn)換演示2.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,060評(píng)論 0 2
  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • 版權(quán)聲明:本文為 gfson 原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。注:作者水平有限,文中如有不恰當(dāng)之處,請(qǐng)予以指正,萬(wàn)分感謝...
    gfson閱讀 3,495評(píng)論 0 6
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,339評(píng)論 0 10
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,718評(píng)論 0 5

友情鏈接更多精彩內(nèi)容