C(Ⅱ)期末試卷(含答案)_第1頁
C(Ⅱ)期末試卷(含答案)_第2頁
C(Ⅱ)期末試卷(含答案)_第3頁
C(Ⅱ)期末試卷(含答案)_第4頁
C(Ⅱ)期末試卷(含答案)_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、共 9頁第 1 頁江 蘇 大 學 試 題 課程名稱 計算機基礎及C語言() 開課學院 計算機學院 使用班級 考試日期 。 注意事項: 1。 閉卷考試。考試時間為120分鐘。2答案均請用鉛筆涂在答題卡上。將答題卡上的試卷類型涂A(補考則涂B).3請將答題卡、試卷都寫上班級、學號、姓名、任課教師??荚嚱Y束分別交予監考老師.一、 選擇題(30分,每小題1分,請涂寫在答題卡上)1 以下常量中正確的是 D 。A'abc B. 'x123 C。3.145E-1。2 D. "a” 2 以下選項中,不能用作變量名的是 D 。 A. _1234_ B._1_2 C。int_2_ D.2

2、_int_3 設有“int a;",以下不能正確表達10a<15的表達式是 A 。A。 10a<15 B. A=11|a=12a=13|a=14C。 a10&a15 D。!(a<=10)!(a=15) 4 已知數據類型定義和變量聲明如下:struct sk int a; float b;data2, p;若有p=data,則以下對data0中成員a的引用中錯誤的是 A .A. data0-a B. data-aC。 p->aD。 ( p).a5 下列程序的程序輸出結果為 A 。define X(a) aamain() printf(“%dn”,X(4+

3、5));A。29 B。18 C.20 D。256 若有定義“enum seqmouse, cat, dog, rabbit=0, sheep, cow=6, tiger;” 則執行語句“printf(“%d”,cat+sheep+cow);"后輸出的結果是_C_。A。 6 B。7 C.8 D。 97 以下能將字符串“good!"正確地存放在字符數組s中,或使指針s能指向這個字符串的是_D_。A。 char s4=g, o, o, d, !'; B。 char s5;s=“good!”; C. int s5= “good!”; D. char s;s=“good!”;

4、 江 蘇 大 學 試 題 第2頁8 設有說明: union data int i ;float f; struct int x;char y;s; double d; a;則變量a在內存中所占字節數為_ A _ .A.8 B。17 C。9 D。159 設已有非空文本數據文件filel。dat,要求能讀出文件中原有的全部數據,并在文件原有數據之后添加新數據,則用FILE fp=fopen(”file1。dat", D )打開該文件. A。 ”w” B。 ” w+” C。 "r+" D. "a+”10 以下關于if語句的錯誤描述是 B . A。條件表達式可以

5、是任意表達式B. 條件表達式只能是關系表達式或邏輯表達式C. 條件表達式的括號不可以省略D. 與else配對的if語句是其之前最近的未配對的if語句11 在以下不致造成死循環的語句是: A .A.for(y=0,x=1; x>+y; x=i +) i =x;B。for(; ;x+=i );C.while(x=8) x-;D。for(i =10,sum=0; sum<=i ;) sum= -i ;12 設有定義:“float y=3。45678;int x;",則以下表達式中能實現將y中數值保留小數點后2 位,第3位四舍五入的表達式是: B 。A. y=(y*100+0.5

6、)/100.0 B. x=y100+0.5,y=x/100。0C. y=y100+0。5/100。0 D。y=(y/100+0.5)*100。013 以下程序段輸出結果是: C 。 int a=10,b=11,c=12,s; s=a+<=10&&b-=2&c+;printf(“%d,d,d,d",s,a,b,c);A. 0,11,10,13 B. 1,11,10,13 C. 0,11,10,12 D。1,11,10,1214 設有“char s =“Program”,p=s;”,則以下敘述中正確的是: C 。A.數組s的內容與指針變量p中內容相同B. 數

7、組s的長度與strlen(p)的值相等C. p5的值等于s5的值D。sizeof(s)等于sizeof(*p) 15 下列程序段執行后變量j的值是: B .int j; char *s="x045"”; for(j=0;s+;j+); 江 蘇 大 學 試 題 第3頁A。 7 B. 3 C. 4 D。 5 16 若有定義語句“static char str420= ”thank”, ”you",”very",”much! "”則str數組中存儲'0' 的數組元素有: D 個。A。 0 B. 17 C。 21 D. 63 17 下列

8、正確的聲明說明語句是 D 。A。float m=15,n=4,q=m%n;B.int n=10, yn;C。char p2 = ”DOS”,”WINDOWS”;D.char p = "DOS”,"WINDOWS”,"UNIX”;18 設有函數f的定義如下: void f(int x, int *y) *y=x*xx; main( ) int j,c4=1,2,3,4,s4=0; for(j=0;j<4;j+) /* 調用f函數 printf(“%d”,sj); 若在main函數中欲調用函數f,則正確的調用語句是_C_。 A. f(c,s); B。 f(ci

9、,si);C. f((c+i),&si); D. f(c+i ,s+i );19 執行以下程序段后,x,w的值為_C_。int x=0,y=1,z=2,w;if(x+) w=x;else if(x+&y=1) w=y;else if(x+z1) w=z;A. 0,1 B。 1,1 C。 2,1 D。3,2 20 已知有聲明語句“int a5=1,2,3,4,5,p,i;”,以下語句中不能正確輸出a數組全部元素值的是_C_。A for(p=a,i=0;i<5;i+) printf("%d”,(p+i));B for(p=a;p<a+5;p+) printf(

10、"%d”,p);C for(p=a,i=0;p<a+5;p+,i+) printf("d",pi);D for(p=a;pa+5;p+) printf("%d”,p0); 江 蘇 大 學 試 題 第4頁21 該程序運行后,輸出x的值是_,y的值是_D_。int x=1;main() int y,k; y=f(3); printf("%dn%d",x,y);int f(int x) if(x=3) int x=2; return x; else return x;A。 0,1 B. 1,1 C。 2,1 D。1,2 22 當程序讀

11、寫數據文件時,需要有聲明語句“FILE fp;”,在該聲明語句之前必須包含頭文件 _B_.A. string。h B。 stdio.h C. math。h D.ctype。h23 在文件中,以符號常量EOF作為文本文件的結束標記,EOF代表的值是_B_。A。 -2 B。 1 C。 0 D.124 若有聲明“double a23=1,2,3,4,5,6;”,則下列表達式中不能正確引用a11值的是_C_。A。 (a0+4) B。 *(a1+1) C。 (a+3)+1) D. (a+4)25 有以下程序段 typedef struct NODE int num; struct NODE next;

12、OLD;則以下敘述中正確的是_D_. A。 以上的說明形式非法 B. NODE是一個結構體類型 C. OLD是一個結構體類型 D。 OLD是一個結構體變量26 當把以下四個表達式用作if語句的控制表達式時,有一個選項與其它三個選項含義不同,這個選項是_D_。A。 k%2 B. k%2=1 C。 (k%2)!=0 D。 !k2=127 若有定義:int x=0, *p=x;,則語句printf("%dn”,*p);的輸出結果是 A. 隨機值 B. 0 C。 x的地址 D。 p的地址28 以下能正確定義且賦初值的語句是_B_。A。 int n1=n2=10; B。 char c=32;

13、C。 float f=f+1。1; D。 double x=12.3E2。5;29 設有定義:int k=1,m=2; float f=7;,則以下選項中錯誤的表達式是 C A。 k=k>=k B。 k+ C。 k%int(f) D。 k>=f>=m30 以下程序運行后的輸出結果是:_B_ A. 2 2 B. 7 2 C. 7 5 D. 6 2 main() char a7= ”a00a00”; int i, j; i=sizeof(a); j=strlen(a); printf(”%d d",i,j); 江 蘇 大 學 試 題 第5頁二、 填空題(40分)(每空2

14、分,請涂寫在答題卡上)1 設有說明“int j=5,m=2,k=7,n;”,則執行語句“n+=m=n=jk;”后,n和m的值分別為_B_ 和_C_。31. A。 75 B。 105 C。 120 D. 13032。 A。 30 B。 50 C. 70 D. 902 以下程序運行時輸出結果是_A_。include stdio.h >main( ) char a = 256; int d = a; printf(”d”,d+1);33. A. 1 B. 257 C. 0 D。 13 下列程序的程序輸出的第一行是_A ,第二行_B ,第三行_B 。include<stdio。hmain(

15、) int a=1,b=2,x1,x2,x3;x1=add(a,b);x2=add(add(a,b),b);x3=add(a,b);printf(“%dn%dndn”,x1,x2,x3);int add(int x,int y) static int z=1;z=x+y+z;return(z);34。 A.4 B.5 C。6 D.735. A.14 B.16 C。18 D。2036。 A。17 B.19 C。21 D.234 以下程序運行時輸出結果的第一行是 C ,第二行是 D ,第三行是 C 。int c=0;void fl (int x, int *sum) int y=0; x+; y+

16、; c=c+y; sum=(x+y)/c;main( ) int a,b= 100; for(a=0;a<3;a+ ) fl(a,b); printf("%d %d d n",a,b,c);37. A。0 1 2 B。0 2 3 C.0 2 1 D。1 2 138。 A.0 1 2 B.0 2 3 C.2 2 4 D。1 1 239. A。 1 2 3 B。2 4 3 C。 2 1 3 D.1 4 3 江 蘇 大 學 試 題 第6頁5 以下程序運行時輸出的兩個數分別是 B 和 C .main() int x=1,y,k; for(k=0;k5;k+) int x=1;

17、 x+; if(k=4) y=x; printf("%d,d”,x,y);40. A. 0 B. 1 C. 2 D. 341. A。 0 B. 1 C。 2 D。 36 以下程序運行時輸出第一個數是 B ,第二個數是 _C_ ,第三個數是 _D_ 。include math.h> main() static int a33=0,i,j; for(i=0;i3;i+) for(j=0;j3;j+) switch(abs(i-j) case 0:if(i=0|i=2) aij+=3; else aij+;break; case 1:aij+=2;break; case 2:aij+

18、=3; printf("d,d,%d”,a11,a12,a20); 42。 A。 0 B. 1 C. 2 D. 343。 A。 0 B. 1 C. 2 D。 344. A. 0 B。 1 C。 2 D. 37 下列程序輸出的兩個數分別是 D_ 和 _B_ . main() static int x33=1,2,5,6,7,8,9,(p)3;p=x;printf(“dn”,(p+1)1,p00);45。 A. 0 B。 2 C. 5 D. 646. A. 0 B。 1 C. 2 D. 3 江 蘇 大 學 試 題 第7頁8 下列程序的程序輸出結果為 C 、 B 、 D 。void swa

19、p(int a,int b) int t=0; if(ab)t=a;a=b;b=t;main() int x=15,y=12,z=20;if(x>y)swap(x,y);if(xz)swap(x,z);if(y>z)swap(y,z);printf(“%dt%dt%dn”,x,y,z); 47. A. 0 B。 12 C。 15 D。 2048. A. 0 B. 12 C。 15 D. 2049。 A。 0 B。 12 C。 15 D。 209 若有函數定義:int f( ) int x =4, y=3, z=2; return x, y, z;則調用函數f后的返回值是 D 。50

20、. A. 4,3,2 B。 4 C。 3 D。 2一、 完善程序題(30分,每空2分,請涂寫在答題卡上)1、 用遞推法計算某一級數的近似值,直到n取一值使得:| x(2n+1)/n! |1e-6為止。級數如下:x-x3/(31!)+x5/(52!)x7/(73!)+.+x(2n+1)/((2n+1)n!)+。#includestdio.h>#includemath。h>float g(float x) float t=x,sum=t,s=1;int n=0;while( A 1e-6) n+;s=-s;t=t* C ;sum=sum+s*t/ B ;return sum;main(

21、 ) float x;scanf(“f”,&x);printf(“s=f”,g(x);51. A. fabs(t) B. fabs(n) C。 sum D。 n 江 蘇 大 學 試 題 第8頁52。 A。 xx B. xx/(n+1) C. xx/n D。 x*x/(2n+1)53。 A。 n(2*n+1) B。 (2*n+1) C. n(2*n1) D。 n*2*(n+1)2、輸入一個不包含空格的字符串,判斷輸入的字符串是否為回文,是回文則輸出“Right!”,不是則輸出“Wrong!”?;匚氖窍鄬τ谥行淖笥覍ΨQ的字符串。如:字符串“abcba”和“abddba”是回文,而字符串“a

22、bcAa”不是回文。include<stdio。hint f(char *p) char p1,p2; p1=p2=p; while(*p2+); B ; while( C ) if( B ) return 0; p1+; p2-; return 1;main() char s200; printf(“please input the string”);scanf(“%s”,s); if( _ D_ ) printf(“Right!”); else printf(“Wrong!");54. A。 p2=p2-2 B. p2=p21 C. p2=p2+1 D. p2=p2+255

23、。 A。 p1>=p2 B. p1>p2 C。 p1=p2 D. p1<p256。 A. p1=p2 B。 p1!=p2 C。 p1p2 D. p1<p257. A。 si!=0' B。 si=0 C。 f(s)=0 D。 f(s)3. 以下程序實現將a數組中后8個元素用遞歸的方法進行從大到小排序的功能.void sort(int *x,int n);main() int a12=5,3,7,4,2,9,8,32,54,21,6,43,k; sort( _C_ ,8); for(k=0;k12;k+)printf(”d",ak);void sort(int x,int n) int j,t; if(n=1)return; for(j= _A_ ;j<n;j+) if( _ A_ ) t=x0;x0=xj;xj=t; sort(x+1, A_ );58。 A。 a B. a+1 C。 a+4 D. a+859。 A. 0 B. 1 C。

溫馨提示

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

評論

0/150

提交評論