C语言名企面试题

来源:互联网 发布:head first python知乎 编辑:程序博客网 时间:2024/06/05 22:43

  1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
    A选手说:B第一,我第三。
    B选手说:我第二,E第四。
    C选手说:我第一,D第二。
    D选手说:C最后,我第三。
    E选手说:我第四,A第一。
    比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<stdlib.h>int main(){    int a = 0;    int b = 0;    int c = 0;    int d = 0;    int e = 0;    for (a = 1; a <= 5; a++)    {        for (b = 1; b <= 5; b++)        {            for (c = 1; c <= 5; c++)            {                for (d = 1; d <= 5; d++)                {                    for (e = 1; e <= 5; e++)                    {                        if ((b == 1) + (a == 3) == 1 &&                            (b == 2) + (e == 4) == 1 &&                            (c == 1) + (d == 2) == 1 &&                            (c == 5) + (d == 3) == 1 &&                            (e == 4) + (a == 1) == 1 )                        {                            /*if (a != b && a != c && a != d && a != e &&                                 b != c && b != d && b != e &&                                 c != d && c != e &&                                d != e)*/                                printf("a=%d,b=%d,c=%d,d=%d,e=%d\n", a, b, c, d, e);                        }                    }                }            }        }    }    system("pause");    return 0;}

  1. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
    A说:不是我。
    B说:是C。
    C说:是D。
    D说:C在胡说
    已知3个人说了真话,1个人说的是假话。
    现在请根据这些信息,写一个程序来确定到底谁是凶手。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>int main(){    int a = 0;    int b = 0;    int c = 0;    int d = 0;    int FD;    int i;    for (i = 1; i <= 4; i++)    {        if (i == 1)//a说的假          {            a = 1; c = 1; FD = 1; d = 0;        }        if (i == 2)//b说的假          {            a = 0; c = 0; FD = 1; d = 0;        }        if (i == 3)//c说的假          {            a = 0; c = 1; FD = 0; d= 0;        }        if (i == 4)//d的说的假          {            a= 0; c = 1; FD = 1; d = 0;        }        if (a + b + c + d + FD == 1 && FD == d)        {            printf("A=%d B=%d C=%d D=%d\n", a, b, c, d);        }    }    return 0;}

3.在屏幕上打印杨辉三角。

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<windows.h>int main(){    printf("请输入一数字: ");    int level = 0;    scanf("%d", &level);    int **yanghui = (int**)malloc(sizeof(int*)*level);    int i = 0;    int j = 0;    for (; i < level; i++)    {        yanghui[i] = (int *)malloc(sizeof(int)*level);    }    i = 0;    for (; i < level; i++)    {        yanghui[i][0] = 1;        yanghui[i][i] = 1;    }    i = 2;    for (; i < level; i++)    {        j = 1;        for (; j < i; j++)        {            yanghui[i][j] = yanghui[i - 1][j] + yanghui[i - 1][j - 1];        }    }    i = 0;    for (; i < level; i++)    {        for (j = 0; j < level - i - 1; j++)        {            printf("%2c", ' ');        }        for (j = 0; j <= i; j++)        {            printf("%4d", yanghui[i][j]);        }        printf("\n");        }        printf("\n");        i = 0;        for (; i < level; i++)        {            free(yanghui[i]);            yanghui[i] = NULL;        }        free(yanghui);    return 0;}
0 0