C语言习题讲解-第五讲-循环编程练习等

  • 1. 关于一维数组描述不正确的是:( )
  • 2. 关于一维数组初始化,下面哪个定义是错误的?( )
  • 3. 定义了一维 int 型数组 a[10] 后,下面错误的引用是:( )
  • 4. 若定义int a[2][3]={1,2,3,4,5,6}; 则值为 4 的数组元素是( )
  • 5. 以下能对二维数组 a 进行正确初始化的语句是:( )
  • 6. 以下说法正确的是( )
  • 7. 下面代码的结果是:( )
  • 8. 下面代码的结果是:( )
  • 9. 在 C语言 中,以下哪个选项描述了变长数组特点?

1. 关于一维数组描述不正确的是:( )

关于一维数组描述不正确的是:( )

A. 数组的下标是从 0 开始的
B. 数组在内存中是连续存放的
C. 数组名表示首元素的地址
D. 随着数组下标的由小到大,地址由高到低

答案:D

解析:
A:正确,C语言 规定,数组的下标是从 0 开始的

B:正确,数组的空间是一段连续的内存空间

C:正确,数组名既可以表示数组的地址,也可以表示数组首元素的地址,两个在数值上是一样的,但是含义不一样。

注意:数组名只有在 sizeof& 后才代表整个数组,其它都表示首元素的地址

D:错误,这个要是系统而定,一般都是下标由小到大,地址由低到高

因此,选择 D

2. 关于一维数组初始化,下面哪个定义是错误的?( )

关于一维数组初始化,下面哪个定义是错误的?( )

A. int arr[10] = {1,2,3,4,5,6};
B. int arr[] = {1,2,3,4,5,6};
C. int arr[] = (1,2,3,4,5,6);
D. int arr[10] = {0};

答案:C

解析:

A:正确,10 个 int 的一段连续空间,前 6 个位置被初始化为 1,2,3,4,5,6,其他位置为0

B:正确,数组中有6个空间,并被初始化为1,2,3,4,5,6

C:错误,数组的初始化不能使用 () ,只能使用 {}

D:正确,10 个 int 类型的一段连续空间,每个位置都被初始化为 0

因此,选择 C

3. 定义了一维 int 型数组 a[10] 后,下面错误的引用是:( )

定义了一维 int 型数组 a[10] 后,下面错误的引用是:( )

A. a[0] = 1;
B. a[0] = 5*2;
C. a[10] = 2;
D. a[1] = a[2] * a[0];

答案:C

解析:

数组是相同类型的一段连续的空间,下标是从0开始的,比如:int array[N]

下标的范围为 [0,N) ,其中 N 位置不能存储有效元素

A:正确,将 0 号位置设置为 1

B:正确,将 0 号位置设置为 10

C:错误,越界

D:正确,1 号位置初始化为 a[2] * a[0] 之后的结果

因此,选择 C

4. 若定义int a[2][3]={1,2,3,4,5,6}; 则值为 4 的数组元素是( )

若定义int a[2][3]={1,2,3,4,5,6}; 则值为 4 的数组元素是( )

A. a[0][0]
B. a[1][0]
C. a[1][1]
D. a[2][1]

答案:B

解析:

int a[2][3] 表示 2 行 3 列的二维数组,根据其初始化知:

第 0 行即 a[0] 存储 3 个元素: 1,2,3

第 1 行即 a[1] 存储 3 个元素: 4,5,6

因此值为 4 的元素在第 1 行第 0 列

因此,选择 B

5. 以下能对二维数组 a 进行正确初始化的语句是:( )

以下能对二维数组 a 进行正确初始化的语句是:( )

A. int a[2][]={{0,1,2},{3,4,5}};
B. int a[][3]={{0,1,2},{3,4,5}};
C. int a[2][4]={{0,1,2},{3,4},{5}};
D. int a[][3]={{0,2},{},{3,4,5}};

答案:B

解析:

对于二维数组 int array[M][N] , 说明如下:

  1. M 和 N 都必须为常数,

  2. M 代表数组有 M 行,N 代表每行中有 N 个元素

  3. 其中M可以省略,省略后必须给出初始化表达式,编译器从初始化结果中推断数组有多少行

  4. N 一定不能省略,因为 N 省略了就不能确定一行有多少个元素,也不能确定数组有多少行

A:错误,参数上述说明

B:正确,参考上述说明

C:错误,数组有两行,但是初始化给了三行

D:错误,初始化不允许 {0,2} 该种情况存在

因此,选择 B

6. 以下说法正确的是( )

给出以下定义:

char acX[] = "abcdefg";
char acY[] = { 'a','b','c','d','e','f','g'};

以下说法正确的是( )

A. 数组acX和数组acY等价
B. 数组acX和数组acY的长度相同
C. sizeof(acX)>sizeof (acY)
D. strlen (acX)>strlen (acY)

答案:C

解析:

acX和acY都是字符数组,但是初始化表达式不同,acX和acY的区别如下:

acX:数组中总共有8个元素,分别是:‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘\0’

acY:数组中总共有7个元素,分别是:‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’

sizeof 这里求的是数组大小,数组大小等于有效元素个数*每个元素的大小。sizeof(acX) = 8,sizeof(acY) = 7

strlen 求的是字符串长度,从首元素开始计算,遇见 ‘\0’ 停止,由于 acY 数组没有 '\0‘ ,所以 strlen(acY) 的结果是个随机值

因此,选择 C

7. 下面代码的结果是:( )

下面代码的结果是:( )

#include <stdio.h>
int main()
{char str[] = "hello bit";printf("%d %d\n", sizeof(str), strlen(str));return 0;
}

A. 10 9
B. 9 9
C. 10 10
D. 9 10

答案:A

解析:

str 字符数组使用 “hello bit” 初始化,最终也会将 ‘\0’ 放置到数组中,因此数组中总共有 10 个元素

sizeof(str):获取数组的总大小,10 个元素,每个元素占 1 个字节,因此总共是 10 个字节

strlen(str): 获取字符串中有效字符的个数,不算 ‘\0’ ,因此总共 9 个有效字符

故上述 printf 会分别打印:10 9

因此,选择 A

8. 下面代码的结果是:( )

下面代码的结果是:( )

#include <stdio.h>
int main()
{int arr[] = {1,2,(3,4),5};printf("%d\n", sizeof(arr));return 0;
}

A. 4
B. 16
C. 20
D. 5

答案:B

解析:

对于 int arr[] = {1,2,(3,4),5} 数组,里面总共有 4 个元素,(3,4) 为逗号表达式,取后者,因此数组中元素分别为:1,2,4,5

而 sizeof(arr) 求的是整个数组所占空间的大小,即:4sizeof(int)=44=16

因此,选择 B

9. 在 C语言 中,以下哪个选项描述了变长数组特点?

在 C语言 中,以下哪个选项描述了变长数组特点?

A. 变长数组的大小在编译时确定,不能改变。
B. 变长数组的大小可能在运行时确定,比如使用变量来指定数组大小,一旦确定大小后,它的大小是固定的,无法改变。
C. 一旦确定大小后,它的大小是固定的,无法改变
D. 变长数组只能用于存储字符类型的数据。

答案:C

解析:

A 选项错误:编译时无法确定,编译时候编译器不知道 n 是什么值,n 的值要等到程序运行起来后,用户输入之后 n 的值确定了,才能确
定数组的大小

B 选项:说法不严谨,一定是在运行时确定大小的,而不是可能

C 选项正确

D 选项错误:存储什么类型数据,看定义时候给数组名前放什么类型,比如int a[n]就是存放int类型 short a[n]就是存在short类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90828.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90828.shtml
英文地址,请注明出处:http://en.pswp.cn/web/90828.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB索引及其原理

目录 索引原理 索引类型 单键索引 组合索引 特性索引 唯一索引 稀疏索引 部分索引 TTL索引 多键索引 文本索引 地理空间索引 哈希索引 总结 MongoDB 索引执行计划 索引原理 MongoDB索引的背后的原理和MySQL中的索引原理是差不多的,都是使用B数来对数据进行管理…

学习嵌入式的第三十三天-数据结构-(2025.7.25)服务器/多客户端模型

服务器/多客户端模型循环服务器 while(1){ accept(); recv(); } 适用于简单任务&#xff0c;如基础Web服务器&#xff0c;但无法处理并发请求。并发服务器 通过thread或fork实现多任务处理。需注意子进程/线程的资源回收&#xff0c;避免内存泄漏。多路IO模型服务器 使用select…

【Canvas与标牌】优质资产六角星标牌

【成图】【代码】<!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>优质资产六角星标记 Draft1</title><style type"text/cs…

扫雷游戏开发教程:从零打造精美像素扫雷

完整源码在本文结尾处一、游戏概述 扫雷是一款经典的益智游戏&#xff0c;玩家需要在不触发地雷的情况下揭开所有安全格子。本教程将带你从零开始开发一个具有精美界面和动画效果的扫雷游戏&#xff0c;包含难度选择、棋盘大小调整等高级功能。 二、游戏核心功能 三种难度级别&…

Linux驱动开发笔记(五)——设备树(上)

内容详见《【正点原子】I.MX6U嵌入式Linux驱动开发指南》四十三章 开发板&#xff1a;imx6ull mini 虚拟机&#xff1a;VMware17 ubuntu&#xff1a;ubuntu20.04 一、什么是设备树 视频&#xff1a;第6.1讲 Linux设备树详解-什么是设备树&#xff1f;_哔哩哔哩_bilibili 对…

【QT入门到晋级】window opencv安装及引入qtcreator(包含两种qt编译器:MSVC和MinGW)

前言 本文主要分享QT的两种编译器环境&#xff08;MSVC和MinGW&#xff09;下&#xff0c;安装及引入opencv的方法。 编译器区别 特性​​​​MSVC​​​​MinGW​​​​编译器类型​​微软专有编译器&#xff08;cl.exe&#xff09;基于GCC的开源工具链​​平台支持​​仅Wi…

字节跳动Coze Studio开源了!架构解析

Coze Studio 是字节跳动推出的一款 AI 应用开发平台&#xff0c;专注于帮助开发者快速构建、测试和部署基于大语言模型的智能应用。其整体架构围绕“低代码开发 AI 应用”的核心目标设计&#xff0c;融合了模型能力、工具集成、流程编排和多端部署等功能。以下是其整体架构的详…

Claude 4.0 终极编程指南:模型对比、API配置与IDE集成实战

Claude 4.0 终极编程指南&#xff1a;模型对比、API配置与IDE集成实战 基于官方文档及可验证数据源&#xff08;2025年7月更新&#xff09; 1 Claude 4.0 技术解析&#xff1a;对比竞品的核心优势与局限 1.1 官方性能数据&#xff08;来源&#xff1a;Anthropic技术白皮书&…

优化:Toc小程序猜你喜欢功能

引言&#xff1a;来自自创的小程序中热点接口&#xff0c;本小程序专为在校学生自提点餐使用 一、功能描述 该功能作为一个推荐的职责&#xff0c;根据用户最近行为给用户推荐用户可能喜欢去吃的店铺&#xff0c;可能比较简洁&#xff0c;但是需要设计的方面挺多的&#xff0c…

Datawhale AI 夏令营:让AI理解列车排期表 Notebook(Baseline拆解)

Step1、读取数据 import pandas as pd import requests import re import json from tqdm import tqdm# 读取数据 data pd.read_excel(data/info_table.xlsx) data data.fillna(无数据) dataStep2、注册硅基流动https://cloud.siliconflow.cnQwen/Qwen3-8B 模型可以免费使用&…

vue写的app设置角标

原生App角标&#xff08;UniApp示例&#xff09;调用plus.runtime.setBadgeNumber方法设置安卓/iOS角标&#xff1a;javascriptCopy Code// 设置角标 plus.runtime.setBadgeNumber(99); // 清除角标&#xff08;部分平台需特殊处理&#xff09; plus.runtime.setBadgeNumber(0)…

GAN/cGAN中到底要不要注入噪声

MelGAN论文MelGAN针对的是从mel谱生成语音&#xff0c;里面说当条件很强的时候&#xff0c;随机噪声就没啥用了&#xff0c;因此没将noise注入到生成器中&#xff1b;运用的判别器也仅有1个输入&#xff0c;不是cGAN的形式image-to-image translation with conditional adversa…

备份一下我的 mac mini 的环境变量配置情况

export PATH“/opt/homebrew/bin:$PATH” #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! export SDKMAN_DIR“HOME/.sdkman"[[−s"HOME/.sdkman" [[ -s "HOME/.sdkman"[[−s"HOME/.sdkman/bin/sdkman-init.sh” ]] && so…

JVM学习日记(十)Day10

G1回收器 这一篇是详细说明G1回收器的&#xff0c;因为他相对来说确实是个缝合怪&#xff0c;上篇的内容又太多了所不清楚&#xff0c;所有这一篇进行详细的说明&#xff0c; 第一个呢就是其实G1是兼顾并行和并发的&#xff0c;简单来说就是既可以并行也可以并发&#xff0c;…

使用IP扫描工具排查网络问题

随着企业的发展&#xff0c;网络中会新增各类设备&#xff0c;从台式机、服务器到物联网设备和虚拟机&#xff08;VMs&#xff09;&#xff0c;所有这些设备都通过复杂的子网和虚拟局域网&#xff08;VLAN&#xff09;相连。 这种复杂性给 IT 团队带来了压力&#xff0c;他们需…

Wireshark TS | 发送数据超出接收窗口

前言 来自于测试中无意发现到的一个接收窗口满的案例&#xff0c;特殊&#xff0c;或者可以说我以前都没在实际场景中见过。一开始都没整太明白&#xff0c;花了些精力才算是弄清楚了些&#xff0c;记录分享下。 问题说明 在研究拥塞控制的慢启动阶段时&#xff0c;通过 packet…

C语言自定义数据类型详解(四)——联合体

好的&#xff0c;接下来我们来学习最后一个自定义数据类型——联合体。 一、什么是联合体&#xff1a; 联合体又叫共用体&#xff0c;用关键字union来进行定义。又因为所有的成员变量共用同一段内存空间&#xff08;关于这一点&#xff0c;我们不久就会加以验证&#xff09;&…

[python][flask]Flask-Login 使用详解

1. 简介Flask-Login 是 Flask 的一个扩展&#xff0c;专门用于处理用户认证相关的功能。它提供了用户会话管理、登录/注销视图、记住我功能等常见认证需求&#xff0c;让开发者能够快速实现安全的用户认证系统。2. 安装与基础配置首先&#xff0c;需要安装 Flask-Login&#xf…

【WebGPU学习杂记】WebAssembly中的relaxed_madd指令到底做了什么?

relaxed_madd 这条指令到底做了什么核心&#xff1a;relaxed_madd 是一个分量级别 (Component-wise) 的操作 首先&#xff0c;最重要的一点是&#xff1a;v128.relaxed_madd<f32>(a, b, c) 不是矩阵乘法。它是一个在三个向量 a, b, c 之间进行的、逐个分量的、并行的融合…

【全新上线】境内 Docker 镜像状态监控

境内 Docker 镜像状态监控&#xff1a;您的 Docker 加速伴侣 在当今云计算和容器化技术飞速发展的时代&#xff0c;Docker 已成为开发者不可或缺的工具。然而&#xff0c;对于身处国内的用户而言&#xff0c;访问境外 Docker Hub 等镜像仓库时常会遭遇网络延迟和连接不稳定的困…