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

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

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言:選擇+編程(每日一練Day4)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

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

選擇題:

題一:

1、設(shè)變量已正確定義,以下不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(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++);

答案解析:? ? ??

????????對(duì)于for循環(huán),其中第一項(xiàng)初始化表達(dá)式只執(zhí)行一次,因此ch只從輸入流中取一個(gè)字符,之后就再不會(huì)取字符,因此會(huì)死循環(huán)。

題二:

2、運(yùn)行以下程序后,如果從鍵盤上輸入 65 14<回車> ,則輸出結(jié)果為( )
int main()
{
????????int m, n;
????????printf("Enter m,n;");
????????scanf("%d%d", &m,&n);

while(m!=n)? ? ? ? ? ? //1

{

????????while(m>n) m=m-n; //2
????????while(n>m) n=n-m; //3
}
????????printf("m=%d\n",m);
????????return 0;
}

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

答案解析:

????????此題技巧是耐心,考查while循環(huán)和循環(huán)嵌套的理解,初值m=65,n=14;循環(huán)1判斷m!=n為真,來(lái)到循環(huán)2判斷m>n為真,執(zhí)行m=m-n;直到m=9,n=14;循環(huán)2結(jié)束來(lái)到循環(huán)3判斷n>m為真,執(zhí)行n=n-m;直到m=9,n=5;循環(huán)3結(jié)束回到循環(huán)1,如此往復(fù)直到m==n時(shí),循環(huán)結(jié)束。

題三:

3、若運(yùn)行以下程序時(shí),從鍵盤輸入 ADescriptor<回車> ,則下面程序的運(yùn)行結(jié)果是( )
#include <stdio.h>
int main()
{
????????char c;
????????int v0=0,v1=0,v2=0;
do
{
????????switch(c=getchar())
????????{
????????case'a':case'A':
????????case'e':case'E':
????????case'i':case'I':
????????case'o':case'O':
????????case'u':case'U':v1 += 1;
????????default:v0+= 1;v2+=1;
????????}
}while(c!='\n');
????????printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
????????return 0;
}

A: v0=7,v1=4,v2=7? ? ? ? ? ?B: v0=8,v1=4,V2=8

C: v0=11,v1=4,v2=11? ? ? ?D: v0=12,v1=4,v2=12

答案解析:

????????代碼switch語(yǔ)句中沒(méi)有break,則每次找到入口進(jìn)入后,順序執(zhí)行到代碼塊結(jié)束為止。例如當(dāng)c為'A'時(shí),從case 'A'進(jìn)入,先后執(zhí)行v1+=1;v0+=1;v2+=1;,而當(dāng)c為'p'時(shí),從default進(jìn)入,先后執(zhí)行v0+=1;v2+=1;,容易看出最終v0和v2是相等的。

題四:

4、如下函數(shù)是求兩個(gè)int數(shù)字最大公約數(shù)的,指出其中存在的問(wèn)題【多選】( )
int gcd(char x,char y)
{
????????int min = x < y ? x : y;
????????for (min = 0; min > 0; min--)
????????if (x % min = 0 && y % min = 0)
????????return min;
}

A: 參數(shù)類型不對(duì) B: 循環(huán)變量min初值不對(duì) C: 判斷等于的符號(hào)不對(duì) D: 返回類型不對(duì)

答案解析:
?????????1.函數(shù)實(shí)參是int,形參用char不對(duì),會(huì)發(fā)生截?cái)鄟G失數(shù)據(jù);2.min在for循環(huán)開始時(shí)更新為0,不再是兩個(gè)形參中的較小值;3.判斷是否整除的時(shí)候誤將==寫成=賦值運(yùn)算符;4.函數(shù)最終要返回一個(gè)int值,返回值類型沒(méi)問(wèn)題,但是這里要強(qiáng)調(diào)一個(gè)選項(xiàng)中沒(méi)寫出的問(wèn)題,如果是??途W(wǎng)上的題,會(huì)報(bào)編譯錯(cuò)誤,說(shuō)該函數(shù)不是在所有情況下都有返回值,只有在if條件成立的情況下有返回值,一般在vs上這種情況能通過(guò),編譯器會(huì)給一個(gè)默認(rèn)的返回值。

題五:

5、執(zhí)行下面的程序段,語(yǔ)句3的執(zhí)行次數(shù)為( )
for(i = 0; i <= n-1; i++) // (1)
for(j = n; j > i; j--) // (2)
state; // (3)

A: n(n+2)/2? ? B: (n-1)(n+2)/2? ? C: n(n+1)/2? ?D: (n-1)(n+2)

答案解析:? ? ? ??

????????外循環(huán)有n次,當(dāng)i=0,內(nèi)循環(huán)為n次,當(dāng)i=1,內(nèi)循環(huán)為n-1次,當(dāng)i=2時(shí),內(nèi)循環(huán)為n-2次,以此類推,總次數(shù)為n+(n-1)+(n-2)+......+2+1,就是個(gè)等差數(shù)列,等于n(n+1)/2。

編程題:

題一:錯(cuò)誤的集合

?645. 錯(cuò)誤的集合 - 力扣(LeetCode)

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

示例:

輸入:nums = [1,2,2,4]

輸出:[2,3]

?思路一:

? ? ? ? 排序法:由于題目沒(méi)有說(shuō)明數(shù)組是否有序,所以需要我們自己將數(shù)組排序,才能去遍歷;同時(shí)需要知道的是returnSize是指返回?cái)?shù)組元素的個(gè)數(shù)。

第一步:使用qsort()函數(shù)將數(shù)組排序成升序;

第二步:返回值數(shù)組開辟動(dòng)態(tài)內(nèi)存空間,否則在出函數(shù)時(shí)會(huì)釋放;

第三步:定義一個(gè)數(shù)來(lái)記錄數(shù)組的前一個(gè)數(shù)

第四步:遍歷數(shù)組:相同記錄為num[0],數(shù)組當(dāng)前元素-前一個(gè)元素值大于一說(shuō)明中間的就是缺的元素num[1];

第五步:如果最后一個(gè)元素不等于長(zhǎng)度,說(shuō)明最后一個(gè)就是缺的元素。

int my_cmp(const void* p1,const void* p2)
{
    return *(int*)p1 - *(int*)p2;
}

int* findErrorNums(int* nums, int numsSize, int* returnSize)
{
    //將數(shù)組進(jìn)行升序排序
    qsort(nums,numsSize,4,my_cmp);
    //returnSize為返回?cái)?shù)組元素個(gè)數(shù)
    *returnSize = 2;
    //開辟動(dòng)態(tài)內(nèi)存空間,否則在出函數(shù)時(shí)會(huì)釋放
    int* num = (int*)malloc(sizeof(int)*2);
    //定義數(shù)組的前一個(gè)數(shù)
    int front = 0;
    //遍歷數(shù)組
    for(int i = 0; i < numsSize;i++ )
    {
        //相同記錄為num[0]
        if(nums[i] == front)
        {
            num[0] = nums[i];
        }
        //數(shù)組當(dāng)前元素-前一個(gè)元素值大于一說(shuō)明中間的就是缺的元素
        else if(nums[i] - front > 1)
        {
            num[1] = nums[i]-1;
        }
            front = nums[i];
    }
    //最后一個(gè)元素不等于長(zhǎng)度,說(shuō)明最后一個(gè)就是缺的元素
    if(nums[numsSize-1] != numsSize)
    {
        num[1] = numsSize;
    }
     return num;
}

?思路二:

????????使用標(biāo)記的方式就可以找出重復(fù)的數(shù)字,數(shù)組中出現(xiàn)過(guò)哪個(gè)數(shù)字就把對(duì)應(yīng)數(shù)字作為下標(biāo)在對(duì)應(yīng)位置1,表示已經(jīng)標(biāo)記出現(xiàn)過(guò),如果哪個(gè)數(shù)據(jù)對(duì)應(yīng)位已經(jīng)置1,則表示就是重復(fù)的數(shù)字。有了重復(fù)的數(shù)字,拿 [1, n] 的總和減去去掉重復(fù)數(shù)據(jù)的數(shù)組總和就是丟失的數(shù)據(jù)。 其實(shí)使用標(biāo)記法時(shí)出現(xiàn)的數(shù)字對(duì)應(yīng)位每次 ++ ,則最后出現(xiàn)0次的就是丟失,出現(xiàn)2次的就是重復(fù)的,這樣的方式也可以,不過(guò)需要多次遍歷。

int* findErrorNums(int* nums, int numsSize, int* returnSize)
{
    *returnSize = 2;
    //遍歷nums數(shù)組,將其中數(shù)據(jù)對(duì)應(yīng)的位置1, 哪一位如果已經(jīng)重置過(guò)則意味著數(shù)據(jù)重復(fù)了
    int *arr = (int *)calloc(numsSize + 1, sizeof(int));//申請(qǐng)numsSize個(gè)整形空間,并初始化為0
    int *ret = (int *)calloc(*returnSize, sizeof(int));//申請(qǐng)2個(gè)整形空間,并初始化為0
    int cur_sum = 0, old_sum = 0;

    for (int i = 0; i < numsSize; i++) {
        if (arr[nums[i]] == 1) 
        { //這個(gè)數(shù)字在上邊數(shù)組的對(duì)應(yīng)位置已經(jīng)置過(guò)1了,則重復(fù)
            ret[0] = nums[i];//找到重復(fù)的數(shù)字
        } 
        arr[nums[i]] = 1; //將標(biāo)記數(shù)組的對(duì)應(yīng)數(shù)據(jù)位置1
        old_sum += i + 1; // 1~n的求和
        cur_sum += nums[i]; //當(dāng)前數(shù)組中的數(shù)據(jù)求和(多了一個(gè)重復(fù)的,少了一個(gè)丟失的)
    } 
    ret[1] = old_sum - (cur_sum - ret[0]);//原始總和,減去去掉重復(fù)后的當(dāng)前總和就是丟失的數(shù)字
    free(arr);

    return ret;
}

題二:密碼檢查?

密碼檢查_??皖}霸_??途W(wǎng) (nowcoder.com)

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

示例1

輸入:

1
CdKfIfsiBgohWsydFYlMVRrGUpMALbmygeXdNpTmWkfyiZIKPtiflcgppuR

輸出:

YES

思路一:

? ? ? ? 暴力的不能再暴力的方法:

第一步:創(chuàng)建輸入密碼數(shù)量的n,和字符串a(chǎn)rr;

第二步:for循環(huán)遍歷,創(chuàng)建用于記錄密碼的字符是否正確count,順便求字符串長(zhǎng)度;

第三步:判斷字符串長(zhǎng)度是否合法;

第四步:遍歷一遍字符串,格式正確就記錄count;

第五步:最后將字符串長(zhǎng)度與count比較,相同“YES”,反之“NO”。

int main() 
{
    int n = 0;
    scanf("%d",&n);
    //字符串長(zhǎng)度限制
    char arr[100] = {0};
    //密碼個(gè)數(shù)
    for(int j = 0;j < n;j++)
    {
        scanf("%s",arr);
        //用于記錄密碼的字符是否正確
        int count =0;
        //字符串長(zhǎng)度
        int sz = strlen(arr);
        //是否符合長(zhǎng)度要求
        if(sz >= 8 && sz <= 100)
        {
            //遍歷一遍字符串,格式正確就記錄
            for(int i = 0;i < sz;i++)
            {
                if(arr[i] >= 'A' && arr[i] <='Z'||
                arr[i] >= 'a' && arr[i] <='z' ||
                arr[i] >= '0' && arr[i] <='9')
                {
                    count++;
                }
            }
        }
        //長(zhǎng)度對(duì)比
        if(sz == count)
        {
            printf("YES\n");
        }
        else 
        {
            printf("NO\n");
        }
    }
    
    return 0;
}

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

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

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

到了這里,關(guān)于C語(yǔ)言:選擇+編程(每日一練Day4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

    目錄 選擇題: 題一: 題二: 題三: 題四: 題五: 編程題: 題一:統(tǒng)計(jì)每個(gè)月兔子的總數(shù) 思路一: 題二:數(shù)列的和 思路一: 本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵! 感謝大佬們的一鍵三連!?感謝大佬

    2024年02月08日
    瀏覽(23)
  • C語(yǔ)言:選擇+編程(每日一練Day11)

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

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

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

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

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

    2024年02月11日
    瀏覽(20)
  • C語(yǔ)言:選擇+編程(每日一練Day7)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月12日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包