中南大學(xué)《C語言程序設(shè)計(jì)基礎(chǔ)》期末試題及答案_第1頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、判斷題(每小題1分,共15分)1.標(biāo)準(zhǔn)C中,只有數(shù)值型數(shù)據(jù)才能進(jìn)行4則混合運(yùn)算。2.標(biāo)準(zhǔn)C中,_a是合法的自定義標(biāo)識符。3.有定義:float f;表達(dá)式f+=(int)3.6%2”不符合C語言語法。4.標(biāo)準(zhǔn)C中,邏輯運(yùn)算的結(jié)果只有是1表示滿足條件,而結(jié)果是0表示不滿足條件。5.C語言程序中要求被調(diào)用函數(shù)在調(diào)用函數(shù)中能被調(diào)用必須要在調(diào)用函數(shù)中進(jìn)行聲明。6.以下運(yùn)算符排列順序滿足按照優(yōu)先級從高到低的排列:&、!、=、-。7.語句for(;);是非法的。8.在C語言程序中可以由多個源文件構(gòu)成,每個源文件都可以有自己的main()函數(shù)。9.while和do-while的主要區(qū)別是后者至少無條件執(zhí)

2、行一次。10.數(shù)組名代表數(shù)組的首地址是常量,所以將實(shí)參數(shù)組名表示地址傳給形參數(shù)組名是錯誤的。11.當(dāng)函數(shù)沒有返回值類型時(shí),表示函數(shù)類型為void。12.C語言中,指針變量作函數(shù)參數(shù)時(shí),它們不是采取單向值傳遞的方式。13.一個函數(shù)中只允許有一條return語句。14.在C語言中,如果沒有說明變量的存儲類型是auto類型的。15.由于指針中所存放的地址都是整數(shù),所以整型指針和浮點(diǎn)型指針可以相互賦值。二、填空題(每空1分,共15分)若a=4;b=5,c=6;則表達(dá)式c=(b=-a); 中c的值是 (1) 。計(jì)算表達(dá)式的值: 4-4的值: (2) ; 設(shè)int a=3,b=4,c=5,則表達(dá)式a|b+

3、c&b=c的值: (3) ; 設(shè)x=2.5, a=7, y=4.7,則表達(dá)式x+a%3*(int)(x+y)%2/4的值: (4) ; 設(shè)a=12,則表達(dá)式a*=a/5的值: (5) ;若int x = 4,y = 6,z = 0;有循環(huán)while(x = y) z +;y-;則循環(huán)語句執(zhí)行完后,z值為 (6) 。變量的指針就是指該變量的 (7) 。若有定義int (*p)4,則標(biāo)識符p是 (8) ;若有定義int *p4,則標(biāo)識符p是 (9) ;已有定義:char *p =“France”,“Chinese”,“Russia”,“America”;則語句printf(“%s”,p2);pri

4、ntf(“%c”,*(p1+2);printf(“%c”,*(*(p+1)+1);的輸出結(jié)果分別為: (10) 、 (11) 、 (12) 。已有定義: int x=65; 若格式化輸出結(jié)果為“A, 65”,則對應(yīng)的格式化輸出語句為printf(“ (13) , (14) ”, x, x)。已定義:int a2=1, 2, 3, 4, 2, 6, 7, 2;則a30= (15) 。簡答題(每題4分,共12分)簡述選擇語句if和else語句對與switch語句的區(qū)別。簡述在循環(huán)語句中,break和continue的區(qū)別。若int a5,*p=a;簡述*p+和(*p)+的區(qū)別。四、下列各程序中每個

5、程序各有2個錯誤,指出錯誤語句,寫出對應(yīng)正確語句(每小題4分,共16分)輸入一個數(shù),計(jì)算其平方根# includevoid main( ) float a, b; printf(“please input a numbern”); scanf(“%f”,a); if(a=0) b=sqrt(a); printf(“b=%fn”, b); else printf(“data is error!n”);已知矩陣a=,求該矩陣對角線元素之和。# includevoid main( ) int i, sum; int a33=1,2,3,4,5,6,7,8,9; for(i=1; i=3; i+) s

6、um = sum + aii; printf(“sum=%d”, sum);通過函數(shù)調(diào)用實(shí)現(xiàn)兩個變量值的交換。# includevoid swap(int *p1, int *p2) int temp; temp=*p1; p1= p2; *p2=temp;void main() int a = 3, b = 8, *p ; printf(Old:a=%d b=%dn, a, b) ; p=&b; swap(&a, *p) ; printf(New:a=%d b=%dn, a, b) ;用遞歸語句編函數(shù)計(jì)算10!# includelong f (int m) long a;if(m0) pri

7、ntf(“data error!”); else a=f(m1)*m; void main( ) int n;n=10;printf(“%d!=%ld”,n,f (n) ); 五、程序填空題:下列程序中缺少若干條語句,在對應(yīng)的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)若一自然數(shù)全部正整數(shù)因子(該因子不包括其本身)之和仍為該自然數(shù),則該自然數(shù)稱為完全數(shù)。如:6=1+2+3,則6是完全數(shù)。輸出2,1000以內(nèi)的所有完全數(shù)及完全數(shù)的個數(shù)。#includeint main( )int x,n,m,s=0;for(n=2;n=1000;n+) (1) for(m=1;mn;

8、m+) if(n%m= 0) x=x+m; (2) printf(“%dn”,n); (3) printf(“s=%dn”,s);從鍵盤輸入一組100個以內(nèi)的整數(shù),使用條件表達(dá)式找出最大的整數(shù),并且以輸入的整數(shù)為0時(shí)作為輸入數(shù)據(jù)結(jié)束標(biāo)志。#define N 100main() int numN; int i= -1; int max=0; printf(n Input integer number: n); do i+;printf(num%d=,i);scanf(%d, (4) );max= (5) numi : max; while( (6) ); printf(max=%dn, max)

9、;3、用起泡法對n個數(shù)由小到大排序。起泡法排序的原理為:從第一對元素開始比較相鄰的元素,如果第一個比第二個大,就交換他們兩個,每一輪下來,該序列的最后的元素應(yīng)該會是當(dāng)前序列中最大的數(shù)。bubble(int a,int n) int i,j,t,temp; for(i=1; i=n-1; i+) t= (7) ; for(j=0; j=t; j+) if( (8) ) temp = aj; aj = aj+1; (9) ; 4、從鍵盤上輸入一個不多于7位的正整數(shù),統(tǒng)計(jì)其中2的個數(shù),并求各位數(shù)字中的最小數(shù)。#include main( )int count,min,temp; long n; mi

10、n=9; (10) ; scanf(“%ld”,&n);do temp= (11) ;if (temp= =2) count+;if (temp min) min=temp;n=n/10;while ( (12) );printf(“count=%d,min=%d”,count,min);六、閱讀下列程序,寫出運(yùn)行結(jié)果(第一小題4分,第二小題6分,共10分)1、#includeint main( ) int i; for (i=1; i=5; i+) if (i%2) printf(#); else continue; printf(*); return 0;2、#includevoid su

11、b();int i=0;static int j=1; main( ) int k=1; i+; j+; k+; printf(“main i=%d j=%d k=%dn”, i,j,k); sub( ); sub( );void sub( ) int k=0; static int x=1; k+; x+;printf(“sub i=%d j=%d k=%d x=%dn”,i,j,k,x);七、編程題(8分)編譯程序,其功能是比較字符串的大小(不允許用系統(tǒng)提供的字符串比較函數(shù)strcmp)。要求是:通過主函數(shù)調(diào)用一個函數(shù)strcompare來實(shí)現(xiàn)。要求函數(shù)strcompare實(shí)現(xiàn)兩個字符的比

12、較:如第一個字符小于第二個字符則返回一個負(fù)值;如兩個字符相等則返回0值;如第一個字符大于第二個字符則返回一個正值。并輸出兩個字符串中相同部分的子串。C語言程序設(shè)計(jì)基礎(chǔ)試卷參考答案一、判斷題(每小題1分,共15分)15 ; 610 ; 1115 二、填空題(每空1分,共15分)(1) 6 (2) 1 (3) 1 (4) 2.5(5) 24(6) 6(7)地址(8) 行指針,指向有四個元素的一維數(shù)組 (9)指針數(shù)組名,該數(shù)組有四個元素,每個元素都是指針(10)Russia (11)i (12)h (13) %c(14) %d (15)7簡答題(每題4分,共12分)if總是判斷其后面的表達(dá)式的值是否

13、為非零值,如是非零值則執(zhí)行其后面的語句或由括起來的復(fù)合語句,否則執(zhí)行else后面的語句。而switch語句則根據(jù)其后面表達(dá)式的可數(shù)值來判斷,執(zhí)行switch語句體內(nèi)與其中的一個case:常量值相等語句后面的語句。執(zhí)行break語句后,跳出switch語句體。break是終止整個循環(huán)過程;continue是終止本次循環(huán)。*p+首先取a0的值,然后p指向a1;(*p)+使得a0的值自增1,但p保持不變。四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應(yīng)正確語句(每小題4 分,共16分)(1)缺#include;(2)scanf(“%f”,a); 改為 scanf(“%f”,&a);(1)

14、缺sum=0; (2)for(i=1; i=3; i+) 改為for(i=0;i3;i+)(1)p1=p2 改為 *p1=*p2(2)swap(&a, *p) 改為swap(&a, p) (1)在if(m0)語句后添加else if(m=0) a=1; (2) 添加 return(a);五、程序填空題:下列程序中缺少若干條語句,在對應(yīng)的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)(1)x=0; (2)if(n=x) (3)s+;或s=s+1;(4)&numi (5)maxaj+1 (9)aj+1=temp(10)count=0; (11)n%10 (12)n0或n!

15、=0或n六、閱讀下列程序,寫出運(yùn)行結(jié)果(第一小題4分,第二小題6分,共10分)1、 #*#*#*2、 main i=1 j=2 k=2 sub i=1 j=2 k=1 x=2 sub i=1 j=2 k=1 x=3七、編程題(8分)#includemain()int i,j, flag=0;char str190,str290;gets(str1);gets(str2);i=0;doflag=strcompare(str1i,str2i);i+;while(str1i!=0 & str2i!=0 &flag=0);if(flag0)printf(“%s小于%sn”,str1,str2);els

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論