鹏哥C语言95---第17次作业:指针初阶+结构体

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
//------------------------------------------------------------------------------------------第17次作业,指针初阶
//-----------------------------------------------------------------------------------------------1.单选.结构体
//有以下代码:

struct student
{
    int num;
    char name[32];
    float score;
}stu; // stu 是变量

则下面的叙述不正确的是:( D )
A.struct 是 结构体类型的关键字
B.struct student是用户定义的结构体类型
C.num, score都是 结构体成员名
D.stu是用户定义的结构体类型名 --------变量名

//-----------------------------------------------------------------------------------------------2.单选
结构体访间成员的操作符不包含:( D )
A. .操作符
B . - > 操作符
C. *解引用操作符
D. sizeof

//-----------------------------------------------------------------------------------------------3.单选
关于二级指针描术描述正确的是:( B )
A.二级指针也是指针,只不过比一级指针更大
B.二级指针也是指针,是用来保存一级指针的地址
C.二级指针是用来存放数组的地址
D.二级指针的大小是4个字节----- 4/8

//-----------------------------------------------------------------------------------------------4.单选
下面哪个是指针数组( A )// 指针数组,存放指针的数组
A. int* arr[10];
B. int * arr[]; ---不指定大小 ×
C. int ** arr; ---二级指针
D. int (*arr)[10]; ---arr是一个数组指针,指向数组的指针

//-----------------------------------------------------------------------------------------------5.单选
下面程序要求输出结构体中成员 a 的数据,以下不能填入横线处的内容是( B )

struct S
{
    int a;
    int b;
};
int main()
{
    struct S a, *p = &a;
    // struct S a
    // struct S* p = &a;
    a.a = 99;
    printf("%d\n",                       );
    return 0;
}

A. a.a
B. *p.a // . 的优先级 高于 * ,所以不行
C. p->a
D.(*p).a
//-----------------------------------------------------------------------------------------------6.单选
 下列程序输出结果 wang

struct stu
{
    int num;
    char name[10];
    int age;
};

void fun(struct stu* p)
{
    printf("%s\n", (*p).name); //  wang
    return;
}

int main()
{
    struct stu students[3] ={ {9801,"zhang",20},
                                            {9802,"wang",19},
                                            {9803,"zhao",18}
    };
    fun(students + 1); //数组名是首元素地址
    return 0; 
}

//-----------------------------------------------------------------------------------------------7.编程:喝汽水
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。

int main()
{
    int money = 0;
    scanf("%d", &money); // 多少元   20
    int total = money;  //花钱喝的汽水数量
    int empty = money; //空瓶数
    //置换
    while (empty>=2)
    {
        total = total + empty / 2;
        empty = empty / 2 + empty % 2;
    }
    printf("%d\n", total);

    //发现规律
    if (money > 0)
        printf("%d\n", 2 * money - 1);
    else
        printf("0");

    return 0;
}

上一篇:美国EB1A、NIW第二季度获批情况出炉,这些职业更容易获批!


下一篇:【你所不知道的AI】AIGC 算法:条件生成模型 (Conditional Generative Models)