【C語言基礎】1-3 C語言關鍵字與ASCII碼錶

C語言基礎:關鍵字與ascii碼錶

  • 一般製作程序的流程如下:
    • 編寫好源代碼
    • 編譯前,進行預處理
    • 進行編譯,生成OBJ文件
    • 連接,將多個obj文件與庫函數進行連接
    • 生成目標程序,即可以運行
  • 32個關鍵字
    • auto自動變量
    • int 整型變量
    • double 雙精度變量
    • long 長整型變量
    • char 字符型變量
    • float 浮點型變量
    • short 短整型變量
    • singned 有符號類型變量
    • struct 結構體變量
    • typedef 數據類型取別名
    • union 聯合數據類型enum 枚舉類型
    • extern 變量在其他文件中聲明
    • volatile 變量在程序執行中不被忽略
    • static 靜態變量
    • register 寄存器變量
    • unsigned 無符號類型變量
    • return 子程序返回語句
    • void 函數無返回值或無參數,聲明空類
    • sizeof 計算對象所佔空間大小
    • switch 開關語句
    • case 語句分支
    • default “其他”分支
    • break 跳出當前循環
    • do 循環語句的循環體
    • while 循環語句的循環條件
    • if 條件語句
    • else 條件語句否定分支
    • for 循環語句
    • goto 無條件跳轉語句
    • continue 結束當前循環,開始下一輪循環
    • const 只讀變量
  • 幾個函數說明
    • 安全的輸入函數scanf_s();
    • 字符獲取函數getchar()和字符輸出函數putchar();
    • _getch()函數 不帶回顯的輸入函數
    • a?b:c的解釋:表達式a的值爲true,則返回b的值;否者返回c的值
    • ascii表
        -
    • 清空scnaf_s()的輸入緩衝區
    • scanf_s(“%*[^\n]%*c”); //清空輸入緩衝區 放在scanf_s 後面

代碼整理

2-1

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    system("title 1211111");
    system("color 0c");
    system("ipconfig");
    printf("hello\n");
    system("pause");
    return 0;
}

2-2

#include <stdio.h>
#include <stdlib.h>
void printf1();
int main()
{
    system("color 0D");
    printf1();
    system("pause");
    return 0;
}
void printf1()
{
    printf("   *\n");
    printf("  ***\n");
    printf(" *****\n");
    printf("*******\n");
}

2-3

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
    //system("title Hello World");
    //system("color 14");
    //system("systeminfo");
    //system("pause");
    //return 0;
    //int a, b, temp;
    //a = 100;
    //b = 200;
    //int c = 65;
    //char c1 = 'A';
    //printf("變化前:a=%d,b=%d\n", a, b);
    //temp = a;
    //a = b;
    //b = temp;
    //
    //printf("變化後:a=%d,b=%d\n", a, b);
    //printf("a的十進制表示爲:%d\na的八進制表示爲:%o\na的十六進制表示爲:0x%x\n", a, a, a);
    //printf("65的字符表示:%c\n", c);
    //printf("A的十進制表示:%d\n", c1);
    //system("pause");
    int a, b, c;
    scanf_s("%d", &a);
    scanf_s("%d", &b);
    c = a + b;
    printf("%d\n", c);
    c = a - b;
    printf("%d\n", c);
    c = a*b;
    printf("%d\n", c);
    c = a / b;
    printf("%d\n", c);
    system("pause");
    return 0;
}

2-4

// day2-04.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
    char szCommandLine[] = "cmd";
    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi;
    si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成員有效
    si.wShowWindow = TRUE;//此成員設爲TURE的話則顯示新建進程的主窗口,爲FALSE的話不顯示

    BOOL bRet = ::CreateProcess(
        NULL,                   //不在此指定可執行文件的文件名
        szCommandLine,          //命令行參數
        NULL,           //默認進程安全性
        NULL,           //默認線程安全性
        FALSE,          //指定當前進程內的句柄不可以被子進程繼承
        CREATE_NEW_CONSOLE,         //爲新進程創建一個新的控制檯窗口
        NULL,           //使用本進程的環境變量
        NULL,           //使用本進程的驅動器和目錄
        &si,            //
        &pi         //
        );
    if (bRet)
    {//不使用的句柄應當立即關閉
        ::CloseHandle(pi.hThread);
        ::CloseHandle(pi.hProcess);
        printf("新進程的進程ID號:%d\n",pi.dwProcessId);
        printf("新進程的主線程ID號:%d\n", pi.dwThreadId);
    }
    return 0;
}

2-5

// printf函數.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
    int _int=5;
    double int_=5.0;
    char For='5';
    float USS=5.0;
    int a = 20;
    printf("%d\n", a);
    printf("%10d%d\n", a);
    printf("%-10d%d\n", a);
    printf("%p", &a);
    printf("\n————————————————————————————————\n");
    int nNumb = 10;
    printf("%d\n",nNumb);
    printf("%4d\n", nNumb);
    printf("%-4d\n", nNumb);
    long long int nNumbA = 10;
    printf("%ld\n",nNumbA);
    printf("%o\n",nNumbA);
    printf("%x\n",nNumbA);
    unsigned char nNumbB = 254;
    printf("%u\n", nNumbB);
    printf("%c\n", nNumbB);
    printf("%d\n",nNumbB);
    char ch[] = "he";
    printf("%5s\n", ch);
    printf("%-5s\n", ch);
    float fNumbC = 127665.4986;
    printf("%15.2f\n", fNumbC);
    printf("0x%p\n",ch);
    printf("\n————————————————————————————————\n");
    printf("\n————————————————————————————————\n");
    printf("%d,%f,%c,%f",_int,int_,For,USS);
    system("pause");
    return 0;
}

2-6 作業

#include <stdio.h>
#include<stdlib.h>
void timu1()
{
    system("cls");
    printf("題目1.判斷是否是奇數\n");
    int a;
    printf("請輸入一個數用來判斷是否爲奇數\n");
    scanf_s("%d", &a);
    if (a % 2 == 0)
        printf("%d不是奇數\n", a);
    else
        printf("%d是奇數\n", a);
    system("pause");
}
void timu2()
{
    system("cls");
    printf("題目2.判斷是否是閏年\n");
    int a;
    printf("請輸入一個年份\n");
    scanf_s("%d", &a);
    if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
    {
        printf("%d是閏年", a);
    }
    else
        printf("%d不是閏年", a);
    system("pause");
}
void timu3()
{
    system("cls");
    printf("題目3.輸出兩個數中較大的\n");
    int a, b;
    printf("請輸入兩個整數,中間用空格間隔,輸入完成後敲回車確認\n");
    scanf_s("%d%d", &a, &b);
    //if (a > b)
    //  printf("二者中較大的值爲:%d", a);
    //else
    //{
    //  printf("二者中較大的值爲:%d", b);
    //}
    printf("二者中較大的值爲:%d\n", a > b ? a : b);
    system("pause");
}
void timu4()
{
    system("cls");
    printf("題目4.判斷字符\n");
    char b;
    printf("請輸入一個字符\n");
    b = getchar();
    scanf_s("%c", &b, 1);
    if (48 <= b&&b <= 57)
    {
        printf("是一個數字\n");
    }
    if (65 <= b&&b <= 90)
    {
        printf("是一個大寫英文字母\n");
    }
    if (97 <= b&&b <= 122)
    {
        printf("是一個小寫英文字母\n");
    }
    system("pause");
}
void timu5()
{
    system("cls");
    int a, b, c;
    printf("題目5.輸入三個整數,中間用空格間隔,輸入完成後敲回車確認");
    scanf_s("%d%d%d", &a, &b, &c);
    if (a > b&&b > c)
        printf("max=%d,mid=%d,min=%d", a, b, c);
    if (a > b&&b < c&&a < c)
        printf("max=%d,mid=%d,min=%d", c, a, b);
    if (a > b&&b<c&&a>c)
        printf("max=%d,mid=%d,min=%d", a, c, b);
    if (a < b&&b < c)
        printf("max=%d,mid=%d,min=%d", c, b, a);
    if (a<b&&b>c&&a>c)
        printf("max=%d,mid=%d,min=%d", b, a, c);
    if (a<b&&b>c&&a<c)
        printf("max=%d,mid=%d,min=%d", b, c, a);
    system("pause");
}
void timu6()
{
    system("cls");
    char ch='s';
    printf("轉換大小寫\n轉換前字母爲:%c\n",ch);
    ch = ch - 32;
    printf("轉換後字母爲:%c\n", ch);
    system("pause");
}
void timu7()
{
    system("cls");
    int a, b, c;
    float avg;
    printf("題目.7請輸入三個成績,中間用空格間隔,輸入完成後敲回車確認\n");
    scanf_s("%d%d%d", &a, &b, &c);
    printf("三個人的總成績爲:%d\n", a + b + c);
    avg = (float)(a + b + c) / 3;
    printf("三個人的平均成績爲:%f\n", avg);
    system("pause");
}
void timu8()
{
    system("cls");
    int year, month, day,days;
    days = 0; 
    char months_ping[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    char months_run[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    printf("題目.8請輸入一個年份\n");
    scanf_s("%d", &year);
    printf("請輸入一個月份\n");
    scanf_s("%d", &month);
    printf("請輸入一個日期\n");
    scanf_s("%d", &day);
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    {
        if (month==1)
        {
            days = day;
        } 
        else
        {
            for (int i = 0; i < month-1; i++)
            {
                days += months_run[i];
            }
            days = days + day;
        }
    }
    else
    {
        if (month ==1)
        {
            days = day;
        }
        else
        {
            for (int i = 0; i < month-1; i++)
            {
                days += months_ping[i];
            }
            days = days + day;
        }
    }
    printf("你輸入的日期是%d%d%d日,是該年的第%d天",year,month,day,days);
    system("pause");
} 
void timu9()
{
    system("cls");
    int a;
    printf("題目.9請輸入一個數\n");
    scanf_s("%d", &a,1);
    if (a % 5 == 0 && a % 7 == 0)
    {
        printf("Yes");
    }
    else
    {
        printf("No");
    }
    system("pause");
}
void timu10()
{
    int a, b,re;
    char c;
    printf("題目10.請輸入運算表達式:\n");
    scanf_s("%d%c%d", &a, &c, 1, &b);
    switch (c)
    {
    case '+':
        re = a + b;
        break;
    case '-':
        re = a - b;
        break;
    case '*':
        re = a*b;
        break;
    case '/':
        re = a / b;
        break;
    default:
        printf("符號錯誤");
        break;
    }
    printf("%d",re);
    system("pause");
}
int main()
{
    while (1)
    {
        int i;
        system("cls");
        system("color 0a");
        printf("-----------15pb作業002----------\n");
        printf("請輸入想要查看的題目序號:\n");
        scanf_s("%d", &i,1);
        scanf_s("%*[^\n]%*c");   //清空輸入緩衝區    放在scanf_s 後面
        printf("--------------------------------\n");
        switch (i)
        {
        case 1:
            timu1();
            break;
        case 2:
            timu2();
            break;
        case 3:
            timu3();
            break;
        case 4:
            timu4();
            break;
        case 5:
            timu5();
            break;
        case 6:
            timu6();
            break;
        case 7:
            timu7();
            break;
        case 8:
            timu8();
            break;
        case 9:
            timu9();
            break;
        default:
            timu10();
            break;
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章