C語言編程方法與思想智慧樹知到答案2024年北京航空航天大學_第1頁
C語言編程方法與思想智慧樹知到答案2024年北京航空航天大學_第2頁
C語言編程方法與思想智慧樹知到答案2024年北京航空航天大學_第3頁
C語言編程方法與思想智慧樹知到答案2024年北京航空航天大學_第4頁
免費預覽已結束,剩余5頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言編程方法與思想北京航空航天大學智慧樹知到答案2024年第一章測試

執行兩個數的四則運算,關于語句,scanf("%d%d%c",&a,&b,&op);

正確的輸入方式是()。

A:5,9,+B:46+C:37*D:28*

答案:BD關于函數scanf的返回值,正確的說法是什么?()

A:正確讀入時返回1B:正確讀入的數據的個數C:正確讀入時返回-1D:正確讀入時返回0

答案:B執行兩個數的四則運算(中綴表達式),關于語句,scanf("%d%c%d",&a,&op,&b);

正確的輸入方式是()。

A:3*7B:3*7C:3*7D:3*7

答案:AD用scanf("%d%c%d",&x,&c,&y)輸入三個數據,正確的描述為:()

A:沒有正確答案B:輸入的三個數據用逗號分開C:輸入的三個數據用空格分開D:輸入的三個數據用換行分開

答案:A用gets輸入多個字符串,循環頭語句可以為,while(gets(str)!=______()

輸入結束的標記是什么?

A:1B:-1C:NULLD:EOF

答案:C

第二章測試

以下哪個位運算符用于將指定位設置為1?()

A:|B:&C:>>D:^

答案:A如果x的值為6,y的值為3,則x^y的結果是什么?()

A:9B:5C:6D:3

答案:B已知8位二進制反碼表示11100111,那么它的十進制值是多少?()

A:-24B:103C:24D:-103

答案:A(已知,EPS是一個用于控制精度的宏,例如#defineEPS1e-6)

下列說法正確的是?()

A:double型精度更高,不存在浮點數誤差B:可以使用語句if(a-0.3==EPS)來判斷浮點數a是否為0.3C:可以使用語句if(a-0.3<=EPS)來判斷浮點數a是否為0.3D:減小浮點數誤差,可以通過使用更高精度的浮點數

答案:D可以使用語句if(a-0.3<=EPS)來判斷浮點數a是否為0.3()

A:錯B:對

答案:A

第三章測試

有關if-else選擇結構的論述,正確的是______?()

A:if或else部分如果有多條語句,必須用大括號括起來組成復合語句塊B:通過條件語句的嵌套結構,可以實現多路選擇C:多個ifelse嵌套時,else總是和最近的if匹配D:if中的條件表達式必須為邏輯或關系表達式,不能為算術表達式

答案:ABC有關switch語句的論述,正確的是______?()

A:default分支一般放在最后,當前面所有的case都不匹配時,跳轉到該處執行B:switch中的表達式必須為整數表達式,返回整數或字符類型的值C:case中的值可以為一個變量,從而根據變量的取值進行選擇D:執行完一個case分支后,會繼續判斷后續case是否滿足條件,如果滿足則跳轉到后續的case中繼續執行

答案:AB有關三種循環結構特點的論述,錯誤的是______?()

A:有些while循環無法轉換為for循環B:while循環體不能為空,否則無法結束while循環C:do-while循環至少執行一次D:for循環頭中的三個表達式都可以省略,但兩個分號不能省略

答案:AB執行完一個case分支后,會繼續判斷后續case是否滿足條件,如果滿足則跳轉到后續的case中繼續執行。()

A:對B:錯

答案:Bdo-while循環至少執行一次。()

A:錯B:對

答案:B

第四章測試

關于C程序中函數的調用和執行,不正確的是:()

A:當函數執行完畢后,會返回到調用函數位置,繼續執行。B:當調用(執行)一個函數時,就會開辟一個獨立的空間(棧)。C:如果函數有返回值,則將返回值賦給接收的變量。D:一個C程序的執行是從本程序的main函數開始,到本程序文件的最后一個函數結束

答案:D現需要編程完成兩個分數的求和,并將所求得的和化為最簡形式。已知以下代碼設計了一個函數gcd(),能夠求兩個整數的最大公約數,欲調用該函數完成本任務的求解,則______處可填入的語句是:()

intgcd(int,int);

intmain()

{

inta,b,c,d,e,f,g;//(a,b)與(c,d)分別表示兩個分數的分子、分母

scanf("%d%d%d%d",&a,&b,&c,&d);

e=a*d+c*b;

f=b*d;

g=______;

e/=g;

f/=g;

printf("%d/%d+%d/%d=%d/%d\n",a,b,c,d,e,f);

}

intgcd(inta,intb)

{

returnb?gcd(b,a%b):a;

}

A:gcd(e,f)B:gcd(c,d)C:gcd(f,e)D:gcd(a,b)

答案:AC以下代碼用遞歸函數實現求解兩個正整數的最大公約數,______處應填入的語句是:()

#include<stdio.h>

intgcd(int,int);

intmain()

{

inta,b,g;

scanf("%d%d",&a,&b);

g=gcd(a,b);

printf("%d\n",g);

return0;

}

intgcd(inta,intb)

{

if(b==0)

returna;

return___________;

}

A:gcd(a%b,b)B:gcd(b,a%b)C:a%b

答案:B阿克曼函數的定義如下

用遞歸的方法實現求解阿克曼函數ack(m,n)(0≤m≤3,0≤n≤10),則該遞歸函數的基本情況應包括:()

intack(intm,intn)

{

————————;

————————;

returnack(m-1,ack(m,n-1));

}

A:if(m==0)returnn+1;B:if(m==0)return-1;C:if(n==0)return0;D:if(n==0)returnack(m-1,1);

答案:AD當調用(執行)一個函數時,就會開辟一個獨立的空間(棧)。()

A:對B:錯

答案:A

第五章測試

經典的冒泡排序算法

for(i=1;i<n;i++)

{

for(j=0;j<n-i;j++)

{

if(a[j]>a[j+1])//比較

{

SWAP(a[j],a[j+1])//交換

}

}

}

比較和交換分別執行了多次?______()

A:O(nlgn)O(n2)B:O(n2)O(n2)C:O(n2)O(nlgn)D:O(n)O(n)

答案:B兩個關鍵字排序,第一個關鍵字為數組a(降序排列),第二個關鍵字為數組b(如果第一個關鍵字相當,則按b降序排列),用經典的冒泡排序算法實現,請填空實現元素的比較部分,()

for(i=1;i<N;i++)

{

for(j=0;j<N-i;j++)

{

if(____________________________)//比較

{

SWAP(a[j],a[j+1])//交換

SWAP(b[j],b[j+1])//交換

}

}

}

A:(a[j]<a[j+1])&&(b[j]<b[j+1])B:(a[j]<a[j+1])||((a[j]==a[j+1])&&(b[j]<b[j+1]))C:(a[j]<a[j+1])||((a[j]==a[j+1])&&(b[j]>b[j+1]))D:(a[j]<a[j+1])&&(b[j]>b[j+1])

答案:C請在一維數組b中查找key的位置,未找到返回-1,填空完成經典的二分搜索算法。()

//low和high表示搜索的起始范圍,從b[low]到b[high]

intbin_find(intb[],intkey,intlow,inthigh)

{

intmid;

while(low<=high)

{

mid=low+(high-low)/2;

if(key==b[mid])

returnmid;

elseif(key<b[mid])

____________________________

else

low=mid+1;

}

return-1;

}

A:high=mid;B:high=mid+1;C:high=mid-1;D:high=low;

答案:C二分搜索每次把搜索區域砍掉一半,時間復雜度為O(logn)。(n代表集合中元素的個數)。()

A:錯B:對

答案:B字符串輸入輸出函數的原型在下面哪個標準頭文件中定義:()。

A:stdio.hB:string.hC:math.hD:stdlib.h

答案:Afgets函數讀入字符串比gets函數更安全。()

A:對B:錯

答案:A

第六章測試

假設要對一個N行M列的二維double型數組以行為單位進行排序,在調用通用冒泡排序函數g_bub_sort時,實際參數len和elemSize的值分別是多少。()

A:N*M和sizeof(double)B:N和MC:N和M*sizeof(double)D:M和N

答案:C假設cmp是一個滿足嚴格有序的比較函數,判斷a,b相等的條件是什么?()

A:!cmp(a,b)&&!cmp(b,a)B:cmp(a,b)||cmp(b,a)C:!cmp(a,b)||!cmp(b,a)D:cmp(a,b)&&cmp(b,a)

答案:C使用qsort函數可以排序______數據類型的數組。()

A:結構體型B:浮點型C:整型D:字符型

答案:ABCDqsort排序的平均時間復雜度多少?()

A:O(n2)B:O(n3)C:O(n)D:O(nlogn)

答案:D下面正確定義p為函數指針的是:()。

A:int(*p)(int);B:char(*p)[10];C:int*p(int);D:int*p;

答案:A*作為單目運算符是解引用運算符,作為雙目運算符是乘號,它還可以用來定義指針。()

A:對B:錯

答案:A

第七章測試

輸入字符串時,常用fgets來代替gets,主要是fgets有什么優點______。()

A:fgets能指定讀入字符串的來源和目標位置B:fgets通過參數設置能保證讀入字符串的合法性(達到字符數組長度時在行末添加\0)C:fgets能讀入字符串中間的若干個空格D:fgets能讀入字符串行末的\n

答案:B在Windows系統上,按正文(文本)方式打開文本文件且用fgets(arr,N,stdin)讀入文本文件內容到內存時(N足夠大),下述正確的描述是______。()

A:每行末尾的\n自動轉換為\r\nB:沒有正確答案C:每行末尾的\r\n自動轉換為\nD:在內存中的格式跟文件中的格式一樣

答案:C下列說法正確的是______。()

A:Windows下創建的文本文件,放到Linux下使用,通常需要處理\rB:Windows和Linux下創建的文本文件,格式完全一樣,在兩個系統上的使用完全一樣C:Linux下創建的文本文件,放到Windows下使用,通常需要處理\rD:Windows和Linux下創建的二進制文件,格式完全一樣,在兩個系統上的使用完全一樣

答案:AD優化代碼時,可以采取的措施是______?()

A:減少算法的時間復雜度B:減少算法的空間復雜度C:合理利用數據結構D:減少函數調用次數

答案:ABCD自頂向下的思想可以用在______?()

A:編碼實現B:調試方法C:毫無用處D:方案設計

答案:ABD

第八章測試

以下說法正確的是?()

A:Windows系統產生的文件不能在Linux上讀取B:如果用文本編輯器打開一個文件時發生了“亂碼”,則說明該文件是“二進制”文件C:用word寫的代碼,可以直接用c語言編譯器進行編譯D:Windows系統下以文本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論