【C語言16天強化訓練】從基礎入門到進階:Day 2


🔥個人主頁:艾莉絲努力練劍

?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題、洛谷刷題、C/C++基礎知識知識強化補充、C/C++干貨分享&學習過程記錄

🍉學習方向:C/C++方向

??人生格言:為天地立心,為生民立命,為往圣繼絕學,為萬世開太平

前言:距離學完C語言已經過去一段時間了,在學習了初階的數據結構之后,博主要更新的內容是C語言16天強化訓練,之前博主更新過一個【C語言刷題12天IO強訓】的專欄,那個是從入門到進階的IO模式真題的訓練。今天依然是訓練五道選擇題和兩道編程算法題,希望大家能夠有所收獲!



目錄

正文

一、五道選擇題

1.1? 題目1

1.2? 題目2

1.3? 題目3

1.4? 題目4

1.5? 題目5

二、兩道算法題

2.1??尼科徹斯定理

題目理解:

2.2??等差數列

題目理解:

結尾


正文

一、五道選擇題

1.1? 題目1

題干:以下程序段的輸出結果是( )

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

A. 12? ? ?B. 13? ? ?C. 16? ? ?D. 以上都不對

解析:主要注意以下這幾個點——

(1)\\?是一個轉義字符,表示一個反斜\字符;

(2)\123(\ddd)是一個八進制轉義字符,\123表示ASCII碼值為83的字符('S');

(3)\t?是一個轉義字符,“tab對齊”,表示制表符。

這樣一來實際上就只有\ddd,1,2,3,4,5,6,S,4,5,6,\t 這12個字符啦。

1.2? 題目2

題干:若有以下程序,則運行后的輸出結果是( )

#include <stdio.h>
#define N 2
#define M N + 1
#define NUM (M + 1) * M / 2
int main()
{printf("%d\n", NUM);return 0;
}

A. 4? ? ? B. 8? ? ? C. 9? ? ? D. 6

解析:這道題非常簡單,我們之間展開宏,宏展開后為((N+1)+1)*(N+1)/2,我們再代入N=2,我們得到((2+1)+1)*(2+1)/2,即D

1.3? 題目3

題干:如下函數的 f(1) 的值為( )

int f(int n)
{static int i = 1;if(n >= 5)return n;n = n + i;i++;return f(n);
}

A. 5? ? ?B. 6? ? ?C. 7? ? ?D. 8

解析:這道題中的遞歸過程是f(1)->f(2)->f(4)->f(7),當n=7的時候,滿足n>=5,返回7。

因為每次n=n+i,i++,在函數遞歸調用f(n),最終結果就是返回7。static int i 在遞歸過程中會持續累加(每次調用i++),遞歸終止條件是n >= 5,最后一次返回的是n = 7選擇C

1.4? 題目4

題干:下面3段程序代碼的效果一樣嗎( )

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

A. (2)=(3)? ? ?B. (1)=(2)? ? ?C. 都不一樣? ? ?D. 都一樣

解析:(1)const int *a = &b;(2)int const *a = &b;等價,即指針指向的int是常量;而(3)int *const a = &b;是指針本身變成了常量,兩者效果不一樣。即一個選擇B. (1)=(2)。?

1.5? 題目5

題干:對于下面的說法,正確的是( )

A. 對于 struct X{short s;int i;char c;},sizeof(X)等于sizeof(s) + sizeof(i) + sizeof(c)

B. 對于某個double變量 a,可以使用 a == 0.0 來判斷其是否為零

C. 初始化方式 char a[14] = "Hello, world!"; 和char a[14]; a = "Hello, world!";的效果相同

D. 以上說法都不對

解析:A選項錯誤——結構體有內存對齊,B選項錯誤——浮點數直接比較不精確,C選項錯誤——數組不能直接賦值字符串,排除法,我們選擇D. 以上說法都不對

選擇題答案如下:

1.1? A

1.2? D

1.3? C

1.4? B

1.5? D

大家都做對了嗎?

二、兩道算法題

2.1??尼科徹斯定理

題目鏈接:HJ76 尼科徹斯定理

題目描述:

題目理解:

對任意正整數?n,輸出由?n 個連續奇數組成的數列,其和等于?n?的立方。數列元素用加號連接。

這道題也是IO型的,下面是C語言的模版(IO型就不用管它們了)——

代碼演示:

#include <stdio.h>int main() 
{int n;scanf("%d", &n);int start = n * n - n + 1; // 計算起始奇數for (int i = 0; i < n; i++) {printf("%d", start + 2 * i); // 輸出當前奇數if (i < n - 1) {printf("+"); // 非最后一個元素時輸出加號}}printf("\n");return 0;
}

這道題是C語言中一道比較經典的題目。

時間復雜度O(n)

空間復雜度O(1)

我們如果學習了C++也可以嘗試用C++實現一下——

#include <iostream>
using namespace std;int main() 
{int n;while (cin >> n) { // 處理多組輸入int start = n * n - n + 1; // 計算起始奇數for (int i = 0; i < n; i++) {cout << start + 2 * i;  // 輸出當前奇數if (i < n - 1) {cout << "+";        // 非最后一個元素時輸出加號}}cout << endl;               // 這里要記得換行}return 0;
}

時間復雜度:O(n),空間復雜度:O(1)

這個目前要寫出來非常考驗C++的學習情況,大家可以嘗試去寫一寫,優先掌握C語言的寫法,博主還沒有介紹C++的算法題,之后會涉及的,敬請期待!

2.2??等差數列

題目鏈接:HJ100 等差數列

題目描述:

題目理解:

本題就是要求計算首項為2,公差為3的等差數列前n項的和。

這道題也是IO型的,下面是C語言的模版(IO型就不用管它們了)——

代碼演示:

#include <stdio.h>int main() 
{int n;scanf("%d", &n);int sum = n * (2 * 2 + (n - 1) * 3) / 2; // 等差數列求和公式printf("%d\n", sum);return 0;
}

這道題是C語言中一道比較經典的題目。

當然博主還有一個更加簡單的解法,這個解法大家理解起來就簡單了——

#include <stdio.h>int main()
{int n = 0;scanf("%d", &n);int Sn = n * (2 + 3 * n - 1) / 2;printf("%d", Sn);return 0;
}

我們如果學習了C++也可以嘗試用C++實現一下——

#include <iostream>
using namespace std;int main() 
{int n;while (cin >> n) { // 處理多組輸入int sum = n * (2 * 2 + (n - 1) * 3) / 2; // 等差數列求和公式cout << sum << endl;}return 0;
}

時間復雜度:O(1);

空間復雜度:O(1)。

目前要寫出來C++的寫法是比較考驗前面C++的學習情況的,當然大家可以嘗試去寫一寫,優先掌握C語言的寫法,博主還沒有介紹C++的算法題,之后會涉及的,敬請期待!


結尾

往期回顧:

【C語言16天強化訓練】從基礎入門到進階:Day 1

結語:感謝大家的閱讀,記得給博主“一鍵四連”,感謝友友們的支持和鼓勵!

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

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

相關文章

【學習筆記】面向AI安全的26個緩解措施

一、Mitre Atlas矩陣概述 ATLAS 矩陣從左到右以列形式顯示了攻擊中使用的策略的進展&#xff0c;ML 技術屬于上面的每種策略。& 表示從 ATT&CK 改編而來。 詳見&#xff1a;ATLAS Matrix | MITRE ATLAS? 注&#xff1a;機翻的效果不是太好&#xff0c;對照理解用吧。 …

AI出題人給出的Java后端面經(十八)(日更)

鏈接雙端鏈表 前一篇&#xff1a;AI出題人給出的Java后端面經&#xff08;十七&#xff09;&#xff08;日更&#xff09; 后一篇&#xff1a;null 目錄 &#x1f535; 一、Java基礎&#xff08;Java 17&#xff09; 答案&#xff1a; &#x1f5c3;? 二、持久化層&…

【音視頻】瑞芯微、全志芯片在運動相機和行車記錄儀產品分析

文章目錄開頭總結詳細分析**1. 瑞芯微芯片的典型型號及特性****2. 運動相機場景的適用性****優勢****劣勢****3. 行車記錄儀場景的適用性****優勢****劣勢****4. 與競品芯片對比****5. 推薦方案選擇****總結****1. 全志芯片的典型型號及特性****2. 運動相機場景的適用性****優勢…

《清華級防護,了解一下?》

前言講到滲透&#xff0c;我們不可避免會遇到有waf攔截咱們的攻擊許多朋友在滲透測試中因為遇到WAF而束手無策&#xff0c;實際上所謂的BYPASS WAF實際上是去尋找位于WAF設備之后處理應用層數據包的硬件/軟件的特性。利用特性構造WAF不能命中&#xff0c;但是在應用程序能夠執行…

CANDB++中的CAN_DBC快速編輯方法,使用文本編輯器(如notepad++和VScode)

前言:在做工程機械CAN協議相關的軟件開發與調試時&#xff0c;經常接觸到DBC的使用&#xff0c;可以在CAN分析儀中加載DBC文件從而快速查看某條CAN報文或信號的含義&#xff0c;以及使用圖形化的調試。而編輯DBC文件&#xff0c;正常是用CANDB來一條條添加&#xff0c;比較費時…

Tmux Xftp及Xshell的服務器使用方法

Tmux&#xff1a; Tmux是什么&#xff1a; 會話與進程&#xff1a; 命令行的典型使用方式是&#xff0c;打開一個終端窗口&#xff0c;在里面輸入命令。用戶與計算機的這種臨時的交互&#xff0c;稱為一次“會話”&#xff08;session&#xff09;。 會話的一個重要特點是&…

微服務遠程調用完全透傳實現:響應式與非響應式解決方案

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

Kotlin集合概述

Kotlin 的集合類同樣由兩個接口派生&#xff1a; Collection 和 Map&#xff0c; Collection 和 Map 是 Java 集合框架的根接口&#xff0c;這兩個接口又包含了 一些子接口或實現類Kotlin 集合與 Java 集合不同&#xff0c; Java 集合都是可變集合一一開發者可以向集合中添加、…

Mysql核心框架知識

Mysql核心框架 本文旨在梳理和理解 MySQL 的一些核心知識點&#xff0c;并結合常見面試題進行思考和總結。這些內容主要來源于我的個人學習與理解。 1. 事務 概念 事務指的是滿足 ACID 特性的一組操作&#xff0c;可以通過 Commit 提交一個事務&#xff0c;也可以使用 Rollback…

C# NX二次開發:字符串控件StringBlock講解

大家好&#xff0c;今天介紹ug二次開發過程中的一個叫字符串的控件&#xff0c;這個控件在塊UI編輯器中可以使用。 下面是這個控件中的一些屬性和方法&#xff1a; 1、 protected internal StringBlock(); // // 摘要: // Returns or sets the WideValue.…

【datawhale組隊學習】n8n TASK01

教程地址&#xff1a;https://github.com/datawhalechina/handy-n8n/ 文章目錄n8n節點的類別local-pc-deployn8n n8n 意思是 nodemation&#xff0c;是 node 與 automation 的組合詞&#xff0c;讀作 n-eight-n。 n8n 是一個開源的、基于節點的自動化工具&#xff0c;官方站點…

海洋牧場項目融資新曙光:綠色金融賦能藍色經濟發展

在海洋經濟蓬勃發展的時代浪潮中&#xff0c;海洋牧場作為新興的海洋產業模式&#xff0c;承載著保障國家糧食安全、促進海洋生態保護與可持續利用的重要使命。然而&#xff0c;海洋牧場項目的建設是一項龐大而復雜的系統工程&#xff0c;從前期的基礎設施搭建、種苗培育&#…

51c大模型~合集170

自己的原文哦~ https://blog.51cto.com/whaosoft/14132244 #4DNeX 一張圖&#xff0c;開啟四維時空&#xff1a;4DNeX讓動態世界 「活」起來 僅憑一張照片&#xff0c;能否讓行人繼續行走、汽車繼續飛馳、云朵繼續流動&#xff0c;并讓你從任意視角自由觀賞&#…

深入剖析以太坊虛擬機(EVM):區塊鏈世界的計算引擎

引言&#xff1a;EVM——區塊鏈世界的"計算引擎" 以太坊虛擬機&#xff08;Ethereum Virtual Machine&#xff0c;EVM&#xff09;是以太坊網絡的核心創新&#xff0c;它不僅僅是一個執行環境&#xff0c;更是整個區塊鏈生態系統的"計算引擎"。作為智能合…

深入分析 Linux PCI Express 子系統

深入分析 Linux PCI Express 子系統 一、PCI Express 工作原理 PCIe 是一種高速串行點對點互連協議&#xff0c;采用分層架構&#xff1a; #mermaid-svg-rsh0SW87JPR0aUxA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…

MySQL 運算符詳解:邏輯、位運算與正則表達式應用

MySQL 運算符詳解&#xff1a;邏輯、位運算與正則表達式應用 在 MySQL 中&#xff0c;運算符是構建復雜查詢條件的基礎。除了基礎的算術和比較運算符&#xff0c;邏輯運算符、位運算符以及正則表達式的靈活運用&#xff0c;能讓數據篩選更加精準高效。本文將系統講解這些運算符…

<數據集>遙感飛機識別數據集<目標檢測>

數據集下載鏈接https://download.csdn.net/download/qq_53332949/91702190數據集格式&#xff1a;VOCYOLO格式 圖片數量&#xff1a;3842張 標注數量(xml文件個數)&#xff1a;3842 標注數量(txt文件個數)&#xff1a;3842 標注類別數&#xff1a;20 標注類別名稱&#xf…

Windows從零到一安裝KingbaseES數據庫及使用ksql工具連接全指南

目錄Windows從零到一安裝KingbaseES數據庫及使用ksql工具連接全指南前言第一部分&#xff1a;安裝前準備1.1 系統要求檢查1.2 下載安裝包1.3 驗證安裝包完整性第二部分&#xff1a;安裝KingbaseES2.1 啟動安裝程序2.2 接受許可協議2.3 選擇授權文件2.4 設置安裝目錄2.5 選擇安裝…

Git+Jenkins 基本使用

一、什么是 JenkinsJenkins 是一個功能強大的應用程序&#xff0c;允許持續集成和持續交付項目&#xff08;持續部署&#xff09;&#xff0c;無論用的是什么平臺。這是一個免費的源代碼&#xff0c;可以處理任何類型的構建或持續集成。集成 Jenkins 可以用于一些測試和部署技術…

Linux第十三講:線程同步和互斥

Linux第十三講&#xff1a;線程同步和互斥1.線程互斥1.1進程線程間的互斥背景概念1.2什么是鎖1.2.1認識鎖&#xff0c;理解鎖2.線程同步2.1條件變量2.2生產和消費模型2.3基于阻塞隊列(blockqueue)的生產消費模型2.3.1單生產&#xff0c;單消費的阻塞隊列模擬實現2.3.2多生產&am…