![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江苏省计算机等级考试C语言第一至三章考点 |
第一、二章节必会试题: 1.以下叙述中正确的是_________(多选) A)在编译时可以发现注释中的拼写错误 B)C语言程序的每一行只能写一条语句 C)main(){}必须位于程序的开始 E)main()函数至少必须有一条语句 F)C程序总是从main函数的第一条语句开始执行 G)C程序总是在执行完main函数的最后一条语句后结束 第三章必会试题: 考点1:常量与变量 在程序执行过程中,值保持不变的量称为常量。变量是指向内存中的一个单元符号。在C语言中,规定变量只能由字母、数字和下划线组成,且第一个字符必须是字母、数字或下划线,常量分为:整型常量、实型常量、字符型常量、字符串型常量、标识符常量 (1)整型常量分为:八进制(以0开头,由数字0—7组成,且第一个数字必须为0),十进制(由数字0—9组成,且第一个数字不能为0),十六进制(以0x开头,由数字0—9,a--f组成) (2)整型变量:基本整型(int)、短整型(short int)、长整型(long int),长整型以L结尾,无符号整数以U结尾(3)实型常量:十进制小数形式与指数形式(用e表示,e之前必须要有数字,且在E或e之后的指数必须是整数), (4)实型变量:float,double (5)字符型常量:用一对单括号引起来的一个字符或以’\’开头的字符序列 (6)字符变量:char (7)字符串型常量:用一对双括号引起来的若干个字符,在字符串的最后有结束标记”\ 1.设有四个常数:①4e0.5、②’\ 2.以下常数表示中不正确的是____________ A.’\ 3.以下选项中,不能作为合法常量的是_________ A.0X 4.设有声明语句:char a=’\ A.包含一个字符 B.包含2个字符 C.包含三个字符 D.声明不合法 5.以下哪个是合法的常量______________ A.35u B.1.25e 6.以下选项中不能用做用户自定义标识符的是__________ A. length_ B._length C.length.d D.For 考点2:运算符与表达式 (1)算术运算符:单目运算符:+,- 双目运算符:+,-,*,/,% (2)关系运算符:> , <, >=, <=, ==,!=,关系成立时,运算结果为整数1,否则为整数0 (3)逻辑运算符:&&(逻辑与),||(逻辑或),!(逻辑非),优先级从高到底:!, ||, && &&与||有短路效应,&&只要第一个为假,则后面不再管结果,||只要有一个为真,则后面不再管结果 (4)赋值运算符:= , +=,-=,*=,/=,%=,^= (5)自增、自减运算符:++,--,只有变量才能自增,常量是不能自增的 (6)逗号运算符:其运算顺序为从左到右依次计算各个表达式的值,并把最后一个表达式的值作为整个表达式的值 (7)sizeof()运算符:用来计算某种类型或数据做占用的字节数 (8)条件运算符:条件表达式”?:”为三目运算符,要求有三个操作对象 (9)各类运算符号的顺序:首先执行:!,++,--,然后算术运算符,然后关系运算符,然后逻辑运算符,然后条件运算符,然后赋值运算符,然后逗号运算符 例题: 1.设有语句int a=6, b=3; float x=8,y; y=b/a*x/2;,则y的值是________________ 2.有数学式3xy/5ab中,变量x和y的取值为整数,而变量a和b的取值为实数,在C程序中对应的正确表达式是______________________ 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..设有语句”float x=2.9;int a=5,b;b=a+x;”,则变量b的值是___________ 4.若a1、a2、a3和a4均为整型变量,则以下选项中符合C语法规则的表达式是______ A.a1=25%3.3 B.a2=a1+a3=3* 5.设有语句”int a,b,c;a=b=c=5;”,执行语句”b+=++a>b &&++c>b;”,则a,b,c的值分别为____ 6. 设x为整数,C中能正确的表达数学式0≤x<5的是_______ A.0<=x<5 B.x=0||x=1||x=2||x=3||x= 7.设有变量说明:”short int a=0,b=0;”,则表达式sizeof(‘a’+’b’)的值是_____ A.1 B. 8.设有语句:char s[ ]=”Rep\0Ch”; int m=sizeof(s);则m的值是_________ 9.执行以下语句后,a的值为___________ int a=0,m=3,n=10; a=(m++,m+n); 10.设有说明语句int a=3,b=2,c; c=--a==b++;则a,b,c的值为_____________________ 11.设有说明语句”int a,b;”,执行语句”b=(a=3*5,a*4),a+15;”后,b的值为________ 第四章考点: 考点一:字符输入函数(getchar) 考点二:格式输入函数(scanf) 1。设有说明语句:double x, 不能通过scanf语句正确的输入数据的语句是________ A.scanf(“%lf”,x); B.scanf(“%f”,&x); C.scanf(“%lf”,&x) D.scanf(“%le”,&x); 例题2. 考点三:字符输出函数(putchar) 考点四:格式输出函数(printf) 2:如有声明”float f=123.45678;”,则执行语句”printf(“% 第五、六章考点: 考点一:分支结构(单分支与多分支结构) 1.以下函数中输入5,3,输出结果是_______ #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; } 考点二:switch语句 1.执行以下程序段后,变量i的值是___________ int i=10; switch(i) { case 9: i+=1 case 10: i+=1; case 11: i+=1; default: i+=1; } 考点三:while语句 1.在while(!a)中,其中的!a与表达式_____________等价 A.a==0 B.a== 2.有以下程序段,while循环次数为__________ int k=0; while(k=1) k++; 考点四:do…while语句 1.以下程序输出的第一行是____________,第二行是______________ #include <stdio.h> void main(void) { int x=6; do { x-=2; printf(“%d\n”,x); }while(--x); } 2.设整型变量x的当前值为3,执行以下循环语句后,输出结果为___________ do { x-=2; printf(“%d\n”,x); }while(!(--x)); 3。下面关于while与do……while循环语句的叙述中正确的是______ A.do……while的循环体至少执行一次 B.while的循环体至少执行一次 C.do……while的循环体不能是复合语句 D.do……while允许从循环体外跳转到循环体内 考点五:for循环语句 1.循环语句for(<表达式1>;<表达式2>;<表达式3>)<循环体>中,<循环体>执行情况是___________ A.至少执行一次 B至少执行两次 C.可能执行,也可能不执行 D.不执行 2.有如下程序: void main() { int i,sum=0; for(i=1;i<=3;i++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是_______________ A.6 B 3.设有语句”for(int i=5,sum=0;i<10,sum++;i++) sum+=i;”,则for()语句的执行情况是_____________________ A.循环0次 B.循环4次 C.循环5次 D.循环6次 考点六:break,continue 1。执行以下程序后,输出___________ 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以内(不含100)能被3整除且个位数为6的所有整数,请填空: #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); } } 考点3:switch语句 例题:下列程序运行后的输出结果,第一行是__________(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”); } } 第六章:循环控制 考点1:while与do while语句实现循环 例题:程序”int x=3; do{printf(“%d”,x--);}while(!x);”的执行结果是____________(2006秋) A.3 2 1 B 例题:以下程序运行时输出的结果是_____________(2007秋) main() { int s=1,n=235; do { s*=n%10; n/=10; }while(n); printf(“%d\n”,s); } 例题:以下程序运行后输出结果的第一行为____________,第二行为_______________(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); } 考点二:for循环 例题:若有声明”int i,k=1;unsigned j;”,则下列语句执行时会出现无限循环的语句是___________(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++; 例题:以下程序运行时输出结果为____________________(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); } 例题:以下程序执行后,输出结果的第一行为____________,第二行为________________(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++); } } 例题:下列关于语句的说法中正确的是___________________(2004秋) A. do…while语句的循环体至少会被执行1次 B. while语句的循环至少会被执行1次 C. for语句的循环体至少会被执行1次 D. 在c语言中只能用do,do…while或for语句实现循环 例题:定理:对于任意一个正整数都可以找到至少一串连续奇数,它们的和等于该正整数的立方。例如:33=27=7+9+11,43=64=1+3+5+7+9+11+13+15。以下程序用[2,20]之间的所有正整数验证该定理。(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!”); } } 例题:以下程序采用递推法计算 考点三:break,continue语句 例题:以下程序运行后输出结果的第一行为_______________-,第二行为_______________(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); } |