2000.4-2004.9计算机等级考试二级C语言笔试试卷汇总.doc_第1页
2000.4-2004.9计算机等级考试二级C语言笔试试卷汇总.doc_第2页
2000.4-2004.9计算机等级考试二级C语言笔试试卷汇总.doc_第3页
2000.4-2004.9计算机等级考试二级C语言笔试试卷汇总.doc_第4页
2000.4-2004.9计算机等级考试二级C语言笔试试卷汇总.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

48考点1:基本操作题(选择、循环结构)2000年4月一、选择题(60分)(1) 设有 int x=11; 则表达式 (x+ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(2) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%d n, d*y);(3) 下列程序执行后的输出结果是(小数点后只写一位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main() double d; float f; long l; int i; i=f=l=d=20/3; printf(%d %ld %f %f n, i,l,f,d);(4) 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;(5) 设 int x=1, y=1; 表达式(!x|y-)的值是 A) 0 B) 1 C) 2 D) 1(6) 与 y=(x0?1:x0) y=1; B) if(x) else if(x0) y=1; else y=0; else if(x=0) if(x0) y=1; if(x0)y=1; else if(x=0) y=0; else y=-1; else y=-1;(7) 以下循环体的执行次数是 A) 3 B) 2 C) 1 D) 0main() int i,j; for(i=0,j=1; i=j+1; i+=2, j-) printf(%d n,i);(8) 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。B) do-while语句构成的循环只能用break语句退出。C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环(9) 下列程序执行后的输出结果是 A) G B) H C) I D) J main() int x=f; printf(%c n,A+(x-a+1); (10) 下列程序的运行结果是 A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d#include main() int a=2,b=5; printf(a=%d,b=%dn,a,b); (11) 下列程序的输出结果是 A) 4 B) 2 C) 1 D) 0main() int i, j, m=0, n=0; for(i=0; i2; i+) for(j=0; j=i) m=1; n+; printf(%d n,n);(12) 下列程序执行后的输出结果是 A) -32767 B) FFFE C) 1 D) -32768main() char x=0xFFFF; printf(%d n,x-); (13) 若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); case 1.0: printf(*n); case1 printf(*n); case 2.0: printf(*n); case2 printf(*n); C) switch(b) D) switch(a+b); case 1: printf(*n); case 1: printf(*n); default: printf(n); case 2: printf(*n); case 1+2: printf(*n); default: printf(n); (14) 以下程序段的执行结果是 A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24 C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44int a, y;a=10; y=0;do a+=2; y+=a; printf(a=%d y=%dn,a,y); if(y20) break;while(a=14);(15) 语句printf(abrehiyboun);的输出结果是A) abrehiybou B) abrehiybouC) rehiyou D) abrehiybou(说明:b是退格符)二. 填空题(每空2分,40分)(1) 设有以下变量定义,并已赋确定的值 char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为 1 。(2) 若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 2 。(3) 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。#include main() int a, b, c, i;a=c=0;for(i=0;i=10;i+=2) a+=i; 3 ; c+=b;printf(偶数之和=%dn,a);printf(奇数之和=%dn,c-11); (4) 下面程序的功能是:输出100内能被3整除且个数为6的所有整数。请填空:#include main() int i,j; for(i=0; 4 ;i+) j=i*10+6; if( 5 ) continue; printf(“%d”, j); 答案:1-15:ACAABACDABCCCBC1 double 2 x=0 3 b=i+1 4 i=10 or a=0|a=10 & a=10a=0(8) 有如下程序main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b);该程序的输出结果是A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(9) 有如下程序main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y);该程序的输出结果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000(10) 有如下程序main() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+; printf(“%dn”,c);)该程序的输出结果是A) 0 B) 1 C) 2 D) 3(11) 有如下程序main() int i,sum;for(i=1;i6) n-;printf(“%d”,n);该程序段的输出结果是A) 987 B) 876 C) 8765 D) 9876(14) 设有说明语句:char a=72;则变量aA) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法(15) 有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为 A) ture B) false C) 0 D) 1(二) 填空题(每空2分,40分)(1) 以下程序的输出结果是 1 。main() unsigned short a=65536; int b; printf(“%dn”,b=a);(2) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 2 。c=(a-=(b-5);c=(a%11)+(b=3);(3) 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 3 。(4) 要使以下程序段输出10个整数,请填入一个整数。for(i=0;i= 4 ;printf(“%dn”,i+=2);(5) 若输入字符串:abcde,则以下while循环体将执行 5 次。while(ch=getchar()=e) printf(“*”);答案:1-15:BACBADDACCCBBAD1 0 2 3 3 x5 | x-5 4 18 5 02001年4月一、选择题(60分)(1) 以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.5 C) 2L D) 72(2) 下列选项中,合法的C语言关键字是A) VAR B) cher C) integer D) default(3) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z(4) 若a为int类型且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9 C) -12 D) 6(5) 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A) 不定值 B) 4 C) 3 D) 1(6) 若变量已正确说明为float类型,要通过语句scanf(%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10 B) 10.0,22.0,33.0 22 33C) 10.0 D) 10 22 22.0 33.0 33(7) 若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10 C) 9 D) 8main() int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-);(8) 若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b); B) switch(a*a+b*b) case 1:y=a+b; break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a;break; C) switch a D) switch(a-b) case c1 :y=a-b; break; default:y=a*b;break; case c2: x=a*d; break ; case 3:case 4:x=a+b;break; default:x=a+b; case 10:case 11:y=a-b;break; (9) 有以下程序段int k=0;while(k=1) k+;while 循环执行的次数是A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次(10) 以下程序执行后sum的值是A)15 B)14 C) 不确定 D)0main() int i , sum; for(i=1;i6;i+) sum+=i; printf(%dn,sum);(11) 有以下程序段int x=3;do printf(%d ,x-=2); while (!(-x);其输出结果是A) 1 B) 3 0 C) 1 2 D) 死循环(12) 若变量c为char类型,能正确判断出c为小写字母的表达式是A) a=c= a)|(c= z)C) (a=c) D) (c= a)&(cb)&(n=cd)运算后,n的值为 A) 0 B) 1 C)2 D) 3(10) 阅读以下程序: main() int x; scanf(%d,&x); if(x-x)?w: x; m=(my)?m:y; m=(mz)?m: z;则该程序运行后,m的值是 A) 4 B) 3 C) 2 D) 2(12) t为int类型,进入下面的循环之前,t的值为0 while( t=l ) 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对(13) 以下程序的输出结果是main() int num= 0; while(num=2) num+; printf(%dn,num);A 1 B) 1 C)1 D) l 2 2 2 3 3 4(14) 以下程序的输出结果是main() char c=z; printf(%c,c-25);A) a B) Z C) z-25 D) y(15) 以下选项中,非法的字符常量是A) t B) 17 C)n D) xaa(16) 以下程序的输出结果是main() int a, b; for(a=1, b=1; a=10) break; if (b%3= =1) b+=3; continue; printf(%dn,a); A) 101 B) 6 C) 5 D) 4二、填空题(每空2分,共40分)(1)语句:x+;+x; x=x+1; x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【1】。(2)设y是int型变量,请写出判断y为奇数的关系表达【2】。(3)以下程序运行后的输出结果是【3】。 main() int i=10, j=0; do j=j+i; i-; while(i2); printf(%dn,j); (4) 设有以下程序: main() int n1,n2; scanf(%d,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 程序运行后,如果从键盘上输入1298;则输出结果为【4】。答案:1-16: ACBDBDBDCBDBBACD1 x+=1 2 y%2=1 3 52 4 89212002年4月一、选择题(1) 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 A) 1.4 B) 1 C) 2.0 D) 2(2) 若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是 A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符A的ASCII值加上1。(3) 以下程序段的输出结果是 int a=1234; printf(%2dn,a); A) 12 B) 34 C) 1234 D) 提示出错、无结果(4) 以下选项中不属于C语言的类型的是 A) signed short int B) unsigned long int C) unsigned int D) long short(5) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是 A) a=20000+20000; B) a=4000*10; C) a=30000+10000; D) a=4000L*10L;(6) 以下叙述正确的是 A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符(7) 以下程序的输出结果是 main() int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b); A) 5 B) 4 C) 6 D) 不确定(8) 以下程序中,while循环的循环次数是 main() int i=0; while(i10) if(i1) continue; if(i=5) break; i+; A) 1 B) 10 C) 6 D) 死循环,不能确定次数(9) 以下程序的输出结果是main() int a=0,i; for(i=1;i50) printf(%d,a); if(a40) printf(%d,a); if(a30) printf(%d,a);(2) 以下程序的输出结果是【2】 。main() int a=177; printf(%on,a);(3) 以下程序的输出结果是【3】 。main() int a=0; a+=(a=8); printf(%dn,a); (4) 以下程序输出的结果是【4】 。main() int a=5,b=4,c=3,d; d=(abc); printf(%dn,d);(5) 以下程序的输出结果是【5】 。main() int s,i; for(s=0,i=1;i0; (5)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是_。 A) 6.500000 B) 6 C) 5.500000 D) 6.000000 (6)已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。 A) scanf(%2d%2d%2d,&i,&j,&k); B) scanf(%d %d %d,&i,&j,&k); C) scanf(%d,%d,%d,&i,&j,&k); D) scanf(i=%d,j=%d,k=%d,&i,&j,&k); (7)与数学式子对应的C语言表达式是_。 A) 3*xn/(2*x-1) B) 3*x*n/(2*x-1) C) 3*pow(x,n)*(1/(2*x-1) D) 3*pow(n,x)/(2*x-1) (8)设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是_。 A) printf(x=%dn,x); B) printf(x=%ldn,x); C) printf(x=%8dLn,x); D) printf(x=%LDn,x); (9)若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); printf(%d,%dn,m,i); 执行后的输出结果是_。 A) 8,6 B) 8,3 C) 6,4 D) 7,4 (10)已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是_。 A) 6 B) 0 C) 2 D) 1 (11)有一函数 1 (x0) y= 0 (x=0 ) -1 (x0) y=1; B) y=0;else if(x=0) y=0; if(x0) y=1;else y=-1; else if(x=0)if(x=0) if(x0) y=1;if(x0) y=1; else y=0;else y=-1; else y=-1;(12)以下选项中,与k=n+完全等价的表达式是_。 A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+1 (13)以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是_。 A) sum=0.0; B) sum+=score; C) ave=sum/4.0; D) printf(NO%d:%fn,n,ave); (14)有以下程序段 int n=0,p; do scanf(%d,&p);n+; while(p!=12345&n10&x50) x+; if(x/3)x+;break; else continue; printf(%dn,x); (3) 有以下程序: #include main() char c; while(c=getchar()!=?) putchar(-c); 程序运行时,如果从键盘输入:Y?N?,则输出结果为【3】。 答案:1-15: CBACDCCBCDCAADA1 20,0 2 17 3 X2003年4月一、选择题(1) 以下叙述正确的是 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点(2) C语言中用于结构化程序设计的三种基本结构是 A) 顺序结构、选择结构、循环结构 B) if、switch、break C) for、while、do-while D) if、for、continue(3) 下列叙述中正确的是 A) C语言中既有逻辑类型也有集合类型 B) C语言中没有逻辑类型但有集合类型 C) C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型(4) 下列关于C语言用户标识符的叙述中正确的是 A) 用户标识符中可以出现下划线和中划线(减号) B) 用户标识符中不可以出现中划线,但可以出现下划线 C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头(5) 若有以下程序段(n所赋的是八进制数) int m=32767,n=032767; printf(%d,%on,m,n);执行后输出结果是 A) 32767,32767 B) 32767,032767 C) 32767,77777 D) 32767,077777(6) 下列关于单目运算符+、-的叙述中正确的是 A) 它们的运算对象可以是任何变量和常量 B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量(7) 若有以下程序段 int m=0xabc,n=0xabc; m-=n; printf(%Xn,m);执行后输出结果是 A) 0X0 B) 0x0 C) 0 D) 0XABC(8) 有以下程序段 int m=0,n=0; char c=a; scanf(%d%c%d,&m,&c,&n); printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0(9) 有以下程序 main() int i; for(i=0;ibc) printf(%dn,d); else if(c-1=d)=1) printf(%dn,d+1); else printf(%dn,d+2);执行后输出的结果是 A) 2 B) 3 C) 4 D) 编译时有错,无结果(12) 有以下程序 main() int i=0,s=0; do if(i%2)i+;continue; i+; s+=i; while(i7); printf(%dn,s);执行后输出的结果是 A) 16 B) 12 C) 28 D) 21(13) 有以下程序 main() int i=10,j=1; printf(%d,%dn,i-,+j); 执行后输出的结果是 A) 9,2 B) 10,2 C) 9,1 D) 10,1(二) 填空题(每空2分,共40分)(1) 若有语句 int i=-19,j=i%4; printf(%dn,j);则输出的结果是【1】。 (2) 若有程序 main() int i,j; scanf(i=%d,j=%d,&i,&j); printf(i=%d,j=%dn ,i,j); 要求给i赋10,给j赋20,则应该从键盘输入【2】。(3) 若有以下程序 main() int p,a=5; if(p=a!=0) printf(%dn,p); else printf(%dn,p+2); 执行后输出结果是【3】。(4) 若有以下程序 main() int a=4,b=3,c=5,t=0; if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; printf(%d %d %dn,a,b,c); 执行后输出结果为【4】。(5) 若有以下程序 main() char a; a=H-A+0; printf(%cn,a); 执行后输出结果是【5】。答案:1-13: CADBADCAACBAB1 3 2 i=10,j=20 3 1 4 5 0 3 5 72003年9月一、选择题(1)以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号和只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分(2)以下选项中可作为C语言合法整数的是A)10110B B)0386 C)0xffa D)x2a2(3)以下不能定义为用户标识符的是A)scanf B)Void C)_3com_ D)int(4)有以下程序main() int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(%d %d %3.1f %3.1fn,a,c,f,x);程序运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论