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

C語言階段性測試題

這篇具有很好參考價(jià)值的文章主要介紹了C語言階段性測試題。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

大家好,我是深魚~

【前言】:本部分是C語言初階學(xué)完階段性測試題,最后一道編程題有一定的難度,需要多去揣摩,代碼敲多了,自然就感覺不難了,加油,鐵汁們?。?!

一、選擇題

1.下面程序執(zhí)行后,輸出的結(jié)果為()

#include<stdio.h>
int cnt = 0;
int fib(int n)
{
	cnt++;
	if (n == 0)
		return 1;
	else if (n == 1)
		return 2;
	else
		return fib(n - 1) + fib(n - 2);
}
void main()
{
	fib(8);
	printf("%d", cnt);
}

【解答】:67

函數(shù)遞歸的問題:進(jìn)入一次fib函數(shù),cnt++,要算cnt的值也就是算進(jìn)入了多少次fib函數(shù),那就列樹狀圖:直到列到1和0就不會(huì)再進(jìn)入fib函數(shù)為止,然后列出來的每一個(gè)數(shù)都會(huì)進(jìn)入函數(shù)使cnt++,算一共列有多少數(shù),對于的也就是cnt的值:1+2+4+8+16+22+12+2=67

C語言階段性測試題,c語言,算法,開發(fā)語言


2.以下程序k的最終值是()

    int i = 10;
	int j = 20;
	int k = 3;
	k *= i + j;

【解答】:90

本題考察的是操作符優(yōu)先級(jí)的問題

賦值操作符(*=,/=,+=,-=)的優(yōu)先級(jí)很低,所以肯定是i+j先算,然后再*k,也就是k*=30,也就是90


3.判斷正誤:C語言本身沒有輸入輸出語句

【解答】:正確

C語言是給定了語法,輸入輸出是庫函數(shù)提供的

C語言約定了一些函數(shù),規(guī)定了函數(shù)的名字,功能,參數(shù),返回類型

這些規(guī)定的函數(shù)是由編譯器的廠商實(shí)現(xiàn)的,msvc,gcc,clang的廠商在實(shí)現(xiàn)編譯器的時(shí)候提供實(shí)現(xiàn)的,這些函數(shù)是放在標(biāo)準(zhǔn)庫中,稱為庫函數(shù)


?4.若有定義語句int year=1009,*p=&year,以下不能使變量year中的值增至1010的語句是()

A.*p+=1? ? ? ? ? ? ? ? ? ? ? ? ?B.(*p)++? ? ? ? ? ? ? ? ? ? ???? ? ? ?? C.++(*p)??? ? ? ? ? ? ? ? D.*p++

【解答】:D

其實(shí)上面的代碼就相當(dāng)于int year=1009;int *p=&year

A.*(解引用操作符)的優(yōu)先級(jí)高于+=(賦值操作符),p解引用指向year,然后year++

B.有括號(hào)先算*p,然后year++

C.也有括號(hào),只要對(*p)也就是year++就可以

D.*p++,++優(yōu)先級(jí)高于*,++先執(zhí)行,p++后置++,值先為p,然后p++,這里就是地址++,而不是地址指向的元素++


5.char a;int b;float c;double d;

則表達(dá)式a*b+d-c值的類型為

【解答】:double類型

首先a*b(char*int),char類型整形提升變成int類型,int *int類型結(jié)果是int類型

然后int+double類型,這個(gè)時(shí)候int類型就算術(shù)轉(zhuǎn)化為double類型,double+double類型結(jié)果是double類型

最后double-float類型,這個(gè)時(shí)候float類型就算術(shù)轉(zhuǎn)化為double類型,double-double類型結(jié)果是double類型

【注意】:這個(gè)過程發(fā)生了整形提升和算術(shù)轉(zhuǎn)化,是先變類型再進(jìn)行運(yùn)算

二、編程題

1.求最小公倍數(shù)

【題目】:C語言階段性測試題,c語言,算法,開發(fā)語言

?【題解1】:常規(guī)做法

最小公倍數(shù)一定是大于等于輸入的兩個(gè)數(shù)的,所以可以從兩個(gè)數(shù)的較大數(shù)開始加,看加到哪個(gè)數(shù)可以同時(shí)將兩個(gè)數(shù)整除

#include <stdio.h>
int main() 
{
   int a=0;
   int b=0;
   //輸入
   scanf("%d %d",&a,&b);
   //求較大值
   int m=a>b?a:b;
   //從較大者開始求最小公倍數(shù)
   while(1)
   {
    if(m%a==0&&m%b==0)
    break;
    m++;
   }
   //輸出
   printf("%d\n",m);
    return 0;
}

【題解2】:最小公倍數(shù)=輸入的兩個(gè)數(shù)的積 / 最大公約數(shù)(輾轉(zhuǎn)相除法)

#include <stdio.h>
int main() 
{
   int a=0;
   int b=0;
   int c=0;
   //輸入
   scanf("%d %d",&a,&b);
   int n=a*b;
   //求最大公約數(shù)
   while(c=a%b)
   {
    a=b;
    b=c;
   }
   //輸出
   printf("%d\n",n/b);
    return 0;
}

【題解3】:效率最高

假設(shè)m是a和b的最小公倍數(shù),那么m既能被a整除,又能被b整除,m/a=i,m/b=j,那么我們就看a*i能否將b整除,eg:求3和5的最小公倍數(shù),首先看3*1能否整除5,再看3*2是否能整除5,以此類推,直到找到3*i可以整除5,那么這時(shí)3*i就是最小公倍數(shù)

#include <stdio.h>
int main() 
{
   int a=0;
   int b=0;
   //輸入
   scanf("%d %d",&a,&b);
   int i=1;
   while(a*i%b)
   {
    i++;
   }
   //輸出
   printf("%d\n",a*i);
    return 0;
}

【注意】:我們最好把int類型都寫成long long類型,因?yàn)閍和b最大可以到達(dá)100000,他們相乘是很大的,long long類型的輸入輸出都是%lld

2.字符串的倒置?

【題目】:

C語言階段性測試題,c語言,算法,開發(fā)語言

【題解】:

思路:逆序整個(gè)字符串,再逆序每個(gè)單詞(或者先逆序每個(gè)單詞,再逆序整個(gè)字符串)

#include <stdio.h>
#include<string.h>
void reverse(char* left, char* right) 
{
    while (left < right) 
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
int main() 
{
    char arr[101] = {0};
    gets(arr);
    int len=strlen(arr);
    //1.逆序整個(gè)字符串
    reverse(arr,arr+len-1);
    //2.逆序每個(gè)單詞
    char*cur=arr;
    while(*cur!='\0')
    {
        char*start=cur;
        while(*cur!=' '&&*cur!='\0')
        {
            cur++;
        }
        char*end=cur-1;
        reverse(start,end);
        if(*cur==' ')
        cur++;
    }
    printf("%s\n",arr);
    return 0;
}

【注意事項(xiàng)】:

(1)輸入字符串:不能正常用scanf函數(shù)輸入,因?yàn)樗挥龅娇崭窬屯V棺x取了,gets(arr)

要用也得這樣寫scanf("%[^\n]s",arr);意思就是scanf函數(shù)直到讀到\n才停止

也可以用getchar:

int ch=0;

int i=0;

while(? ?(ch=getchar(? )?)!='\n')

{
? ? arr[i++]=ch;
}

(2)逆序整個(gè)字符串:思路是將左右字符一個(gè)一個(gè)交換,直到?left>right停止交換

還有就是reverse自定義函數(shù)傳參的時(shí)候最后字符的地址怎么傳:首字符地址+字符串的長度-1

?(3)逆序輸出:首先定義一個(gè)cur指針指向字符串的最前面,然后開始遍歷,以一個(gè)單詞為一個(gè)循環(huán),當(dāng)指針指向的不是空格或者\(yùn)0時(shí)cur繼續(xù)向下遍歷,直到遇到了,就倒置這個(gè)單詞,我們就用start和end指針分別來指向一個(gè)單詞的首尾,然后單詞也可以當(dāng)字符串倒置

當(dāng)一個(gè)單詞結(jié)束,就需要進(jìn)入下一個(gè)單詞,這個(gè)時(shí)候就要將cur++,但是如果這是最后一個(gè)單詞,就不需要cur++,因?yàn)樵?+就會(huì)造成數(shù)組越界

這次內(nèi)容就到此啦,有什么問題歡迎評(píng)論區(qū)或者私信交流,覺得筆者寫的還可以,或者自己有些許收獲的,麻煩鐵汁們動(dòng)動(dòng)小手,給俺來個(gè)一鍵三連,萬分感謝 !

C語言階段性測試題,c語言,算法,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-629211.html

到了這里,關(guān)于C語言階段性測試題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 單晶高溫合金收獲階段性應(yīng)用成果,科研人員已開展定向凝固實(shí)驗(yàn)

    單晶高溫合金收獲階段性應(yīng)用成果,科研人員已開展定向凝固實(shí)驗(yàn)

    根據(jù)央視報(bào)道,中國科學(xué)院金屬研究所的科研人員對從太空帶回的鋁硅合金樣品進(jìn)行了初步的解剖分析工作,并計(jì)劃用不同的實(shí)驗(yàn)方法和合金材料繼續(xù)開展相關(guān)實(shí)驗(yàn)工作,以進(jìn)一步探索重力在單晶高溫合金凝固過程中的具體作用及相關(guān)機(jī)理。 值得關(guān)注的是,單晶高溫合金作為

    2024年02月12日
    瀏覽(17)
  • QT聊天室階段性記錄(完善中:注冊功能,數(shù)據(jù)庫存儲(chǔ))
  • 【郭東白架構(gòu)課 模塊二:創(chuàng)造價(jià)值】30|節(jié)點(diǎn)六:如何保障高質(zhì)量的階段性交付?

    你好,我是郭東白。從這節(jié)課開始,我們就進(jìn)入到架構(gòu)活動(dòng)的第六個(gè)環(huán)節(jié)——階段性價(jià)值交付。 對于企業(yè)來說,這是成本花費(fèi)最多的節(jié)點(diǎn)了,因?yàn)榇罅康难邪l(fā)人力資源開始投入到架構(gòu)活動(dòng)中去。 有的架構(gòu)師認(rèn)為,到了這個(gè)節(jié)點(diǎn),自己似乎已經(jīng)完成了主要任務(wù)。接下來,就主

    2024年02月09日
    瀏覽(24)
  • 在 Web3 里如何尋找靠譜的創(chuàng)新路徑——Solv V3 階段性復(fù)盤(上)

    在 Web3 里如何尋找靠譜的創(chuàng)新路徑——Solv V3 階段性復(fù)盤(上)

    作者:Solv 核心團(tuán)隊(duì) Solv V3 是 3 月 21 日發(fā)布的,到這周一整整三個(gè)星期。三周時(shí)間產(chǎn)生的實(shí)際交易額超過 6,000 萬美元,預(yù)計(jì)在本月內(nèi)能夠破億。而且從我們手上的 pipeline 來看,這個(gè)增長的勢頭還將持續(xù)下去。在幾個(gè)月內(nèi),Solv V3 將產(chǎn)生數(shù)億美元的實(shí)際交易量。 在 crypto 市場上

    2024年02月07日
    瀏覽(32)
  • Gbase8a第一階段測試-試題整理

    1、GBase 8a集群數(shù)據(jù)庫安裝成功后,數(shù)據(jù)庫的初始管理員為root,密碼為空。( 正確) 正確 2、有關(guān)gcluster_services all stop命令,描述正確的是(B )? A. 關(guān)閉的集群進(jìn)程會(huì)自動(dòng)被gcmonitor拉起 B. 僅關(guān)閉當(dāng)前節(jié)點(diǎn)的集群進(jìn)程 C. 只有操作系統(tǒng)管理員root可以使用 D. 關(guān)閉整個(gè)集群服務(wù) 3、監(jiān)

    2024年02月03日
    瀏覽(20)
  • c語言經(jīng)典測試題2

    c語言經(jīng)典測試題2

    1.題1 我們來思考一下它的結(jié)果是什么? 我們來分析一下:\\\\是轉(zhuǎn)義為字符\\\'\\\',123表示的是一個(gè)八進(jìn)制,算一個(gè)字符,t算一個(gè)字符,加上\\0,應(yīng)該有13個(gè),但是strlen只計(jì)算\\0前的字符個(gè)數(shù)。所以結(jié)果應(yīng)該是12.我們來看看: ?2.題2 大家來思考一下結(jié)果是什么呢? 我們來分析一下

    2024年02月22日
    瀏覽(22)
  • C語言測試題(附有詳細(xì)解析)

    C語言測試題(附有詳細(xì)解析)

    1.運(yùn)行結(jié)果是啥? fib函數(shù)每遞歸一次cnt就+1 fib就是把大于等于1的數(shù)拆成兩個(gè)數(shù)之和,也就說只要fib的變量不是0或1,他就要拆一次,挨著數(shù)出來就行了 結(jié)果是67 2.這個(gè)代碼的運(yùn)行結(jié)果是? x后置++,第一次先打印1 然后x變成了2進(jìn)入判斷語句進(jìn)行判斷,判斷的時(shí)候用的是2 后置

    2024年01月22日
    瀏覽(17)
  • 【C語言】指針數(shù)組測試題(1萬字長文)

    【C語言】指針數(shù)組測試題(1萬字長文)

    江南可采蓮,蓮葉何田田。魚戲蓮葉間。魚戲蓮葉東,魚戲蓮葉西,魚戲蓮葉南,魚戲蓮葉北。 — 兩漢·漢樂府《江南》 這篇博客我們將會(huì)講解一些習(xí)題,習(xí)題是有關(guān)于數(shù)組和指針的,數(shù)組方面的習(xí)題也能幫助我們更好的理解sizeof和strlen,指針的習(xí)題也全方位鍛煉我們對指

    2024年02月16日
    瀏覽(28)
  • 密碼算法測試題解析之單選題(一)

    哈哈,上場先來點(diǎn)廢話,本人是軟件工程專業(yè),對密碼從未接觸過,也是一竅不通,因?yàn)楣ぷ鞯脑蚪佑|到了密碼學(xué)的知識(shí),也在大佬的帶領(lǐng)下較為系統(tǒng)的淺學(xué)了一點(diǎn),一直想從頭開始來著,苦于沒有時(shí)間,今天就先從密碼算法測試題和解析開始吧,稍后會(huì)把系統(tǒng)的內(nèi)容上傳

    2024年02月07日
    瀏覽(17)
  • 【華為OD機(jī)試真題】1186 - 微服務(wù)的集成測試(JAVA C++ Python JS) | 機(jī)試題+算法思路+考點(diǎn)+代碼分析

    ??個(gè)人博客首頁: KJ.JK ? ??專欄介紹: 華為OD機(jī)試真題匯總,定期更新華為OD各個(gè)時(shí)間階段的機(jī)試真題,每日定時(shí)更新,本專欄將使用Python語言進(jìn)行更新解答,包含真題,思路分析,代碼參考,歡迎大家訂閱學(xué)習(xí)

    2024年02月05日
    瀏覽(34)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包