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

🔥博客主頁:小王又困了

📚系列專欄:每日一練

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

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

?


目錄

一、選擇題

📝1.第一題?

📝2.第二題?

📝3.第三題?

二、編程題

📝1.第一題?

📝2.第二題?


🗒?前言:

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

一、選擇題

📝1.第一題?

以下程序運行后的輸出結果是( )

int main()
{int a=1,b=2,m=0,n=0,k;k=(n=b<a)&&(m=a);printf("%d,%d\n",k,m);return 0;
}

💡解題思路:

這道題是要打印 k 和 m 的值,我們通過執行上面的表達式來得到它兩的值。在這里括號的優先級最高,先執行括號中的代碼,關系運算符的優先級大于賦值操作符,這里我們要注意 && ,當左邊為假時,就不用執行右邊的代碼。

  1. 先執行 b<a?為假值為0,再將0賦值給n,表達式結果為零
  2. 再將0賦值給 k,表達式 k=0表達式為假
  3. 左側表達式為假,右側表達式也不執行,所以 k 和 m 的值都為0

📝2.第二題?

讀代碼選結果( )

int main()
{int count = 0;int x = -1;while (x){count++;x = x >> 1;}printf("%d", count);
}

?💡解題思路:

通過觀察代碼,可以得知代碼的目是計算一個整數 x 的二進制表示中有多少個1。

  • 首先,初始化計數器count為0,用于記錄1的個數。
  • 然后,將整數 x 初始化一個值。接下來進入while循環,條件是x不為0。在循環內部,首先將count加1,表示找到了一個1。然后將x右移一位(相當于除以2),繼續檢查新的x值。當x變為0時,循環結束。
  • 最后,使用printf函數輸出計數器count的值,即整數 x 的二進制表示中1的個數。

但是這里 x 初始化為-1,-1的二進制補碼全部都是1,第一位是符號位。右移分為算數右移邏輯右移,一般編譯器都是算術右移:右邊丟棄,左邊補原來的符號位。所以計數器會一直加,程序陷入死循環。

📝3.第三題?

請閱讀以下程序,其運行結果是( )

int main()
{char c='A';if('0' <=c<= '9') {    printf("YES");}else {printf("NO");}return 0;
}

?💡解題思路:

這道題很容易對大家產生誤解,'0' <=c<= '9' 這段代碼的意思就是 c 大于?‘0’小于 ‘9’ 就為真,但這種是數學中的寫法,在程序中這樣的代碼要從左向右執行:

  • 先執行 ‘0’<= c,'A' 的ASCII碼值為65,‘0’ 的ASCII碼值為48,‘0’ <=c 為真值為1
  • 然后進行下面的判斷 1<= ‘9’ 為真,所以打印YES

正確的代碼應該寫成?c >='0' ?&& c <= '9',if語句判斷為真,打印YES。

雖然兩段代碼的結果相同,但邏輯并不相同,所以我們在平常寫代碼時一定要規范。

二、編程題

📝1.第一題?

💡解題思路:

我們想在數字中添加逗號,將每一位通過 %10 /10 的方式拆分下來,在需要的地方將逗號插入進去。由于加入逗號,原來的數字就不能用整型表示,而是要變成字符型,在得到每位的數據加上 ‘0’ 就可以變成字符型。將得到的數據存放在字符數組中,每存放3個數據就插入一個逗號,即k%3==0 就插入,這里要注意判斷條件,當插入第一個數時,k%3==0 的條件也滿足,但是不需要插入逗號,所以我們要加上 k!=0 ,使條件完整。

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);//存放最后的結果char arr[14] = { 0 };int i = 0;//記錄加逗號int k = 0;while (n){if (k != 0 && k % 3 == 0){arr[i++] = ',';}arr[i++] = n % 10 + '0';n /= 10;k++;}//打印for (i--; i >= 0; i--){printf("%c", arr[i]);}return 0;
}

📝2.第二題?

?💡解題思路:

我們通過兩個循環遍歷數組,當找到 numbers[i]+numbers[j] 和目標值相同的直接 return 。由于題目中還要求時間復雜度為 O(nlogn) ,兩次循環時間復雜度為 O(n^2)。所以我們可以使用 contine ,在第二次循環之前先判斷,如果 numbers[i]>target ,兩數之和一定大于 target,使用 continue就可以跳過第二次循環,執行下一次。

  • continue:提前結束本次循環,接著執行下一次循環?

?

int* twoSum(int* numbers, int numbersLen, int target, int* returnSize) 
{int* newarr = (int*)malloc(sizeof(int) * 2);int i = 0;for (i = 0; i < numbersLen; i++){if (numbers[i] > target){continue;}int j = 0;for (j = i + 1; j < numbersLen; j++){if (numbers[i] + numbers[j] == target){newarr[0] = i + 1;newarr[1] = j + 1;*returnSize = 2;return newarr;}}}*returnSize = 0;return 0;
}

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

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

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

相關文章

【LeetCode】337.打家劫舍Ⅲ

題目 小偷又發現了一個新的可行竊的地區。這個地區只有一個入口&#xff0c;我們稱之為 root 。 除了 root 之外&#xff0c;每棟房子有且只有一個“父“房子與之相連。一番偵察之后&#xff0c;聰明的小偷意識到“這個地方的所有房屋的排列類似于一棵二叉樹”。 如果 兩個直…

Command Injection

Command Injection Command Injection&#xff0c;即命令注入&#xff0c;是指通過提交惡意構造的參數破壞命令語句結構&#xff0c;從而達到執行惡意命令的目的。PHP命令注入攻擊漏洞是PHP應用程序中常見的腳本漏洞之一。 PHP命令注入漏洞的函數 systme()、exec()、shell_ex…

【3Ds Max】彎曲命令的簡單使用

簡介 在3ds Max中&#xff0c;"彎曲"&#xff08;Bend&#xff09;是一種用于在平面或曲面上創建彎曲效果的建模命令。使用彎曲命令&#xff0c;您可以將對象沿特定軸向彎曲&#xff0c;從而創建出各種彎曲的幾何形狀。以下是使用3ds Max中的彎曲命令的基本步驟&…

8月17日,每日信息差

1、專家稱無需太過擔心EG.5變異株 2、快手職級體系調整&#xff0c;職級序列由雙軌變單軌 3、抖音、火山引擎、中國電影資料館發起“經典香港電影修復計劃”&#xff0c;一年內將100部香港電影修復至4K版本。本次修復工作由火山引擎提供技術支持&#xff0c;與中國電影資料館…

【Bert101】最先進的 NLP 模型解釋【01/4】

0 什么是伯特&#xff1f; BERT是來自【Bidirectional Encoder Representations from Transformers】變壓器的雙向編碼器表示的縮寫&#xff0c;是用于自然語言處理的機器學習&#xff08;ML&#xff09;模型。它由Google AI Language的研究人員于2018年開發&#xff0c;可作為…

【Harbor】使用手冊

一、Harbor使用方式 Harbor 作為鏡像倉庫&#xff0c;主要的交互方式就是 將鏡像上傳到Harbor上&#xff0c;以及從Harbor上下載指定鏡像 在傳輸鏡像前&#xff0c;可以先使用 Harbor 提供的權限管理&#xff0c;將項目設置為私有項目&#xff0c;并對不同用戶設置不同角色&…

基于Spring Boot的高校在線考試系統的設計與實現(Java+spring boot+VUE+MySQL)

獲取源碼或者論文請私信博主 演示視頻&#xff1a; 基于Spring Boot的高校在線考試系統的設計與實現&#xff08;Javaspring bootVUEMySQL&#xff09; 使用技術&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java s…

uniapp小程序實現上傳圖片功能,并顯示上傳進度

效果圖&#xff1a; 實現方法&#xff1a; 一、通過uni.chooseMedia(OBJECT)方法&#xff0c;拍攝或從手機相冊中選擇圖片或視頻。 官方文檔鏈接: https://uniapp.dcloud.net.cn/api/media/video.html#choosemedia uni.chooseMedia({count: 9,mediaType: [image,video],so…

vscode用ssh遠程連接linux

1、vscode是利用ssh遠程連接linux的&#xff0c;所以首先確保vscode已經安裝了這兩個插件 2、點擊左下角的連接 3、選擇Connect to Host…… 5、按格式輸入 ssh 主機名ip 比如我的&#xff1a;ssh mnt192.168.198.128 6、選擇第一個打開配置文件&#xff0c;確保輸入正確 7、…

spring bean創建總覽 1

1 開始 這是一個總圖 下邊慢慢看 我們最基礎的寫的方式就是xml的方式去寫 像這樣&#xff0c; 而我們會通過applicationContext的方式去獲得我們的bean &#xff0c;我其中一篇博客就寫到了applicationContext他的父類就是beanFactory 但是中間的是怎么樣處理的呢&#xff1f…

VET:基因變異VCF數據集便捷提取工具

VET&#xff1a;Vcf Export Tools 工具簡介 VET是一個基于R語言開發的變異位點信息批量提取工具&#xff0c;主要功能是根據VCF數據集&#xff0c;按照基因ID、樣品ID、變異位點ID等參數&#xff0c;實現批量提取&#xff0c;同時支持變異位點結構注釋&#xff0c;一步搞定變異…

android 的Thread類

Thread類 位于java.lang包下的Thread類是非常重要的線程類&#xff0c;它實現了Runnable接口&#xff0c;學習Thread類包括這些相關知識&#xff1a;線程的幾種狀態、上下文切換&#xff0c;Thread類中的方法的具體使用。 線程&#xff1a;比進程更小的執行單元&#xff0c;每…

Php“牽手”京東商品詳情頁數據采集方法,京東API接口申請指南

京東詳情接口 API 是開放平臺提供的一種 API 接口&#xff0c;它可以幫助開發者獲取商品的詳細信息&#xff0c;包括商品的標題、描述、圖片等信息。在電商平臺的開發中&#xff0c;詳情接口API是非常常用的 API&#xff0c;因此本文將詳細介紹詳情接口 API 的使用。 一、京東…

uniapp編寫微信小程序遇到的坑總結

1、阻止事件冒泡 使用uniapp開發微信小程序的時候&#xff0c;發現使用click.stop來阻止事件冒泡沒有作用&#xff0c;點擊了之后發現仍然會觸發父組件或者祖先組件的事件。 在網上查閱&#xff0c;發現使用tap.stop才能阻止事件冒泡。 2、二維碼生成 在網上找了很多&…

Linux 信號的基本概念

信號的基本概念 1. 信號的概念 信號是Linux系統響應某些條件產生的一些事件。接收到信號的進程會相應地采取一些行動。 2. 信號的生成 信號是由于某些錯誤條件而生成的&#xff0c;如內存段沖突、浮點處理器錯誤或非法指令等。信號的生成其實就是一種軟件層次的中斷&#x…

adb對安卓app進行抓包(ip連接設備)

adb對安卓app進行抓包&#xff08;ip連接設備&#xff09; 一&#xff0c;首先將安卓設備的開發者模式打開&#xff0c;提示允許adb調試 二&#xff0c;自己的筆記本要和安卓設備在同一個網段下&#xff08;同連一個WiFi就可以了&#xff09; 三&#xff0c;在筆記本上根據i…

JVM——類的生命周期

文章目錄 類加載過程加載驗證準備解析初始化 卸載 一個類的完整生命周期如下&#xff1a; 類加載過程 Class 文件需要加載到虛擬機中之后才能運行和使用&#xff0c;那么虛擬機是如何加載這些 Class 文件呢&#xff1f; 系統加載 Class 類型的文件主要三步:加載->連接->…

Redis-秒殺

唉 就記得當時搶冰墩墩的時候的秒殺了 我們要注意什么問題呢? 1.幾百萬人在這個瞬間搶冰墩墩 這個瞬間會有大量的請求 服務器要能抗的住 2.不能超賣,就那些冰墩墩 賣多了壓根沒有 好不容易搶到你說沒貨了怕不是要被沖爛 3.避免少賣 攏共就那些 你再少賣點 沒屁了 4.防黃牛…

CentOS系統環境搭建(十五)——CentOS安裝Kibana

centos系統環境搭建專欄&#x1f517;點擊跳轉 關于Elasticsearch的安裝請看CentOS系統環境搭建&#xff08;十二&#xff09;——CentOS7安裝Elasticsearch。 CentOS安裝Kibana 文章目錄 CentOS安裝Kibana1.下載2.上傳3.解壓4.修改kibana配置文件5.授予es用戶權限6.kibana 后臺…

uniapp的UI框架組件庫——uView

在寫uniapp項目時候&#xff0c;官方所推薦的樣式庫并不能滿足日常的需求&#xff0c;也不可能自己去寫相應的樣式&#xff0c;費時又費力&#xff0c;所以我們一般會去使用第三方的組件庫UI&#xff0c;就像vue里我們所熟悉的elementUI組件庫一樣的道理&#xff0c;在uniapp中…