C語言習題講解-第五講-循環編程練習等

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 等鏡像倉庫時常會遭遇網絡延遲和連接不穩定的困…