湖南工程學(xué)院C語言程序考試復(fù)習(xí)題有答案_第1頁
湖南工程學(xué)院C語言程序考試復(fù)習(xí)題有答案_第2頁
湖南工程學(xué)院C語言程序考試復(fù)習(xí)題有答案_第3頁
湖南工程學(xué)院C語言程序考試復(fù)習(xí)題有答案_第4頁
湖南工程學(xué)院C語言程序考試復(fù)習(xí)題有答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2010湖南工程學(xué)院年C語言程序考試題、單選題1 . c程序的基本構(gòu)成單位是( C)A)文件 B)命令 C)函數(shù) D)語句2 .在C語言中,'a是(B )A)字符串常量B)字符常量C)變量D)函數(shù)3 .在C語言中," a=b=c=5”屬于哪種表達(dá)式? ( B ) A)關(guān)系 B)賦值 C)邏輯 D)非法4 .設(shè)a、b為整型,則表達(dá)式(a=2,b=5,b+,a+b)的值是(D )A)2B)6C)7D)85 .若有以下變量定義:int b=2;float a=5;則表達(dá)式“ a/b”之值為(A )A)2.5B)2C)3D)5/26 .若j=3,則表達(dá)式(+j)+(j+)的值為(C

2、)A)6B)7C)8D)107 .以下只能輸入單個字符的函數(shù)是( C )A)printf()B)puts() C)getchar() D)putchar()8 .若a的原值為4,則表達(dá)式“ a*=a-=3”運算后,a的值是(D )A)13B)4C)3D)19 .若a=5、b=3、c=1 ,則表達(dá)式“a>b>c”的值為( A )A)0B)1C)3D)510 .若有代數(shù)式:3ae bc 以下錯誤的C語言表達(dá)式是(C ) A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*311 .下列能輸出字符數(shù)組str中字符串的語句是( B )A)printf(&q

3、uot;%c",str0);B)printf("%s",str);C)printf("%s",str);D)putchar(str);12 .若p=&x ,則下列關(guān)系表達(dá)式之值為1的是(B )A)p=x B)*p=xC)&p=xD)*x=p13 . C語言中最基本的數(shù)據(jù)類型包括( B )A)整型、實型、邏輯型B)整型、實型、字符型C)整型、邏輯型、字符型D)整型、實型、字符串型14 . C語言中,要求運算對象必須是整型數(shù)據(jù)的運算符是( A )A)%B)/C)D)&&15 .表示數(shù)學(xué)關(guān)系“ xRyRz”的C語言表達(dá)

4、式是(C )A)x>=y>=zB)x>=y | y>=zC)x>=y&&y>=zD)x >y > z16 . 以下說法中正確的是(C )A)C 程序總是從文件中第一個函數(shù)開始執(zhí)行B)C 程序中,只有main( )函數(shù)才可以調(diào)用其他函數(shù)C)C 程序總是從main( )函數(shù)開始執(zhí)行D)C 程序中的main( )函數(shù)必須放在程序的開頭17 . 若有定義:int a=7;float x=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4 的值為(A )A)2.5B)2.75C)3.5D)018 . 設(shè)變量 a 是整型,f

5、 是實型,i 是雙精度型,則表達(dá)式10+'a'+i*f 值的數(shù)據(jù)類型為(C )A)intB)floatC)doubleD)不確定19 . 有輸入語句:scanf("%d,%d",&a,&b);為使變量a、 b 分別為 5 和 3,從鍵盤輸入數(shù)據(jù)的正確形式為(B )A)5 3< 回車 >B)5,3< 回車 >C)a=5 b=3< 回車 >D)a=5,b=3< 回車 >20 . 定義如下變量和數(shù)組:int j;int x33=1,2,3,4,5,6,7,8,9;則下面語句的輸出結(jié)果是(C )for

6、(j=2; j>=0; j-)printf("%2d",xj2-j);A)1 5 9B)1 4 7C)7 5 3D)3 6 921 . 執(zhí)行下面程序后,a 的值是(B )#include <stdio.h>#define SQR(x) x*x void main( )int a=10,k=2,m=1;a=SQR(k+m);printf("%dn",a); A)10B)5C)2D)122 . 以下敘述不正確的是(C )A) 在函數(shù)內(nèi)部定義的變量是局部變量B)函數(shù)中的形式參數(shù)是局部變量C)全局變量的作用范圍僅限于其所在的整個文件D) 局部變

7、量的作用范圍僅限于本函數(shù)23 .設(shè) a=3,b=4,c=2,d=1 ,則表達(dá)式"a>b?a:c>d?c:d"的值為( C )A)4B)3C)2D)124 . 有以下程序段:x=-1;dox=x*x;while(!x);執(zhí)行時,循環(huán)體執(zhí)行的次數(shù)為(B )A)0B)1C)2 D) 不確定25 . 以下不正確的if 語句形式是(C )A)if (x>y&&x!=y);B)if (x= =y)x+=y;C)if (x!=y) scanf("%d",&x) else scanf("%d",&y)

8、;D)if (x<y)x+;y+;26 . 以下程序的輸出結(jié)果是(C )#include <stdio.h>void main( )int x=2,y=-1,z=2;if (x<y)if (y<0) z=0;else z+=1;printf("%dn",z);A)0B)1C)2D)327 .以下能正確計算 1X2X3X-X 10的程序段是( A )B) s=1;i=1;while(i<=10) s=s*(+i);D)for(i=1,s=1;i+)s=s*i;A) i=1,s=1;dos=s*i;i+; while(i<11);C)

9、for(i=1,s=0;i<=10;i+)s=s*i;28 . 若 j 為整型變量,則以下循環(huán)執(zhí)行次數(shù)是(C )for (j=0;j= =0;)printf("%d",j-);A) 無限次B)0 次C)1 次D)2 次29 .若有說明:int a10;則對a數(shù)組元素的正確引用是( C )A)a3.5B)a(8)C)a6-5D)a1030. C 語言規(guī)定,變量做實參時,它和對應(yīng)形參之間的數(shù)據(jù)傳遞方式是(B )A)地址傳遞B)單向值傳遞C)雙向值傳遞D)由用戶指定傳遞方式31. C 中,一個float 類型的數(shù)據(jù)在內(nèi)存中占(C )個字節(jié)。A) 1B) 232. 設(shè)有程序段

10、:int k=5;while (k<=0)k-;則下列描述中正確的是(A) while 循環(huán)執(zhí)行5 次C) 循環(huán)語句一次也不執(zhí)行33. 下面程序段的運行結(jié)果是(C) 4D) 8C)B) 循環(huán)是無限循環(huán)D) 循環(huán)體語句執(zhí)行一次B)char c5= 'a', 'b', '0', 'c', '0' ;printf("%s", c);A) 'a''b'B) ab34. 以下不正確的字符串賦值語句是(A) char *s; s="abcde"C)

11、char s10; s="abcde"C) AbcD) "abc"C)B) char s ="abcde"D) char *s="abcde"35. 設(shè) p1、 p2 是指向 int 型一維數(shù)組的指針變量,k 為 int 型變量,以下錯誤的語句是(A) k=*p1+*p2; B) p2=k; C) p1=p2; D) k=p2-p1;36. 下面程序的輸出結(jié)果是(A )#include <stdio.h>void main( ) char s = "ABCD"char *p;for

12、(p=s;p<s+4;p+)printf("%sn", p);B)A) ABCDB)AC)DD ) ABCDBCDBCABCCDCBABDDAA37. 以下關(guān)于C 函數(shù)的定義和調(diào)用描述正確的是(B )A) 函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可嵌套B) 函數(shù)的調(diào)用可以嵌套,但函數(shù)的定義不可嵌套C) 函數(shù)的定義和調(diào)用均可以嵌套D) 函數(shù)的定義和調(diào)用均不可嵌套38. 以下關(guān)于變量的作用域說法正確的是(D )A) 在不同函數(shù)中不能使用相同名字變量B) 在函數(shù)外部定義的變量只在本函數(shù)范圍內(nèi)有效C) 在函數(shù)內(nèi)的復(fù)合語句定義的變量在本函數(shù)內(nèi)有效D) 形式參數(shù)是局部變量39. 以下關(guān)

13、于變量的作用域敘述不正確的是(C )A) 在函數(shù)內(nèi)部定義的變量是局部變量B) 函數(shù)中的形式參數(shù)是局部變量C) 全局變量的作用范圍僅限于其所在的文件D) 局部變量的作用范圍僅限于本函數(shù)40. 以下關(guān)于C 函數(shù)參數(shù)說法不正確的是(B )A) 實參可以是常量、變量和表達(dá)式B) 形參可以是常量、變量和表達(dá)式C) 實參可以為任意數(shù)據(jù)類型D) 形參應(yīng)與對應(yīng)的實參類型一致41. 以下關(guān)于C 函數(shù)返回值的敘述正確的是(D )A) 被調(diào)函數(shù)中只有使用return 語句才能返回主調(diào)函數(shù)B) 使用一個return 語句可以返回多個函數(shù)值C) 函數(shù)返回值類型取決于return 語句中的表達(dá)式類型D) 函數(shù)返回值類型取

14、決于定義該函數(shù)時所指定的類型42. 在C中," a>b>c”屬于哪種表達(dá)式? ( A )A) 關(guān)系B) 賦值C) 邏輯D) 非法43. 以下不合法的C 表達(dá)式是(C )A) 10 | 8 B) 12=9+1 C) +5 D) x!=y44. 給定以下程序段:int n=10;while (n>6)n-;printf("%3d",n);以上程序段輸出結(jié)果是(D )A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 645. 若 i, j 已定義為int 型,則以下程序段中內(nèi)循環(huán)總的執(zhí)行次數(shù)是(C )for (i=5; i

15、>0; i-)for (j=1; j<6; j+)A) 30B) 24C) 25D) 2046. 若已定義:float *p, m=3.14159; 則使 p 指向 m 正確的賦值語句是(B )A) p=m;B) p=&m;C) *p=m;D) *p=&m;47. 若已定義:chars10;則下面表達(dá)式中不能表示s1地址的是(A )A)s+B)s+1C)&s0+1D)&s1二、填空題1 .函數(shù)是C程序的基本構(gòu)成單位,C程序總是從 main函數(shù) 開始執(zhí)行的。2 .賦值表達(dá)式x*=y+5的另一種書寫形式為x=x*(y+5)3 .已知a=10, b=20,

16、 c=3,則表達(dá)式 a>b|c的值為 L4 .整數(shù) m既能被3整除又能被 4整除的邏輯表達(dá)式為(m%3= =0)&&(m%4= =0)5 .若有定義:double a105;則數(shù)組a中行下標(biāo)最大值為9,列下標(biāo)最大值為4 。6 .若有定義:int a = 1,4,6,5,8,9;則 *(a+5)的值為 97 .設(shè)有如下定義inta56,*p;取數(shù)組元素a42的地址放到p中的語句為p=&a4;8 .未加特別說明(說明為靜態(tài)的)的全局變量是外部的,能被其它文件中的函數(shù)使用,而在引用 它的文件中,需要用關(guān)鍵字 extern說明。9 .已知a=10, b=20,則表達(dá)式!a

17、>b的值為 010 .寫出0<x<1的C邏輯表達(dá)式(0<x)&&(x<1)11 .若有定義:int a10,*p=a;則元素a5的值用p表示的形式是*(p+5)12 .若有定義:int *p4;則標(biāo)識符p表示 數(shù)組長度為4的一維指針數(shù)組13 .凡是函數(shù)中未指定存儲類型的局部變量,其默認(rèn)的存儲類型為auto三、程序填空1 .下面程序的功能是:從鍵盤輸入一個字符,若是大寫字母,則轉(zhuǎn)換為小寫字母并輸出,若為小 寫字母則直接輸出,請在 處填上合適內(nèi)容,使程序完整。#include <stdio.h>void main() char ch;ch=

18、getchar();if (ch>='A'&&ch<='Z')ch+=32;printf("%c",ch);2 .下面程序的功能是:求1100間的偶數(shù)和,請在 處填上合適內(nèi)容,使程序完整。#include <stdio.h>void main()int num, sum=0;for (num=2; num<=100; num=num+2)sum=sum+num ;printf("1-100 間的偶數(shù)和是: %dn", sum);3 .下面程序段是求 n!的遞歸函數(shù),請將函數(shù)補充

19、完整。double fac(int n) double result;if (n= =1)result=1;elseresult=n*fac(n-1);return(result);4 .以下程序的功能是:輸入一整數(shù)n,判斷是否為素數(shù)。#include <stdio.h>#include<math.h>void main() int i, n;scanf("%d",&n);for (i=2; i<=sqrt(n); i+)if (n%i=0)break;if (i>sqrt(n)printf("%d is a prime

20、 number.n", n);elseprintf("%d is not a prime number.n", n);四、閱讀程序1. #include <stdio.h>void main() char ch;int cnt1=0,cnt2=0;while (ch=getchar( )!='n')if (ch>='a'&&ch<='z')cnt1+;else cnt2+;printf("COUNT=%dn",cnt1);若輸入"This is a

21、 C program.”,運行結(jié)果: COUNT=132. #include <stdio.h>void main() int i,j,temp;int a尸0,123,4,5,6,7,8,9;for(i=0,j=9;i<j;i+,j-)temp=ai;ai=aj;aj=temp;for(j=0;j<10;j+)printf("%2d",ajD;運行結(jié)果:9 8 7 6 5 4 3 2 1 03. #include <stdio.h>#include <string.h> void main() char str120=&qu

22、ot;good",str2 ="morning"int i,j;for (i=strlen(str1),j=0;str2j!='0' i+, j+) str1i=str2j;str1i='0'printf("string1=%s",str1);運行結(jié)果: string1=goodmorning4. #include <stdio.h> void main() int i,j,pos; float val,a10; for(i=0;i<10;i+)scanf("%f",&

23、;ai);val=a0;for(j=0;j<10;j+) if (aj>val) val=aj;pos=j;printf("Max=%f,position:%d",val,pos);本程序的功能是:從鍵盤輸入10個數(shù)存到數(shù)組a中,求10個數(shù)的最大值及其位置當(dāng)程序運行時,從鍵盤輸入“1 0 2 9 3 8 4 7 5 6” ,運行結(jié)果:Max=9.000000,position:35. #include <stdio.h>float average(int x , int n) int i;float sum=0; for(i=0;i<n;i+)

24、 sum+=xi;return (sum/n);void main() int a5=2,4,6,8,10;float rst;rst=average(a,5);printf("result=%fn",rst);運行結(jié)果:result=6.0000006. 給定如下程序:#include <stdio.h>void main() char grade;scanf("%c", &grade);switch (grade) case 'A':printf("85 100n"); break;case &

25、#39;B':printf("70 84n"); break;case 'C':printf("60 69n"); break;case 'D':printf("<60n"); break;default: printf("errorn");當(dāng)程序運行時,從鍵盤輸入“ D”,輸出的結(jié)果是:<607. 給定如下程序:#include <stdio.h>void main() int a5=2,5,3,7,6,i,j,t;for(i=0;i<4;i+

26、)for(j=0;j<4-i;j+)if(aj>aj+1)t=aj;aj=aj+1;aj+1=t;for (i=0; i<5; i+)printf("%3d",ai);該程序的功能是:用“起泡法”對數(shù)組 a中的5個整數(shù)按由小到大排序并輸出輸出的結(jié)果為:2 3 5 6 78. 給定如下程序:#include <stdio.h>void fun() auto int b=0;static int c=4;b+;c+;printf("b=%d c=%dn",b,c);void main() int i;for (i=0; i<

27、;3; i+)fun();運行結(jié)果是:b=1 c=5b=1 c=6b=1 c=79. 給定如下程序:#include <stdio.h>#include <string.h>void main() char *p1, *p2, c, s50;gets(s);p1=s; p2=s+strlen(s)-1;for(; p1<p2; p1+, p2-)c=*p1; *p1=*p2; *p2=c;printf("The new string is %sn", s);此程序的功能是:從鍵盤輸入一字符串存放到數(shù)組s中,將此字符串逆序輸出當(dāng)程序運行時,從鍵盤

28、輸入“ abc we #y”,輸出的結(jié)果是:The new string is y# ew cba五、按要求編程1. 編寫0100之間偶數(shù)之和的程序。#include <stdio.h>void main() int num, sum=0;for (num=2; num<=100; num=num+2)sum=sum+num;printf("sum=%dn", sum);2. 編程計算1!+2!+3!+ +2Q!#include <stdio.h>void main()float s=0,t=1;int n;for(n=1;n<=20;n

29、+)t=t*n;s=s+t; printf("1!+2!+20!=%en",s);3. 統(tǒng)計由鍵盤輸入的任意一串字符中空格的個數(shù)。#include <stdio.h>void main( )char ch;int space=0;while (ch=getchar( )!='n')if (ch=' ') space+;printf("konggeshu=%dn",space);4. 編寫程序找出1 100 之間的素數(shù),并統(tǒng)計素數(shù)的個數(shù)。#include <stdio.h>#include <m

30、ath.h>void main( )int m,k,i,n=0;for(m=1;m<=100;m=m+2)k=sqrt(m);for(i=2;i<=k;i+)if(m%i=0)break;if(i>=k+1)printf("%3d",m);n=n+1;if(n%10=0) printf("n");printf("ntotal number is=%d",n);5. 打印楊輝三角形(10 行)。要求:使用二維數(shù)組和循環(huán)語句實現(xiàn)。11 12 213 331#include <stdio.h>#defin

31、e N 11void main( )int i,j,aNN;for(i=1;i<N;i+)aii=1;ai1=1;for(i=3;i<N;i+)for(j=2;j<=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;i<N;i+)for(j=1;j<=i;j+)printf("%6d",aij);printf("n");6. 從鍵盤輸入10 個數(shù),找出最大值與最小值,并計算它們的平均值。#include <stdio.h>void main( )float a10,aver,sum,max,min

32、;int i;for(i=0;i<10;i+)scanf("%f",&ai);max=min=a0;if(stri<stri+1)sum=a0;for(i=1;i<10;i+)if(ai>max) max=ai;else if(ai<min) min=ai;sum=sum+ai;aver=sum/10;printf("aver=%f,max=%f,min=%f",aver,max,min);7 .寫一個函數(shù)求兩個整數(shù)的最大公約數(shù),函數(shù)原型為:int gongyue(int m, int n),在主函數(shù)中從鍵盤輸入兩個整數(shù),然后調(diào)用gongyue 函數(shù),并輸出結(jié)果。#include <stdio.h>int gongyue(int m,int n)int i;for(i=m;i>=1;i-)if(m%i=0&&n%i=0) break;return (i);void main()int a,b;scanf("%d,%

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論