【C语言】完成程序设计填空

发布于:2024-12-18 ⋅ 阅读:(114) ⋅ 点赞:(0)

文章目录


1、请阅读下面的程序,在空白处填写正确的代码,要求各在一行从头开始输出m和n的值。

在这里插入图片描述

#include<stdio.h> 

int  main() 
{ 
    int m = 10, n = 20; 
    printf("%d ", m);     
    printf("%d\n", n);  
    return 0; 
}

输出:10 20

2、求100~599之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。

在这里插入图片描述

#include<stdio.h> 

int main() 
{ 
    int i, j, k, m, n; 
    for(i = 1; i <= 5; i++) //___1___
        for(j = 0; j <= 9; j++) 
            for(k = 0; k <= 9; k++) 
            { 
                m = i * 100 + j * 10 + k; //___2___
                n = i * i * i + j * j * j + k * k * k; 
                if(m == n) 
                    printf("%d\n", m); 
            } 
    return 0; 
}

3、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序 拆分并输出。请填空。

在这里插入图片描述

#include <stdio.h> 

int main() { 
    int x = 256;
    printf("%d-%d-%d\n", x % 10, (x / 10) % 10, x / 100);  
    return 0; 
}

4、完成功能:产生并输出杨辉三角的前七行。

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

#include <stdio.h>  

int main() 
{ 
    int a[7][7]; 
    int i, j; 
    for(i = 0; i < 7; i++) 
    { 
        a[i][0] = 1; 
        a[i][i] = 1; //___1___ 每一行的最后一个元素也是1
    }  
    for (i = 2; i < 7; i++) 
        for (j = 1; j < i; j++) 
            a[i][j] = a[i-1][j-1] + a[i-1][j]; //___2___ 计算杨辉三角的其它元素
    
    for (i = 0; i < 7; i++) 
    { 
        for (j = 0; j <= i; j++) // ___3___打印每一行,直到该行的最后一个元素
            printf("%6d", a[i][j]);  
        printf("\n"); 
    } 
    return 0; 
}

5、若程序运行时从键盘输入65<回车>,则输出结果为AC (说明:字符A的ASCII码值为 65), 请在空白处填写正确的代码。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    char c1, c2; 
    scanf("%d", &c1); // ___1___
    c2 = c1; //___2___
    printf("%c%c\n", c1, c2); 
    return 0; 
}

6、完成功能:一共 100 担货物,需要 100 只马来运输,大马一只驮3 担,中马一只驮 2 担,小马两只驮 1 担。计算所有符合条件的大马、中马和小马的个数。 代码:

在这里插入图片描述

#include <stdio.h>  

int main() 
{ 
    int a, b, c; 
    for(a = 0; a <= 33; a++)  //___1___ 大马最多33只,因为33*3=99,剩下1担可以由中马或小马运输
        for(b = 0; b <= 50; b++)  // 中马最多50只,因为50*2=100
            for(c = 0; c <= 100; c++) 
            { 
                if(3*a + 2*b + 0.5*c == 100 && a + b + c == 100)  // ___2___检查是否满足条件
                    printf("%d,%d,%d\n", a, b, c); 
            } 
    return 0; 
}

7、下面程序是输入x,y,z三个整数,输出最小值

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int x, y, z, min; 
    printf("请输入三个整数:"); 
    scanf("%d%d%d", &x, &y, &z); 
    if (y < x)  // ___1___如果y小于x,则min初始为y
        min = y;
    else
        min = x;
    if (min > z)  // ___2___如果z小于当前的min,则更新min为z
        min = z;
    printf("min=%d\n", min); 
    return 0; 
}

8、下面程序是输入x,y,z三个整数,输出最小值

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int a, b, c, max; 
    printf("请输入三个整数:"); 
    scanf("%d %d %d", &a, &b, &c); 
    if (b > a)  // ___1___如果b大于a,则max初始为b
        max = b;
    else
        max = a;
    if (max < c)  // ___2___如果c大于当前的max,则更新max为c
        max = c;
    printf("max=%d\n", max); 
    return 0; 
}

9、根据某城市普通出租车收费标准编写程序进行车费计算(保留2位小数)。具体标准如 下:起步里程为3公里,起步费10元;超起步里程后10公里内,每公里2元;超过10公 里以上的部分加收50%的回空补贴费,即每公里3元;营运过程中,因路阻及乘客要求临 时停车的,按每5分钟2元计收(不足5分钟则不收费)。请阅读下面的程序,在空白处 填写正确的代码。

在这里插入图片描述

#include<stdio.h> 

int main() 
{ 
    double k; // 行驶的公里数
    int fen; // 停车时间(分钟)
    double money1, money2, money; // money1是停车费用,money2是起步费,money是总费用

    scanf("%lf,%d", &k, &fen); // 读取行驶公里数和停车时间
    money1 = fen / 5 * 2.0; // 计算停车费用,每5分钟2元
    money2 = 10.0; // 起步费10元

    if (k < 3.0) 
        money = money1 + money2; // 如果行驶公里数小于3公里,只有起步费和停车费
    else 
    {
        if (k >= 3.0 && k < 10.0) //___1___如果行驶公里数在3到10公里之间
            money = money1 + money2 + (k - 3.0) * 2.0; // 起步费加上超过3公里的部分,每公里2元
        if (k >= 10.0) 
            money = money1 + money2 + (10.0 - 3.0) * 2.0 + (k - 10.0) * 3.0; // 超过10公里的部分,每公里3元
    }

    printf("%0.2f\n", money); // ___2___输出总费用,保留两位小数
    return 0;  
}

10、程序填空(程序功能:求100~200间的全部素数)

在这里插入图片描述

#include <stdio.h> 
#include <math.h> // 需要包含数学库以使用sqrt函数

int main() 
{ 
    int m, k, i, n = 0; 
    for(m = 101; m <= 200; m += 2) 
    {  
        if(n % 10 == 0)  printf("\n"); 
        k = (int)sqrt(m); // 将sqrt(m)的结果转换为整数
        for(i = 2; i <= k; i++) // ___1___从2开始检查,因为除了2之外没有更小的素数能整除任何数
            if(m % i == 0) break; //___2___ 如果m能被i整除,则m不是素数,跳出循环

        if(i == k + 1) // ___3___如果循环正常结束,没有找到能整除m的数,m是素数
        {  
            printf("%d ", m); // 注意这里的分号应该是英文分号
            n++; 
        } 
    } 
    return 0; 
}

11、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:在5个数中,找出最 大的元素及位置。

在这里插入图片描述

#include<stdio.h> 
#define size 5 

int main() 
{ 
    int a[size] = {4, 6, 3, 9, 23}; 
    int max, p, i; 
    max = a[0];  // ___1___	假设数组的第一个元素是最大的
    p = 0;       // 最大元素的初始位置是0
    for (i = 1; i < size; i++) 
    { 
        if(a[i] > max) 
        { 
            max = a[i]; 
            p = i;  // ___2___更新最大元素的位置
        } 
    } 
    printf("最大元素是:%d,位置是:%d\n", max, p); // 输出最大元素及其位置
    return 0; 
}

12、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:求s=2+4+6+…+80之 和。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int i, sum = 0; 
    for (i = 2; i <= 80; i += 2)   // ___1___每次循环增加2,因为公差是2
    { 
        sum += i;  // ___2___将当前的i值加到sum上
    }  
    printf("sum=%d\n", sum); 
    return 0; 
}

13.设长方形的高为 2.5,宽为 1.6,编程求该长方形的周长(保留一位小数)和面积(保 留两位小数)。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    float x = 2.5, y = 1.6, p, s; 
    p = 2 * x + 2 * y; // 计算周长
    s = x * y; // 计算面积,___1___ 处应填写 x * y
    printf("长为%.1f, 宽为%.1f 的长方形,周长为%.1f, 面积为%.2f\n", x, y, p, s); // ___2___输出结果,保留一位小数和两位小数
    return 0; 
}

14、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:求s=3+5+7+…+59 之和。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int i, sum = 0; 
    for (i = 3; i <= 59; i += 2)  // ___1___每次循环增加2,因为公差是2
    { 
        sum += i;  //  ___2___将当前的i值加到sum上
    }  
    printf("sum=%d\n", sum); 
    return 0; 
}

15、下面函数的功能是找出一个2×4矩阵中的最大元素值

在这里插入图片描述

#include <stdio.h> 

int main()  
{ 
    int i, j, max, arr[2][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8}
    }; // 假设这是初始化的矩阵
    max = arr[0][0]; // 初始化max为矩阵的第一个元素

    for (i = 0; i < 2; i++) // ___1___遍历矩阵的行
    {
        for (j = 0; j < 4; j++) //___2___ 遍历矩阵的列
        {
            if (arr[i][j] > max)
                max = arr[i][j]; // ___3___更新max为当前找到的最大值
        }
    }
    printf("%d", max); // 输出最大值
    return 0; 
}

16、为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电 价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时; 超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时,请计算电费(保留2位 小数)。请阅读下面的程序,在空白处填写正确的代码。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int n; 
    scanf("%d", &n); 
    if(n <= 50) 
    { 
        if(n < 0) 
            printf("Invalid Value!\n"); 
        else 
            printf("cost = %.2f\n", n * 0.53); // 0.53元/千瓦时,___1___ 处填写 n * 0.53
    } 
    else  
        printf("cost = %.2f\n", (50 * 0.53) + (n - 50) * (0.53 + 0.05)); // 超过50千瓦时的电费计算,___2___ 处不需要填写,因为整个表达式已经给出
    return 0; 
}

17、以下程序的功能是:求出数组x中各相邻两个元素的和,依次存放到a数组中,然后输 出,请填空。

在这里插入图片描述

#include <stdio.h>

int main() 
{
    int x[10], a[9], i; 
    for (i = 0; i < 10; i++) 
        scanf("%d", &x[i]); 
    for (i = 1; i < 10; i++)   // ___1___从1开始,因为我们要计算x[0]和x[1]的和
        a[i - 1] = x[i] + x[i - 1];  // ___2___计算相邻两个元素的和,存放到a数组中
    for (i = 0; i < 9; i++) 
        printf("%d ", a[i]);  // 输出a数组的元素,元素之间用空格分隔
    printf("\n"); 
    return 0; 
}

18、下面程序的功能是以每行 10个数据的形式输出 a 数组。

在这里插入图片描述

#include <stdio.h> 

int main() 
{ 
    int a[50], i; 
    printf("输入50个整数:"); 
    for(i = 0; i < 50; i++) 
        scanf("%d", &a[i]); // __1__读取用户输入的整数并存储到数组a中

    for(i = 0; i <= 50; i++) 
    { 
        printf("%3d", a[i]); // ___2___输出数组a的第i个元素,%3d表示整数占3个字符宽度
        if((i + 1) % 10 == 0) // ___3___每输出10个数后换行
            printf("\n"); 
    } 
    return 0; 
}

网站公告

今日签到

点亮在社区的每一天
去签到