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下面的地址处,这里存储的值是未知的,所以是随机值。

相关推荐
敲代码的瓦龙3 分钟前
Java?枚举!!!
java·开发语言
NiceCloud喜云13 分钟前
IntelliJ IDEA 保姆级安装 + ClaudeAPI 配置教程
java·开发语言·前端·ide·chrome·docker·intellij-idea
3D探路人1 小时前
模灵 大模型聚合API 转发流程技术实现
java·大数据·开发语言·前端·人工智能·计算机视觉
l1t1 小时前
JIT执行python脚本的工具codon安装和测试
开发语言·python
程似锦吖2 小时前
无中生有 之 从0开始写一个动态定时任务管理
java·开发语言
坚果派·白晓明2 小时前
【鸿蒙PC三方库移植适配框架解读系列】第五篇:完整流程图与角色职责
c语言·c++·华为·harmonyos·鸿蒙
Dxy12393102162 小时前
Python 去除 HTML 标签获取纯文本
开发语言·python·html
洛的地理研学2 小时前
Python下载并处理MOD13A3植被指数数据
开发语言·python
humcomm2 小时前
Java 新特性2026年5月速览
java·开发语言
xiao_li_ya2 小时前
C++学习日记1(`*`的理解、const关键词)
开发语言·c++