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;
}