0
点赞
收藏
分享

微信扫一扫

初始算法——递归(二分查找,冒泡排序,插入排序,斐波那契,汉诺塔,杨辉三角)

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//----------------------------------------------------------------------------------------第15次作业 算术转换等
//-------------------------------------------------------------------------------------------------1.单选
下面代码的结果是: ( D )

int main()
{
    int i = 1;
    int ret = (++i) + (++i) + (++i); // 求解路径不唯一-----是问题表达式
    printf("ret =%d\n", ret);
    return 0;
}

A.10
B.12
C.9
D.程序错误

//-------------------------------------------------------------------------------------------------2.单选
//下面代码的结果是: A
全局变量,静态变量都是放在静态区
全局变量,静态变量不初始化的时候,默认会被初始化为0
局部变量,放在栈区,不初始化,默认值是随机值

int i; 
int main()
{
    i--; //-1
    //sizeof 字符长度,单位是字节,int类型为4个字节
    //sizeof 这个操作符计算返回结果是 size_t 类型的,是无符号整型,没有负数概念,
    //i=-1 ,就会被转换为 unsigned int 非常大的正数>4
    if (i > sizeof(i))
    {
        printf(">\n"); // 输出 >
    }
    else
    {
        printf("<\n"); 
    }
   return 0;
}

A. >   B. <

//-------------------------------------------------------------------------------------------------3.单选
关于表达式求值说法不正确的是:( D )

A.表达式求值先看是否存在整形提升或算术转换,再进行计算
B.表达式真正计算的时候先看相邻操作符的优先级决定先算谁
C.相邻操作符的优先级相同的情况下,看操作符的结合性决定计算顺序
D.只要有了优先级和结合性,表达式就能求出唯一值
//-------------------------------------------------------------------------------------------------6.编程:打印X形图案
输入描述: 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述: 针对每行输入,输出用“ *“ 组成的X形图案。

int main()
{
    int n = 0;
    while (scanf("%d", &n) == 1)
    {
        int i = 0;
        int j = 0;
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                if (i == j) //打印主对角线
                    printf("*");
                else if (i + j == n - 1) //打印副对角线
                    printf("*");
                else
                    printf(" ");
            }
            printf("\n");
        }
    }

    return 0;
}

//-----------------------------------------------------------------------------------------7.编程:获得月份天数
输入描述: 多组输入,一行有两个整数,分别表示年份和月份,用空格分隔
输出描述: 针对每组输入,输出为一行,一个整数,表示这一年这一个月有多少天

int Leap_yesr(int year)
{
    if (((year % 4 == 0) && (year % 100!=0)) || (year % 400 == 0))
        return 1;
    else
        return 0;
}

int main()
{
    int year = 0;
    int month = 0;
    int num = 0;
    int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
    while (scanf("%d %d", &year, &month) == 2)
    {
        int num = days[month];
        //判断闰年
        if ((Leap_yesr(year) == 1) && (month == 2))
        {
            num++;
        }
        printf("%d\n", num);
    }

    return 0;
}

//-----------------------------------------------------------------------------------------8.编程:三角形的判断
输入描述: 题目有多组输入数据,每一行输入三个a,b,c (0<a,b,c<1000), 作为三角形的三个边,用空格分隔。
输出描述: 针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出 "Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”, 其余的三角形则输出"Ordinary triangle!",反之输出“Not a triangle!”。

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    while(scanf("%d %d %d", &a, &b, &c) == 3)
    {
        //判断是不是三角形,如果是(等边?等腰?普通?)
        if ((a + b > c) && (a + c > b) && (b + c > a))
        {
            if ((a == b) && (b == c))
                printf("Equilateral triangle!\n");
            else if (((a == b) && (b != c)) || ((b == c) && (c != a)) || ((a == c) && (c != b)))
                printf("Isosceles triangle!\n");
            else
                printf("Ordinary triangle!\n");
        }
        else
        {
            printf("Not a triangle!\n");
        }
    }
    
    return 0;
}
举报

相关推荐

0 条评论