【C/C++學院】(1)分支結構/熊貓燒香/自我刪除/switch/循環結構/break/contine/goto/遞歸
1.if-else分支結構
void run(int n) { if (1 == n) { system("taskkill /f /im 360se.exe");//關閉360進程 } else if (2 == n) { system("shutdown -s -t 60");//60s後關機 } else if (3 == n) { system("msconfig");//打開係統配置 } else if (4 == n) { while (1) { malloc(1024 * 1024);//1M內存,不斷吃直到卡死 } } else if (5 == n) { system("shutdown -a");//取消關機 } else if (6 == n) { ShellExecuteA(0, "open", "https://www.baidu.com", 0, 0, 3);//打開網址 } else if (7 == n) { system("echo 小夥你中木馬了"); } else { system("tasklist");//顯示所有的進程 } }
2.獲取隨機數
#include <time.h>//使用時間數據類型 time_t
time_t ts;//時間的變量
srand((unsigned int)time(&ts));//time是一個函數,獲取時間保存結果ts中
int sNum = rand();//獲取隨機數
3.熊貓燒香
熊貓燒香跟灰鴿子不同,這是名副其實的病毒,是一種經過多次變種的“蠕蟲病毒”變種,2006年10月16日由25歲的中國湖北武漢新洲區人李俊編寫,擁有感染傳播功能,2007年1月初肆虐網絡,它主要通過下載的檔案傳染,受到感染的機器文件因為被誤攜帶間接對其它計算機程序、係統破壞嚴重。2013年6月病毒製造者張順和李俊夥同他人開設網絡賭場案,再次獲刑。
4.自我刪除
寫一個bat,批處理文件
selfdel.bat
文件內容為:
del path\selfdel.bat
5.解一元二次方程
//#define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996)//去掉安全檢查 #include <stdio.h> #include <stdlib.h> void calc(int a, int b, int c) { if (a == 0)//bx+c=0 { if (b == 0)//c=0 { if (c == 0) { printf("x為任意值\n"); } else { printf("無解\n"); } } else//x=-c/b { printf("x=%f\n",-1.0*c/b); } } else//ax^2+bx+c=0 { int B24AC = b*b - 4 * a*c; printf("B24AC = %d\n", B24AC); float B_2A = -1.0*b / 2 / a; printf("B_2A = %f\n", B_2A); if (B24AC == 0) { printf("x1=x2=%f\n", B_2A); } else if (B24AC > 0) { float TmpSqrt = sqrt(B24AC)/2.0/a; printf("x1=%f,x2=%f\n", B_2A + TmpSqrt, B_2A - TmpSqrt); } else//B24AC < 0 { float TmpSqrt = sqrt(-1*B24AC) / 2.0 / a; printf("x1=%f+%fi,x2=%f-%fi\n", B_2A , TmpSqrt, B_2A, TmpSqrt); } } } int main() { int a = 0, b = 0, c = 0; printf("please input a, b, c:\n"); scanf("%d %d %d", &a, &b, &c); printf("%dx^2+%dx+%d=0\n", a, b, c); printf("解為:\n"); calc(a, b, c); system("pause"); return 0; }
6. switch
int num;
char ch;
float fl;
double db;
switch(num)//成立
{
}
switch(ch)//成立
{
}
switch(fl)//錯誤
{
}
表達式必須包含整形
7.循環結構
cmd中敲入命令:
for /l %i in (1,1,5) do echo gogogo
for /? 查看幫助
for,while, do-while,
1加到100;
#include <stdio.h> void addfor() { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; printf("i=[%d], sum=[%d]\n", i, sum); } } void addwhile() { int n = 1; int sum = 0; while (n <= 100) { sum += n; printf("n=[%d], sum=[%d]\n", n, sum); n++; } } void adddowhile() { int sum = 0; int n = 1; do { sum += n; printf("n=[%d], sum=[%d]\n", n, sum); n++; }while (n<=100); } void main() { adddowhile(); system("pause"); }
2的n次方;
#pragma warning(disable:4996) #include <stdio.h> void funfor() { int n = 0; int iRes = 1; printf("please input n:\n"); scanf("%d", &n); for (int i = 0; i < n; i++) { iRes = iRes * 2; } printf("2的%d次方=%d\n", n, iRes); } void funwhile() { int n = 0; int iRes = 1; printf("please input n:\n"); scanf("%d", &n); printf("2的%d次方=", n); while (n>0) { iRes = iRes * 2; n--; } printf("%d\n", iRes); } void fundowhile() { int n = 0; int iRes = 1; printf("please input n:\n"); scanf("%d", &n); printf("2的%d次方=", n); do { if (n != 0) { iRes = iRes * 2; } n--; } while (n > 0); printf("%d\n", iRes); } void main() { fundowhile(); system("pause"); }
整數逆序輸出;
#pragma warning(disable:4996) #include <stdio.h> void main() { int ShuZi = 0; printf("please input n:\n"); scanf("%d", &ShuZi); printf("----------------------\n"); int WeiShu = 0; while (ShuZi) { printf("%d", ShuZi % 10); ShuZi = ShuZi / 10; } system("pause"); }
8. break
節約計算機資源,找到就退出循環。
窮舉法;
//316 = 11 * x + 15 * y; #include <stdio.h> void main() { int x = 0; for (x = 0;; x++) { if( (316 - 11 * x )% 15 == 0) { printf("%d,%d\n", x, (316 - 11 * x)/15); break; } } system("pause"); }
9.continue
停止當前循環,進行下一次。
打印不能被3整除的數字
#include <stdio.h> void main() { for (int i = 1; i <= 100; i++) { if (i % 3 == 0) { continue; } printf("%d\n", i); } system("pause"); }
10.goto
死循環
1加到100
#include <stdio.h> void main() { int i = 1; int sum = 0; loop: if (i<=100) { sum += i; printf("%d,%d\n", i, sum); i++; } goto loop; system("pause"); }
11.遞歸
//10進製轉2進製 #define _CRT_SECURE_NO_WARNINGS //10進製轉2進製 #include <stdio.h> #include <stdlib.h> void change2(int n) { if (n == 1)//終止循環條件 { printf("%d", n); } else { change2(n / 2); printf("%d", n%2); } } void main() { int num = 0; printf("please input:\n"); scanf("%d", &num); change2(num); system("pause"); }
最後更新:2017-04-03 16:48:53