c語言每日一練(8)

前言:
每日一練系列,每一期都包含5道選擇題,2道編程題,博主會盡可能詳細地進行講解,令初學者也能聽的清晰。每日一練系列會持續更新,暑假時三天之內必有一更,到了開學之后,將看學業情況更新。

?五道選擇題:

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

#include<stdio.h>
int main()
{
char c='A';
if('0'<=c<='9') printf("YES");//1
else printf("NO");
return 0;
} 

A、YES? ? ? ?B、NO? ? ? ?C、YES? ? ??D、語句錯誤

解析:易錯題,很多人看到代碼1的時候就會下意識的認為,它的判定條件是變量c大于等于字符0且小于等于字符9才打印YES,實際上要實現這樣的功能代碼得是'0'<=c&&c<='9'

代碼1的執行是先進行'0'<=c這個運算,再把運算所得到的值與'9'進行比較,c存放的是字符變量'A',ASCII碼值為65,'0'的ASCII碼值為48。所以'0'<=c得到的值是1,再與'9'進行比較,顯然1<='9',最終表達式為真,執行YES的打印。故選C

2?、下列程序的輸出結果是什么( )

#include<stdio.h>
int main()
{
int n = 1001;
int ans = 0;
for(int i = 1; i <= n; ++i)
{
ans ^= i % 3;//1
}
printf("%d",ans);
return 0;
}

A、-2? ? ? ? ?B、0? ? ? ? C 、1? ? ? ? D、2

解析:^(異或)運算符的計算規則是將兩個數相同的位變為0,不同的位變為1,那么兩個相同的數^等于0,^運算符還滿足交換律,因此在進行^的時候可以任意地交換數字之間的位置。

觀察代碼發現,目標是打印出ans的值,ans在最開始的時侯被賦值為0,然后進入for循環,走向代碼1,不停地^i%3的值。i%3可以看出,會在0,1,2三個數中循環,而循環的開始i是為1,所以循環是1,2,0,那么ans就在不停地^1,2,0。觀察可知循環的次數為1001,1001/3=333余2。而第332次1,2,0的時候是偶數,意味著第332次時,1,2,0都是一對一對的,那么全部都會被^為0,故最后的結果為(0^1^2)^1^2,等于0,所以選B

3、下面有關空指針和未初始化指針,說法錯誤的是( )
A、對0x0這個地址取值是非法的
B、空指針可以確保不指向任何對象或函數; 而未初始化指針則可能指向任何地方
C、空指針與任何對象或函數的指針值都不相等? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? D、malloc在其內存分配失敗時返回的是一個未初始化的指針

解析:不能對空指針進行解引用操作,A正確。空指針是沒有指先任何空間的指針,未初始化的指針是野指針,是不安全的可能指向任何地方,B正確。空指針沒指向任何空間,沒有值,故C正確。malloc創建失敗的話會返回空指針,故D錯誤。選D

4、有以下函數,該函數的功能是( )

int fun(char *s)
{
char *t = s;
while(*t++);//1
return(t-s);//2
}

A、比較兩個字符的大小? ? ? ? ?B、計算s所指字符串占用內存字節的個數
C、計算s所指字符串的長度? ?D、將s所指字符串復制到字符串t中

解析:易錯題,遇到這種題最好的方法就是傳一個東西進去試一下,我們傳字符串"abc"進去,可以看出,函數fun先使用字符指針t存放s的指針,所以此時t可以等效為"abc"的首地址,走到代碼1,是一個循環,循環會令t不停地走直到走到'\0',因為'\0'的ASCII碼值為0。而字符串"abc"走三次才會走到'\0'。但是要注意,*t++,也就是會走到'\0'之后的一個位置。最后走到代碼2,首地址和后面的一個地址一減,就會得到字符串"abc"的長度再+1=4。綜上所述,答案選B,計算的是字符串占用內存字節的個數,包含'\0'

?5、若有float a[3]={1.5,2.5,3.5},*pa=a;*(pa++)*=3; 則 *pa 的值是()

A、1.5? ? ? B、2.5? ? ? C、3.5? ? ? D、4.5

解析:從左往右一步步看,首先定義了一個浮點型數組a,存放了1.5,2.5,3.5。接著,使用浮點型指針將浮點型數組a的首地址賦給pa,那么pa現在存放的值為1.5,最后*(pa++)*=3,先使用后++,根據優先級,解引用得到1.5*=3,那么數組a首地址所指向的值被修改為4.5。然后pa++,來到2.5所在的地址,*pa解引用,故最后得到的值為2.5,選B


??

編程題1:?

?統計每個月兔子的總數_牛客題霸_牛客網統計每個月兔子的總數_牛客題霸_牛客網

思路:通過一些計算你可以發現,第n個月的兔子總數就是第n個斐波那契數,接下來就很簡單了。

#include <stdio.h>
int main()
{int a=1;int b=1;int month=0;scanf("%d",&month);if(month<3)//當要計算的斐波那契數<3直接打印1{printf("%d",a);return 0;}while(month-2){int tmp=a;a=b;b=tmp+b;month--;}printf("%d",b);
}

?編程題2:

最大公約數__牛客網 (nowcoder.com)

思路:使用輾轉相除法解決問題,具體做法是:用較大數除以較小數,再用出現的余數(第一余數)去除除數,再用出現的余數(第二余數)去除第一余數,如此反復,直到最后余數是0為止。如果是求兩個數的最大公約數,那么最后的除數就是這兩個數的最大公約數。?

#include <stdio.h>
int main() {long long int a = 0; long long int b = 0;//使用long long,防止數據過大scanf("%lld %lld", &a, &b);while (b){long long int tmp = b;//儲存中間變量b = a % b;a = tmp;}printf("%lld", a);return 0;
}

??好了,今天的練習到這里就結束了,感謝各位友友的來訪,祝各位友友前程似錦O(∩_∩)O

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

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

相關文章

【javaweb】學習日記Day1 - HTML CSS入門

目錄 一、圖片標簽 ① 絕對路徑 1.絕對磁盤路徑 2.絕對網絡路徑 ② 相對路徑 &#xff08;推薦&#xff09; 二、標題標簽 三、水平線標簽 四、標題樣式 1、CSS引入樣式 ① 行內樣式 ② 內嵌樣式 ③ 外嵌樣式 2、CSS選擇器 ① 元素選擇器 ② id選擇器 ③…

Hadoop+Python+Django+Mysql熱門旅游景點數據分析系統的設計與實現(包含設計報告)

系統闡述的是使用熱門旅游景點數據分析系統的設計與實現&#xff0c;對于Python、B/S結構、MySql進行了較為深入的學習與應用。主要針對系統的設計&#xff0c;描述&#xff0c;實現和分析與測試方面來表明開發的過程。開發中使用了 django框架和MySql數據庫技術搭建系統的整體…

Python批量給excel文件加密

有時候我們需要定期給公司外部發郵件&#xff0c;在自動化發郵件的時候需要對文件進行加密傳輸。本文和你一起來探索用python給單個文件和批量文件加密。 ?? python自動化發郵件可參考【干貨】用Python每天定時發送監控郵件。 文章目錄 一、安裝pypiwin32包二、定義給excel加…

【Docker】Docker使用之容器技術發展史

&#x1f3ac; 博客主頁&#xff1a;博主鏈接 &#x1f3a5; 本文由 M malloc 原創&#xff0c;首發于 CSDN&#x1f649; &#x1f384; 學習專欄推薦&#xff1a;LeetCode刷題集 &#x1f3c5; 歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff0…

【Unity】UI的一些簡單知識

Canvas 新建一個Canvas Render Mode Canvas 中有一個Render Mode&#xff08;渲染模式&#xff09;&#xff0c;有三種渲染模式: Screen Space-Overlay &#xff08;屏幕空間&#xff09;Screen Space-Camara 、 World Space 其中&#xff0c;Space- Overlay是默認顯示在…

使用Spring Boot和Redis實現用戶IP接口限流的詳細指南

系列文章目錄 文章目錄 系列文章目錄前言一、準備工作二、編寫限流過濾器三、配置Redis四、測試接口限流總結 前言 在高并發場景下&#xff0c;為了保護系統免受惡意請求的影響&#xff0c;接口限流是一項重要的安全措施。本文將介紹如何使用Spring Boot和Redis來實現用戶IP的…

數據統計與可視化的Dash應用程序

在數據分析和可視化領域&#xff0c;Dash是一個強大的工具&#xff0c;它結合了Python中的數據處理庫&#xff08;如pandas&#xff09;和交互式可視化庫&#xff08;如Plotly&#xff09;以及Web應用程序開發框架。本文將介紹如何使用Dash創建一個簡單的數據統計和可視化應用程…

移動端網頁中的前端視頻技術探索

引言 隨著移動設備的普及和網絡速度的提升&#xff0c;移動端網頁中的視頻播放已經成為了越來越重要的功能需求。本篇博客將介紹一些在移動端網頁中實現前端視頻播放的技術探索&#xff0c;并提供詳細的代碼示例。 1. 基本視頻標簽 在移動端網頁中實現視頻播放最基本的方法就…

【C++學習手札】一文帶你初識運算符重載

食用指南&#xff1a;本文在有C基礎的情況下食用更佳 &#x1f340;本文前置知識&#xff1a; C類 ??今日夜電波&#xff1a;クリームソーダとシャンデリア—Edo_Ame江戶糖 1:20 ━━━━━━?&#x1f49f;──────── 3:40 …

ID3 決策樹

西瓜數據集D如下: 編號色澤根蒂敲聲紋理臍部觸感好瓜1青綠蜷縮濁響清晰凹陷硬滑是2烏黑蜷縮沉悶清晰凹陷硬滑是3烏黑蜷縮濁響清晰凹陷硬滑是4青綠蜷縮沉悶清晰凹陷硬滑是5淺白蜷縮濁響清晰凹陷硬滑是6青綠稍蜷濁響清晰稍凹軟粘是7烏黑稍蜷濁響稍糊稍凹軟粘是8烏黑稍蜷濁響清晰…

idea cannot download sources 解決方法

問題 點擊class文件右上角下載源碼失敗 解決方案 找到idea terminal 控制臺cd 至maven工程執行 mvn dependency:resolve -Dclassifiersources

【IMX6ULL驅動開發學習】04.應用程序和驅動程序數據傳輸和交互的4種方式:非阻塞、阻塞、POLL、異步通知

一、數據傳輸 1.1 APP和驅動 APP和驅動之間的數據訪問是不能通過直接訪問對方的內存地址來操作的&#xff0c;這里涉及Linux系統中的MMU&#xff08;內存管理單元&#xff09;。在驅動程序中通過這兩個函數來獲得APP和傳給APP數據&#xff1a; copy_to_usercopy_from_user …

24屆近3年上海電力大學自動化考研院校分析

今天給大家帶來的是上海電力大學控制考研分析 滿滿干貨&#xff5e;還不快快點贊收藏 一、上海電力大學 學校簡介 上海電力大學&#xff08;Shanghai University of Electric Power&#xff09;&#xff0c;位于上海市&#xff0c;是中央與上海市共建、以上海市管理為主的全日…

stack 、 queue的語法使用及底層實現以及deque的介紹【C++】

文章目錄 stack的使用queue的使用適配器queue的模擬實現stack的模擬實現deque stack的使用 stack是一種容器適配器&#xff0c;具有后進先出&#xff0c;只能從容器的一端進行元素的插入與提取操作 #include <iostream> #include <vector> #include <stack&g…

Layui列表復選框根據條件禁用

// 禁用客服回訪id有值的復選框res.data.forEach(function (item, i) {if (item.feedbackEmpId) {let index res.data[i][LAY_TABLE_INDEX];$(".layui-table tr[data-index"index"] input[typecheckbox]").prop(disabled,true);$(".layui-table tr[d…

【WebRTC---源碼篇】(二十四)GCC獲取碼率后的分配

RtpTransportControllerSend::PostUpdates 配置碼率 // Contains updates of network controller comand state. Using optionals to // indicate whether a member has been updated. The array of probe clusters // should be used to send out probes if not empty. // 包…

【SpringBoot】89、SpringBoot中使用@Transactional進行事務管理

事務是一組組合成邏輯工作單元的操作,雖然系統中可能會出錯,但事務將控制和維護事務中每個操作的一致性和完整性。 1、SpringBoot 引用說明 新建的 Spring Boot 項目中,一般都會引用 spring-boot-starter 或者 spring-boot-starter-web,而這兩個起步依賴中都已經包含了對…

EV 錄屏修復小工具

參考這篇文章, EV錄制文件損壞-修復方法, 我用 C# 寫了一個小程序. 倉庫: github.com/SlimeNull/EvRepair 下載: github.com/SlimeNull/EvRepair/Releases 鏡像: gitee.com/slimenull/EvRepair/releases 覺得還不錯的話, 點個星星 推薦使用的幾個理由: 內嵌 ffmpeg 和 recov…

Linux學習之初識Linux

目錄 一.Linux的發展歷史及概念 1.什么是Linux UNIX發展的歷史&#xff1a; Linux發展歷史&#xff1a; 2. 開源 商業化發行版本 二. 如何搭建Linux環境 Linux 環境的搭建方式主要有三種&#xff1a; 1. 直接安裝在物理機上 2. 使用虛擬機軟件 3. 使用云服務器 三. …

沒學C++,如何從C語言絲滑過度到python【python基礎萬字詳解】

大家好&#xff0c;我是紀寧。 文章將從C語言出發&#xff0c;深入介紹python的基礎知識&#xff0c;也包括很多python的新增知識點詳解。 文章目錄 1.python的輸入輸出&#xff0c;重新認識 hello world&#xff0c;重回那個激情燃燒的歲月1.1 輸出函數print的規則1.2 輸入函…