程序練習題及答案解析_第1頁
程序練習題及答案解析_第2頁
程序練習題及答案解析_第3頁
程序練習題及答案解析_第4頁
程序練習題及答案解析_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序練習題及答案解析考試時間:______分鐘總分:______分姓名:______一、選擇題1.在C語言中,下列關于整型常量的描述,正確的是A.十六進制數(shù)必須以0x或0X開頭B.字符常量必須用單引號括起來C.浮點數(shù)只能是3.14這樣的形式,不能是3.D.整型常量只能是正整數(shù)2.若有定義inta=3,b=4,c=5;則表達式a&&b||!c的值是A.0B.1C.trueD.false3.下列關于數(shù)組的描述,錯誤的是A.數(shù)組在內存中是連續(xù)存放的B.定義數(shù)組時必須指定數(shù)組的大小C.數(shù)組名代表的是數(shù)組的第一個元素的地址D.訪問數(shù)組元素時,下標可以是負數(shù)4.若有定義intarr[5]={1,2,3,4,5};則arr[2]的值是A.0B.1C.3D.45.下列循環(huán)語句的循環(huán)次數(shù)是for(inti=0;i<10;i+=2){...}A.4次B.5次C.6次D.10次6.在switch語句中,break關鍵字的作用是A.跳出當前循環(huán)B.結束整個switch語句C.繼續(xù)執(zhí)行下一個caseD.跳出當前if語句7.若有定義intx=10;inty=++x;則y的值是A.10B.11C.12D.08.下列哪個不是合法的變量名A._sumB.2ndC.tempD.max_value9.若有定義inta[5]={10,20,30,40,50};則a[5]的值是A.10B.20C.40D.5010.關于函數(shù),下列說法正確的是A.函數(shù)必須有返回值B.主函數(shù)只能調用其他函數(shù)C.函數(shù)可以嵌套定義D.實參和形參的數(shù)量必須相同,類型也必須相同二、填空題1.在C語言中,輸入函數(shù)是______,輸出函數(shù)是______。2.若定義intnum=10;則num++的值是______,++num的值是______。3.數(shù)組定義intscores[10];表示該數(shù)組可以存儲______個元素,下標范圍是______到______。4.判斷一個數(shù)n是否為素數(shù),通常只需要判斷n能否被2到______之間的整數(shù)整除。5.在循環(huán)結構中,break語句用于______,continue語句用于______。6.字符串"Hello"在內存中占用______個字節(jié)的存儲空間。三、閱讀程序寫結果1.程序代碼如下:```c#include<stdio.h>intmain(){inti,j;for(i=1;i<=3;i++){for(j=1;j<=i;j++){printf("*");}printf("\n");}return0;}```程序輸出的結果是:********2.程序代碼如下:```c#include<stdio.h>intmain(){intarr[5]={3,8,2,9,1};intmax=arr[0];inti;for(i=1;i<5;i++){if(arr[i]>max){max=arr[i];}}printf("%d",max);return0;}```程序輸出的結果是:93.程序代碼如下:```c#include<stdio.h>intmain(){inta=5,b=10;if(a>b)printf("aisgreater\n");elseprintf("bisgreater\n");return0;}```程序輸出的結果是:bisgreater4.程序代碼如下:```c#include<stdio.h>intmain(){intsum=0;intn=5;while(n>0){sum+=n;n--;}printf("%d",sum);return0;}```程序輸出的結果是:15四、編程題1.編寫一個程序,計算從1加到100的和,并將結果輸出。2.編寫一個程序,輸入一個整數(shù)n,判斷該數(shù)是否為素數(shù)。如果是素數(shù)輸出"YES",否則輸出"NO"。3.編寫一個程序,輸入一個數(shù)組,找出數(shù)組中的最大值和最小值,并輸出這兩個值。試卷答案一、選擇題1.答案:A解析:A.正確,C語言中十六進制數(shù)必須以0x或0X開頭。B.字符常量確實必須用單引號括起來,但此題描述了多項特征,A是唯一完全正確的描述。C.錯誤,浮點數(shù)可以是3.或3.0。D.錯誤,整型常量可以是負數(shù)。2.答案:B解析:表達式為`a&&b||!c`。`a&&b`:a=3為真,b=4為真,真且真結果為真(1)。`!c`:c=5為真,取非結果為假(0)。整體變?yōu)閌1||0`,邏輯或運算,只要有一個為真結果即為真(1)。3.答案:D解析:A.正確,數(shù)組在內存中是連續(xù)存放的。B.正確,定義數(shù)組時通常需要指定大小(變長數(shù)組除外)。C.正確,數(shù)組名代表首元素的地址。D.錯誤,數(shù)組下標必須是整數(shù)且通常是非負數(shù)。4.答案:C解析:數(shù)組下標從0開始。`arr[0]=1`,`arr[1]=2`,`arr[2]=3`。因此arr[2]的值為3。5.答案:B解析:初始i=0,條件i<10成立,執(zhí)行后i+=2變?yōu)?。i=2,4,6,8。當i=8時,i<10成立,執(zhí)行后i=10。當i=10時,條件i<10不成立,循環(huán)結束。循環(huán)執(zhí)行了5次(i=0,2,4,6,8)。6.答案:B解析:switch語句用于多路分支選擇。break關鍵字的作用是跳出當前所在的switch結構,不再執(zhí)行后面的case語句。如果不加break,程序會繼續(xù)執(zhí)行下一個case。7.答案:B解析:`y=++x`是前置自增。執(zhí)行順序是先讓x的值加1,變成11,然后再將新的x的值賦給y。所以y=11。8.答案:B解析:變量名不能以數(shù)字開頭,也不能包含空格或特殊字符(如@、#等)。2nd以數(shù)字開頭,是非法的。9.答案:錯誤(或數(shù)組越界)解析:數(shù)組定義為`intarr[5]`,其有效下標范圍是0到4。訪問`arr[5]`超出了數(shù)組邊界,屬于越界訪問,在C語言中這是未定義行為,通常會導致程序崩潰或讀取到隨機值,不是合法的值。10.答案:D解析:A.錯誤,函數(shù)可以沒有返回值(void類型)。B.錯誤,其他函數(shù)也可以調用main函數(shù)(雖然不推薦)。C.錯誤,函數(shù)不能嵌套定義,但可以嵌套調用。D.正確,實參和形參在調用時進行“按值傳遞”或“按地址傳遞”,通常要求數(shù)量和順序一致,且類型要匹配。二、填空題1.答案:scanf,printf解析:C語言中,從鍵盤輸入數(shù)據(jù)使用`scanf`函數(shù),向屏幕輸出數(shù)據(jù)使用`printf`函數(shù)。2.答案:10,11解析:`num++`是后置自增,先使用num的當前值(10)進行運算,然后再將num加1。`++num`是前置自增,先讓num的值加1,變成11,然后再使用num的值進行運算。3.答案:10,0,9解析:定義數(shù)組時指定了大小為10,表示可以存儲10個元素。數(shù)組下標從0開始,最大下標是數(shù)組大小減1,即9。4.答案:n/2(或n的平方根)解析:判斷一個數(shù)n是否為素數(shù),只需要判斷它能否被2到n-1之間的整數(shù)整除。為了優(yōu)化效率,實際上只需要判斷到n的平方根即可,或者對于整數(shù)運算,只需判斷到n/2即可。5.答案:跳出當前循環(huán)(或結束本次循環(huán)),跳過本次循環(huán)剩余語句(或進入下一次循環(huán))解析:`break`語句用于強行終止當前循環(huán),跳出循環(huán)體。`continue`語句用于結束本次循環(huán)(即跳過循環(huán)體中剩余的語句),直接進行下一次循環(huán)條件的判斷。6.答案:6解析:字符串在內存中存儲時,除了存儲字符本身外,系統(tǒng)還會自動在末尾添加一個結束標記`\0`(空字符)。因此,"Hello"包含5個字符和1個結束符,共占用6個字節(jié)。三、閱讀程序寫結果1.答案:********解析:這是一個嵌套的for循環(huán)。外層循環(huán)i從1到3:-i=1時,內層循環(huán)j從1到1,打印1個`*`,換行。-i=2時,內層循環(huán)j從1到2,打印2個`*`,換行。-i=3時,內層循環(huán)j從1到3,打印3個`*`,換行。2.答案:9解析:程序定義了數(shù)組`arr`,初始`max`賦值為第一個元素3。循環(huán)從第二個元素開始遍歷:-i=1,arr[1]=8>3,max變?yōu)?。-i=2,arr[2]=2<8,max不變。-i=3,arr[3]=9>8,max變?yōu)?。-i=4,arr[4]=1<9,max不變。最后輸出max的值9。3.答案:bisgreater解析:初始a=5,b=10。判斷`if(a>b)`,5大于10為假,執(zhí)行else分支,輸出`bisgreater`。4.答案:15解析:初始sum=0,n=5。進入while循環(huán),條件n>0:-第1次:sum=0+5=5,n=4-第2次:sum=5+4=9,n=3-第3次:sum=9+3=12,n=2-第4次:sum=12+2=14,n=1-第5次:sum=14+1=15,n=0-下一次判斷n>0不成立,循環(huán)結束。輸出15。四、編程題1.答案及解析:```c#include<stdio.h>intmain(){intsum=0;inti;for(i=1;i<=100;i++){sum+=i;}printf("%d\n",sum);return0;}```解析:定義整型變量`sum`用于累加,初始化為0。使用`for`循環(huán),變量`i`從1開始,每次循環(huán)`i`加1,直到`i`等于100。在循環(huán)體內,將`i`的值加到`sum`上。循環(huán)結束后,輸出`sum`的值,即為1到100的和。2.答案及解析:```c#include<stdio.h>#include<math.h>//如果使用sqrt函數(shù),通常需要包含此頭文件,但純整數(shù)判斷可用i*i<=nintmain(){intn,i;intisPrime=1;//1代表是素數(shù),0代表不是printf("請輸入一個整數(shù):");scanf("%d",&n);if(n<=1){printf("NO\n");return0;}for(i=2;i<n;i++){if(n%i==0){isPrime=0;break;}}if(isPrime==1){printf("YES\n");}else{printf("NO\n");}return0;}```解析:首先輸入整數(shù)n。如果n小于等于1,直接輸出NO。使用`for`循環(huán),i從2開始,判斷n是否能被i整除(取余數(shù)為0)。如果能被整除,說明不是素數(shù),將標志位設為0并跳出循環(huán)。循環(huán)結束后,根據(jù)標志位判斷,如果是1則輸出YES,否則輸出NO。3.答案及解析:```c#include<stdio.h>intmain(){intarr[10];//假設數(shù)組長度為10intmax,min;inti,n;printf("請輸入數(shù)組元素個數(shù)(<=10):");scanf("%d",&n);printf("請輸入%d個整數(shù):\n",n);

溫馨提示

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

評論

0/150

提交評論