c語言經典測試題8

在c語言經典測試題6的第一題,大家是否想過可不可以將遞歸參數改為s++呢?或許有的人已經試過了,但是發現好像不會有結果,其實是因為s++為后置++,先試用后加1,然而我們這個++是在s出了函數之后才會運行加1操作,又由于該函數為遞歸函數,不會直接出函數,所以該遞歸參數就一直是s不會改變,這樣的話,代碼就會陷入死遞歸。

1.題1

char ch;
int i;
float f;
double d;

如上圖我們定義了4種類型的數據,則表達式: ch/i + (f*d – i) 的結果類型為?

其實在不同類型的數據進行計算時,會統一進行向最高級類型的轉換,在這里基本數據類型的等級從低到高如下:char int long ?oat double運算的時候是從低轉到高的,表達式的類型會自動提升或者轉換為參與表達式求值的最上級類型。所以該表達式的結果類型應該為double類型。

2.題2

#include <stdio.h>
int main()
{
int x = -1;
unsigned int y = 2;
if (x > y)
{
printf("x is greater");
}
else
{
printf("y is greater");
}
return 0;
}

上述代碼運行結果會是什么呢?

我們來分析一下:首先我們創建了一個有符號的整型x,和一個無符號整型y,x是有符號數-1,內存中是全1,當有符號的x和無符號數進行比較時,x會隱式類型轉換被當做無符號數,是一個很大的數,所以此時第一個if條件成立,結果應該是打印x is greater,我們運行看看:

3.題3

int k, a, b;
unsigned int w = 5;
double x = 1.42;

?我們定義了上述數據類型,下列哪一個選項不符合c語言語法表達式:

A: x%3 B: w+=-20 C: k=(a=200,b=300) D: a+=a-=a=9

我們來分析一下:A選項其實很明顯,%取模操作符的兩個操作數必須為整數,而在上述類型中x是double類型得數據,故A錯誤。C選項其實是一個逗號表達式,其表達式的最終結果為最后一個表達式的結果。

4.題4

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

上述代碼的運行結果是什么?

我們來分析一下:我們知道^操作符的運算規則為,相同為0,相異為1。首先()的優先級最高所以先計算()里面的表達式,1<<31,后1的補碼變為10000000000000000000000000000000

然后該補碼又進行>>31,結果變為11111111111111111111111111111111,最后進行^操作后補碼為

11111111111111111111111111111110,這里是補碼·,我們將它還原為原碼為10000000000000000000000000000010,這時的結果就為-2。所以其運行結果應該為-2,我們運行看看:

5.題5

?給你一個含 n 個整數的數組 nums ,其中 nums[i] 在區間 [1, n] 內。請你找出所有在 [1, n] 范圍內但沒有出 現在 nums 中的數字,并以數組的形式返回結果。

int* ?ndDisappearedNumbers(int* nums, int numsSize, int* returnSize){
for (int i = 0; i < numsSize; i++) {
if (nums[abs(nums[i]) - 1] > 0)
nums[abs(nums[i]) - 1] = -(nums[abs(nums[i]) - 1]);
}
int *ret = (int *)malloc(sizeof(int) * (numsSize));
*returnSize = 0;
for (int i = 0; i < numsSize; i++) {
if (nums[i] > 0) {
ret[*returnSize] = i + 1;
*returnSize += 1;
}
}
return ret;
}

還是那句話,勤動腦,多動手。大家要勇于嘗試,加油!祝大家都早日成為大佬。

謝謝

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

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

相關文章

CentOS 7開啟Web服務

之前有寫過用kali開啟web服務方法&#xff0c;這次寫個用cendos7開啟服務的步驟&#xff01; 1、安裝httpd yum install -y httpd 若顯示安裝失敗&#xff0c;報錯原因為找不到httpd的安裝包&#xff0c;可參考這篇文件更新yum源&#xff1a;CentOS 7更換yum源|詳細步驟-CSDN…

CDN CloudFlare 接入 OCI 對象存儲

在當今數字化時代&#xff0c;網站性能和可用性是業務成功的關鍵。為了提供快速且可靠的訪問體驗&#xff0c;許多組織正在尋找有效的內容分發網絡&#xff08;CDN&#xff09;解決方案。CloudFlare作為業界領先的CDN提供商&#xff0c;其強大的全球網絡基礎設施能夠加速網站內…

獲取秒值, 把秒值轉換為時分秒, 及把時分秒轉換成秒值代碼

// author: hjjdebug // date: 2024年 03月 01日 星期五 15:29:32 CST // description: 獲取秒值, 把秒值轉換為時分秒, 及把時分秒轉換成秒值 // 使用就這么簡單. // 有時候程序輸出需要打印時間信息, 就可以這么干了. /// #include <stdio.h> #include <time.h> …

tvm編譯爬坑,包括rpc

環境 docker ubuntu20.04 主要參考&#xff1a; TVM的安裝編譯 - 知乎 其他還參考&#xff1a; https://www.cnblogs.com/whiteBear/p/16629669.html 用TVM在Android上部署模型 (II. Docker安裝TVM環境) - 知乎 對 APK 進行手動簽名 - Xamarin | Microsoft Learn Android …

《PyTorch深度學習實踐》第十二講循環神經網絡基礎

一、RNN簡介 1、RNN網絡最大的特點就是可以處理序列特征&#xff0c;就是我們的一組動態特征。比如&#xff0c;我們可以通過將前三天每天的特征&#xff08;是否下雨&#xff0c;是否有太陽等&#xff09;輸入到網絡&#xff0c;從而來預測第四天的天氣。 我們可以看RN…

Python實現雙向鏈表:從基礎到應用

一、引言 雙向鏈表是一種比單向鏈表更復雜的數據結構&#xff0c;每個節點除了包含數據和指向下一個節點的指針外&#xff0c;還包含一個指向前一個節點的指針。這種結構使得我們可以從鏈表的任何節點開始&#xff0c;向前或向后遍歷鏈表。 目錄 一、引言 二、節點定義 三、…

OPPO打響AI手機第一槍

明敏 發自 凹非寺 量子位 | 公眾號 QbitAI 2024開年&#xff0c;AI趨勢依舊高歌猛進。 一邊&#xff0c;Sora爆火成為現象級AIGC應用&#xff0c;帶動AI再度成為春節后全民熱議的第一話題。另一邊&#xff0c;手機廠商開始大舉All in AI&#xff0c;“放棄傳統智能手機”、“…

【Qt】Sqlite數據庫加密

1. 加密方式 對數據庫文件加密。既不會暴露表結構&#xff0c;也不會暴露數據細節。 2. 加密工具&#xff08;QtCipherSqlitePlugin&#xff09; 用于密碼 SQLite 的 Qt 插件&#xff0c;它基于 SQLite 源和 wxWidget 中的 wxSQLite3插件github地址&#xff1a;https://gith…

gpt-3.5-turbo與星火認知大模型v3.5回答對比

創建kernel // Create a kernel with OpenAI chat completionKernel kernel Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId:"使用的模型id" ,apiKey: "APIKey").Build();使用訊飛星火認知大模型的話&#xff0c;可以參考我這一篇文章&#xff…

突破編程_C++_高級教程(正則表達式)

1 正則表達式的概念 正則表達式&#xff0c;又稱規則表達式&#xff0c;&#xff08;Regular Expression&#xff0c;在代碼中常簡寫為 regex 、regexp 或 RE&#xff09;&#xff0c;是一種文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之間的字母&a…

c++函數指針 回調函數

目錄 函數指針 ?編輯 實例 函數指針作為某個函數的參數 實例 std::function輕松實現回調函數 綁定一個函數 作為回調函數 作為函數入參 函數指針 函數指針是指向函數的指針變量。 通常我們說的指針變量是指向一個整型、字符型或數組等變量&#xff0c;而函數指針是指向…

證券相關業務知識

證券相關業務知識 LOF交易回售業務觸發條件 股票代碼區分融券專戶競價交易與大宗交易一級市場和二級市場ETF交易融資融券交易&#xff08;兩融&#xff09;融券強平轉托管簿記和預簿記期權權證股票板塊 LOF交易 LOF&#xff0c;即上市型開放式基金&#xff08;Listed Open-End…

【Java】UWB高精度工業定位系統項目源代碼

目錄 UWB技術原理 優勢 1. 高精度&#xff1a; 2. 抗干擾能力強&#xff1a; 3. 定位范圍廣&#xff1a; 4. 實時性強&#xff1a; 應用前景 定位系統源碼功能介紹 實時定位&#xff1a; 軌跡回放&#xff1a; 區域管理&#xff1a; 巡檢管理: 數據可視化分析&…

BAT等大廠必問技術面試題,2024Android開發面試解答之設計模式

IT行業薪水高&#xff0c;這是眾所周知的&#xff0c;所以很多人大學都選擇IT相關專業&#xff0c;即使非該專業的人&#xff0c;畢業了也想去一個培訓機構鍍鍍金&#xff0c;進入這一行業。 但是有關這個行業35歲就退休的說法&#xff0c;也一直盛傳。 加上這幾年不斷有各大…

回溯 Leetcode 47 全排列II

全排列II 給定一個可包含重復數字的序列 nums &#xff0c;按任意順序 返回所有不重復的全排列。 Leetcode 47 學習記錄自代碼隨想錄 示例 1&#xff1a; 輸入&#xff1a;nums [1,1,2] 輸出&#xff1a; [[1,1,2], [1,2,1], [2,1,1]] 示例 2&#xff1a; 輸入&#xff1…

Unity3d Shader篇(十)— 漸變紋理

文章目錄 前言一、什么是Unlity漸變紋理Shader&#xff1f;1. 漸變紋理Shader工作原理2. 漸變紋理&#xff1f;3. 漸變紋理的優缺點優點&#xff1a;缺點&#xff1a; 4. 漸變紋理例圖 二、使用步驟1. Shader 屬性定義2. SubShader 設置3. 渲染 Pass4. 定義結構體和頂點著色器函…

Linux下的GDB

1.前言 GDB是Linux下非常好用且強大的調試工具。GDB可以調試C、C、Go、java、 objective-c、PHP等語言。對于一名Linux下工作的c/c程序員&#xff0c;GDB是必不可少的工具 2.GDB使用幫助 GDB命令擁有較多內部命令。在gdb命令提示符下輸入help可以查看所有內部命令及使用說明 …

Mediapipe筆記:安裝Mediapipe+手部檢測+動作識別

Mediapipe 安裝Mediapipe 打開Anaconda prompt檢查環境和python運行環境是否一致(默認base環境&#xff0c;不用切換)輸入命令行pip install mediapipe0.9.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple Mediapope完成手部關鍵點檢測 手部檢測 創建對象(加載模型參數)…

(二十二)devops持續集成開發——jenkins服務代理Agent搭建

前言 在Jenkins 中&#xff0c;代理&#xff08;Agent&#xff09;是一種用于執行構建、部署和其他任務的計算節點。代理節點可以是物理機器、虛擬機或容器&#xff0c;它們負責接收 Jenkins 主控節點委派的任務并執行這些任務。通過使用代理節點&#xff0c;可以有效地分擔Je…

Redis內存淘汰策略詳解

Redis作為一個高性能的鍵值對數據庫&#xff0c;被廣泛應用于各種需要快速響應和持久存儲的場景中。然而&#xff0c;由于其內存存儲的特性&#xff0c;當Redis的內存使用達到其最大配置限制時&#xff0c;就需要有一種策略來管理內存的使用&#xff0c;以避免內存溢出。這就是…