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

相关推荐
cen__y15 分钟前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手19 分钟前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人1 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
郭涤生1 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS2 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣2 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye100862 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
AI科技星2 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
审判长烧鸡2 小时前
【Go工具】go-playground是什么组织?官方的?
开发语言·安全·go
kkeeper~3 小时前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言