Press "Enter" to skip to content

Category: 开发

C编程练习1118

输入一个一到一百的正整数。判断该数是否和7有关系。关系是指7的倍数、数字里面有7.


#include <stdio.h>
int main(int argc, char **argv)
{
    int num;
    //puts("请输入一个正整数:");
    //scanf("%d",&num);

    for(num=1;num<101;num++)
        if(num%7==0 || num%10==7 || num/10==7){
            printf("数字%d和7有关系\n",num);
        }
        else{
            printf("数字%d和7没有关系\n",num);
        }   

    return 0;
}

假设北京出租车计算方式如下,前3公里为起步价13元,3公里以后每增加1公里加2元。 编程实现输入距离(正整数),输出出租车费用。


#include <stdio.h>
int main(int argc, char **argv)
{
    int distance;

    puts("请输入里程:");
    scanf("%d",&distance);

    if(distance<4){
        puts("请支付车费¥13元!");
    }
    else{
        printf("请支付车费¥%d元!\n",13+(distance-3)*2);
    }

    return 0;
}

计算地铁票价。
起步价6公里以内每人3元,6~12公里为4元,12~32公里为每公里加1元,32公里以上每公里加1元,且上不封顶。


#include <stdio.h>
int main(int argc, char **argv)
{
    int distance=0;
    puts("请输入单人单程里程数:");
    scanf("%d",&distance);

    if(distance<6){
        puts("请支付¥3元!");        
    }
    if(distance>5&&distance<12){
        puts("请支付¥4元!");
    }
    if(distance>11&&distance<32){
        printf("请支付¥%d元!\n",5+(distance-12)/10);
    }   
    if(distance>31){
        printf("请支付¥%d元!\n",5+2+(distance-32)/20);
    }   

    return 0;
}

C语言的练习1117

读取两个整数,然后显示出前者是后者的百分之几。例如,输入54和84,显示x的值是y的64%。

#include <stdio.h>
int main(int argc, char **argv)
{
    float x,y;

    puts("输入两个整数,x和y。");
    printf("x:"); scanf("%f",&x);
    printf("y:"); scanf("%f",&y);

    printf("x的值是y的值的%.f%%",x/y*100);
    return 0;
}

读取两个整数,然后求出后者是前者的百分之几。例如,输入54和84,显示的x值是y的64.285714%。

#include <stdio.h>
int main(int argc, char **argv)
{   
    int x,y;

    puts("请输入两个整数:");

    printf("x:"); scanf("%d",&x);
    printf("y:"); scanf("%d",&y);

    printf("它们的平均值是:%.8f%%",(double)x/y);

    return 0;
}

输入身高值,输出标准体重

#include <stdio.h>
int main(int argc, char **argv)
{
    int height;

    puts("请输入您的身高:");
    scanf("%d",&height);

    printf("您的标准体重是:%.1f公斤",(double)(height - 100)*0.9);
    return 0;
}

判断某一年是否是闰年。能被4整除,不能被100整除,如果能被400整除也是闰年。先输入年份,然后进行判断。

#include <stdio.h>
int main()
{
    int year;
    puts("请输入年份:");
    scanf("%d",&year);

    if((year%4 == 0 && year%100 != 0) || year%400 ==0)
        printf("%d年是闰年.\n",year);
    else
        printf("%d年不是闰年.\n",year);

    return 0;
}

不看说明的下场!

本来参加网易云课堂的MySQL课程上的还算开心,一系列课程都通过了。国庆之前提前把第五节课程赶时间做完了。我还盘算的第五节考试能顺利完成,等国庆回来的再过第六节的考试。结果,国庆一过第五节的成绩就公布了,只有62分,险过。然后大意的看看第六节的考试没出来就没管它。今天一看,才发现第六节没有考试!成绩是平时课后习题60%+课后讨论40%,压根没有考试,而且10号,也就是昨天已经截至。
功亏一篑,功亏一篑!

请简述InnoDB如何保证事务的持久化特性

在数据库运行时,为了保障整个数据库系统的正常运行,防止数据意外和不一致,数据库管理系统就要对数据库进行保护和管理。这些管理主要通过数据库的恢复、并发控制、完整性控制和安全性控制,进而引申出事务和事务的特性。

事务是构成单一逻辑工作单元的操作集合。为了保证数据库中的数据总是正确的,我们要求事务具有ACID的性质,也就是原子性、一致性、隔离性和持久性。

其中,事务的持久性就是指一个事务一旦完成全部操作之后,它对数据库的所有更新应永久地反映在数据库中,不会丢失。即使以后系统发生故障,也是如此。MySQL为了实现数据库ACID的要求,引入了支持事务的InnoDB引擎。

InnoDB一方面实现了对事务的实现,另一方通过redo log日志实现了事务的原子性和持久性。 InnoDB是事务的存储引擎,当数据操作提交commit时,必须先将该事务的所有日志写入到redo log文件进行持久化,待事务的commit操作完成才算完成。为了保证每次日志都要写入redo log,InnoDB都要调用fsync操作将日志写入磁盘。