【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", "http://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");
}
时间: 2024-08-01 11:32:50

【C/C++学院】(1)分支结构/熊猫烧香/自我删除/switch/循环结构/break/contine/goto/递归的相关文章

熊猫烧香病毒作者李俊背后鲜为人知的故事

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 瘦高个子的李俊,上身穿着看守所的黄色背心,一直低着头.2月14日,记者在湖北省仙桃市看守所见到了这名"熊猫烧香"病毒的制造者. 在和记者交谈的过程中,李俊一直只用简短的话语作答. 李俊父母都曾在当地一家水泥厂工作.在父母的劝说下,初中毕业的李俊没有继续上高中,而是上了这家水泥厂的技术学校.因为在当时看来,进了这所学校,以后

由熊猫烧香作者被抓谈起-----07年后的网络生存

网络|熊猫烧香 不知道大家对这次熊猫烧香 制造者被抓怎么看其实从前一阵 网络 报纸 各媒体的疯狂报道  我就和朋友们说:这个人会成为共产党整顿网络环境的第一个牺牲品枪打出头鸟----这是个永恒的真理 大家应该还记得俩月前 胡锦涛主席 关于:管理好 用好互联网的讲话熟悉政治 有政治敏感头脑的人应该知道  这是一个非常强烈的信号 这个讲话决定了07年是个什么样的网络环境 我来这里很多天了  也知道现在好多能力强 技术高的站长和网络高手都是80后的年轻人 但我相信  大家在推崇技术的同时  没有几个人

由熊猫烧香引发的个人站长的穷途末路

熊猫烧香|站长 熊猫烧香病毒的制作者昨日被抓获.这名叫李俊的武汉同龄人为了显示其高超的电脑技术,制造"满城尽烧国宝香".初看熊猫烧香,怎么看怎么不是病毒.而这个漫画效果的熊猫更是将搞笑上了一层楼. 看到病毒制造者被抓获,我第一个反应是:这次再不严惩,对李俊同学真是无可救药了.目前最好的教育方式,我认为法律是最好的教育方式,不要指望着感化.说教的方式对一个犯罪的人悔改有帮助.只有当他面对冰冷的高墙,他才能感受到自己的孤独与愚蠢. 当我看到雪涛博客里说国内竟然有不少的个人站长和国内杀毒软件

熊猫烧香病毒源码启示录

随着"熊猫烧香"病毒的始作俑者的落网,关于"熊猫烧香"病毒的危害和杀毒风波告一段落,然而随着"熊猫烧香"病毒源代码在网上的流行,一种隐含的巨大的危害仿佛才刚刚开始. 一. 引言 去年秋天回趟老家,适逢家中秋收后"祭宅神".期间,听亲家二大娘在香毕吟颂的<十柱香>的佛歌,深有感触:百姓烧香祝的是神仙幸福,盼的是亲人平安-这是作为衣食百姓发自内心的心愿!但如今,正待举国上下.一家老小庆祝金猪佳节到来之际,图1中的这位老

熊猫烧香病毒解决方案

熊猫烧香病毒无疑成了近期互联网最热门的关键字了,网上也能找到很多个有关熊猫烧香病毒的解决办法,这些方法不尽完美,再加上熊猫的变种很多,有效性要打折扣了.这里提供一个相对完整的方案供大家参考. 病毒信息 中文名:熊猫烧香病毒(又称武汉男生),英文名(Worm.WhBoy),目前发现的变种数已超过50个. 病毒典型恶劣表现: 1.感染病毒后发现较多的EXE文件图标变成点着香的熊猫,这也是该病毒命名的由来,现在发现的部分变种已经不再使用这个广为人知的图标了. 2.部分变种可以直接通过互联网更新版本,部

熊猫烧香病毒nvscv32.exe变种手动清除方案

编者按:PConline提供了一种针对熊猫烧香病毒nvscv32.exe变种的查杀办法.据调查此变种于16日出现.笔者有幸于17日与"熊猫烧香病毒nvscv32.exe变种"亲密接触,并用以下方法将其清除.推荐使用第一种方法. 一.PConline提供的解决方案 1.拔网线: 2.重新进入WinXP安全模式,熊猫烧香病毒进程没有加载,可使用"任务管理器"!(提示:开机后按住F8) 3.删除病毒文件:%SystemRoot%\system32\drivers\nvsc

Shell编程学习:分支结构和循环结构

一.if结构 1.单分支结构 if condition then statement1 statement2 ... fi 2.双分支结构 if condition then statement1 statement2 ... else statement3 statement4 fi 3.多分支结构 if condition then statement elif condition2 then statement2 fi 二:case结构 case condition in pattern1

熊猫烧香病毒是什么

  熊猫烧香是一种经过多次变种的蠕虫病毒变种,2006年10月16日由25岁的中国湖北武汉新洲区人李俊编写,2007年1月初肆虐网络,它主要通过下载的档案传染.对计算机程序.系统破坏严重. 基本信息 病毒名称:熊猫烧香,Worm.WhBoy.(金山称),Worm.Nimaya. (瑞星称) 病毒别名:尼姆亚,武汉男生,后又化身为"金猪报喜",国外称"熊猫烧香" 危险级别:★★★★★ 病毒类型:蠕虫病毒,能够终止大量的反病毒软件和防火墙软件进程. 影响系统:Win 9

熊猫烧香图标病毒详解

最近出现新的病毒名为熊猫烧香,危害较大,感染后所有EXE可执行文件图标变成一个烧香的熊猫,大家电脑如出现此现象可认真阅读以下文章: 一.病毒描述: 含有病毒体的文件被运行后,病毒将自身拷贝至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个Autorun.inf文件,使得用户打开该盘时激活病毒体.随后病毒体开一个线程进行本地文件感染,同时开另外一个线程连接某网站下载ddos程序进行发动恶意攻击. 二.病毒基本情况: [文件信息] 病毒名: Viru