实验1.1

#include<stdio.h>
const int N=4;
int main()
{
    int a[N] = { 2,0,2,1 };
    char b[N] = { '2','0','2','1' };
    int i;
    printf("sizeof(int)=%d\n", sizeof(int));
    printf("sizeof(char)=%d\n", sizeof(char));
    printf("\n");
    for (i = 0; i < N; i++)
        printf("%x:%d\n", &a[i], a[i]);
    for (i = 0; i < N; i++)
        printf("%x:%c\n", &b[i], b[i]);
    return 0;
}

 int型,char型都为连续存放,int型中每个元素占4个内存字节单元,char型占1个。

实验1.2

#include <stdio.h>
int main()
{
    int a[2][3] = { {1, 2, 3}, {4, 5, 6} };
    char b[2][3] = { {'1', '2', '3'}, {'4', '5', '6'} };
    int i, j;
    for(i=0;i<2;++i)
         for (j = 0; j < 3; ++j)
        printf("%x: %d\n", &a[i][j], a[i][j]);
    printf("\n");
    for (i = 0; i < 2; ++i)
         for (j = 0; j < 3; ++j)
         printf("%x: %c\n", &b[i][j], b[i][j]);
}

 int型,char型二维都为连续存放。int型4个,char型1个。

实验2

#include<stdio.h>
#define N 1000
int fun(int n, int m, int bb[N])
{
    int i, j, k = 0, flag;
    for (j = n; j <= m; j++)
    {
        flag = 1;
        for (i = 2; i < j; i++)
            if (j % i == 0)
            {
                flag = 0;
                break;
            }
            if(flag)
                bb[k++] = j;
    }
    return k;
}
int main()
{
    int n = 0, m = 0, i, k, bb[N];

    scanf("%d", &n);
    scanf("%d", &m);

    for (i = 0; i < m - n; i++)
        bb[i] = 0;
    k = fun(n,m,bb);
    for (i = 0; i < k; i++)
        printf("%4d", bb[i]);

    return 0;
}

 实验3

#include<stdio.h>
const int N = 5;

int find_max(int x[], int n);
void input(int x[], int n);
void output(int x[], int n);

int main()
{
    int a[N];
    int max;

    input(a, N);
    output(a, N);
    max = find_max(a, N);
    printf("max= %d\n", max);
    return 0;
}
void input(int x[], int n)
{
    int i;
    for (i = 0; i < n; i++)
        scanf("%d", &x[i]);
}
void output(int x[], int n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%d ", x[i]);
    printf("\n");

}
int find_max(int x[], int n)
{
    int i = 0,j, t;
    for(j=0;j<N-1;j++)
        for (i = 0; i < N-j-1; i++)
            if (x[i] > x[i + 1])
            {
                t = x[i];
                x[i] = x[i + 1];
                x[i + 1] = t;
            }
    return x[4];
}

 

 实验4

#include<stdio.h>
#include<math.h>
void dec2n(int x, int n);
int main()
{
    int x;
    printf("输入一个十进制数:");
    scanf("%d", &x);

    dec2n(x, 2);
    dec2n(x, 8);
    dec2n(x, 16);

    return 0;
}
void dec2n(int x, int n)
{
    int a, b = 0, m[100];
    int i = 0;
    while (x)
    {
        a = x % n;
        x = x / n;
        m[i] = a;
        i++;
        b++;
    }
    for (i = b; i >= 0; i--)
    {
        if (m[i] == 10)putchar('A');
        else if (m[i] == 11)putchar('B');
        else if (m[i] == 12)putchar('C');
        else if (m[i] == 13)putchar('D');
        else if (m[i] == 14)putchar('E');
        else if (m[i] == 15)putchar('F');
        else printf("%d", m[i]);
    }
        printf("\n");
}

 

 

实验5

#include<stdio.h>
int main()
{
    int n,i=1, j=1, k;
    while (scanf("%d", &n) != EOF)
    {
        for (i = 1; i <=n; i++)
        {
            for (j = 1; j <= n; j++)
            {
                k = i > j ? j : i;
                printf("%d ", k);
            }
            printf("\n");
        }
    }
    return 0;
}

 

#include<stdio.h>
int main()
{
    int a[100];
    int b = 0,c=0, i = 0, n;
    while (scanf("%d", &n) != EOF)
    {
        for (i = 0; i < 100; i++)
            a[i] = 1;
        for (b = 0; b < n; b++)
        {
            for (i = 0; i < n; i++)
                printf("%2d", a[i]);
            printf("\n");
            c++;
            for (i=c; i < n; i++)
                    a[i] = a[i] + 1;
        }
        c = 0;
    }
    return 0;
}

 

 posted on 2021-12-02 17:10  都说了没有名字  阅读(27)  评论(0编辑  收藏  举报