国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言:選擇+編程(每日一練Day16)

這篇具有很好參考價值的文章主要介紹了C語言:選擇+編程(每日一練Day16)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C語言:選擇+編程(每日一練Day16),C語言練習(xí),c語言,開發(fā)語言,學(xué)習(xí),深度學(xué)習(xí),c++,筆記,算法

目錄

選擇題:

題一:

題二:

題三:

題四:

題五:

編程題:

題一:數(shù)對

思路一:

題二:截取字符串

思路一:

本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵!

感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!


選擇題:

題一:

1、指出下列代碼的缺陷【多選】( )
float f[10];
// 假設(shè)這里有對f進行初始化的代碼
for(int i = 0; i < 10;)
{
????????if(f[++i] == 0)
????????break;
}

A: for(int i = 0; i < 10;)這一行寫錯了

B: f是float型數(shù)據(jù)直接做相等判斷有風(fēng)險
C: f[++i]應(yīng)該是f[i++]

D: 沒有缺陷

答案解析:

????????一般float型只能精確到小數(shù)后六位(即1e-6),將float型數(shù)據(jù)的絕對值與1e-6比較,來判斷是否相等(為零)。float的精度誤差在1e-6;double精度誤差在1e-15;所以要判斷一個float型數(shù):if(fabs(f)<1e-6);要判斷一個double型數(shù):if(fabs(f)<1e-15);若滿足,則為零??紤]B選項是對的。若要判斷float a,b是否相等,要看if(fabs(a-b)<1e-6)是否為真。C選項,考慮的是數(shù)組越界問題。

題二:

2、請指出以下程序的錯誤【多選】( )
void GetMemory(char **p, int num)
{
????????if(NULL == p && num <= 0)//1
????????????????return;
????????*p = (char*)malloc(num);
? ? ? ? return;
}

int main()
{
????????char *str = NULL;
????????GetMemory(&str, 80); //2
????????if(NULL != str)
????????{
????????????????strcpy(&str, "hello"); //3
????????????????printf(str); //4

????????}

????????return 0;
}

A: 1? ? B: 2? ? C: 3? ? D: 4

答案解析:

????????第1處兩種情況之一成立都是要返回的,應(yīng)該用或,此處用與錯誤。在語句GetMemory(&str,100);中傳入str的地址,在語句char*str=NULL;中str初始化為空指針,但是str指針變量也有地址,所以參數(shù)char**p里面的p保存的是指針變量str的地址,所以調(diào)用GetMemory函數(shù)之后,動態(tài)開辟的空間的地址存放在了str中,在函數(shù)返回之后沒有釋放內(nèi)存,但是這不會導(dǎo)致程序錯誤,只會導(dǎo)致內(nèi)存泄漏。第3處用&str是錯的,應(yīng)該直接用str,是剛申請下來的空間首地址,可以用來接收字符串的copy。

題三:

3、請問下列代碼的輸出結(jié)果有可能是哪些【多選】( )
#include <stdio.h>
typedef union
{
????????int a;
????????struct
????????{
????????????????short b;
????????????????short c;
????????};
}X;
int main()
{
????????X x;
????????x.a = 0x20150810;
????????printf("%x,%x\n", x.b, x.c);
????????return 0;
}

A: 2015,810? ? B: 50810,201? ? C: 810,2015? ? D:`20150,810

答案解析:

????????對于0x20150810如果按照大端模式存儲:從低地址到高地址:20 15 08 10 輸出從低地址到高地址:20 15 08 10如果按照小端模式存儲:從低地址到高地址:10 08 15 20 輸出從高地址到低地址:08 10 20 15此數(shù)以int類型賦值給聯(lián)合體x.a,而以結(jié)構(gòu)成員b和c分開訪問,分別拿到低地址的2個字節(jié)和高地址的2個字節(jié),大端下是2015和810,小端下是810和2015。

題四:

4、下面這個程序執(zhí)行后會有什么錯誤或者效果【多選】( )
#define MAX 255
int main()
{
????????unsigned char A[MAX], i;
????????for(i = 0; i <= MAX; i++)
????????????????A[i] = i;
????????return 0;
}

A: 數(shù)組越界? ? B: 死循環(huán)? ? C: 棧溢出? ? D: 內(nèi)存泄露

答案解析:

????????數(shù)組下標(biāo)越界:數(shù)組大小255,但是當(dāng)a[255]就是256個元素,導(dǎo)致越界了。死循環(huán):這個是因為無符號字符型的變量大小在0-255之間,所以說i永遠(yuǎn)不可能大于255的,是個死循環(huán)。內(nèi)存泄漏:創(chuàng)建的臨時變量,在棧中,應(yīng)該會由系統(tǒng)自動釋放,所以應(yīng)該是不存在內(nèi)存泄漏的問題。棧溢出:屬于緩沖區(qū)溢出的一種。棧溢出是由于C語言系列沒有內(nèi)置檢查機制來確保復(fù)制到緩沖區(qū)的數(shù)據(jù)不得大于緩沖區(qū)的大小,因此當(dāng)這個數(shù)據(jù)足夠大的時候,將會溢出緩沖區(qū)的范圍。

題五:

5、請問下列程序的輸出是多少( )
#include<stdio.h>
int main()
{
????????unsigned char i = 7;
????????int j = 0;
????????for(;i > 0;i -= 3)
????????{
????????????????++j;
????????}
????????printf("%d\n", j);
????????return 0;
}

A: 2? ? B: 死循環(huán)? ? C: 173? ? D: 172

答案解析:

????????本題就是找規(guī)律,計算什么時候能遇到0unsigned char 8位數(shù)據(jù)位,范圍在0-255,所以-2(11111110)時,變成254;同理-1(11111111)時,變成255;最后減到0時,不滿足循環(huán)條件,for停止。剛好173次。 7 4 1 ==> 共(7-1)/3+1=3次(1-3=-2,即254,繼續(xù)循環(huán))
254 251 ... 5 2 ==> 共(254-2)/3+1=85次(2-3=-1,即255,繼續(xù)循環(huán))255 252 ... 6 3 ==> 共(255-5)/3+1=85次(3-3=0,退出循環(huán)) 所以總共173次。

編程題:

題一:數(shù)對

數(shù)對_牛客題霸_??途W(wǎng) (nowcoder.com)

C語言:選擇+編程(每日一練Day16),C語言練習(xí),c語言,開發(fā)語言,學(xué)習(xí),深度學(xué)習(xí),c++,筆記,算法

示例1

????????輸入:

????????5 2

????????輸出:

????????7

????????說明:

????????滿足條件的數(shù)對有(2,3),(2,4),(2,5),(3,4),(3,5),(4,5),(5,3)

思路一:

假設(shè)輸入 n=10 , k=3

當(dāng) y <=k 時,意味著任何數(shù)字取模y的結(jié)果都在 [0, k-1]之間,都是不符合條件的。
當(dāng) y = k+1=4 時,x符合條件的數(shù)字有 3,7
當(dāng) y = k+2=5 時,x符合條件的數(shù)字有 3,4,8,9
當(dāng) y = k+3=6 時,x符合條件的數(shù)字有 3,4,5,9,10
當(dāng) y = k+n時,
x小于y當(dāng)前值,且符合條件的數(shù)字?jǐn)?shù)量是:y-k個;
x大于y當(dāng)前值,小于2*y的數(shù)據(jù)中,且符合條件的數(shù)字?jǐn)?shù)量是:y-k個;
從上一步能看出來,在y的整數(shù)倍區(qū)間內(nèi),x符合條件的數(shù)量就是 (n / y) * (y - k)個;
n / y 表示有多少個完整的 0 ~ y區(qū)間, y - k 表示有每個區(qū)間內(nèi)有多少個符合條件的數(shù)字
最后還要考慮的是6...往后這種超出倍數(shù)區(qū)間超過n的部分的統(tǒng)計;
n % y 就是多出完整區(qū)間部分的數(shù)字個數(shù),其中k以下的不用考慮,則符合條件的是 n % y - (k-1) 個;
這里需要注意的是類似于9這種超出完整區(qū)間的數(shù)字個數(shù) 本就小于k的情況,則為0。
最終公式:(n / y) * (y - k) + ((n % y < k) ? 0, (n % y - k + 1));

? ? ? ? 第一步:定義題目需要輸入的n、k,以及用于記錄符合條件的個數(shù)的count;

? ? ? ? 第二步:while循環(huán)只要兩個變量都有輸入就執(zhí)行判斷如果k==0說明所有數(shù)都滿足條件,直接打印所有數(shù)對,然后回到循環(huán)起點;否則:因為k+1之前的數(shù)都不符合條件,從k+1開始記錄數(shù)在y的整數(shù)倍區(qū)間內(nèi),x符合條件的數(shù)量就是 (n / y) * (y - k)個,再加上n % y 就是多出完整區(qū)間部分的數(shù)字個數(shù),其中k以下的不用考慮,則符合條件的是 n % y - (k-1) 個。

????????第三步:最后的和就是需要打印的結(jié)果。?

#include <stdio.h>

int main() 
{
    long n,k;
    
    while(scanf("%ld%ld",&n, &k) == 2)
    {
        //用于記錄符合條件的個數(shù)
        long count = 0;
        //如果k==0說明所有數(shù)都滿足條件
        if(k == 0)
        {
            printf("%ld\n", n*n);
            continue;
        }
        //從k+1之前的數(shù)都不符合條件
        for(int y = k+1;y <= n;y++ )
        {
            //在y的整數(shù)倍區(qū)間內(nèi),x符合條件的數(shù)量就是 (n / y) * (y - k)個
            count += (n / y) * (y - k);
            //n % y 就是多出完整區(qū)間部分的數(shù)字個數(shù),其中k以下的不用考慮,則符合條件的是 n % y - (k-1) 個
            count += (n % y < k) ? 0 : (n % y - k + 1);
        }
        printf("%ld\n",count);
    }

    return 0;
}

題二:截取字符串

截取字符串_牛客題霸_??途W(wǎng) (nowcoder.com)

C語言:選擇+編程(每日一練Day16),C語言練習(xí),c語言,開發(fā)語言,學(xué)習(xí),深度學(xué)習(xí),c++,筆記,算法

示例1

????????輸入:

????????abABCcDEF
????????6

????????輸出:

????????abABCc

思路一:

? ? ? ? 第一步:定義滿足題目要求大小的數(shù)組arr,以及截取數(shù)k;

? ? ? ? 第二步:當(dāng)輸入不為空時,將前k個逐個打?。?/span>

????????第三步:打印完后換行。

#include <stdio.h>

int main() 
{
    //滿足題目條件的數(shù)組
    char arr[1000] = {0};
    int k = 0;
    //有熟人就執(zhí)行
    while(scanf("%s%d", &arr, &k) != EOF)
    {
        //將前k個逐個打印
        for(int i = 0; i < k; i++)
        {
            printf("%c",arr[i]);
        }
        printf("\n");
    }
    return 0;
}

本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵!

感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??C語言:選擇+編程(每日一練Day16),C語言練習(xí),c語言,開發(fā)語言,學(xué)習(xí),深度學(xué)習(xí),c++,筆記,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-707371.html

到了這里,關(guān)于C語言:選擇+編程(每日一練Day16)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C語言:選擇+編程(每日一練Day11)

    C語言:選擇+編程(每日一練Day11)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:最大連續(xù)1的個數(shù) 思路一: 題二:完全數(shù)計算? 思路二: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬們

    2024年02月09日
    瀏覽(16)
  • C語言:選擇+編程(每日一練Day6)

    C語言:選擇+編程(每日一練Day6)

    目錄 ?編輯選擇題:? 題一: 題二: 題三: 題四: 題五: 編程題: 題一:至少是其他數(shù)字兩倍的最大數(shù) 思路一: 思路二: 題二:兩個數(shù)組的交集 ?思路一: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感

    2024年02月11日
    瀏覽(21)
  • C語言:選擇+編程(每日一練Day4)

    C語言:選擇+編程(每日一練Day4)

    1、 設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)( 不包含回車符 )的程序段是( ) A: n=0;while(ch=getchar()!=\\\'n\\\')n++;? ? ?B: n=0;while(getchar()!=\\\'n\\\')n++; C: for(n=0;getchar()!=\\\'n\\\';n++);? ? ? ? ? ? ? D: n=0;for(ch=getchar();ch!=\\\'n\\\';n++); 答案解析:? ? ?? ????????對于for循環(huán),其

    2024年02月09日
    瀏覽(19)
  • C語言:選擇+編程(每日一練Day5)

    C語言:選擇+編程(每日一練Day5)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:數(shù)字在升序數(shù)組中出現(xiàn)的次數(shù) 思路一: 思路二: 題二:整數(shù)轉(zhuǎn)換? 思路一: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感謝大佬們的一鍵

    2024年02月09日
    瀏覽(25)
  • C語言:選擇+編程(每日一練Day8)

    C語言:選擇+編程(每日一練Day8)

    目錄 選擇題:? 題一: 題二: 題三: 題四: 題五: 編程題: 題一:字符個數(shù)統(tǒng)計 思路一: 題二:多數(shù)元素 思路一:? 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬們的一

    2024年02月11日
    瀏覽(21)
  • C語言:選擇+編程(每日一練Day9)

    C語言:選擇+編程(每日一練Day9)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:自除數(shù) 思路一: 題二:除自身以外數(shù)組的乘積 思路二: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬們

    2024年02月09日
    瀏覽(22)
  • C語言:選擇+編程(每日一練Day1)

    C語言:選擇+編程(每日一練Day1)

    目錄 ?選擇題: 題一: 題二: 題三:? 題四:? 題五: 編程題: 題一:打印1到最大的n位數(shù) 示例1 思路一: 題二:計算日期到天數(shù)轉(zhuǎn)換 示例1 ?思路一: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 1、執(zhí)行下

    2024年02月09日
    瀏覽(25)
  • C語言:選擇+編程(每日一練Day7)

    C語言:選擇+編程(每日一練Day7)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:圖片整理 思路一: 思路二:? 題二:尋找數(shù)組的中心下標(biāo)? 思路一: 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 感謝大佬們的一鍵三連!

    2024年02月11日
    瀏覽(18)
  • C語言:選擇+編程(每日一練Day3)

    C語言:選擇+編程(每日一練Day3)

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:記負(fù)均正 思路一: 題二:旋轉(zhuǎn)數(shù)組的最小數(shù)字 思路一: 1、已知函數(shù)的原型是: int fun(char b[10], int *a); ,設(shè)定義: char c[10];int d; , 正確的調(diào)用語句是 ( ) A: fun(c,d);? ?? B: fun(c,d);? ? C: fun(c,d);? ? D: f

    2024年02月09日
    瀏覽(21)
  • C語言:選擇+編程(每日一練)

    C語言:選擇+編程(每日一練)

    目錄 ?選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:尼科徹斯定理 示例1 題二:等差數(shù)列 示例2 本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區(qū)指出錯誤,望海涵! 1、以下程序段的 輸出結(jié)果 是( ) #includestdio.h i

    2024年02月12日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包