C语言--每日选择题--Day37

第一题

  1. 有以下说明语句:则下面引用形式错误的是()
cpp 复制代码
struct Student 
{
    int num;
    double score;
};
 
struct Student stu[3] = {{1001,80}, {1002,75}, {1003,91}}
struct Student *p = stu;

A:p->num

B:(p++).num

C:(p++)->num

D:(*p).num

答案及解析 B

本题考查的是对结构体变量如何引用,如果是结构体定义的对象,用 ' -> ';如果是结构体的指针,就用 ' . ' ;

A:p是一个结构体指针,指向的是一个结构体数组的首元素,所以p->num,拿到的是首元素的num = 1001;

B:p++还是一个结构体指针,不可以用 ' . ';

C:正确,p++是后置++,返回的是++之前的值,所以取到的是首元素的num

D:解引用之后才是结构体的对象,使用 ' . '来访问,取到的是首元素的num = 1001

第二题

  1. 以下程序运行的结果是()
cpp 复制代码
#include <stdio.h>
#define X   5
#define Y   X+1
#define Z   Y*X/2
int main() 
{
    int a = Y;
    printf("%d,%d", Z, --a);
    return 0;
}

A:7,6

B:12,6

C:12,5

D:7,5

答案及解析 A

本题考查的是宏定义是替换,所以

--a = --Y = --X + 1 = 4 + 1 = 5;

Z = Y * X / 2 = X + 1 * X / 2 = 5 + 1 * 5 / 2 = 7;

所以

--a = 5;

Z = 7;

第三题

  1. 不能把字符串"HELLO!"赋给数组b的语句是()
    A:char b[10] = {'H','E','L','L','O','!','\0'};

B:char b[10]; b = "HELLO!";

C:char b[10]; strcpy(b,"HELLO!");

D:char b[10] = "HELLO!";

答案及解析 B

A CD都是正确的赋值;但是我们要知道b是数组名,数组名是首元素的地址,是一个常指针,不可以被改变,所以错误;b的数据类型为char * const ,可以改变数组的内容,但是不能改变数组的地址

第四题

  1. 下面C程序的输出结果是()
cpp 复制代码
unsigned fun(unsigned num) 
{
    unsigned k = 1;
    do 
    {
        k *= num % 10;
        num /= 10;
    } while (num);
    return(k);
}

int main() 
{
    unsigned num = 26;
    printf("%d", fun(num));
    return 0;
}

A:12

B:无限循环

C:1

D:26

答案及解析 A

单独的unsigned指的是unsigned int类型;

无符号整数,永远是大于等于0;

第一次进入循环

k = 6 num = 2

第二次进入循环

k = 12 num = 0;

num = 0的时候结束循环,返回k = 12

第五题

  1. 以下代码的输出结果是()
cpp 复制代码
int main() 
{
    int n = 10;
    int const *p = &n;
    p++;
    printf("%d", *p);
    return 0;
}

A:10

B:11

C:随机值

D:编译错误

答案及解析 C

int const *p = &n; const是在*的左侧,修饰的是p指向的内容不能被修改,所以p++之后,p指向的是n下面的地址处,这里存储的值是未知的,所以是随机值。

相关推荐
喵叔哟4 分钟前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
尘浮生10 分钟前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
hopetomorrow24 分钟前
学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
开发语言·学习·php
小牛itbull33 分钟前
ReactPress vs VuePress vs WordPress
开发语言·javascript·reactpress
请叫我欧皇i42 分钟前
html本地离线引入vant和vue2(详细步骤)
开发语言·前端·javascript
闲暇部落1 小时前
‌Kotlin中的?.和!!主要区别
android·开发语言·kotlin
GIS瞧葩菜1 小时前
局部修改3dtiles子模型的位置。
开发语言·javascript·ecmascript
chnming19871 小时前
STL关联式容器之set
开发语言·c++
带多刺的玫瑰1 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法
熬夜学编程的小王1 小时前
【C++篇】深度解析 C++ List 容器:底层设计与实现揭秘
开发语言·数据结构·c++·stl·list