拒絕擺爛!C語言練習打卡第二天

🔥博客主頁:小王又困了

📚系列專欄:每日一練

🌟人之為學,不日近則日退?

??感謝大家點贊👍收藏?評論??


目錄

?一、選擇題

📝1.第一題

📝2.第二題

📝3.第三題

二、編程題

📝1.第一題

📒方法一:

📒方法二:

📝2.第二題


🗒?前言:

在前面我們學習完C語言的所以知識,當然練習鞏固也不能落下。俗話說:“無財之謂貧,學而不能行之謂病。”可見實踐對我們學習的重要。接下來就讓小王帶著大家進行練習,鞏固我們C語言的學習。

?一、選擇題

📝1.第一題

以下哪個選項一定可以將flag的第二個bit置0()

A. flag&=~2

B. flag|=2

C. flag^=2

D. flag>>=2

💡解題思路:

我們要將某一位置為0,只需要在這一位按位與一個0,其他位都為1即可。

  • &? --? 對應的二進制位有0則為0,都為1才為1

假設 flag 有8個比特位,那么只要按位與11111101,就可以將第二個比特位置為0。想得到11111101只需將00000010按位取反即可,也就是A選項。

📝2.第二題

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

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;
}

💡解題思路:

通過觀察代碼我們看到在程序中定義了變量名相同的全局變量和局部變量,當同名時,局部變量優先使用。在 main 函數中有一個交換函數,但沒有傳遞參數,所以它無法交換局部變量 x,y。全局變量的作用域是整個程序的生命周期,所以這里交換的是全局變量 x,y的值。在打印時,局部變量要優先使用,所以打印出的結果是3,8。

📝3.第三題

下面函數的輸出結果是()

void func()
{int k = 1^(1 << 31 >> 31);printf("%d\n", k);
}

💡解題思路:

通過觀察代碼,第一步是將1向左移動31位,然后將結果向右移動31位,最后將得到的結果 ^ 1就得到k。移位操作符的規則:

  • ?<<? --? 左移

????????左邊丟棄,右邊補0

  • >>? --? 右移

????????1.算術右移:右邊丟棄,左邊補原來的符號位

????????2.邏輯右移:右邊丟棄,左邊直接補0

本題的右移是算數右移。

二、編程題

📝1.第一題

📒方法一:

💡解題思路:

我們可以將數字按照字符串的形式接收scanf("%s",str) ,然后將數據倒著打印出來。

  • 倒著打印的方法:計算出字符串的長度,從最后一個下標開始,依次向前打印
#include <stdio.h>
#include <string.h>
int main()
{char str[32] = { 0 };while (scanf("%s", str) != EOF){int len = strlen(str);int i = 0;for (i = len-1; i >= 0; i--){printf("%c", str[i]);}printf("\n");}return 0;
}

📒方法二:

💡解題思路:

我們就按照數字輸入,每次通過 ‘%10’ 得到最后一位,由于題目要求要按照字符的形式打印,所以在打印時要加 ‘0’ 然后輸出。這里要考慮輸入的值為0時,直接打印‘0’。

int main()
{int n = 0;while (scanf("%d", &n) != EOF){if (n == 0){printf("%c", '0');}while (n){printf("%c", n % 10 + '0');n /= 10;}printf("\n");}return 0;
}

📝2.第二題

💡解題思路:

因為題目將數組邊界看成最小值,而我們只需要找到其中一個波峰,因此只要不斷地往高處走,一定會有波峰。那我們可以每次找到中間元素,將數組分成兩個區間,每次就較高的一邊走。同時題目還要求時間復雜度為log(N)可以使用二分產找確定中間元素。

  • 先通過二分查找,找到中間元素
  • 如果中間元素大于右側元素,說明右邊是向下走,不一定會遇到波峰,所以我們在左側繼續尋找中間值
  • 如果中間元素小于右側元素,說明右邊是向上走,一定會遇到波峰,所以我們在又側繼續尋找中間值
  • 當首尾相遇時,這個點就是波峰

注意:由于只需要找一個波峰,所以我們找一側對比就可以,這里是和右側數據對比。

int findPeakElement(int* nums, int numsLen) 
{int left = 0;int right = numsLen - 1;while (left < right) {int mid = (left + right) / 2;if (nums[mid] < nums[mid + 1]) {left = mid + 1;}else {right = mid;}}return right;
}

本次的內容到這里就結束啦。希望大家閱讀完可以有所收獲,同時也感謝各位讀者三連支持。文章有問題可以在評論區留言,博主一定認真認真修改,以后寫出更好的文章。你們的支持就是博主最大的動力。

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

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

相關文章

P1304 哥德巴赫猜想

題目描述 輸入一個偶數 N N N&#xff0c;驗證 4 ~ N 4\sim N 4~N 所有偶數是否符合哥德巴赫猜想&#xff1a;任一大于 2 2 2 的偶數都可寫成兩個質數之和。如果一個數不止一種分法&#xff0c;則輸出第一個加數相比其他分法最小的方案。例如 10 10 10&#xff0c; 10 …

Springboot寫單元測試

導入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintag…

django實現悲觀鎖樂觀鎖

前期準備 # 線上賣圖書-圖書表 圖書名字&#xff0c;圖書價格&#xff0c;庫存字段-訂單表&#xff1a; 訂單id&#xff0c;訂單名字# 表準備class Book(models.Model):name models.CharField(max_length32)price models.IntegerField() #count models.SmallIntegerField…

Python實時監控鍵盤的輸入并打印出來

要實現Python實時監控鍵盤的輸入并打印出來&#xff0c;可以使用pynput模塊。 首先&#xff0c;需要安裝pynput模塊&#xff1a; pip install pynput 然后&#xff0c;可以編寫以下代碼來實現實時監控鍵盤輸入并打印出來的功能&#xff1a; from pynput import keyboard# 定…

【Unity每日一記】方位辨別—向量的叉乘點乘結合

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;uni…

grafana 的 ws websocket 連接不上的解決方式

使用了多層的代理方式&#xff0c;一層沒有此問題 錯誤 WebSocket connection to ‘wss://ip地址/grafana01/api/live/ws’ failed: 日志報錯 msg“Request Completed” methodGET path/api/live/ws status403 解決方式 # allowed_origins is a comma-separated list of o…

Flutter:簡單搞一個內容高亮

內容高亮并不陌生&#xff0c;特別是在搜索內容頁面&#xff0c;可以說四處可見&#xff0c;就拿掘金這個應用而言&#xff0c;針對某一個關鍵字&#xff0c;我們搜索之后&#xff0c;與關鍵字相同的內容&#xff0c;則會高亮展示&#xff0c;如下圖所示&#xff1a; 如上的效果…

【Linux操作系統】舉例解釋Linux系統編程中文件io常用的函數

在Linux系統編程中&#xff0c;文件IO操作是非常常見和重要的操作之一。通過文件IO操作&#xff0c;我們可以打開、讀取、寫入和關閉文件&#xff0c;對文件進行定位、復制、刪除和重命名等操作。本篇博客將介紹一些常用的文件IO操作函數。 文章目錄 1. open()1.1 原型、參數及…

讀書筆記 |【項目思維與管理】? 順勢而動

讀書筆記 |【項目思維與管理】? 順勢而動 一、企業步入“終結者時代”二、過去成功的經驗也許是最可怕的三、做好非重復性的事四、適應客戶是出發點五、向知識型企業轉變六、速度是決勝條件 &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收藏不迷路&#x1f496; …

docker私有倉庫harbor

一、安裝docker-compose yum install docker-compose -y 二、下載harbor安裝包 tar -xf harbor-online-installer-v2.1.0.tgz cp harbor.yml.tmpl harbor.yml 三、修改harbor配置 [rootharbor ~]# vim harbor.ymlhostname: "修改為本機ip" harboradminpassword:…

每天一道leetcode:1218. 最長定差子序列(動態規劃中等)

今日份題目&#xff1a; 給你一個整數數組 arr 和一個整數 difference&#xff0c;請你找出并返回 arr 中最長等差子序列的長度&#xff0c;該子序列中相鄰元素之間的差等于 difference 。 子序列 是指在不改變其余元素順序的情況下&#xff0c;通過刪除一些元素或不刪除任何…

iTOP-i.MX8M開發板添加USB網絡設備驅動

選中支持 USB 網絡設備驅動&#xff0c;如下圖所示&#xff1a; [*] Device Drivers→ *- Network device support → USB Network Adapters→ {*} Multi-purpose USB Networking Framework 將光標移動到 save 保存&#xff0c;如下圖所示&#xff1a; 保存到 arch/arm64/c…

樹形動態規劃——樹形dp

樹形動態規劃 樹形 d p dp dp算法是一種用于解決樹相關問題的動態規劃算法。它把樹的問題分解成了子問題&#xff0c;并通過子問題的求解來構建整個問題的解。 當我們面對一棵樹的問題時&#xff0c;我們可以使用樹形 d p dp dp來解決。這種算法的基本思想是通過定義一個用于…

C語言入門 Day_5 四則運算

目錄 前言 1.四則運算 2.其他運算 3.易錯點 4.思維導圖 前言 圖為世界上第一臺通用計算機ENIAC,于1946年2月14日在美國賓夕法尼亞大學誕生。發明人是美國人莫克利&#xff08;JohnW.Mauchly&#xff09;和艾克特&#xff08;J.PresperEckert&#xff09;。 計算機的最開始…

代碼隨想錄第四十四天

代碼隨想錄第四十四天 Leetcode 518. 零錢兌換 IILeetcode 377. 組合總和 Ⅳ Leetcode 518. 零錢兌換 II 題目鏈接: 零錢兌換 II 自己的思路:想不到&#xff0c;忘記這個遞推公式了&#xff01;&#xff01;&#xff01;而且初始化也要值得注意&#xff01; 正確思路:由于這個…

js數組學習(ES6+)

文章目錄 js(ES6)數組學習1.Array.prototype.forEach(fn)2.Array.prototype.map(fn)3.Array.prototype.filter(fn)4.Array.prototype.reduce(fn)5.Array.prototype.some(fn) every6.Array.prototype.find(fn)7.Array.prototype.includes(item) js(ES6)數組學習 1.Array.protot…

kube-prometheus 系列3 使用 blackbox-exporter 進行 icmp 和 http 監控

安裝kube-prometheus 后默認在monitoring namespace中有創建 blackbox-exporter deployment。但默認沒有icmp的module配置&#xff0c;無法執行ping探測。因為即使有icmp module&#xff0c;默認配置也是無法執行ping探測的&#xff08;這篇文章要解決的就是這個問題&#xff0…

CentOS 7 下 Keepalived + Nginx 實現雙機高可用

CentOS 7 下 Keepalived Nginx 實現雙機高可用 文章目錄 CentOS 7 下 Keepalived Nginx 實現雙機高可用服務器準備服務信息服務架構 服務安裝nginxKeepalived 服務配置nginxKeepalived 啟動服務nginxkeepalived 服務驗證查看 VIP 狀態CURL 命令訪問瀏覽器訪問 高可用驗證停止…

146. LRU 緩存

題目描述 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類&#xff1a; LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中&#xff0c;則返回關鍵字的值&#xff0c;否…