版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、江蘇省計算機等級考試二級C語言筆試輔導(dǎo)1筆試概況考試時間:2小時合格、優(yōu)秀成績要求內(nèi)容題型及分值信息技術(shù) 選擇題(20分)C語言 選擇題(10分) 填空題(30分):簡單填空(5分) 閱讀程序(13分) 完善程序(12分)答題策略2語法考試要求及考題解析(2007秋2010春)1. C語言基本概念 源程序格式、風(fēng)格和結(jié)構(gòu)。main函數(shù)特性。C程序保存。 注釋位置。【考題解析】填空題在一個C語言源程序中,必不可少的是 。答案: main函數(shù)定義單選題.以下敘述中正確的是 。 A在編譯時可以發(fā)現(xiàn)注釋中的拼寫錯誤BC語言程序的每一行只能寫一條語句Cmain( ) 必須位于程序的開始DC語言程序可以由
2、一個或多個函數(shù)組成 答案:D3 單選題 在一個源程序中main函數(shù)的位置 。 A必須在最開始 B必須在最后 C必須在預(yù)處理命令的后面 D可以在其他函數(shù)之前或之后答案:D單選題 下列敘述中正確的是 。 A. main函數(shù)必須出現(xiàn)在其他函數(shù)之前B. main函數(shù)中至少必須有一條語句C. C程序總是從main函數(shù)的第一條語句開始執(zhí)行D. C程序總是在執(zhí)行完main函數(shù)的最后一條語句后結(jié)束答案: C 4單選題 以下敘述中正確的是 。A. C語言系統(tǒng)以函數(shù)為單位編譯源程序B. main函數(shù)必須放在程序開始C. 用戶定義的函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次D. 在一個函數(shù)體內(nèi)可以定義另外一個函數(shù)答案:C
3、全國選擇題 以下敘述中正確的是()。 A) C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行B) 可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行 C) C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束 D) main可作為用戶標(biāo)識符,用以命名任意一個函數(shù)作為主函數(shù)答案:C 5全國選擇題 以下敘述中正確的是 ( ) 。A) C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面。B) C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句C) C程序書寫格式自由,一個語句可以寫在多行上D) 用C語言編寫的程序只能放在一個程序文件中答案:C全國選擇題 以下敘述中正確的是( )。 A)
4、C程序的基本組成單位是語句 B)C程序中的每一行只能寫一條語句C)簡單C語句必須以分號結(jié)束 D)C語句必須在一行內(nèi)寫完答案:C6 基本類型數(shù)據(jù)的表示及使用 系統(tǒng)預(yù)定義類型標(biāo)識符、類型修飾符的使用 基本類型常量的表示及使用 字符串常量形式 關(guān)鍵字。標(biāo)識符。 符號常量的定義與使用 基本類型變量的聲明、初始化, 直接引用變量【考題解析】單選題 在C語言源程序中,不帶任何修飾符的浮點數(shù)直接量(例如:3.14)都是按 類型數(shù)據(jù)存儲的。 答案: double單選題已知sizeof(int)的值為2,為將10!的值存儲到變量f中(10!=3628800),變量f的類型應(yīng)聲明為 。Along int Bint
5、 Cshort int Dunsigned int答案:A 7單選題 以下常量表示中正確的是 (22) 。 A. xff B.5L C. aEb D. 3.14U 答案:B單選題 以下語句中有語法錯誤的是 。printf(%d,0e); B. printf(%f,0e2); C. printf(%d,0 x2); D. printf(%s,0 x2); 答案:A8單選題以下選項中不能用作變量名的是 。 A_float Bswitch Csum D_123 答案: B 填空題在C語言系統(tǒng)中,如果一個變量能正確存儲的數(shù)據(jù)范圍為整數(shù)-3276832767,則該變量在內(nèi)存中占 (3) 個字節(jié)。答案:
6、2 單選題以下選項中,不能用作標(biāo)識符的是 。print B. FOR C. &a D. _00答案:C單選題 以下選項中, 是C語言關(guān)鍵字。 A printf Binclude Cfun Ddefault答案:D學(xué)校單選題 執(zhí)行語句“printf(”byebye101101“);”時輸出到屏幕的結(jié)果為 (22) 。 答案: byye101A 9學(xué)校單選題 表達(dá)式“1e-8/2+1.0f”值的數(shù)據(jù)類型是 (3) 。int B. long C. float D. double 答案:D學(xué)校單選題以下局部變量聲明中正確的是 (2) 。 int char=2; B. void a=0; C. int
7、a=b=0; D. int a, b=a=0; 答案:D10 運算符和表達(dá)式的表示及使用 賦值表達(dá)式,賦值運算符的左值要求 算術(shù)表達(dá)式。+、-運算符左值要求。溢出。 關(guān)系表達(dá)式與邏輯表達(dá)式,邏輯表達(dá)式優(yōu)化處理 逗號表達(dá)式 條件表達(dá)式 表達(dá)式運算中操作數(shù)類型自動轉(zhuǎn)換與強制轉(zhuǎn)換【考題解析】 單選題 若有聲明“double x=3,c,*a=&x,*b=&c;”,則下列語句中錯誤的是 。 Aa=b=0; Ba=&c,b=a; C&a=&b; D*b=*a;答案:C11單選題 若有聲明“char ss8=”Red“;”,則sizeof(ss)的值是 。 A8 B4 C3 D1 答案: A 單選題 設(shè)有
8、定義和聲明如下: #define d 2int x=5; float y=3.83; char c=d;以下表達(dá)式中有語法錯誤的是 。 x+ B. y+ C. c+ D. d+ 答案: D單選題 數(shù)學(xué)式 在C程序中正確的表示形式為 。 Asqrt(a)/2*b Bsqrt(a)/2/b Csqrt(a)/2b Dsqrt a/(2*b)答案: B 12單選題 已知有聲明“l(fā)ong x,y;”且x中整數(shù)的十進制表示有n位數(shù)字(4n10),若要求去掉整數(shù)x十進制表示中的最高位,用剩下的數(shù)字組成一個新的整數(shù)并保存到y(tǒng)中,則以下表達(dá)式中能正確實現(xiàn)這一功能的是 。A. y=x/(10*(n-1) B.
9、y=x%(10*(n-1)C. y=x%(long)pow(10,n-1) D. y=x%(10(n-1)答案:C填空題 若有聲明“double x=10,y=5;”,則計算xy的庫函數(shù)調(diào)用形式是 。答案: pow(x,y) 或 pow(10,5)填空題 若有聲明“int x;”且sizeof(x)的值為2,則當(dāng)x值為 時“x+1x”為假。答案: 3276713填空題 若有聲明“float y=3.14619;int x;”,則計算表達(dá)式“x=y*100+0.5, y=x/100.0”后y的值是 。答案: 3.15 單選題 已知有聲明“int a=3,b=4,c;”,則執(zhí)行語句“c=1/2*(
10、a+b);”后,c的值為 。 A. 0 B. 3 C. 3.5 D. 4 答案:A填空題 若有聲明“int a=5,b=2;”,則表達(dá)式“b+=(float)(a+b)/2”運算后b的值為 。答案:5填空題 已知有聲明“char ch=g;”,則表達(dá)式ch= ch-a+A的值為字符 的編碼。答案:G 14單選題 已有聲明“int a=3,b=3,c=2;”,以下選項中值為0的表達(dá)式是 。 !a&!b&c B. !a|!b|c C. a=b&b=c D. a=b&bc 答案: A 單選題 已知有聲明“int a=3,b=4,c=5; ”,以下表達(dá)式中值為0的是 。a&b B. ay=2 .zyx
11、. xy=1.x=(x=0,y=1,z=2)答案:A15填空題 數(shù)學(xué)式 對應(yīng)的C語言表達(dá)式為 。答案:sqrt(fabs(x)!=4*a/(b*c) 或 sqrt(fabs(x)!=4*a/b/c 單選題 已知有聲明“int a=12,b=15,c;”,則執(zhí)行表達(dá)式“c=(a|(b-=a)”后,變量b和c的值分別為 。A3.1 B15,12 C15,1 D3,12答案: C 填空題 數(shù)學(xué)式 所對應(yīng)的C語言表達(dá)式為pow(x, )。答案:1.0/3填空題 若有聲明“int a=15,b=20,c=25,e;”,則執(zhí)行語句“e=ab? -c :+c;”后變量e的值是 。答案: 2616單選題 以下
12、選項中,不能表示函數(shù) 功能的表達(dá)式是 。A. s=(x0)?1:(x0)?-1:0 B. s=x0?1:0)C. s=x0?1:x=0?0:-1答案: C單選題 若有程序段“char c=256; int a=c;”,則執(zhí)行該程序段后a的值是 。256 B. 65536 C. 0 D. -1答案: C17填空題 設(shè)有聲明“int a=3, b=4; float x=4.5, y=3.5;”,則表達(dá)式“(float)(a+b)/2+(int)x%(int)y”的值是 。答案: 4.5 填空題若有聲明“int r=2;”,則執(zhí)行語句“printf(”%d“,sizeof(2*3.14*r);”時輸
13、出 。答案:8單選題 已知有聲明“int n; float x,y;”,則執(zhí)行語句“y=n=x=3.89;”后,y的值為 。3 B. 3.0 C. 3.89 D. 4.0答案:B單選題 已知有聲明“int a=3,b=4;”,下列表達(dá)式中合法的是 。 A. a+b=7 B. a=|b| C. a=b=0 D. (a+)+ 答案:C學(xué)校單選題 已知有聲明“int a=1,b=2;”,執(zhí)行語句 “while(-a 0& -b0)a=b;”后變量a、b的值是 。0,2 B. 0,1 C. 1,1 D. 2,2答案:A18 2. 語句 實現(xiàn)順序結(jié)構(gòu)的語句 表達(dá)式語句,空語句,復(fù)合語句,函數(shù)調(diào)用語句 標(biāo)
14、準(zhǔn)輸入輸出庫函數(shù)printf(), scanf(),getchar() , putchar() ,gets(),puts()【考題解析】 單選題 已知int類型數(shù)據(jù)在內(nèi)存中存儲長度為2個字節(jié),以下語句中能正確輸出整數(shù)32768的是 。printf(%d,32768); B. printf(%ld,32768); C. printf(%f,32768); D. printf(%c,32768);答案:B19學(xué)校單選題 已知某編譯系統(tǒng)中sizeof(int)的值為2,在該編譯系統(tǒng)中執(zhí)行以下 (10) 語句時輸出結(jié)果不是39999。 A. printf(%u,39999); B. printf(%d
15、,39999); C. printf(%ld,39999); D. printf(%lu,39999);答案: B 單選題 若有聲明“float f=123.45678;”,則執(zhí)行語句“printf( ”%.3f“,f );”后,輸出結(jié)果是 。. 1.23e+02 . 123.457 . 123.456780 . 1.234e+02答案: B 20單選題 已知有聲明“char s80;”,若需要將鍵盤輸入的一個不含空格的字符串保存到s數(shù)組中,則下列語句中正確的是 。scanf(%s,s); B. scanf(%s,s0); C. s=gets(); D. s=getchar();答案:A 填空
16、題 已知有聲明和語句“int a;scanf(”a=%d“,&a);”,欲從鍵盤上輸入數(shù)據(jù)使a中的值為3,則正確的輸入應(yīng)是 。答案:a=3 單選題 若有聲明“l(fā)ong a,b;”且變量a和b都需要通過鍵盤輸入獲得初值,則下列語句中正確的是 。scanf(%ld%ld,&a,&b); B. scanf(%d%d,a,b);C. scanf(%d%d,&a,&b); D. scanf(%ld%ld,&a,&b);答案:D 21 實現(xiàn)選擇結(jié)構(gòu)的語句: if-else,switch【考題解析】單選題 若在一個C語言源程序中“e1”和“e3”是表達(dá)式,“s;”是語句,則下列選項中與語句“for(e1;
17、;e3)s;”功能等同的語句是 。A. e1;while(10)s;e3; B. e1;while(10)s;e3;C. e1;while(10)e3;s; D. while(10)e1;s;e3;答案:B 單選題 已知有聲明“int x,y;”,若要求編寫一段程序?qū)崿F(xiàn)“當(dāng)x大于等于0時y取值1,否則y取值-1”,則以下程序段中錯誤的是 。 A. if(x=0)y=1;else y=-1; B. y=x=0?1:-1;C. switch() D. switch(x-abs(x) case x=0: y=1; break; case 0: y=1; break; default: y=-1; d
18、efault: y=-1; 答案:C 22學(xué)校單選題 已知有聲明“int a=1,b=2,c=0;”,執(zhí)行語句“if(ab) c=a;a=b;b=c;”后變量a、b的值是 (21) 。答案: 2,023閱讀程序 下列程序運行后的輸出結(jié)果第一行是 (1) ;第二行是 (2) 。 #include main( ) int i,a=0,c=2; for(i=0;i2;i+) switch(+a , a*c) case 1: printf(1); case 2: printf(2); case 3: printf(3n);break; default: printf(othern); 答案: (1)
19、23 (2) other24閱讀程序 以下程序運行時輸出結(jié)果為 (6) #include void main() int i,sum=0; for (i=0;i0;j-=2) k+; B. for(j=0;j15;j+=2) k+; .for(i=0;i0;i-=2) k+;答案: A學(xué)校單選題 以下語句中有語法錯誤的是 。for(; ;); B. do ; while(1); C. while(); D. p: ; goto p; 答案:C26閱讀程序 以下程序運行時輸出結(jié)果最后一行是 。 #includevoid main() int a=1,b=1,i; for(i=1;i=2;i+)
20、a=a+b; printf(%d / %d , ,b,a); b=a+b; printf(%d / %d n,a,b); printf(n);答案: 3/5,5/8 27閱讀程序 以下程序運行時輸出結(jié)果是 。#include main() int s=1,n=235; do s*=n%10; n/=10; while(n); printf(%dn,s);答案: 3028 跳轉(zhuǎn)語句: break,continue,return【考題解析】 全國選擇題 有以下程序 #include #include main() int x=8; for(;x0;x-) if(x%3) printf(%d, x-
21、);continue; printf(%d, -x ); 程序的運行結(jié)果是( )。 A) 7,4,2, B) 8,7,5,2, C) 9,7,6,4, D) 8,5,4,2,答案:D293. 構(gòu)造類型數(shù)據(jù) 基本類型數(shù)組(一維,二維) 數(shù)組聲明及初始化 數(shù)組存儲結(jié)構(gòu) 使用數(shù)組名引用數(shù)組元素 【考題解析】 單選題 以下聲明中錯誤的是 。Aint a2; Bint a =0,1; Cint a3=0; Dint a34=0; 答案: C全國單選題 下列選項中,能正確定義數(shù)組的語句是()。A)intnum0.2008;B) intnum;C)intN=2008; D) #defineN 2008 in
22、tnumN; intnumN; 答案:D30單選題 設(shè)有聲明“int p10=1,2,i=0;”,以下語句中與“pi=pi+1,i+;”等價的是 。A. pi=pi+; B. p+i=pi;C. p+i=pi+1; D. i+,pi-1=pi;答案:D 全國單選題 已知有聲明“int m=5,4,3,2,1,i=0;”,下列對m數(shù)組元素的引用中,正確的是 。m-i B)m2*2 C)mm0 D)mmi答案:B31填空題 若有聲明“char s110=ABCDE,s210=A0;”,則語句“printf(%d,strlen(strcpy(s1,s2);”的輸出結(jié)果是 。 答案: 3全國選擇題 有
23、以下程序#includemain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(%dn,s);程序運行后的輸出結(jié)果是():A)6 B)10 C)11 D)15答案: C32單選題 已知有聲明“char s20=”Hello“;”,在程序運行過程中,若要想使數(shù)組s中的內(nèi)容修改為“Good”,則以下語句中能夠?qū)崿F(xiàn)此功能的是 。 As=Good; Bs20=Good; Cstrcat(s,Good); Dstrcpy(s,Good);答案:D33單選題 已知有聲明“int a44=1,2,3,4,5,6,7,8,9
24、,10,11,12,13,14,15,16;”,若需要引用值為12的數(shù)組元素,則下列選項中錯誤的是 。 A*(a+2)+3 B*(*(a+2)+3) C*(a2+3) Da23答案:A34閱讀程序 以下程序運行時輸出結(jié)果中第一行是 (1) ,第三行是 (2) 。 #include #define N 5 void main() static char aNN; int i,j,t,start=0,end=N-1; char str =123,ch; for(t=0;t=N/2;t+) ch=strt; for(i=j=start;iend;i+) aij=ch; for(j=start;jst
25、art;i-) aij=ch; for(j=end;jstart;j-) aij=ch; if(start=end) astartend=ch; start+,end-; 生成矩陣: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 for(i=0; iN; i+) for(j=0;jN;j+) printf(%c, aij); printf(n); 答案:(1) 11111 (2) 1232135 閱讀程序 以下程序運行時輸出結(jié)果的第一行是 (1) ,第三行是 (2) 。 #include void main( ) int i,j,a33;
26、for(i=0;i3;i+) for(j=0;j3;j+) if(ij) aij=1; else aij=i-j+1; for(i=0;i3;i+) for(j=0;j3;j+) printf(%4d,aij); printf(n); 生成矩陣: 1 1 1 2 1 1 3 2 1答案: (1) 1 1 1 (2) 3 2 1 36 結(jié)構(gòu)類型變量與數(shù)組 定義結(jié)構(gòu)類型 結(jié)構(gòu)類型變量、數(shù)組聲明及初始化 用變量名引用結(jié)構(gòu)變量(結(jié)構(gòu)數(shù)組元素)的全體成員 用變量名引用結(jié)構(gòu)變量(結(jié)構(gòu)數(shù)組元素)的基本類型成員【考題解析】 單選題 若有結(jié)構(gòu)類型定義 “typedef struct test int x,y2;
27、 TEST;”,則以下聲明中正確的是 (27) 。Astruct test x; Bstruct x; Ctest x ; Dstruct TEST x;答案:A37單選題 以下結(jié)構(gòu)變量stu1的聲明形式中,錯誤的是 。typedef struct stuchar name10;float score;STU ; STU stu1; #define STU struct stu STU char name10;float score; stu1; struct stuchar name10;float score;stu1; struct stuchar name10;float score;
28、STU; STU stu1;答案:D學(xué)校單選題 若有定義 “struct c double x,y;c1=1.2,1.3,c2=1.2,1.3,c3; struct d double x,y;d1=1.2,1.3,d2=1.2,1.3,d3;”, 則以下表達(dá)式中正確的是 。 c3=0 B. c1=c2 C. c3=c1 D. d3=c1 答案:C38閱讀程序 以下程序運行后的輸出結(jié)果第一行是 (1) ;第二行是 (2) 。#include struct num int x,y ; st =1,10,2,20,3,30,4,40,-1,-1,s12,s22;main() int i=0,j=0,
29、k; for(k=0; stk.x != -1; k+) if(stk.x%2) s1i+=stk; else s2j+=stk; printf ( %d n %d n,s10.y ,s20.y ); 答案: (1) 10 (2) 20394. 指針類型數(shù)據(jù) 基本類型變量的指針操作 基本類型變量地址的獲取與保存。 指向基本類型變量的指針變量聲明、初始化與賦值。 引用指針變量指向的基本類型變量(使用運算符*)【考題解析】填空題 若有聲明char *p=%d,%dn; int a=1,b=2; 則執(zhí)行語句“printf(p,a,b);”時輸出 (4) 。答案:1,2全國選擇題 若有定義語句:dou
30、blex,y,*px,*py,執(zhí)行了px=&x,py=&y;之后,正確的輸入語句是()。 A)scanf(”%f%f”,x,y); B)scanf(”%f%f”,&x,&y);C)scanf(”%lf%le”,px,py); D)scanf(”%lf%lf”,x,y);答案:C 40 全國 選擇題 有以下程序#includemain() intm=1,n=2,*p=&m,*q=&n,*r; r=p; p=q; q=r; printf(“%d,%d,%d,%dn”,m,n,*p,*q);程序運行后的輸出結(jié)果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2答案:B4
31、1全國選擇題 有以下程序#include#includeint fun(int n) int *p; p=(int *)malloc(sizeof(int); *p=n; return *p;main() int a; a=fun(10); printf(“%dn”,a+fun(10); 程序的運行結(jié)果是()。0 B) 10 C) 20 D) 出錯 答案:C 42(2) 基本類型數(shù)組的指針操作 基本類型數(shù)組元素地址的獲取、保存與算術(shù)運算。 引用指針變量指向的基本類型數(shù)組元素 二維數(shù)組行地址的獲取、保存及算術(shù)運算。 行指針變量的聲明、初始化。 引用行指針變量指向的基本類型數(shù)組元素【考題解析】 單
32、選題 設(shè)指針變量占2個字節(jié)的內(nèi)存空間,若有聲明“char *p=”123“;int c;”,則執(zhí)行語句“c=sizeof(p);”后,c的值為 。 A. 1 B. 2 C. 3 D. 4 答案: B全國選擇題 若有定義語句: double x5=1.0,2.0,3.0,4.0,5.0,*p=x;則錯誤引用x數(shù)組元素的是()。*p B)x5 C)*(p+1) D)*x答案:B43單選題 若有聲明“int x10=0,1,2,3,4,5,6,7,8,9,*p;”,則值不為4的表達(dá)式是 。Ap=x,*(p+4) Bp=x+4,*p+ Cp=x+3,*(p+) Dp=x+3,*+p答案: C單選題 已
33、知有程序段 “char str 10=Aoyun,Beijing, *p=&str00; printf(%sn,p+10);”, 則執(zhí)行printf語句后輸出為 。ABeijing BAoyun Cing Dng 答案: A44單選題 已知有聲明“int i,a10,*p=a;”,現(xiàn)需要將110保存到a0a9中,以下程序段中不能實現(xiàn)這一功能的是 。for(i=0;i10;i+) ai=i+1; B. for(i=0;i10;i+) pi=i+1;C. i=1;while(pa+10) *p+=i+; D. i=1;while(pa+10) *a+=i+;答案:D填空題 已知有聲明 “int a
34、32=1,2,3,4,5,6,*p=a0;”,則執(zhí)行語句“printf(”%dn“,*(p+4);”后的輸出結(jié)果為 。答案:5單選題 若有聲明“int a34, *p=a0 ,(*q)4=a;”,則下列敘述中錯誤的是 。 . a23與q23等價 . a23與p23等價. a23與*(p+11)等價 . a23與p=p+11,*p等價答案:B45 單選題 已知有聲明 “int a33=0,*p1=a1,(*p2)3=a;”,以下表達(dá)式中與“a11=1”不等價的表達(dá)式是 。A. *(p1+1)=1 B. p111=1 C. *(*(p2+1)+1)=1 D. p211=1答案:B填空題 若有聲明“
35、char s10=”remind“;”,執(zhí)行“puts(s+2);”后的輸出結(jié)果是 。答案: mind單選題 已知有聲明:“char a =It is mine, *p=It is mine;”,下列敘述中錯誤的是 。 A. strcpy(a,“yes”)和strcpy(p,“yes”) 都是正確的 B. a=“yes”和p=“yes”都是正確的 C. *a 等于*p D. sizeof(a)不等于sizeof(p) 答案:B46全國完善程序 以下程序的功能是:借助指針變量找出數(shù)組元素中的最大值所在數(shù)組元素的下標(biāo)值。#includemain()inta10,*p,*s;for(p=a;p-a1
36、0;p+) scanf(“%d”,p);for(p=a,s=a;p-a*s)s=_;printf(“index=%dn”,s-a);答案:p47(3) 結(jié)構(gòu)類型變量、數(shù)組的指針操作 結(jié)構(gòu)變量地址、結(jié)構(gòu)數(shù)組元素地址的獲取與保存。 指向結(jié)構(gòu)變量指針變量的聲明、初始化與賦值。 引用指針指向的結(jié)構(gòu)類型變量(結(jié)構(gòu)類型數(shù)組元素)的基本類型成員結(jié)構(gòu)變量成員的地址、結(jié)構(gòu)數(shù)組元素成員的地址獲取與保存。指向結(jié)構(gòu)變量成員的指針變量聲明、初始化與賦值。 【考題解析】 48單選題 已知有結(jié)構(gòu)定義和變量聲明如下: struct student char name20; int score; struct student
37、*h; stu,*p; int *q;以下選項中錯誤的是 。 Ap=&stu; Bq=&stu.score; Cscanf(%s%d,&stu); Dstu.h=p; 答案: C 49閱讀程序 以下程序運行時輸出結(jié)果的第一行是 (1) ,第二行是 (2) #include struct s int x,*y;*p;int d5=10,20,30,40,50;struct s a5=100,&d0,200,&d1,300,&d2,400,&d3,500,&d4;void main( ) p=a; printf(%5d,p-x+); printf(%5dn,p-x); printf(%5d,*p-
38、y); printf(%5dn,*+p-y); 答案: (1) 100 101 (2) 10 20 50單選題 設(shè)有結(jié)構(gòu)定義及變量聲明如下: struct product char code5; float price;y4=100,100;以下表達(dá)式中錯誤的是 。A. (*y).code0=2; B. y0.code0=2; C. y-price=10; D. (*y)-price=10;答案: D 51 (4) 指針類型數(shù)組的聲明和使用【考題解析】全國單選題 有以下程序#includemain() char *a =abcd,ef,gh,ijk; int i; for(i=0;i4;i+)
39、 printf(%c,*ai);程序運行后輸出的結(jié)果是A)aegi B)dfhk C)abcd D)abcdefghijk答案:A全國單選題 若有定義語句:inta410,*p,*q4;且0=i4,則錯誤的賦值是()。A) p=aB) q=a c) q0=a D)p=&a21答案:B52全國填空題 有以下程序#includemain() int a=1,2,3,4,5,6,*k3,i=0; while(i3) ki=&a2*i; printf(%d,*ki); i+; 程序運行后的輸出的結(jié)果是_ 答案:13553 5. 函數(shù) 函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用 (2) 函數(shù)調(diào)用時基本類型實參的傳遞與
40、使用。實參與形參的類型兼容性要求。實參類型的自動轉(zhuǎn)換【考題解析】單選題 以下函數(shù)定義中正確的是 (25) 。A. double fun(double x,double y) B. double fun(double x;double y) C. double fun(double x,double y); D. double fun(double x,y) 答案:A54單選題 以下選項均為fun函數(shù)定義的頭部,其中錯誤的是 。A. int fun(int x,int y ) B. int fun(int x,int yx)C. int fun(int x,int y3) D. int fun(
41、int x,int *y)答案:B學(xué)校單選題 已知函數(shù)fun定義的頭部為“void fun(int x, int y)”,以下fun函數(shù)聲明中正確的是 。void fun(int x,int y ); B. void fun(int x, int *y);void fun(int ,int); D. void fun(int ,int * );答案:C單選題 若有聲明“l(fā)ong fun(int *x,int n,long *s);int a4=1,2,3,4; long b,c;”,則以下函數(shù)調(diào)用形式中正確的是 。A. c=fun(a,4,b); B. c=fun(a ,4,&b);C. c=
42、fun(a4,4,b); D. c=fun(a,4,&b);答案:D55單選題 若函數(shù)調(diào)用時的實參為變量,則以下關(guān)于函數(shù)形參和實參的敘述中正確的是 。A. 實參和其對應(yīng)的形參占用同一存儲單元B. 形參不占用存儲單元C. 同名的實參和形參占用同一存儲單元D. 形參和實參占用不同的存儲單元答案:D 全國選擇題 函數(shù)調(diào)用語句func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8); 中func函數(shù)的實參個數(shù)是()。 A)3 B)4 C)5 D)8答案:A56閱讀程序 以下程序運行時輸出結(jié)果是 。 #include void func(int b) int a; a=b; b=
43、10; void main() int a=10,b=20; func(b); printf(%d,%d,a,b); 答案: 10, 20 57閱讀程序 以下程序運行時輸出到屏幕的結(jié)果是 。 #include void swap(int a,int b) int t; if(ab)t=a,a=b,b=t; void main() int x=13, y=11, z=12; if(xy) swap(x,y); if(xz) swap(x,z); if(yz) swap(y,z); printf(%dt%dt%dn, x,y,z); 答案:8 13 11 1258閱讀程序 以下程序運行時輸出結(jié)果是
44、 。 #includeint f(int x, int y) return x+y; void main() double a=5.5, b=2.5; printf(%d,f(a,b); 答案: 759閱讀程序 以下程序運行后的輸出結(jié)果是 。#include int fun(int w1 , int w2) return w2-w1; main( ) int w=1,k ; k=fun(fun(w+1,w),w) ; printf(%dn,k) ;答案:260全國選擇題 有以下程序#includevoid fun(int a , int b) int t; t=a; a=b; b=t; mai
45、n() int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;i10;i+=2) fun(ci,ci+1); for(i=0;i10;i+) printf(“%d,”,ci); printf(“n”); 程序的運行結(jié)果是() A) 1,2,3,4,5,6,7,8,9,0, B) 2,1,4,3,6,5,8,7,0,9, C) 0,9,8,7,6,5,4,3,2,1, D) 0,1,2,3,4,5,6,7,8,9,答案:A61(3) 函數(shù)調(diào)用時結(jié)構(gòu)類型實參的傳遞與使用閱讀程序 以下程序運行時輸出到屏幕的結(jié)果第一行是 (1) ,第二行是 (2) 。#include type
46、def struct int x,y; direction;int visible(direction s,direction A,direction B,direction C) direction p1,p2; int d; p1.x=B.x-A.x; p1.y=B.y-A.y; p2.x=C.x-A.x; p2.y=C.y-A.y; d = s.x*p1.x*p2.x + s.y*p1.y*p2.y; printf(%4dn, d); return d0;void main( ) char *ss=invisible,visible; direction s=1,1,T=1,1,A=0,
47、0,B=2,1; puts(ssvisible(s,T,A,B);答案: (1) -1 (2) invisible62(4) 函數(shù)調(diào)用時指針類型實參的傳遞與使用【考題解析】單選題 若需要通過調(diào)用f函數(shù)得到一個數(shù)的平方值,以下f函數(shù)定義中不能實現(xiàn)該功能的是 。 A. void f(double *a) *a=(*a)*(*a); B. void f(double a,double *b) *b=a*a; C. void f(double a,double b) b=a*a; D. double f(double a) return a*a; 答案: C63全國選擇題 有以下程序#includev
48、oidfun(int*a,int*b) int*c; c=a; a=b; b=c;main() intx=3,y=5,*P=&x,*q=&y; fun(p,q); printf(”%d,%d,”,*p,*q); fun(&x,&y); printf(”%d,%dn”,*p,*q);程序運行后的輸出結(jié)果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3 、答案:B64閱讀程序 以下程序運行時輸出結(jié)果是 。 #include void change(int x, int y, int *z) int t; t=x; x=y; y=*z; *z=t;void main(
49、 ) int x=18,y=27,z=63; change(x,y,&z); printf(x=%d,y=%d,z=%dn,x,y,z); 答案: x=18, y=27, z=1865全國選擇題 有以下程序#include void fun(int a, int n) int i,t; for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t; main() int k10=1,2,3,4,5,6,7,8,9,10,i; fun(k,5); for(i=2;i8;i+) printf(“%d”,ki); printf(“n”); 程序的運行結(jié)果是 A) 345678 B)
50、 876543 C) 1098765 D) 321678答案:D66閱讀程序 以下程序運行時輸出結(jié)果中第一行是 (1) ,第二行是 (2) #includevoid fun(int x,int p,int *n) int i,j=0; for(i=1;i=x/2;i+) if(x%i=0) pj+=i; *n=j;void main() int x,a10,n,i; fun(27,a,&n); /* 調(diào)用fun函數(shù)將27的所有因子保存到a數(shù)組,因子個數(shù)保存到n*/ for(i=0;in;i+) printf(%5d,ai); printf(n%5d,n); 答案: (1)1 3 9 (2) 3
51、 67閱讀程序 以下程序運行時輸出結(jié)果中第一行是 (1) ,第二行是 (2) #includeint fun(char *a,char *b) int m=0,n=0; while(*(a+m)!=0)m+; while(bn) *(a+m)=bn;m+;n+; *(a+m)=0; return m;void main() char s120=yes,s25=no; printf(%dn,fun(s1,s2); puts(s1); 答案:(1) 5 (2) yesno 68閱讀程序 以下程序運行時輸出到屏幕的結(jié)果第一行是 (1) ,第二行是 (2) 。#include void fun(cha
52、r *p1,char *p2);void main() int i; char a=54321; puts(a+2); fun(a,a+4); puts(a);void fun(char *p1,char *p2) char t; while(p1p2) t=*p1;*p1=*p2;*p2=t; p1+=2,p2-=2; 答案: (1) 321 (2) 1432569完善程序 以下程序的功能是:求a數(shù)組中前4個元素之和及后6個元素之和。 #include int fsum(int *array,int n) int i,s=0; for(i=0; (1) ; i+) s+=arrayi; re
53、turn(s); void main(void) int a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int sumh,sumt; sumh=fsum(a,4); sumt= (2) ; printf(“%d %dn”,sumh,sumt); 答案: (1) in (2) fsum(&a9, 6) 或 fsum(a+9, 6)70(5) 函數(shù)返回值的產(chǎn)生 【考題解析】填空題 已知有函數(shù)定義“int fun()return (3,4);”,則調(diào)用fun后的函數(shù)返回值是 (1) 。答案: 4 全國選擇題 以下敘述中錯誤的是()。A)用戶定義的函數(shù)中可以沒有re
54、turn語句B)用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值C)用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型D)函數(shù)的return語句中可以沒有表達(dá)式答案:B71全國選擇題 以下關(guān)于return語句的敘述中正確的是()。A)一個自定義函數(shù)中必須有一條return語句B)一個自定義函數(shù)中可以根據(jù)不同的情況設(shè)置多條return語句C)定義成void類型的函數(shù)中可以有帶返回值的return語句D)沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束語句時不能返回到調(diào)用處 答案:B72(6) 全局變量、局部變量與形式參數(shù)的作用域 【考題解析】 閱讀程序 以下
55、程序運行時輸出結(jié)果是 。 #include int t;int sub(int *s) *s+=1; t+=*s; return t;main() int i; for(i=1;i4;i+) printf(%4d,sub(&i);答案: 2 673(7) 局部變量、形式參數(shù)的存儲類型和生存期【考題解析】 單選題 已知在函數(shù)f中聲明了局部變量x,如果希望f函數(shù)第一次被調(diào)用返回后變量x中存儲的數(shù)據(jù)保持到下次f函數(shù)被調(diào)用時仍可以使用,則在聲明x時必須指定其存儲類型為 (30) 。 A. auto B. register C. static D. extern答案:C填空題 聲明局部變量時若缺省存儲類
56、別,該變量的存儲類別是 。答案:auto填空題 可以改變局部變量的生存期、但不能改變它的作用域的存儲類別是 。答案:static74閱讀程序 以下程序運行時輸出結(jié)果的第一行是 (1) ,第二行是 (2) 。 #includeint f1( ) static int i=0,f=1; return f*=+i; int f2( ) int i=0,f=1; return f*=+i; void main( ) printf(%dn,f1( )+f1( ); printf(%dn,f2( )+f2( ); 答案: (1) 3 (2) 2 75閱讀程序 以下程序運行時輸出到屏幕的結(jié)果第一行是 (1)
57、 ,第二行是 (2) ,第三行是 (3) 。#include int g(int x,int y) return x+y ; int f(int x,int y) static int x=2; if(y2) x=x*x; y=x else y=x+1; return x+y;void main( ) int a=3; printf(%dn,g(a,2); printf(%dn,f(a,3); printf(%dn,f(a,2);答案:(1) 5 (2) 7 (3) 876 6. 函數(shù)高級應(yīng)用 (1) 遞歸函數(shù)執(zhí)行過程 【考題解析】 閱讀程序 以下程序運行時輸出結(jié)果是 (8) 。 #inclu
58、devoid f(long x) if(x100) printf(%d, x/10); else f(x/100); printf(%d, x%100/10); main() f(123456); 答案: 13577閱讀程序 以下程序運行后的輸出結(jié)果第一行是 (13) 。#include void print(int n);void print_n(int n);main() print(4); void print(int n) if (n=0) return; print_n(n); if (n0) print(n-1); void print_n(int n) if(n=0)return
59、; printf(%d,n); if(n1) print_n(n-1); else printf(n);答案:4321 78閱讀程序 以下程序運行時輸出結(jié)果是 . #include#includevoid sf(char *s1,char *s2) if(*s1=*s2) sf(s1+1,s2+1); void main( ) char a20= ABC,b20=xyz; sf(a+strlen(a),b); puts(a); 答案: ABCxyz 79閱讀程序 以下程序運行時輸出結(jié)果是 . #include #include int count(char s) int i=0; if(si=
60、0) return 0; while(isalpha(si) i+; while(!isalpha(si)&si!=0) i+; return 1+count(&si); /* 遞歸調(diào)用 */void main() char line=one world,one dream.; printf(%d,count(line); 答案: 4 80閱讀程序 以下程序運行時輸出到屏幕的結(jié)果是 。#include void fun(int m,int n) if(m=n) printf(%d,m); else fun(m+1,n); printf(%d,m);void main( ) fun(1,2);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 認(rèn)識輕重課程設(shè)計
- 湖北理工學(xué)院《數(shù)控技術(shù)與編程》2022-2023學(xué)年期末試卷
- 茶葉配送服務(wù)方案
- 內(nèi)墻刮膩子施工方案
- 汽油泵機械原理課程設(shè)計
- 課程設(shè)計工程合同策劃
- 湖北恩施學(xué)院《web前端開發(fā)應(yīng)用實踐》2022-2023學(xué)年期末試卷
- 小學(xué)開學(xué)工作方案
- 課程設(shè)計認(rèn)識家鄉(xiāng)的土地
- 潛望鏡課程設(shè)計難嗎
- 盤扣腳手架搭設(shè)方案及交底
- 酒精戒斷綜合癥的護理
- (高清版)TDT 1037-2013 土地整治重大項目可行性研究報告編制規(guī)程
- 山東省青島市市南區(qū)2023-2024學(xué)年九年級上學(xué)期期中數(shù)學(xué)試題
- 愛國衛(wèi)生工作培訓(xùn)課件
- 與某地政府醫(yī)療領(lǐng)域合作框架協(xié)議
- 外賣騎手勞動權(quán)益保障機制
- 卵巢癌腹腔化療方案
- 雙層罐改造施工方案
- 腫瘤放射規(guī)培出科小結(jié)
- 光通信芯片十大品牌簡介
評論
0/150
提交評論