二級C語言考試試卷_第1頁
二級C語言考試試卷_第2頁
二級C語言考試試卷_第3頁
二級C語言考試試卷_第4頁
二級C語言考試試卷_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、二級 C語言考試試卷(考試說明及第一部分計(jì)算機(jī)基礎(chǔ)知識略)第二部分 C語言程序設(shè)計(jì)一、選擇題(用答題卡答題,答案依次填在2130答題號內(nèi))21執(zhí)行 int k=11 ; k=13*k+ ; 后k的值是 。A. 0 B. 3 C. 4 D. 1222. 以下常量中正確的是 。 A. 'abc' B. ' xl23' C. 3.145E-1.2 D. "a"23設(shè)有int a; 以下不能正確表達(dá)數(shù)學(xué)關(guān)系10<a<15的表達(dá)式是 。 A10<a<15 B. a=11|a=12|a=13|a=14 C. a>10&

2、;&a<15 D. ! (a<=10)&& ! (a> = 15)24. 若有 int a4 = 1,2,3,4,5,6,7,8,9,10, *p=*(a+ 1) ;則值為9 的表達(dá)式是 。Ap+=3,*p+ B. p+=4,*(p+)C. p+=4,*+ p D. p+=4, + *p 25. 以下關(guān)于if語句的錯(cuò)誤描述是 。 A條件表達(dá)式可以是任意的表達(dá)式 B條件表達(dá)式只能是關(guān)系表達(dá)式或邏輯表達(dá)式C. 條件表達(dá)式的括號不可以省略D與else配對的if語句是其之前最近的未配對if語句26設(shè)有以下函數(shù)定義,則返回的函數(shù)值是 。main( ) int x

3、, *y ; y=fun(&x) ; int *fun( int *a) int *t ; *a=99 ; t= a ; return t ; A. 無確切的值 B. 形參a的地址C主程序中變量x的地址 D. 函數(shù)中變量t的地址27. 以下程序段輸出結(jié)果是 。 int a=0 , b=4 , k=2 ; k=a+1>0|(+a<0)&&(!(b-<=0) ; printf("% d, %d, %d" , k , a , b );28. 設(shè)有基類型相同的兩個(gè)指針變量,則不能對它們進(jìn)行 運(yùn)算。A+ B. - C. + D. 29. 語句

4、 能正確完成賦字符串的功能。Achar s4 ; s0= "string" ;B. char *s ; gets(s) ;C. char *s= "string" ;D. char *s ; strcpy(s , "string" ) ;30. 以下敘述中不正確的是 。 A一個(gè)變量的作用域完全取決于變量說明語句的位置 B外部變量可以在函數(shù)以外的任何位置定義 C內(nèi)部變量的生存期只限于本次函數(shù)調(diào)用,無法將內(nèi)部變量的值保存至函數(shù)的下次調(diào)用 D用static說明一個(gè)外部變量是為了限制其它編譯單位的引用二、填空題(請將答案填寫在答題紙的相應(yīng)答題

5、號內(nèi),每個(gè)答案只占一行)1若有int a=5;a+=a-=-a*a;則a的值是 。2以下程序輸出結(jié)果是 。 enum week SUN=7, MON=1, WED, TUS, THS, FRI,SAT ;main( ) printf("%d",hour(FRI,SUN); hour( int x,int y ) if(y>x)return 24*(y-x);else return -1;3. 以下程序輸出結(jié)果是 。 main( ) extern int x; printf( "%d", x+=2); fun1(2); int x= 1;funl (

6、int x) printf("%d",x+ ); fun2(2); fun2 ( void ) printf("%d", x); int x; printf("%d",x); 4若有宏定義:#define N 2 #define Y(n) (N+1)*n)則執(zhí)行語句z=2*(N+Y(N+2)后,z的值是 。5. 程序 main() int s , p9=1,2,3,4,5,6,7,8,9; printf("n%d",add(p,5);add(int *p ,int n)if(n=1)return *p; else

7、return *p+add(p+1,n-1);程序輸出結(jié)果是 。6. 程序main( ) printf("%s",fun("chance"); char *fun(char*s) int i,j; for(i = j = 0; si != '0' ; i + ) if(si != 'c')sj+ = si; sj = '0' return s;程序輸出結(jié)果是 。7程序 int *s * a,int * b) int *p; p=a;a=b;b=p; return a;main ( ) int x=3,y=4

8、,z=5; swap( swap( &x , &y), &z); printf("%d, %d, %d",x,y,z);程序輸出結(jié)果是 。8程序fun(int n,int *s)int f1,f2; if(n=1|n=2) *s=1; else fun(n-1,&f1); fun(n-2,&f2); *s = 2 * f1 + f2 + 1 ; printf("n%d, %d",f1 ,f2); main( )int x; fun(4, &x); printf("nx= %d",x);程

9、序輸出的第一行是 ,第二行是 ,第三行是 。9程序 main( ) int i,p33 =1,2,3,4,5,6,7,8,9, *p13,(*p2)3; for(i=0; i < 3; i+ )p1i = pi; p2 = p; for(i=1; i< 3;i+ ) printf("%d, %dn", *(*(p1+ i) + 1), *( * +p2+ 1);程序輸出的第一行是 ,第二行是 。10程序main( ) int i,j,a33 = 1,1, * pl, * p2, * p3; pl = a0, p2= a0 + 1, p3= a0 +2; for(

10、i=2;i<9;i+) fun(pl + ,p2 + ,p3 + ); for(i=0; i < 3; i + ) for(j =0; j <3; j + ) printf("% d", aij ); printf("n"); fun(int * ql, int * q2, int * q3)*q3 = *ql + *q2; 程序輸出的第一行是 ,第二行是 ,第三行是 。11函數(shù)g計(jì)算級數(shù)的值,當(dāng)通項(xiàng)的絕對值小于eps時(shí)計(jì)算停止。#include < math. h >float g( float x , float eps

11、 );main( )float x , eps ; scanf("%f%f ",&x,&eps); printf("n%f, %f ", x, g(x, eps) );float g( float x , float eps ) int n=1; float s=1,t=1; do t=t* ; s=s+(n*n+ 1)*t; ; while( >eps); return s;12函數(shù)delstr的功能:在字符串str中刪除所有出現(xiàn)的子串str1。char * delstr(char * str, char * str1)char

12、*p, *p1, *q1;int i;if(*str='0' | * str1 = '0')return str;p = str;while(*p! = '0')p1 = p, q1 = str1;while(*pl!=*q1&&*q1!='0') ;if( p! = p1&&*q1 = '0') for( i=0; *p1!='0' i+,p1+) = *p1; ='0' p+; ;13設(shè)結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)定義如下: typedef struct p i

13、nt x , y ; struct p *next; PNODE;函數(shù)的padd功能是:由pa、pb分別指向的兩個(gè)已經(jīng)存在的鏈表,生成一個(gè)pc指向的新鏈表并返回該新鏈表第一個(gè)結(jié)點(diǎn)的地址。兩個(gè)已存在的鏈表均是按結(jié)點(diǎn)的y值升序排列的有序表,新生成鏈表的結(jié)點(diǎn)仍按y的值升序排列。新鏈表生成規(guī)則是:當(dāng)在pa和pb鏈表中發(fā)現(xiàn)y值相同的結(jié)點(diǎn)時(shí),則在pc鏈表中增加一個(gè)新結(jié)點(diǎn),新結(jié)點(diǎn)的x取值為pa、pb指向的鏈表中對應(yīng)的兩個(gè)結(jié)點(diǎn)的x值之和,新結(jié)點(diǎn)的y取值為pa或pb鏈表中對應(yīng)結(jié)點(diǎn)的y值。程序PNODE * padd(PNODE * pa , PNODE *pb) PNODE * pcr, * pt, * pc;

14、 Pc= NULL; while( ) if(pa-> y = pb -> y) pt= ( )malloc(sizeof(PNODE); pt -> x = pa-> x + pb-> x;pt-> y = pa-> y;pt -> next = NULL; if( pc =NULL) pc =pcr = pt; else pcr - > next = pt; ; pa = pa - > next ; pb = pb - > next; else if ( ) pb= pb-> next; else pa = pa -

15、> next;return pc;14函數(shù)replace的功能是:在ffp指向的二進(jìn)制數(shù)據(jù)文件中查找第一個(gè)出現(xiàn)的整型oldv的值并用整型newv的值替換。如果找到并替換則函數(shù)返回1,否則返回0。# include < stdio.h >main ( ) int st1 10 = 10,11,12,13,14,15,16,17,14,19, st2 10; FILE * fp ; int i; fp = fopen("stud.dat" , "wb" ); fwrite( st1, sizeof(int), 10, fp ); fclos

16、e ( fp ); fp= fopen("stud.dat" , "rb + " ); replace(fp,14,99)?printf("foundandreplaced"): printf("not found"); ; fread( st2, sizeof(int), 10, fp); fclose(fp); for(i=0;i < 10;i + )printf("%d",st2i );replace (FILE * ffp , int oldv , im newv ) int x , i , t=0; rewind(ffp); while( ) fread(&x, sizeof(int), 1 ,ffp); if( x = oldv ) t=l; fseek( ffp, ,SEEK_CUR); x本函數(shù)使用說明見試卷尾部注釋x fwrite(&newv, sizeof(int), 1,

溫馨提示

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

評論

0/150

提交評論