moocc語言期末考試題及答案_第1頁
moocc語言期末考試題及答案_第2頁
moocc語言期末考試題及答案_第3頁
moocc語言期末考試題及答案_第4頁
moocc語言期末考試題及答案_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

moocc語言期末考試題及答案C語言期末考試試卷一、單項選擇題(每題2分,共30分)1.以下關(guān)于C語言的說法正確的是()A.C語言程序必須在開頭包含`include<stdio.h>`B.C語言是一種高級語言,不依賴于具體的硬件C.C語言程序的執(zhí)行是從主函數(shù)開始,到主函數(shù)結(jié)束D.C語言中的變量可以不聲明直接使用2.以下哪個是合法的C語言標識符()A.`2abc`B.`_abc`C.`for`D.`a-b`3.若有定義`inta=5;`,則執(zhí)行語句`a+=a-=aa;`后,`a`的值是()A.-40B.-15C.0D.204.以下能正確定義且賦初值的語句是()A.`intn1=n2=10;`B.`charc=32;`C.`floatf=f+1.1;`D.`doublex=12.3E2.5;`5.若有定義`inta[10];`,則對`a`數(shù)組元素的正確引用是()A.`a[10]`B.`a[3.5]`C.`a(5)`D.`a[0]`6.以下關(guān)于函數(shù)的說法錯誤的是()A.函數(shù)可以沒有返回值B.函數(shù)可以有多個參數(shù)C.函數(shù)調(diào)用時,實參和形參的類型必須一致D.函數(shù)定義可以嵌套,但函數(shù)調(diào)用不可以嵌套7.以下關(guān)于指針的說法正確的是()A.指針變量可以存儲任意類型的數(shù)據(jù)B.指針變量必須先賦值后使用C.指針變量的大小與所指向的數(shù)據(jù)類型有關(guān)D.一個指針變量只能指向一個變量8.若有定義`chars[10]="abcde";`,則`strlen(s)`的值是()A.5B.6C.10D.不確定9.以下關(guān)于結(jié)構(gòu)體的說法正確的是()A.結(jié)構(gòu)體變量不能作為函數(shù)參數(shù)B.結(jié)構(gòu)體成員可以是不同類型的數(shù)據(jù)C.結(jié)構(gòu)體類型可以不定義成員D.結(jié)構(gòu)體變量的大小等于其所有成員大小之和10.以下關(guān)于文件操作的說法錯誤的是()A.打開文件時必須指定文件的打開方式B.文件操作完成后必須關(guān)閉文件C.可以同時打開多個文件D.用`fopen`函數(shù)打開文件時,若文件不存在則會報錯11.若有以下程序段:```cinta=1,b=2,c;c=a>b?a:b;```則`c`的值是()A.1B.2C.0D.不確定12.以下循環(huán)語句中,循環(huán)次數(shù)是無限次的是()A.`for(inti=0;i<10;i--)`B.`while(0)`C.`do{}while(0);`D.`for(inti=10;i>0;i--)`13.若有定義`intp,a=10;p=&a;`,則以下能正確輸出`a`的值的語句是()A.`printf("%d",p);`B.`printf("%d",p);`C.`printf("%d",&p);`D.`printf("%d",&a);`14.以下關(guān)于宏定義的說法正確的是()A.宏定義必須以分號結(jié)尾B.宏定義在編譯時進行替換C.宏定義可以嵌套使用D.宏定義只能定義常量15.若有以下程序:```cinclude<stdio.h>voidfun(intx,inty){x=x+y;y=x+y;}intmain(){inta=3,b=5;fun(&a,b);printf("%d%d\n",a,b);return0;}```則程序的輸出結(jié)果是()A.85B.813C.35D.313二、填空題(每題3分,共15分)1.若有定義`inta=5,b=3;`,則表達式`a%b`的值是。2.若要定義一個指向整型變量的指針變量`p`,并初始化為指向變量`a`,可以使用的語句是。3.若有定義`chars[]="hello";`,則數(shù)組`s`的長度是。4.函數(shù)`strcpy`的功能是。5.若要打開一個文本文件`test.txt`進行讀寫操作,可使用的`fopen`函數(shù)調(diào)用語句是。三、程序分析題(每題10分,共20分)1.分析以下程序的功能,并寫出輸出結(jié)果。```cinclude<stdio.h>intmain(){inti,sum=0;for(i=1;i<=10;i++){if(i%2==0){sum+=i;}}printf("sum=%d\n",sum);return0;}```2.分析以下程序的功能,并寫出輸出結(jié)果。```cinclude<stdio.h>voidswap(inta,intb){inttemp;temp=a;a=b;b=temp;}intmain(){intx=5,y=10;swap(&x,&y);printf("x=%d,y=%d\n",x,y);return0;}```四、程序設(shè)計題(每題15分,共30分)1.編寫一個程序,輸入一個整數(shù)`n`,計算并輸出1到`n`之間所有奇數(shù)的和。2.編寫一個函數(shù),實現(xiàn)對一個整數(shù)數(shù)組的排序(升序),并在`main`函數(shù)中調(diào)用該函數(shù)進行測試。五、簡答題(5分)簡述C語言中指針的作用。答案一、單項選擇題1.C解析:A選項,`include<stdio.h>`不是必須的,只有使用標準輸入輸出函數(shù)時才需要;B選項,C語言是一種高級語言,但它對硬件有一定的依賴性;D選項,C語言中的變量必須先聲明后使用。2.B解析:標識符只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,同時不能是C語言的關(guān)鍵字。A選項以數(shù)字開頭;C選項`for`是關(guān)鍵字;D選項包含非法字符`-`。3.A解析:根據(jù)運算符優(yōu)先級,先計算`aa=25`,然后`a-=25`,即`a=a25=525=-20`,最后`a+=-20`,即`a=a+(-20)=-20+(-20)=-40`。4.B解析:A選項不能連續(xù)賦值;C選項`f`未初始化就使用;D選項科學(xué)計數(shù)法中指數(shù)部分必須是整數(shù)。5.D解析:數(shù)組下標從0開始,且必須是整數(shù)。A選項`a[10]`越界;B選項`a[3.5]`下標不是整數(shù);C選項數(shù)組引用使用方括號,不是圓括號。6.D解析:函數(shù)定義不可以嵌套,但函數(shù)調(diào)用可以嵌套。7.B解析:A選項指針變量只能存儲地址;C選項指針變量的大小與所指向的數(shù)據(jù)類型無關(guān),只與系統(tǒng)的尋址能力有關(guān);D選項一個指針變量可以在不同時刻指向不同的變量。8.A解析:`strlen`函數(shù)返回的是字符串的實際長度,不包括字符串結(jié)束符`'\0'`。9.B解析:A選項結(jié)構(gòu)體變量可以作為函數(shù)參數(shù);C選項結(jié)構(gòu)體類型必須定義成員;D選項結(jié)構(gòu)體變量的大小可能大于其所有成員大小之和,存在內(nèi)存對齊的問題。10.D解析:用`fopen`函數(shù)打開文件時,若文件不存在,在以寫或追加等方式打開時會創(chuàng)建該文件。11.B解析:`a>b?a:b`是條件運算符,當`a>b`為真時取`a`的值,為假時取`b`的值,這里`a=1`,`b=2`,`a>b`為假,所以取`b`的值2。12.A解析:A選項`i`初始值為0,每次循環(huán)`i`減1,`i<10`始終成立,所以是無限循環(huán);B選項`while(0)`條件為假,循環(huán)體不執(zhí)行;C選項`dowhile`循環(huán)先執(zhí)行一次循環(huán)體,然后判斷條件,條件為假,循環(huán)結(jié)束;D選項循環(huán)次數(shù)為10次。13.B解析:`p`是指針變量,存儲的是變量`a`的地址,`p`表示取指針`p`所指向的變量的值,即`a`的值。14.C解析:A選項宏定義不需要以分號結(jié)尾;B選項宏定義在預(yù)編譯時進行替換;D選項宏定義可以定義常量、函數(shù)等。15.A解析:在`fun`函數(shù)中,`x`指向`a`,`x=x+y`使`a`的值變?yōu)?,而`y`是值傳遞,在函數(shù)內(nèi)部的改變不會影響外部的`b`,所以`b`的值仍然是5。二、填空題1.2解析:`%`是取余運算符,`5%3`的結(jié)果是2。2.`intp,a;p=&a;`解析:先定義一個指向整型變量的指針變量`p`,然后將變量`a`的地址賦給`p`。3.6解析:字符串`"hello"`后面會自動添加字符串結(jié)束符`'\0'`,所以數(shù)組`s`的長度是6。4.將一個字符串復(fù)制到另一個字符串中解析:`strcpy`函數(shù)的原型是`charstrcpy(chardest,constcharsrc);`,它將`src`指向的字符串復(fù)制到`dest`指向的字符串中。5.`FILEfp=fopen("test.txt","r+");`解析:`"r+"`表示以讀寫方式打開文本文件。三、程序分析題1.功能:計算1到10之間所有偶數(shù)的和,并輸出結(jié)果。輸出結(jié)果:`sum=30`解析:循環(huán)從1到10,當`i`為偶數(shù)時,將其累加到`sum`中,即`2+4+6+8+10=30`。2.功能:交換兩個整數(shù)變量的值,并輸出交換后的結(jié)果。輸出結(jié)果:`x=10,y=5`解析:`swap`函數(shù)通過指針傳遞的方式交換了`x`和`y`的值。四、程序設(shè)計題1.```cinclude<stdio.h>intmain(){intn,sum=0;printf("請輸入一個整數(shù)n:");scanf("%d",&n);for(inti=1;i<=n;i+=2){sum+=i;}printf("1到%d之間所有奇數(shù)的和是:%d\n",n,sum);return0;}```2.```cinclude<stdio.h>//冒泡排序函數(shù)voidsort(intarr[],intn){for(inti=0;i<n1;i++){for(intj=0;j<ni1;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){intarr[]={5,3,8,4,2};intn=sizeof(arr)/sizeof(arr[0]);sort(arr,n);printf("排序后的數(shù)組:");for(inti=0;i<n;i++){printf("%d",arr[i]);}printf("\n");return0;}```五、簡答題C

溫馨提示

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

評論

0/150

提交評論