![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江蘇省計(jì)算機(jī)等級(jí)考試C語言第一至三章考點(diǎn) |
第一、二章節(jié)必會(huì)試題: 1.以下敘述中正確的是_________(多選) A)在編譯時(shí)可以發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤 B)C語言程序的每一行只能寫一條語句 C)main(){}必須位于程序的開始 E)main()函數(shù)至少必須有一條語句 F)C程序總是從main函數(shù)的第一條語句開始執(zhí)行 G)C程序總是在執(zhí)行完main函數(shù)的最后一條語句后結(jié)束 第三章必會(huì)試題: 考點(diǎn)1:常量與變量 在程序執(zhí)行過程中,值保持不變的量稱為常量。變量是指向內(nèi)存中的一個(gè)單元符號(hào)。在C語言中,規(guī)定變量只能由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須是字母、數(shù)字或下劃線,常量分為:整型常量、實(shí)型常量、字符型常量、字符串型常量、標(biāo)識(shí)符常量 (1)整型常量分為:八進(jìn)制(以0開頭,由數(shù)字0—7組成,且第一個(gè)數(shù)字必須為0),十進(jìn)制(由數(shù)字0—9組成,且第一個(gè)數(shù)字不能為0),十六進(jìn)制(以0x開頭,由數(shù)字0—9,a--f組成) (2)整型變量:基本整型(int)、短整型(short int)、長整型(long int),長整型以L結(jié)尾,無符號(hào)整數(shù)以U結(jié)尾(3)實(shí)型常量:十進(jìn)制小數(shù)形式與指數(shù)形式(用e表示,e之前必須要有數(shù)字,且在E或e之后的指數(shù)必須是整數(shù)), (4)實(shí)型變量:float,double (5)字符型常量:用一對(duì)單括號(hào)引起來的一個(gè)字符或以’\’開頭的字符序列 (6)字符變量:char (7)字符串型常量:用一對(duì)雙括號(hào)引起來的若干個(gè)字符,在字符串的最后有結(jié)束標(biāo)記”\ 1.設(shè)有四個(gè)常數(shù):①4e0.5、②’\ 2.以下常數(shù)表示中不正確的是____________ A.’\ 3.以下選項(xiàng)中,不能作為合法常量的是_________ A.0X 4.設(shè)有聲明語句:char a=’\ A.包含一個(gè)字符 B.包含2個(gè)字符 C.包含三個(gè)字符 D.聲明不合法 5.以下哪個(gè)是合法的常量______________ A.35u B.1.25e 6.以下選項(xiàng)中不能用做用戶自定義標(biāo)識(shí)符的是__________ A. length_ B._length C.length.d D.For 考點(diǎn)2:運(yùn)算符與表達(dá)式 (1)算術(shù)運(yùn)算符:單目運(yùn)算符:+,- 雙目運(yùn)算符:+,-,*,/,% (2)關(guān)系運(yùn)算符:> , <, >=, <=, ==,!=,關(guān)系成立時(shí),運(yùn)算結(jié)果為整數(shù)1,否則為整數(shù)0 (3)邏輯運(yùn)算符:&&(邏輯與),||(邏輯或),!(邏輯非),優(yōu)先級(jí)從高到底:!, ||, && &&與||有短路效應(yīng),&&只要第一個(gè)為假,則后面不再管結(jié)果,||只要有一個(gè)為真,則后面不再管結(jié)果 (4)賦值運(yùn)算符:= , +=,-=,*=,/=,%=,^= (5)自增、自減運(yùn)算符:++,--,只有變量才能自增,常量是不能自增的 (6)逗號(hào)運(yùn)算符:其運(yùn)算順序?yàn)閺淖蟮接乙来斡?jì)算各個(gè)表達(dá)式的值,并把最后一個(gè)表達(dá)式的值作為整個(gè)表達(dá)式的值 (7)sizeof()運(yùn)算符:用來計(jì)算某種類型或數(shù)據(jù)做占用的字節(jié)數(shù) (8)條件運(yùn)算符:條件表達(dá)式”?:”為三目運(yùn)算符,要求有三個(gè)操作對(duì)象 (9)各類運(yùn)算符號(hào)的順序:首先執(zhí)行:!,++,--,然后算術(shù)運(yùn)算符,然后關(guān)系運(yùn)算符,然后邏輯運(yùn)算符,然后條件運(yùn)算符,然后賦值運(yùn)算符,然后逗號(hào)運(yùn)算符 例題: 1.設(shè)有語句int a=6, b=3; float x=8,y; y=b/a*x/2;,則y的值是________________ 2.有數(shù)學(xué)式3xy/5ab中,變量x和y的取值為整數(shù),而變量a和b的取值為實(shí)數(shù),在C程序中對(duì)應(yīng)的正確表達(dá)式是______________________ A.3/5*x*y/a/b B.3*x*y/5/a/b C.3*x*y/5*a*b D.3/a/b/5*x*y 3..設(shè)有語句”float x=2.9;int a=5,b;b=a+x;”,則變量b的值是___________ 4.若a1、a2、a3和a4均為整型變量,則以下選項(xiàng)中符合C語法規(guī)則的表達(dá)式是______ A.a1=25%3.3 B.a2=a1+a3=3* 5.設(shè)有語句”int a,b,c;a=b=c=5;”,執(zhí)行語句”b+=++a>b &&++c>b;”,則a,b,c的值分別為____ 6. 設(shè)x為整數(shù),C中能正確的表達(dá)數(shù)學(xué)式0≤x<5的是_______ A.0<=x<5 B.x=0||x=1||x=2||x=3||x= 7.設(shè)有變量說明:”short int a=0,b=0;”,則表達(dá)式sizeof(‘a(chǎn)’+’b’)的值是_____ A.1 B. 8.設(shè)有語句:char s[ ]=”Rep\0Ch”; int m=sizeof(s);則m的值是_________ 9.執(zhí)行以下語句后,a的值為___________ int a=0,m=3,n=10; a=(m++,m+n); 10.設(shè)有說明語句int a=3,b=2,c; c=--a==b++;則a,b,c的值為_____________________ 11.設(shè)有說明語句”int a,b;”,執(zhí)行語句”b=(a=3*5,a*4),a+15;”后,b的值為________ 第四章考點(diǎn): 考點(diǎn)一:字符輸入函數(shù)(getchar) 考點(diǎn)二:格式輸入函數(shù)(scanf) 1。設(shè)有說明語句:double x, 不能通過scanf語句正確的輸入數(shù)據(jù)的語句是________ A.scanf(“%lf”,x); B.scanf(“%f”,&x); C.scanf(“%lf”,&x) D.scanf(“%le”,&x); 例題2. 考點(diǎn)三:字符輸出函數(shù)(putchar) 考點(diǎn)四:格式輸出函數(shù)(printf) 2:如有聲明”float f=123.45678;”,則執(zhí)行語句”printf(“% 第五、六章考點(diǎn): 考點(diǎn)一:分支結(jié)構(gòu)(單分支與多分支結(jié)構(gòu)) 1.以下函數(shù)中輸入5,3,輸出結(jié)果是_______ #include <stdio.h> int main() { int a,b,max; scanf(“%d,%d”,&a,&b); if(a>b) max=a; else max=b; printf(“%d%d”,a,b); return 0; } 考點(diǎn)二:switch語句 1.執(zhí)行以下程序段后,變量i的值是___________ int i=10; switch(i) { case 9: i+=1 case 10: i+=1; case 11: i+=1; default: i+=1; } 考點(diǎn)三:while語句 1.在while(!a)中,其中的!a與表達(dá)式_____________等價(jià) A.a==0 B.a== 2.有以下程序段,while循環(huán)次數(shù)為__________ int k=0; while(k=1) k++; 考點(diǎn)四:do…while語句 1.以下程序輸出的第一行是____________,第二行是______________ #include <stdio.h> void main(void) { int x=6; do { x-=2; printf(“%d\n”,x); }while(--x); } 2.設(shè)整型變量x的當(dāng)前值為3,執(zhí)行以下循環(huán)語句后,輸出結(jié)果為___________ do { x-=2; printf(“%d\n”,x); }while(!(--x)); 3。下面關(guān)于while與do……while循環(huán)語句的敘述中正確的是______ A.do……while的循環(huán)體至少執(zhí)行一次 B.while的循環(huán)體至少執(zhí)行一次 C.do……while的循環(huán)體不能是復(fù)合語句 D.do……while允許從循環(huán)體外跳轉(zhuǎn)到循環(huán)體內(nèi) 考點(diǎn)五:for循環(huán)語句 1.循環(huán)語句for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>)<循環(huán)體>中,<循環(huán)體>執(zhí)行情況是___________ A.至少執(zhí)行一次 B至少執(zhí)行兩次 C.可能執(zhí)行,也可能不執(zhí)行 D.不執(zhí)行 2.有如下程序: void main() { int i,sum=0; for(i=1;i<=3;i++) sum+=i; printf(“%d\n”,sum); } 該程序的執(zhí)行結(jié)果是_______________ A.6 B 3.設(shè)有語句”for(int i=5,sum=0;i<10,sum++;i++) sum+=i;”,則for()語句的執(zhí)行情況是_____________________ A.循環(huán)0次 B.循環(huán)4次 C.循環(huán)5次 D.循環(huán)6次 考點(diǎn)六:break,continue 1。執(zhí)行以下程序后,輸出___________ int s1=0,s2=0,s3=0,s4=0; for(int t=1;t<=4;t++) switch(t) { case 4: s1++;break; case 3: s2++;break; case 2: s3++; default: s4++; } printf(“%d,%d,%d,%d\n”,s1,s2,s3,s4);; 2.continue語句只能用在______________語句中 3.下面程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁?/SPAN>: #include <stdio.h> #include <stdlib.h> main() { int i; int j; for(i=0;_____________;i++) { j=i*10+6; if(_____________) continue; else printf(“%d\n”, j); } } 考點(diǎn)3:switch語句 例題:下列程序運(yùn)行后的輸出結(jié)果,第一行是__________(2008春) #include <stdio.h> main() { int i,a=0,c=2; switch(++a,a*c) {case 1: printf(“ case 2: printf(“ case 3:printf(“3\n”);break; default:printf(“other\n”); } } 第六章:循環(huán)控制 考點(diǎn)1:while與do while語句實(shí)現(xiàn)循環(huán) 例題:程序”int x=3; do{printf(“%d”,x--);}while(!x);”的執(zhí)行結(jié)果是____________(2006秋) A.3 2 1 B 例題:以下程序運(yùn)行時(shí)輸出的結(jié)果是_____________(2007秋) main() { int s=1,n=235; do { s*=n%10; n/=10; }while(n); printf(“%d\n”,s); } 例題:以下程序運(yùn)行后輸出結(jié)果的第一行為____________,第二行為_______________(2007春) #include “stdio.h” void main() { int i=5; do {switch(i%2) { case 0:i--;break; case 1:i--;break; } i--;printf(“%d\n”,i); }while(i>0); } 考點(diǎn)二:for循環(huán) 例題:若有聲明”int i,k=1;unsigned j;”,則下列語句執(zhí)行時(shí)會(huì)出現(xiàn)無限循環(huán)的語句是___________(2008春) A.for(j=15;j>0;j-=2) k++; B.for(j=0;j<15;j+=2) k++; C.for(i=0;i<15;i+=2) k++; D.for(i=15;i>0;i-=2) k++; 例題:以下程序運(yùn)行時(shí)輸出結(jié)果為____________________(2007秋) #include <stdio.h> void main() { int i,sum=0; for(i=0;i<5;i++) {switch(i) {case 0: case 1:sum++; case 3:sum++; case 4: sum--;break; } } printf(“%d\n”,sum); } 例題:以下程序執(zhí)行后,輸出結(jié)果的第一行為____________,第二行為________________(2006秋) #include <stdio.h> void main() {int w=0,i; for(i=0;i<3;i++) switch(w++) {case 0: case 1: case 2: case 3: printf(“%d\n”,w++); } } 例題:下列關(guān)于語句的說法中正確的是___________________(2004秋) A. do…while語句的循環(huán)體至少會(huì)被執(zhí)行1次 B. while語句的循環(huán)至少會(huì)被執(zhí)行1次 C. for語句的循環(huán)體至少會(huì)被執(zhí)行1次 D. 在c語言中只能用do,do…while或for語句實(shí)現(xiàn)循環(huán) 例題:定理:對(duì)于任意一個(gè)正整數(shù)都可以找到至少一串連續(xù)奇數(shù),它們的和等于該正整數(shù)的立方。例如:33=27=7+9+11,43=64=1+3+5+7+9+11+13+15。以下程序用[2,20]之間的所有正整數(shù)驗(yàn)證該定理。(2004秋) #include <stdio.h> main() { long n,i,k,j,p,sum; for(n=2;n<=20;n++) {k=n*n*n; for(i=1;i<k/2;i+=2) {for(j=i;sum=0;__________;j+=2) sum+=j; if(sum==k) {printf(“\n%ld*%ld*%ld=%ld=”,n,n,n,sum); for(p=i;p<___________;p+=2) printf(“%ld+”,p);printf(“%ld”,p); break; } } if(i>=k/2) printf(“\n error!”); } } 例題:以下程序采用遞推法計(jì)算 考點(diǎn)三:break,continue語句 例題:以下程序運(yùn)行后輸出結(jié)果的第一行為_______________-,第二行為_______________(2007春) #include <stdio.h> void main() {int i=5; do {switch(i%2) { case 0:i--;break; case 1:i--;break; } i--;printf(“%d\n”,i); }while(i>0); } |