【C語言強化訓練16天】--從基礎到進階的蛻變之旅:Day1

🔥個人主頁:@草莓熊Lotso

🎬作者簡介:C++研發方向學習者

📖個人專欄:?《C語言》?《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》

??人生格言:生活是默默的堅持,毅力是永久的享受。

前言:我們距離學習完C語言已經很久了,在數據結構學完后,博主準備通過這16天的強化訓練和大家一起回顧C語言的知識,每天都是五道選擇和兩道編程題,希望大家能有所收獲。


目錄

選擇題:

編程題:

1.打印從1到最大的n位數

2.計算日期到天數轉換


選擇題:

1.執行下面程序,正確的輸出是( )

A: 5,7 B: 7,5 C: 3,8 D: 8,3

int x = 5, y = 7;
void swap()
{int z;z = x;x = y;y = z;
} 
int main()
{int x = 3, y = 8;swap();printf("%d,%d\n",x, y);return 0;
}

答案解析:

正確答案:C

swap函數調用時用的是全局變量,主函數中定義的變量只在主函數中有效,因為主函數也是一個函數,它與其他函數是平行關系;輸出語句這里,考慮局部優先的原則,故選C

2.以下不正確的定義語句是( )

A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0};

B: char c2[] = {'\x10', '\xa', '\8'};

C: char c1[] = {'1','2','3','4','5'};

D: int y[5+3]={0, 1, 3, 5, 7, 9};

答案解析:

正確答案:B
本題B選項考查轉義字符,有如下格式,但八進制數字是0-7,沒有8,故B選項中'\8'是錯誤的\ddd ddd表示1到3個八進制數 如:\130 轉義為 字符X

\xhh hh表示1到2位十六進制數 如:\x30 轉義為 字符0

3.test.c 文件中包括如下語句,文件中定義的四個變量中,是指針類型的變量為【多選】( )

A: a B: b C: c D: d

#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;

答案解析:

正確答案:ACD
因為#define是宏定義,僅僅是直接替換,INT_PTR a, b; 進行宏替換后代碼是這樣的:int *a, b;這里的int *是a的類型,b的類型是int,故此次b只是int類型。而typedef是把該類型定義一個別名,別名是一個獨立的類型了,使用這個類型創建的變量都是這個類型的。

所以 a,c,d才是指針類型

4.若給定條件表達式 (M)?(a++):(a--) ,則其中表達式 M ()
A: 和(M==0)等價 B: 和(M==1)等價 C: 和(M!=0)等價 D: 和(M!=1)等價

答案解析:

正確答案:C
給定條件表達式(M)?(a++):(a--)。 (表達式1)? (表達式2): (表達式3)為三目運算符。

計算規則為:先判斷表達式1是否為真,若為真,則計算表達式2,并將表達式2的結果作為整個表達式最終的結果,表達式3不計算;否則,表達式3的結果為最終結果,表達式2不計算。 在此表達式中,若M=0,為假,計算a--; 若M≠0,為真,計算a++; 若要求與M等價,則要滿足M取0時為假,取非0數值時為真。 c選項中:假定M取0,則M表示假,當M是0時,表達式M!=0不成立,為假,計算a--; 當M取非0數值時,M為真,表達式M!=0成立,為真,計算a++; 符合題意,選C

5.有如下定義語句,則正確的輸入語句是【多選】( )

int b;
char c[10];

A: scanf("%d%s",&b,&c); B: scanf("%d%s",&b,c);

C: scanf("%d%s",b,c); D: scanf("%d%s",b,&c);

答案解析:

正確答案:AB

&c和c兩個地址值是一樣的,程序的效果相同,也沒錯,但同時也必須把變量b的地址給scanf,故CD錯誤,AB正確


編程題:

1.打印從1到最大的n位數

題目鏈接:打印從1到最大的n位數_牛客題霸_牛客網

題目描述:

題目樣例:

代碼演示:

/*** 代碼中的類名、方法名、參數名已經指定,請勿修改,直接返回方法規定的值即可** * @param n int整型 最大位數* @return int整型一維數組* @return int* returnSize 返回數組行數*/
int* printNumbers(int n, int* returnSize ) {// write code here*returnSize=pow(10,n)-1;int *arr=(int*)malloc(*returnSize*sizeof(int));for(int i=0;i<*returnSize;i++){arr[i]=i+1;}return arr;
}

題目解析:

  • 這里首先要清楚n位數中最大的數字,實際上就是 10^n - 1,這個清楚后動態申請空間,將數值填入就可以了,需要注意的是數組下標從0開始,而數值從1開始

2.計算日期到天數轉換

題目鏈接:計算日期到天數轉換_牛客題霸_牛客網

題目描述:

題目樣例:

代碼演示:

#include <stdio.h>int main() {int y, m,d;scanf("%d%d%d",&y,&m,&d);int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int days=0;if((y%4==0&&y%100!=0)||(y%400==0)&&m==2){day[2]+=1;}for(int i=1;i<m;i++){days+=day[i];}days+=d;printf("%d",days);return 0;
}

題目解析:

這道題簡單解法其實將每個月的天數枚舉出來,然后根據當前月份向前累加滿月的天數,然后再加上當前月所在的天數。最終考慮平閏年的 2 月份區別是否增加一天。 其中需要注意的是平年和閏年的判斷,而且是閏年的月份大于 2 的時候,也就是 2 月走完,總天數才能加1(比如 2000218,雖然是閏年,但是 2都沒走完那是不能加上閏年多出的一天的).

往期回顧:

《解鎖 C++ 起源與核心:命名空間用法 + 版本演進全知道》

《解鎖 C++ 基礎密碼:輸入輸出、缺省參數,函數重載與引用的精髓》

結語:本篇博客就到此結束了,C 語言的精髓在于對細節的掌控和對底層的理解,這需要持續實踐。愿你帶著這份訓練中獲得的思維與習慣,在編程路上走得更穩、更遠。如果文章對你有幫助的話,歡迎評論,點贊,收藏加關注,感謝大家的支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918407.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918407.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918407.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【軟考中級網絡工程師】知識點之 TCP 協議深度剖析

目錄一、TCP 協議簡介二、TCP 協議的特點2.1 面向連接2.2 可靠性高2.3 擁塞控制2.4 全雙工通信2.5 高效性2.6 支持多種應用協議2.7 可靠的錯誤恢復三、TCP 協議的工作機制3.1 三次握手建立連接3.2 數據傳輸3.3 四次揮手關閉連接四、TCP 協議的數據包格式五、TCP 協議在實際應用…

操作系統1.5:操作系統引導

目錄 總覽 什么是操作系統引導&#xff1f; 磁盤里邊有哪些相關數據? 操作系統引導(開機過程&#xff09; 總覽 什么是操作系統引導&#xff1f; 操作系統引導(boot)——開機的時候&#xff0c;怎么讓操作系統運行起來? 磁盤里邊有哪些相關數據? 一個剛買來的磁盤(硬…

[鷓鴣云]光伏AI設計平臺解鎖電站開發新范式

1.[鷓鴣云]平臺概述[鷓鴣云]是由鷓鴣云&#xff08;徐州&#xff09;信息技術有限公司傾力打造的&#xff0c;可以媲美?PVsyst的光伏AI設計平臺。它為光伏項目不同階段的開發提供了快速設計、衛星地圖設計、無人機3D設計、Unity3D設計、專業繪圖設計與場區設計多種設計方式&am…

docker compose和docker-compose命令的區別

Docker Compose 有兩種命令形式&#xff1a;docker compose&#xff08;空格連接&#xff09;docker-compose&#xff08;短橫線連接&#xff09;其核心區別如下&#xff1a;一、技術特性docker-compose&#xff08;短橫線&#xff09;獨立可執行文件&#xff1a;作為獨立程序安…

基于Strands Agent開發輔助閱讀Agent

序 本篇由來&#xff0c;在COC上我當面感謝了組委會和姜寧老師&#xff0c;隨即被姜寧老師催稿&#xff0c;本來當天晚上寫了一個流水賬&#xff0c;感覺甚為不妥。于是決定慢慢寫&#xff0c;緩緩道來。要同時兼顧Show me the code&#xff0c;Show me the vide。希望能形成一…

20250807簡單樹上問題

引入 樹是一種特殊的圖&#xff0c;因其看起來像一顆倒掛的樹而得名。 樹有許多等價的形式化定義&#xff0c;我們這里只取一個&#xff1a;nnn個點n?1n-1n?1條邊的無向連通圖。 樹的直徑 定義樹上任意兩點之間最長的簡單路徑為樹的直徑。 一棵樹可能有很多直徑&#xff0c…

諾基亞就4G/5G相關專利起訴吉利對中國汽車及蜂窩模組企業的影響

諾基亞于2025年7月18日向歐洲統一專利法院&#xff08;UPC&#xff09;曼海姆分庭和德國慕尼黑法院提起訴訟&#xff0c;控訴中國吉利控股集團及其極氪、領克、路特斯、Smart等關聯品牌在未經許可的情況下使用諾基亞4項蜂窩通信標準必要專利 。涉案專利包括1項覆蓋4G/5G的標準必…

Kotlin反射詳解

反射是一種機制&#xff0c;它允許我們在運行時檢查、修改和操作類或對象的內部結構。反射開啟了動態編程的可能性&#xff0c;在開發庫、框架或工具等場景中非常有用。Java 中的反射 在 Java 中&#xff0c;反射一直是實現動態編程的重要基石。它允許開發者在不提前知道類名的…

學習嵌入式-IMX6ULL學習——中斷

volatile&#xff1a;易變的&#xff0c;防止系統優化對寄存器做處理的時候使用&#xff0c;在進行寫1清零操作時&#xff0c;防止該操作被系統優化&#xff1b;一、GIC通用中斷控制器1.GIC通用中斷控制器GIC接收眾多外部中斷&#xff0c;然后對其進行處理&#xff0c;最終通過…

HENGSHI SENSE 6.0 功能-AI 查數助手

面向所有AI Agent開放BI和數據分析能力 AI 查數助手 6.0版本中&#xff0c;我們AI助手的優化是比較深入且全面的。從問答效率到集成能力&#xff0c;都得到了大的躍升&#xff0c;是智能問數應用場景的重大升級以及體驗的全方位優化。我們優化了 AI 助手執行流程&#xff0c;…

降壓型DCDC電源芯片推薦-芯伯樂XBL4001 40V/5A

在電子設備不斷追求高性能與低功耗的今天&#xff0c;電源管理芯片的重要性不言而喻。芯伯樂主推的XBLW-XBL4001芯片&#xff0c;憑借其出色的設計與穩定的性能&#xff0c;為電源管理領域帶來了一款實用的新選擇。一、芯片概述XBLW-XBL4001是一款降壓型&#xff08;Buck&#…

uni-app app端安卓和ios如何申請麥克風權限,喚起提醒彈框

代碼包含功能如下&#xff1a; 1、判斷推送權限是否開啟 2、判斷定位權限是否開啟 3、判斷麥克風權限是否開啟 4、判斷相機權限是否開啟 5、判斷相冊權限是否開啟 6、判斷通訊錄權限是否開啟 7、判斷日歷權限是否開啟 8、判斷備忘錄權限是否開啟 9、Android權限查詢 10、檢查系…

關于 Rust 異步(無棧協程)的相關疑問

這是一個記錄問題求助的文章。關于 waker 與運行時的合作方式我膚淺地學習了 Rust 異步底層實現原理&#xff0c;關于 Future、waker 和運行時等。關于 waker 我有三點猜測&#xff1a;waker 是由實現執行器的人提供的在執行器中會調用 epoll_wait&#xff0c;epoll 返回 fd&am…

stm32項目(25)——基于stm32的植物生長箱環境監測系統

1.實現功能 測 環境溫濕度、光照強度、土壤濕度、水箱水位 手機APP顯示 溫度過低-->打開加熱板 濕度過低-->打開水泵 土壤濕度低-->開水泵 --->只要有指標低于閾值時 就蜂鳴器報警 光強弱-->補光 水位低-->抽水 OLED屏幕實時顯示各種信息 分…

golang 基礎案例_02

1.鎖有時候我們的代碼中可能會存在多個 goroutine 同時操作一個資源&#xff08;臨界區&#xff09;的情況&#xff0c;這種情況下就會發生競態問題&#xff08;數據競態&#xff09;。(1)、互斥鎖&#xff1b;(2)、讀寫互斥鎖&#xff1b;(3)、sync.WaitGroup&#xff1b;(4)、…

C++算法·前綴和

前綴和(Prefix(Prefix(Prefix Sum)Sum)Sum)的定義 前綴和是一種高效處理區間求和問題的算法技巧 其核心思想是通過預處理構建一個前綴和數組 使得后續的區間和查詢可以在常數時間O(1)O(1)O(1)內完成 核心概念 定義 給定一個數組a[1...n]a[1...n]a[1...n],其前綴和數組s[1...…

JavaEE 初階第十七期:文件 IO 的 “管道藝術”(下)

專欄&#xff1a;JavaEE初階起飛計劃 個人主頁&#xff1a;手握風云 目錄 一、Java文件內容寫入 1.1. OutputStream 二、字符流讀取和寫入 2.1. Reader 2.2. Writer 三、示例練習 3.1. 查找文件功能 一、Java文件內容寫入 1.1. OutputStream OutputStream同樣只是?個抽…

【liunx】web高可用---nginx

NGINX簡介Nginx&#xff08;發音為 “engine x”&#xff09;是一款由俄羅斯程序員 Igor Sysoev 開發的 輕量級、高性能的 HTTP 和反向代理服務器&#xff0c;同時也是一個 IMAP/POP3/SMTP 代理服務器。自 2004 年首次發布以來&#xff0c;Nginx 憑借其 高并發處理能力、低內存…

FPGA+護理:跨學科發展的探索(二)

FPGA護理&#xff1a;跨學科發展的探索&#xff08;二&#xff09; 系列文章目錄 FPGA護理&#xff1a;跨學科發展的探索&#xff08;一&#xff09; 文章目錄FPGA護理&#xff1a;跨學科發展的探索&#xff08;二&#xff09;系列文章目錄引言三、FPGA 在精神醫學護理中的應用…

localforage的數據倉庫、實例、storeName和name的概念和區別

在 localForage 中&#xff0c;數據倉庫、實例、storeName 和 name 是核心概念&#xff0c;用于管理底層存儲&#xff08;IndexedDB/WebSQL/localStorage&#xff09;。以下是詳細解釋和區別&#xff1a; 1. 數據倉庫 (Database) 定義&#xff1a;指底層的物理數據庫&#xff…