本文包含多个C语言编程示例,包括循环控制(break/continue)、字符串处理(strlen/sizeof)、九九乘法表、最大公约数(辗转相除法)、素数判断(100-200)、图形打印(X图案/空心正方形)、矩阵转置、数组逆序输出、数组交换以及平均值计算。重点展示了各种基础算法的实现方法,如通过嵌套循环控制流程、利用取模运算求公约数、使用标志位判断素数等。所有示例均采用标准C语法,包含完整的main函数结构和基本输入输出操作。

break和continue题目

求a的值?

当进入循环后 要当b>20才跳出循环打印a

当if(b%3==1)进行7次  b=21时 跳出循环

此时a的值为8

b

数组中地址是由低地址到高地址

选d

strlen打印\0之前的字符个数

而acY中无\0 是随机值 无法比较

sizeof打印个数  

acX中abcdefg\0 打印是8个

而acYabcdefg  打印是7个

所以选c

(3,4)是逗号表达式打印是最后一个表达式的结果  4

arr中有4个int类型的变量

sizeof打印的结果是16

选B

sizeof比strlen多打印一个\0   

所以选A

打印9*9乘法表

int main()
{
    for (int i = 1; i <=9; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("%d*%d=%d", i, j, i * j);
        }
        printf("\n");
    }

    return 0;
}

求两个数最大公约数   辗转相除法

int main()
{
    int x = 20;
    int y = 40;
    int c = y % x;

    while (c!=0) 
    {
        x = c;
        y = x;
        c = y % x;

    }


    printf("%d", x);
    return 0;

}


}

找到100到200素数

int main() {
    int i, j;
    for (i = 100; i <= 200; i++) {
        for (j = 2; j < i; j++) {
            if (i % j == 0) {
                break; // 如果能被整除,则不是素数
            }
        }
        if (i == j) { // 如果循环结束后j等于i,则是素数
            printf("%d ", i);
        }
    }
    return 0;
}

打印X图案

int main()

{

    int a ;

    while (scanf("%d",&a)!=EOF) { // 注意 while 处理多个 case

    for(int i=0;i<=a;i++)

    {

        for(int j=0;j<a;j++)

        {

        if(i==j||i+j==4)

        {

            printf("*");

        }else {

        printf(" ");

        }

        }

        printf("\n");

    }

    return 0;

}

}

打印空心正方形

int main()
{
    int a;
    while (scanf("%d", &a) != EOF)
    {
        for (int i = 0; i < a; i++) {


            for (int j = 0; j < a; j++) {


                if (i == 0 || i == a - 1 || j == 0 || j == a - 1) {


                    printf("*");


                }
                else {


                    printf(" ");


                }


            }


            printf("\n");


        }


    }

    return 0;
}

矩阵倒置

把  int arr[2][3]

123

421

变成

int arr[3][2]

14

22

31

#include<stdio.h>
int main()
{

    
    int arr[2][3] = { 1,2,3,4,2,1};
    
        
        
    
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++) {

            printf("%d", arr[j][i]);

        }
        printf("\n");
    }


    
    return 0;
}

就是i j 的坐标互换

逆序输出

将12345678910

变成10987654321

#include <stdio.h>

int main() {

    int n = 0;

    int arr[10] = { 0 };

    for (n = 0; n < 10; n++) {

        scanf("%d", &arr[n]);

    }

    for (n = 9; n >= 0; n--) {

        printf("%d ", arr[n]);

    }

    return 0;

}

将两个数组的内容交换

int main()
{
    int arr1[3] = { 1,2,3 };
    int arr2[3] = { 2,3,5 };
    int arr3[3] = { 0 };
    int sz = sizeof(arr1) / sizeof(arr1[1]);
    for (int i = 0; i < sz; i++)
    {
        
        
            int tmp = arr2[i];
            arr2[i] = arr1[i];
            arr1[i] = tmp;
        

    }
    for (int i = 0; i < sz; i++)
    {
        printf("%d", arr1[i]);
    }
    printf("\n");
    for (int i = 0; i < sz; i++)
    {
        printf("%d", arr2[i]);
    }


    return 0;
}

计算数组的平均值

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐