【正文】
rintf(%\n, z )。main(){double s[10][22]。這系統(tǒng)就保證不使函數(shù)帶回任何值,二維數(shù)組的第一維可以省略。x)。 break。i能否整除x,可用求余運算x%i等于0來判定。 i =x/2。includemain(){ int i,j,【15】。i++,j){k=str[i]。}解析: 顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即ij。main(){char b[17]={0123456789ABCDEF}。scanf(%ld,amp。n=n/base。i=0。}解析: 程序中,字符數(shù)組b存儲十六進制的16個數(shù)字符,整型數(shù)組c存儲譯出的十六進制數(shù)的各位數(shù)值。當n的十六進制數(shù)的個位、十位、百位等依次存放于數(shù)組c中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標),取十六進制數(shù)字符表中的字符b[d]輸出。int sign。sign=(*s==′′)?1:1。s++)n=10*n+(*s′0′)。以后的for循環(huán)將后面的數(shù)字符當作十進制數(shù)的各位數(shù)字譯出一個長整數(shù)n。(17)設有定義“struct {int a。abc。4650 A C B B A試題三一、選擇題(11)以下敘述中正確的是 A)構成C程序的基本單位是函數(shù) B)可以在一個函數(shù)中定義另一個函數(shù) C)main()函數(shù)必須放在其他函數(shù)之前 D)C函數(shù)定義的格式是Kamp。 D)a=4000L*10L(17)以下不正確的敘述是 A)在C程序中,逗號運算符的優(yōu)先級最低 B)在C程序中,APH和aph是兩個不同的變量 C)若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變 D)當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值(18)sizeof(float)是 A)一個雙精度型表達式 B)一個整型表達式 C)一種函數(shù)調(diào)用 D)一個不合法的表達式(19)若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為 A)4 B)16 C)32 D)52(20)下面程序的功能是把316表示為兩個加數(shù)的和,使兩個加數(shù)分別能被13和11整除,請選擇填空。}while(______)?! A)k/11 B)k%11 C)k/11==0 D)k%11==0(21)設有定義:int n=0,*p=amp。 D)*p=5?! rintf(%d\n,y)。a[3],b。 int x,y?! A)3 B) C)0 D)(28)下列程序的輸出結果是 int b=2?! es += func(amp。 B)char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′}。char a。k,*p2=amp?! =(*p1)/(*p2)+7。 則數(shù)組 array所占的空間為 A)4個字節(jié) B)5個字節(jié) C)6個字節(jié) D)7個字節(jié)(32)若已定義: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i?! )char c1[]={′1′,′2′,′3′,′4′,′5′}?! ain() { int i。i++)a[i]=*p?! +=b?! ?.. k=prt_char(G)。}a。} 程序的輸出結果是 A)13 B)14 C)208 D)209(40)在16位IBMPC機上使用C語言,若有如下定義 struct data { int i。 則結構變量b占用內(nèi)存的字節(jié)數(shù)是 A)1 B)2 C)7 D)11(41)下面程序的運行結果是 include main() { int a=1,b=10?! rintf(a=%d,b=%d\n,a,b)。i++) { t=a[i]。 int i,s=0。i++)s+=b[i]。 } main() { printf(%d\n,fib(3))。 C)ABCDEFGHIJKL D)IJKLABCDEFGH(45)以下程序有錯,錯誤原因是 main() { int *p,i?! =amp?! ?..... } A)p和q的類型不一致,不能執(zhí)行*p=*q。 float y。 z=x^y2。 scanf(%s,infile)?! xit(0)?! close(in)。 charp =【7】while (*p)putchar(7),請?zhí)羁?。fwrite(b,【10】,1,fp)。解析: 在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),一個double型數(shù)據(jù)占8個字節(jié)。printf(%d\n,d)。請按題意,完成填空。}main (){ int scanf (%d , amp。for (i=0 。}解析: 本題題干信息是能整除且不是偶數(shù)的所有整數(shù)之和?!?5】if(s[*k]s[i])*k=i。fun(a, 10, amp。(12)mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回?!?7】!= ′\0′。(13)以下程序的輸出結果為【18】。}解析: 宏替換的原則是按原樣替換,本題中遇到形參x則以實參k+1替換,其他字符不變。struct node{ int info。即定義一個指向自身的結構體指針。}student[50]。 _A C)ba int D)_123a=0 D)a=10‖a=0(16)設以下變量均為int類型,表達式的值不為7的是 A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)(17)若有說明:int *p,m=5,n。p)。n)。*p=m。 D)p=amp。 n。n。 C)a=10 amp。 B)a=0|a=10 A)a=10 or a=0 D)不確定(15)能正確表示邏輯關系:“a≥10或a≤0”的C語言表達式是 C)double B)float A)int int(14)設變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數(shù)據(jù)類型為 goto la0 A)A D)(13)下面四個選項中,均是不合法的用戶標識符的選項是 C) B)123e3 A) D)必須在最后(12)下列數(shù)據(jù)中,不合法的C語言實型數(shù)據(jù)的是 C)可以任意 B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面 A)必須在最開始 試題四一、選擇題(11)C語言規(guī)定,在一個源程序中,main函數(shù)的位置 4650 A B B C B 4145 B A B D D 3640 B C D A D 3135 C D B D C 2630 A C B C C 2125 D D A C A 1620 D D B C B 1115 A C B B A解析: fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp),其中:buffer:是一個指針變量,是要輸出數(shù)據(jù)的起始地址size:要寫的字節(jié)數(shù)count:要進行寫多少個size字節(jié)的數(shù)據(jù)項fp:文件型指針一、選擇題int num。}。(14)以下定義的結構體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù)。a=++JFT(k+1)。return(i)。int mystrlen(char *str){ int i。printf(%d, %d\n , k, a[k])。}main(){int a[10]={ 876,675,896,101,301,401,980,431,451,777},k。include include int fun(int *s, int t, int *k){ int i。 i++)printf (%d , aa [i])。fun (x, aa, amp。clrscr()?!?3】if(x%i==0)pp[j++]=i。(10)以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。main(){ int a=5,b=4,c=3,d。}解析: 本題主要考查函數(shù)fwrite (char *pt,unsigned size,unsigned n,FILE *fp),把pt所指向的n*size個字節(jié)輸出到fp所指定的文件中。}解析: 本題選通過for循環(huán)從鍵盤讀入20個字符,然后在最后賦一定值′\0′后為結束標志,再使指針P指向字符串的首地址。for (i=0;i20;i++)s[i]=getchar ()?! A)程序完成將磁盤文件的信息在屏幕上顯示的功能 B)程序完成將兩個磁盤文件合二為一的功能 C)程序完成將一個磁盤文件復制到另一個磁盤文件中 D)程序完成將兩個磁盤文件合并并在屏幕上輸出(50)C語言中,能識別處理的文件為 A)文本文件和數(shù)據(jù)塊文件 B)文本文件和二進制文件 C)流文件和文本文件 D)數(shù)據(jù)文件和二進制文件二、填空題(6)下面程序是指從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁??! xit(0)?! canf(%s,outfile)?! har ch,infile[10],outfile[10]。} example。語句 C)q沒有指向具體的存儲單元,所以*q沒有實際意義 D)q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q?! ?p=40。 p=amp。 printf(\n)?! A)22 B)10 C)34 D)30(43)有如下程序: long fib(int n) { if(n2)return(fib(n1)+fib(n2))?! or(i=6。a[n1i]=t?! or(i=0。a++?! ouble f。[1]=0。有錯,它是函數(shù)調(diào)用語句,不能用void說明 B)變量名不能使用大寫字母 C)函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾 D)函數(shù)名不能使用下劃線(38)以下敘述中不正確的是 A)在不同的函數(shù)中可以使用相同的名字的變量 B)函數(shù)中的形式參數(shù)是局部變量 C)在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效 D)在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效(39)有以下程序: include union pw { int i?! )for,a+=b,ab B)format,a+=b C)a+=b,a=21,b=10 D)以上結果都不對(36)C語言允許函數(shù)類型缺省定義,此時函數(shù)值隱含的類型是 A)float B)int C)long D)double(37)以下程序有語法錯誤,有關錯誤原因的正確說法是 main() { int G=5,k?! 上面程序輸出結果是 A)6 B)8 C)4 D)2(35)下面程序段的運行結果是 char *format=%s,a=%d,b=%d\n?! or(i=0。(34)若有以下程序 includea[i]) C)p[i] D)a[10](33)以下不正確的定義語句是 A)double x[5]={,}。 printf(b=%d\n,b)?! =p1==amp。s)。s=ABCDE?! rintf(%d\n,res)。 return(b)。 y=(x+)/。 則b的值是 A)5 B)6 C)9 D)8(25)設有int x=11;則表達式(x++*1/3)的值是 A)3 B)4 C)11 D)12(26)請選出以下語句的輸出結果 printf(%d\n,strlen(\t\\065\xff\n))