精選C語言試卷(帶答案)_第1頁
精選C語言試卷(帶答案)_第2頁
精選C語言試卷(帶答案)_第3頁
精選C語言試卷(帶答案)_第4頁
精選C語言試卷(帶答案)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上2006-2007學年第二學期考試試卷A卷 考試科目 C語言程序設計 考試方式 閉卷 完成時限 2小時 擬題人 審核人 批準人 2007年 7 月 5 日機械、電氣、信息、生化、輕工、經管、理學院 2006年級 各理工科專業(yè)題序一二三四五六總分得分說明:1. 應將全部答案寫在答卷紙對應的題號處;否則作無效處理;2. 編程題應寫明題號,若答卷紙不夠,請寫在背面,不要另添卷紙;3. 考試完成后,必須將試卷與答卷同時交回。一、判斷題(10小題,每題1分,共10分;用表示正確,用×表示錯誤)1在循環(huán)體內使用break語句和continue語句的作用相同。2函數返回值

2、的類型最終取決于函數定義時形參的類型。3else語句一定要與if語句配對使用,程序中else語句的個數一定小于或者等于if語句的個數。4從狹義角度講,算法是解決一個問題采取的方法和步驟的描述。51/2的結果是0,所以1.0/2的結果也是0。6a=b=c=5可以理解為a=(b=(c=5)。7假設有語句int a10=1,2,3,*p;p=a;則p+完全等價于a+。8for(;)等價于while(1)語句。9假定int類型變量占用兩個字節(jié),若有定義:int x10=0,2,4;,則數組x在內存中所占字節(jié)數是6。10char *sp ="welcome"可以寫成char *sp=

3、"welcome" 。二、單選題(16小題,每題1分,共16分)1以下數組定義中錯誤的是:(A) int x3 =0; (B) int x23=1,2,3,4,5,6;(C) int x3=1,2,3,4,5,6;(D) int x23=1,2,3,4,5,6;2設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(fp)的返回值為:(A)EOF (B)NULL (C) 0 (D)非0值 3有以下程序:main()int y=10;while(y-) ; printf(“y=%dn”,y);程序執(zhí)行后的輸出結果是:(A) y=0; (B)y=-1;(C) y=

4、1 (D)while構成無限循環(huán)4. 若有以下宏定義:#define N 2 #define Y(n) (N+1)*n 則執(zhí)行語句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19(D)無定值 5以下敘述中錯誤的是:(A)c程序必須由一個或者一個以上的函數組成。(B)函數調用可以作為一個獨立的語句存在。(C)若函數有返回值,必須通過return 語句返回。(D)函數形參的值也可以傳回給對應的實參。6設有如下定義的變量union data int i; char ch;float f;b;則變量b占用內存的字節(jié)數是(假設int類型占2個字節(jié),char類型占1個字節(jié)

5、,float類型占4個字節(jié)):(A) 4 (B)5 (C) 6 (D)77以下敘述中錯誤的是:(A)c程序中的#include 和#define 行均不是c語句(B)除逗號運算符外,賦值運算符的優(yōu)先級最低(C)c程序中, “j+;”是賦值語句(D)c程序經過編譯、連接步驟之后,才能形成一個真正可執(zhí)行的二進制機器指令文件。8. 能正確表示a 和b 同時為正或同時為負的邏輯表達式是:(A) (a>=0|b>=0)&&(a<0|b<0) (B)(a>=0&&b>=0)&&(a<0&&b<0

6、) (C) (a+b>0)&&(a+b<=0) (D) a*b>0 9對于一個正常運行的c程序,以下敘述中正確的是:(A)程序的執(zhí)行總是從main函數開始,在main函數結束。(B)程序的執(zhí)行總是從程序的第一個函數開始,在main函數結束。(C)程序的執(zhí)行總是從main函數開始,在程序的最后一個函數中結束。(D)程序的執(zhí)行總是從程序中的第一個函數開始,在程序的最后一個函數中結束。10設變量x和y均已經正確定義并賦值。以下if語句中,在編譯時將產生錯誤信息的是:(A)if(x+);(B)if(x>y &&y!=0)(C) if(x>0

7、) x-(D)if(y<0); else y+;else x+;11設已有定義:float x; 則以下對指針變量p進行定義且賦初值的語句中正確的是:(A)float *p=1024;(B)int *p=(float)x;(C)float p=&x;(D)float *p=&x;12有以下程序:main() int i,j;for(i=1;i<4;i+) for(j=i;j<4;j+) printf(" %d*%d=%d ",i,j,i*j); printf("n");程序運行后的輸出結果是:(A)1*1=1 1*2=2

8、 1*3=3 (B)1*11 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9(C)1*1=1 (D)1*1=11*2=22*2=4 2*1=2 2*2=4 1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=913按照c語言規(guī)定的用戶標識符命名規(guī)則,不能出現在標識符中的是:(A)大寫字母 (B)連接符(C)數字字符 (D)下劃線14設有定義:int k=0;以下選項的四個表達式中與其他三個表達式的值不相同的是:(A)k+(B)k+=1 (C)+k(D)k+115有以下程序main() char ch="uvwxyz&quo

9、t;,*pc; pc=ch;printf(" %cn",*(pc+5);程序運行后的輸出結果是:(A)z (B)0(C)元素ch5的地址 (D)字符y的地址16有以下函數:int fun(char *s) char * t=s;while(*t+);return (t-s);該函數的功能是:(A)比較兩個字符串的大小 (B)計算s所指向字符串占用內存字節(jié)的個數(C)計算s所指字符串的長度 (D)將s所指字符串復制倒字符串t中16有以下函數:int fun(char *s) char * t=s;while(*t+);return (t-s);該函數的功能是:(A)比較兩個字

10、符串的大小 (B)計算s所指向字符串占用內存字節(jié)的個數(C)計算s所指字符串的長度 (D)將s所指字符串復制倒字符串t中三、基礎填空題(14空,每空1分,共14分)1以下程序的輸出結果是 。#include <string.h>main() printf(“%dn”,strlen("IBMn012n");2執(zhí)行以下程序后的輸出結果是main() int a=10;a=(3*5,a+4);printf("a=%dn",a);3排序是數據處理中最常見的問題,它是將一組數據按遞增或者遞減的次序排列。排列的算法很多。常用的算法有 法和選擇法。4設有定

11、義“char web20;”,要將字符串“”賦值給字符數組web的語句是 。5一個函數用于接收一個字符和一個整數,并返回一個字符,函數名為love_c,則該函數的原型說明為 。6c語言規(guī)定,簡單變量作函數參數時,他和對應的形參之間的數據傳遞方式是 。7判斷字符變量x是小寫英文字母字符的C語言表達式是 。8程序中調用了庫函數strcmp,必須包含頭文件 。9若x=13,y=25,z=-17,則表達式(p=(x<y)?x:y)<z?p:z)的值為 。10下列程序段的的輸出結果是 。 char a=010,b=10;printf(" %dn",a&b<&

12、lt;2);11表達式中的類型轉換分為兩種:一種是隱式數據類型轉換;另一種是 數據類型轉換。12數組是順序存儲結構,它的存儲分配方式是“靜態(tài)”的。 是一種動態(tài)的數據結構,它由若干個結點鏈接而成,與數組最大的不同是結點在內存中并不占據連續(xù)的存儲空間。13有定義: int a3=1,2,3,4,5,6,8,9,10;則printf("%d",*(*(a+1)+2);語句的輸出結果為 。 14以下程序的輸出結果是 。main() int a,b,c=240;a=c/100%9;b=(-1)&&(-1);printf("%d,%dn",a,b);

13、四、程序填空題(10空,每空2分,共20分)1下面程序運行后輸入以1結束的一批整數,輸出其中的最大值。例如 :輸入-3 -8 -10 -1后,輸出:-3#include<stdio.h>void main() int max,x; scanf("%d",&x);if(x!=-1) _ (1) _;while(_ (2) _)if(max<x) max =x;_ (3) _;printf(" max%dn",max);(1)(A)x=max (B)max =x(C) x+ (D)max=0(2)(A)x!=-1 (B)max>

14、;=0(C)x=-1 (D)max!=-1(3)(A)max=max+1 (B) x=x+1(C)scanf(“%d”,&x); (D) else max =-12下面程序通過字符指針實現,將s1指向的字符串“I have a dream!”反向拷貝到s2中。#include<stdio.h>#include <stdlib.h>void main()char *s1="I have a dream! ",*s2,*t;int len;len= _ (4) _;s2=(char *)calloc(len+1,sizeof(char);t=s2

15、;while(*s1!=0)s1+;do s1-;len-; _ (5) _; s2+;while(len>0);*s2=0;s2=t;puts(s2);(4)(A) strcpy(s1) (B)st(C) *s1 (D) strlen(s1)(5)(A)*s1=*s2 (B)*s2=*s1(C)&s2=&s1 (D)&s1=&s23建立一個鏈表,每個結點包括:學號、姓名、性別、年齡。#define LEN sizeof(struct student)struct student char num6;char name8; char sex2; int a

16、ge; struct student* next;stu10;main() struct student *p,*pt,*head; int i,length,iage; printf("Input length of list (<10). "); scanf("%d",&length);/*建立鏈表*/for(i=0;i<length;i+) p=(struct student*)malloc(LEN); if(i=0) _ (6) _; else pt->next=p;pt=p;printf(“NO:”);scanf(“%

17、s”,p->num);printf(“name:”);scanf(“%s”,p->name);printf(“sex:”);scanf(“%s”,p->sex);printf(“age:”);scanf(“%d”,&p->age);_ (7) _;p=head;printf(“n NO. name sex agen”);while(_ (8) _) printf(“%4s%8s%6s%6dn”,p->num,p->name,p->sex,p->age);p=p->next;.(6)(A) head=pt=p; (B)p=pt=hea

18、d;(C) head=p; (D)p=head;(7)(A)p->next=p; (B)head->next =NULL;(C) pt->next=NULL; (D)p->next =NULL;(8)(A) p!=NULL (B)p=NULL(C)head!=NULL (D)head=NULL4一球從100米高度自由落下,每次落地后反彈跳回原高度的一半,再落下。求它再第10次落地時,共經過多少米?第10次反彈多高?main() float sn=100,hn= _ (9) _; int n; for(n=2;n<=10;n+) sn=sn+_ (10) _; /*

19、第n次落地時共經過的米數*/ hn=hn/2; /*第n次反彈的高度*/printf(“第10次落地時候共經過%fn”,sn);printf(“第10次反彈%fn”,hn);(9) (A)100 (B)0(C)sn/2(D) sn/4(10)(A)hn (B)hn/2(C)2*hn(D)4*hn五、程序閱讀題(5小題,每題4分,共20分)(認真閱讀程序,寫出程序運行結果,注意輸出數據的格式)1程序1 void main()char ch7=“65ab21”;int i,s=0;for(i=0;chi>=0&&chi<9;i+)s=10*s+chi-0;printf(

20、“%dn”,s);2程序2main() int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i<3;i+) printf(“%d”,t2-ii);3程序3 main() int row,column;for (row=1;row<=4;row+)for (column=1;column<=row;column+) printf("*"); printf(“n”);4程序4int k=0;void fun(int m) m+=k; k+=m; printf("m=%d k=%d ",m,k+);main() int i=

21、4;fun(i+);printf(" i=%d k=%d n", i,k);5程序5#include <stdio.h>struct stuint num;char name10;int age;void py(struct stu*p) printf(“%sn”,(*p).name);void main()struct stu student3=1001,"sun",25,1002,"ling",23,1003,"shen",22;py(student+2);六、程序設計題(2題,每題10分,共20分

22、)1設a是一個整型數組,n和x都是整數,數組a中的元素都是互異的。請編寫函數find(a,n,x),在數組a的前n個元素中查找x,如果找到,返回x在數組a中的位置;如果沒有找到,返回-1。 例如:數組a中有元素1,4,3,2,5,調用find(a,5,2)后返回4,因為在a的前5個元素中找到了2,它在a中的位置是4;而調用find(a,5,10)后返回-1,因為在a的前5個元素中沒有找到10。2編寫一程序,從鍵盤輸入20個實數,計算出平均值,將平均值和大于平均值的數寫入到文本文件a1.txt中。 專業(yè)班級 學號 姓名 裝訂線 2006-2007學年第二學期考試試卷A卷 考試科目 C語言程序設計 考試方式 閉卷 完成時限 2小時 擬題人 審核人 批準人 2007年 7 月 5 日機械、電氣、信息、生化、輕工、經管、理學院 2006年級 各理工科專業(yè)參考答案及評分標準一、判斷題(每題1分,共10分) 注:用表示正確,用×表示錯誤12345678910×××××二、單選題(每題1分,共16分)12345678910111213141516BDBCDACDAB或CDBBAAC三、基礎填空題(每題1分,共14分)1 8 2 a14 3 冒泡 4 strcpy(web

溫馨提示

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

評論

0/150

提交評論