【正文】
int a=6,b=2,c。c=f(a)/f(b)。printf(%d\n,c)。}int f(int x){ int y。y=x++*x++。return y。}A 9 B 6 C 36 D 1815 下列程序輸出結(jié)果是___。includemy(){ static int x=3。x++。return(x)。}main(){ int i,x。for(i=0。i=2。i++) x=my()。printf(%d\n,x)。}A 3 B 4 C 5 D 616 下列程序的輸出結(jié)果是___。includeint abc(int u,int v){ int w。while(v) { w=u%v。 u=v。 v=w。 }return u。}main(){ int a=24,b=16,c。c=abc(a,b)。printf(%d\n,c)。}A 8 B 6 C 5 D 417 下列程序運行后的輸出結(jié)果是___。main(){ static char s[]=abcdefgca。p(s)。 printf(s[]=%s\n,s)。}p(char s[]){ int i,j。for(i=j=0。s[i]!= 39。\039。i++) if(s[i]!=39。a39。+2) s[j++]=s[i]。s[j]= 39。\039。}A s[]=abcdefgca B s[]=abdefga C s[]=bcdefgc D 程序有錯18 下列程序運行后的輸出結(jié)果是___。void main(){ int m=4,n=2,k。k=fun(m,n)。 printf(%d\n,k)。k=fun(m,n)。 printf(%d\n,k)。}int fun(int x,int y){ static int n=3,i=2。i+=n+1。 n=i+x+y。return(n)。}A 12 B 12 C 12 D 1212 23 25 1619 下列程序運行后的輸出結(jié)果是___。int x=1。main(){ int i=5。fun(i)。printf(%d,%d\n,i,x)。}fun(m)int m。{ m+=x。x+=m。{ char x=39。A39。 printf(%d\n,x)。 }printf(%d,%d\n,m,x)。}A 65 B A C A D 656,1 6,1 6,7 6,76,1 6,1 6,7 5,720 下列程序運行后,若從鍵盤輸入ABC!四個字符后,程序輸出是___。includemain(){ void receiv()。receiv()。}void receiv(){ char c。c=getchar()。putchar(c)。if(c!=39。!39。) receiv()。putchar(c)。}A ABC!! B ABC!ABC! C ABC!!CBA D ABCABC二 填空題(每空3分,共30分)1 函數(shù)調(diào)用語句:fun((a,b),(c,d,e))。,實參個數(shù)為___。2 凡在函數(shù)中未指定存儲類別的局部變量,其默認的存儲類別為___。3 在一個C程序中,若要定義一個只允許本源程序文件中所有函數(shù)使用的全局變量,則該變量需要定義的存儲類別為___。4 C語言規(guī)定,調(diào)用一個函數(shù)時,實參變量和形參變量之間的數(shù)據(jù)傳遞方式是___。5 運行下面程序,其輸出結(jié)果是___。include int x,y。one(){ int a,b。a=25,b=10。x=ab。y=a+b。}main(){ int a,b。a=9,b=5。x=a+b。y=ab。one()。printf(%d,%d\n,x,y):}6 運行下面程序,其輸出結(jié)果是___。include main(){ void printd()int n=123。printd(n)。}void printd(int n){ int i。if(n0) { n=n。 putchar(39。39。)。 }putchar(n%10+39。039。)。if((i=n/10)!=0) printd(i)。}7 運行下面程序,從鍵盤輸入四個字符xyz,其輸出是___。include main(){ void recursion()。recursion()。}void recursion(){ char c。c=getchar()。putchar(c)。if(c!=39。39。) recursion()。 putchar(c)。}8 以下程序的輸出結(jié)果是___。include void fun(int x){ if(x/20) fun(x/2)。 printf(%d ,x)。 }main(){ fun(3)。 printf(\n)。 }9 以下程序運行結(jié)果是___。int a=1。int f(int c){ static int a=2。c=c+1。return (a++)+c。}main(){ int i,k=0。for(i=0。i2。i++){ int a=3。 k+=f(a)。 }k+=a。printf(%d\n,k)。}10.以下程序的運行結(jié)果是___。int k=0。void fun(int m){ m+=k。 k+=m。 printf(m=%d\n k=%d ,m,k++)。 }main(){ int i=4。fun(i++)。 printf(i=%d k=%d\n,i,k)。}三 程序填空題(每空3分,共30分)1 一個整數(shù)稱為完全平方數(shù),是指它的值是另一個整數(shù)的平方。例如81是個完全平方數(shù),因為它是9的平方。下列程序是在三位的正整數(shù)中尋找符合下列條件的整數(shù):它既是完全平方數(shù),且三位數(shù)字中又有兩位數(shù)字相同:例如144(12*12)、676(26*26)等,程序找出并輸出所有滿足上述條件的三全數(shù)。程序如下:main(){ int n,k,a,b,c。for(k=1。k++){ 【1】 if(n100) 【2】 。if(n999) 【3】 。a=n/100。b= 【4】 。c=n%10。if(flag(a,b,c)) printf(n=%d=%d*%d\n,n,k,k)。}}flag 【5】 { return(!((xy)*(xz)*(yz)))。 }2 以下程序的功能是應(yīng)用近似公式計算ex的值。其中,函數(shù)f1計算每項分子的值,函數(shù)f2計算每項分母的值。共取nmax項之和作為e的近似值。float f2(int n){ if(n= =1) return 1。else return 【6】 。}float f1(float x, int n){ int i。 float j= 【7】 。for(i=1。 【8】 。i++) j=j*x。return j。}define nmax 20main(){ float x,exp=。 int n。printf(Input x value:)。scanf(%f,amp。x)。for(n=1。nnmax。n++) exp= 【9】 。printf(x=%f,exp(x)=%f\n,x, 【10】 _)。}指針一 單項選擇題(每題2分,共40分)1 以下敘述中錯誤的是___。A 在程序中凡是以“”開始的語句行都是預(yù)處理命令行B 預(yù)處理命令行的最后不能以分號表示結(jié)束C define MAX是合法的宏定義命令行D C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進行的2 若程序中有宏定義行:define N 100 ,則以下敘述中正確的是___。A 宏定義行中定義了標識符N的值為整數(shù)100B 在編譯程序?qū)源程序進行預(yù)處理時用100替換標識符NC 對C源程序進行編譯時用100替換標識符ND 在運行時用100替換標識符3 若有如下宏定義:define N 2define y(n) ((N+1)*n)則執(zhí)行下列語句:z=4*(N+y(5))。后的結(jié)果是___。A 語句有錯誤 B z值為68 C z值為60 D z值為1804 以下程序運行后的輸出結(jié)果是___。define F(X,Y) (X)*(Y)main(){ int a=3,b=4。printf(%d\n,F(a++,b++))。}A 12 B 15 C 16 D 205 以下程序運行后的輸出結(jié)果是___。define f(x) (x*x)main(){ int i1,i2。i1=f(8)/f(4)。 i2=f(4+4)/f(2+2)。printf(%d,%d\n,i1,i2)。}A 64,28 B 4,4 C 4,3 D 64,646 若已定義a為int型變量,則___是對指針變量p的正確說明和初始化。A int p=amp。a。 B int *p=a。 C int *p=*a。 D int *p=amp。a。7 已知下列說明語句:static int a[]={2,4,6,8}static int *p[]={a,a+1,a+2,a+3}。int **q。q=p。則表達式**(q+2)的值是___。A 6 B 2 C 4 D 88 下面是一個初始化指針的語句:int *px=amp。a。,其中指針變量的名字應(yīng)該___。A *px B a C px D amp。a9 若指針px為空指針,則___。A px指向不定 B px的值為零 C px的目標為零 D px的地址為零10 對下語句int *px[10]。,下面正確的說法是___。A px是一個指針,指向一個數(shù)組,數(shù)組的元素是整數(shù)型。B px是一個數(shù)組,其數(shù)組的每一個元素是指向整數(shù)的指針。C A和B均錯,但它是C語言的正確語句。D C語言不允許這樣的語句。11 具有相同基類型的指針變量p和數(shù)組y,下列寫法中不合法的是___。A p=y B *p=y[i] C p=amp。y[i] D p=amp。y12 已知static int a[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p。 ,則表達式 *(p[0]+1)+**(q+2) 的值是___。A 5 B 4 C 6 D 713 說明語句int *(*p)()。的含義為___。A p是一個指向int型數(shù)組的指針B p是指針變量,它構(gòu)成了指針數(shù)組C p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個整型D p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個指向整型的指針14 設(shè)有如下程序段char s[20]=Beijing,*p。 p=s。則執(zhí)行p=s。語句后,以下敘述正確的是___。A 可以用*p表示s[0]B s數(shù)組中元素個數(shù)和p所指字符串長度相等C s和p都是指針變量D 數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相同15 設(shè)int型變量i、n均已定義,指針變量ss2各指向一個字符串。在for(i=0。in。i++)循環(huán)中,下列語句用以實現(xiàn)將s2所指字符串中前n個字符復(fù)制到s1所指字符串中,其中代碼正確的是___。A *s1++=*s2++。 B s1[n1]=s2[n1]。C *(s1+n1)=*(s2+n1)。 D *(++s1)=*(++s2)。16 給出下列程序的運行結(jié)果___。includ