全国计算机等级考试二级C选择题及答案

更新时间:2024-04-20 12:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国计算机等级考试二级C选择题及答案

C语言的结构

考点1 C语言的组成、main函数

(1) 以下叙述中正确的是________.。(2005年4月) C A) 用C语言实现的算法必须要有输入和输出操作 B) 用C语言实现的算法可以没有输出但必须要有输入 C) 用C语言实现的算法可以没有输入但必须要有输出 D) 用C语言实现的算法可以既没有输入也没有输出 (2) 一个C程序中________.。(2003年4月)B

A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 (3) 以下叙述正确的是________.。(2002年9月)A A) 构成C程序的基本单位是函数 B) 可以在函数中定义另一个函数 C) main()函数必须放在其他函数之前

D) 所有被调用的函数一定要在调用之前进行定义 (4) 以下叙述正确的是________.。(2003年9月)A A) C程序中注释部分可以出现在程序中任何适合的地方 B) 花括号“{”和“}”只能作为函数体的定界符

C) 构成C程序的基本单位是函数,所有函数名都可以由用户名命名 D) 分号是C语句之间的分隔符,不是语句的一部分 (5) 以下叙述中正确的是________.。(2004年4月)B A) C语言的源程序不必通过编译就可以直接运行

B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译

(6)以下4个选项中,不能被看作是一条语句的是________.。(2004年4月)D A){; B}a=0,b=0,c=0; C)if(a )0); D)if(b==0)m=1;n=2; 考点2 标识符的命名规则

(1)在一个C程序中________.。(2003年4月)B A) 用户标识符中可以出现下划线和中划线(减号) B) 用户标识符中不可以出现中划线,但可以出现下划线

C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 (2)以下选项中合法的用户标识符是________.。(2002年9月)B A)long B)_2Test C)3Dmax D)A﹒d a t

(3)以下不能定义为用户标识符的是________.。(2003年9月)D A)scanf B)Void C)_3com D)in t (4)以下叙述正确的是________.。(2002年4月)B A) 可以把define和if定义为用户标识符

B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符

(5)以下有4组用户标识符,其中合法的一组是________.。(2001年9月)C A) For B)4d C)f2_G3 D)WORD -sub DO IF void Case Size a b c define

(6)下列选项中,合法的C语言关键字是________.。(2001年4月)D A)VAR B)c h e r C)integer D)default

(7)以下4组用户定义标识符中,全部合法的一组是________.。(2004年4月)A A) _main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001

(8)以下不能定义为用户标识符的是________.。(2005年4月)D A)Main B)_0 C)_int D)sizeof 数据类型及其运算

考点1 基本数据类型及其定义

(1)下列叙述中正确的是______。(2003年4月)D A)C语言中既有逻辑类型也有集合类型 B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型 D)C语言中既没有逻辑类型也没有集合类型 (2)以下定义语句正确的是______。(2004年9月)C A)char a=’A’ b=’B’; B)float a=b=10.0; C)int a=10,*b=&a; D)float *a,b=&a; 考点 2 整型常量和整型变量

(1)以下选项中可以作为C语言合法常量的是______。(2005年4月)A A)-80. B)-080 C)-8e1.0 D)-80.0e

(2)以下选项中不属于C语言的类型的是______。(2002年4月)D A)singed short int B)unsigned long int C)unsigned int D)long short (3)以下程序输出的结果是______。(2000年9月)0 main() { }

(4)有以下程序 main() { }

程序运行后的输出结果是______。(2004年4月)C A)10,01 B)02,12 C)102,10 D)02,10 考点 3 实型常量与实型变量

(1)以下选项中合法的实型常数是______。(2002年9月)C A)5E2.0 B)E-3 C).2E0 D)1.3E

int x=102,y=012; printf(%unsigned short a=65536;int b; printf(\

11(2)要求以下程序的功能是计算 s?1??????23main() { }

int n;float s; s=1.0;

for(n=10;n>1;n--)

s=s+1/n;

110

printf(\

程序运行后输出结果错误,导致错误结果的程序行是______。(2003年9月)C A)s=1.0 B)for(n=10;n>1;n--) C)s=s+1/n; D)printf(\

(3)以下sum函数的功能是计算下列级数之和。(2004年4月)a=1.0;b=1.0;s=1.0

S?1?x?x?x2!233!????xnn!

请给函数中的各变量正确赋初值。double sum(double x,int n) { int i;double a,b,s; for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b} return s; }

考点 4 字符常量与字符变量 (1)若有以下程序 main() { char a; a='H'-'A'+'O'; printf(\}

执行后输出的结果______。(2003年4月)7

(2)以下程序运行后输出的结果______。(2003年9月)b main() { char m; m='B'+32;

printf(\}

(3)已定义c为字符型变量,则下列语句正确的是______。(2003年9月)C A)c=’97’; B)c=”97”; C)c=97; D)c=”a”;

(4)语句“printf(\;”输出结果是_____。(2000年4月)C A)a\\bre\\'hi\\'y\\\\\\bou B)a\\bre\\'hi\\'y\\bou C)re'hi'you D)abre'hi'y\\bou

(5)以知字母A的ASCⅡ码值是65,以下程序运行后的输出结果是_____。(2005年9月)67G main() {

char a,b;

}

a='A'+'5'-'3'; b=a+'6'-'2'; printf(\

(6)以知字母A的ASCⅡ码值是65,以下语句输出结果是_____。(2004年4月)B66 char ch='B';

printf(\有以下程序 #include main()

{ char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-'0'; n2=n1*10+(ch2'0'); printf(\}

(7)程序运行时输入:12<回车>,执行后输出的结果是_____。(2004年4月)12 有以下程序 main() {

char a,b,c,d;

scanf(\

printf(\}

(8)若程序运行时输入:6,5,65,66<回车>,则输出的结果是_____。(2004年9月)A A)6,4,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 考点 5 算术运算符和算术表达式 (1) 若有语句 int i=-19,j=i%4; printf(\

则输出结果是______。(2000年9月)-3 设有定义:

int k=1,m=2;float f=7;

(2) 则以下选项中错误的表达式是______(2005年9月)C

A)k=k>=k B)-k++ C)k%int(f ) D)k>=f>=m (3) C语言中运算对象必须是整型的运算符是______。(2000年9月)A A)%= B)/ C)= D)<= (4) 函数pi的功能是根据以下近似公式求

π值:

(π* π)/6=1+1/(2*2)+1/(3*3)+ +1/(n*n)

现在请你在下面的函数中填空,完成求π的功能。(2000年9月)1.0/(i*i)或1/(double)(i*i) #include\double pi(long n) { double s=0.0;long i; for(i=1;i<=n;i++)s=s+_______; return(sqrt(6*s)); }

(5)有以下定义语句

double a,b; int w; long c;

若个变量已正确赋值,则下列选项中正确的表达式是______。(2004年9月)C A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a==b 考点 6 关系运算符与关系表达式

(1)以下程序输出的结果是______。(2002年4月)0 main()

{ int a=5,b=4,c=3,d; d=(a>b>c); printf(\}

(2)设y是int型变量,请写出判断y为奇数的关系表达式______。(2001年9月) (y%2)==1 、(y%2)!=0或(y/2*2-y)!=0

(3)若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式______。(2001年9月)x==0

考点7 逻辑运算符与逻辑表达式 (1)有以下程序 main()

{ int i=1,j=1,k=2; if((j++||k++)&&i++); printf(\}

执行后输出结果是______。(2003年4月)C

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 (2)有以下程序 main()

{ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

程序运行后输出结果是______。(2003年9月)C A)0,0 B)0,1 C)1,0 D)1,1 (3)以下程序输出的结果是______。(2002年4月)A main()

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; }

A)1 B)0 C)非0的数 D)-1 (4)有以下程序 main()

{ int a,b,d=25; a=d/10%9; b=a&&(-1);

printf(\

printf(\}

程序运行后输出结果是______。(2005年4月)B A)6,1 B)2,1 C)6,0 D)2,0 (5)设有定义: int a=2,b=3,c=4;

则以下选项中值为0的表达式是_____。(2005年9月)A A)(!a==1)&&(!b==0) B)(a>b)&&!c||1 C)a&&b D)a||(b+b)&&(c-a) (6)有以下程序 main()

{ int i=1,j=2,k=3; main() { int a,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1); printf(\}

if(i++==1&&(++j==3||k++==3)) printf(\}

程序运行后的输出结果是_____。(2005年4月)D A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3

(7)以下程序运行后的输出结果是_____。(2005年4月)10 20 0 main() { int a,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1); printf(\}

考点 8 自增自减运算符

(1)数字字符0的ASCII值为48,若有以下程序 main()

{ char a='1',b='2'; printf(\printf(\}

程序运行后输出结果是_____。(2005年4月)C (2)有以下程序 main()

{ int m=12, n=34; printf(\printf(\}

程序运行后输出结果是_____。(2005年4月)A

A)12353514 B)12353513 C)12343514 D)12343513

(3)有以下程序 main()

{ int i=10,j=1;

printf(\}

执行后输出结果是_____。(2003年4月)B A)9,2 B)10,2 C)9,1 D)10,1 (4)设有以下定义

则下面语句中错误的是_____。(2004年9月)D int a=0; double b=1.25; char c='A' #include d 2

A)a++ B)b++ C)c++ D)d++ (5)有以下程序 main()

{ int t=1,i=5; for(;i>=0;i--)t*=i; printf(\}

执行后输出结果是_____。(2004年9月)0 (6)有以下程序 main()

{ int m=3,n=4,x; x=-m++; x=x+8/++n; printf(\}

程序运行后的输出结果是_____。(2004年9月)D A)3 B)5 C)-1 D)-2 (7)有以下程序 main()

{ char a='a',b; printf(\ printf(\}

程序运行后的输出结果是_____。(2004年9月)A

A)b,b B)b,a C)b,c D)a,c 考点 9 赋值运算符与赋值表达

(1)以下选项中非法的表达式是_____。(2003年9月)D A)0<=x<100 B)i=j==0 C)(char)(65+3) D)x+1=x+1 (2)有以下程序B Main()

{ int a; char c=10;

Float f=100.double x; A=f/=c*=(x=6.5);

Printf(“%d %d %3.1f %3.1f\\n”,a,c,f,x); }

程序运行后的结果是_____。(2003年9月) A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 6 1.5 6.5

(3)以下能正确定义且赋初值的语句是_____。(2005年9月)A A)int n1=n2=10 ; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5

(4)以下程序的功能是:给 r输入数据后计算半径为r的圆面s。程序在编译时出错。 main()

/* Beginning */ { int r; flaot s; scanf(\

s=*π*r*r; printf(\}

出错的原因是_____。(2005年9月)D A)注释语句书写位置错误

B)存放圆半径的变量不应该定义为整型 C)输出语句中格式描述符非法

D)计算圆面积的赋值语句中使用了非法变量

(5)若以下选项中的变量已正确定义,则正确的赋值语句是_____。(2004年4月)C A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3 考点 10 复合赋值运算符

(1)语句“x++;++x;x=x+1;x=1+x;”,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)_____。(2001年9月)x+=1 (2)若有下列程序 main()

{ int k=2,i=2,m; m=(k+=i*=k);

printf(\}

执行后的输出结果是_____。(2002年9月)C

A)8,6 B)8,3 C)6,4 D)7,4 (3)以下程序输出的结果是_____。(2002年4月)16 main() { int a=0; a+=(a=8);

printf(\}

(4)以下程序输出的结果是_____。(2001年9月)D

main() { int a=3;

printf(\}

A)-6 B)12 C)0 D)-12 考点 11 条件运算符就条件表达式

(1)以下程序输出的结果是_____。(2002年4月)C main()

{ int a=5,b=4,c=6,d;

printf(\}

A)5 B)4 C)6 D)不正确

(2)若整型变量a,b,c,d 中的值依次为:1,4,3,2,则条件表达式a

A)1 B)2 C)3 D)4 (3)以下程序段 int k=0,a=1,b=2,c=3; k=ac?c:k;

执行该程序后,k的值是_____。(2005年9月)B A)3 B)2 C)1 D)0 (4)以下程序运行后输出的结果是_____。(2003年9月)3 main() { int p=30;

printf(\}

(5)假定w、x、y、z、m均为int型变量,如有下程序段: w=1;x=2;y=3;z=4;

m=(w

(1)设a和b均为double型变量,且a=5.5、b=2.5则表达式(int)a+b/b的值是_____。(2002年9月)D A)6.500000 B)6 C)5.500000 D)6.000000

(2)设变量为型且已经赋值,则以下语句中能够将中的数值保留到小数点后两位,并将第三位四舍五入的是_____。(2003年9月)B

A)x=x*100+0.5/100.0 B)x=(x*100+0.5)/100.0 C)x=(int)(x*100+0.5)/100.0 D)x=(x/100+0.5)*100.0 (3)以下程序输出结果是16. 00,请填空。(2001年4月)6.6 main()

{ int a=9,b=2;

float x=_______,y=1.1,z; z=a/2+b*x/y+1/2; printf(\}

(4)设有以下变量定义,并已赋确定的值 char w; int x; float y; double z;

则表达式w*x+z-y:所求得的数据类型为_____。(2000年4月)double形或双精度型 考点 13 运算符的优先级

(1)以下程序输出结果是_______。(2005年4月)4599 main()

{ int a=3,b=4,c=5,t-99; if(b

(2)以下程序输出结果是_______。(2005年4月)220 .000000 main()

{ char c; int n=100; float f=10; double x; x=f*=n/=(C=50); printf(\}

输入输出函数

考点 1 格式输入函数scanf

(1)已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值3为,以下选项中正确的输入语句是_____。(2002年9月)C A)scanf(“---”,&i,&j,&k); B)scanf(“%d%d%d”,&i,&j,&k); C)scanf(“%d,%d,%d”,&I,&j,&k); D)scanf(\

(2)有以下语句:int b; char c[10]; ,则正确的输入语句是_____。(2005年4月)B A)scanf(\B)scanf(\C)scanf(\D)scanf(\(3)有以下程序 main() { int m,n,p;

scanf(\ printf(\}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是_____。(2005年4月)A

A)m=123n=456p=789 B)m=123 n=456 p=789

C)m=123,n=456,p=789 D)123 456 789

(4)以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是_____。(2005年4月)10300 #include main()

{ int i=0,j=0,k=0;

scanf(\ printf(\}

(5)有定义语句:int x,y;,若要通过scanf(“%d,%d”,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是_____。(2003年9月)A A)11 12<回车> B)11,12 <回车> C)11,12<回车> D)11,<回车> 12<回车> (6)若有以下程序段

int m=0,n=0; char c='a'; scanf(\ printf(\

若从键盘上输入:10A10<回车>,则输出结果是_____。(2003年4月)A A)10,A,10 B)16,a1,0 C)10,a,6 D)10,A,0 (7)若有程序 main() { int i,j;

scanf(\ printf(\}

要求给 i赋10,给j赋20,则应该从键盘上输入_____。(2003年4月)i=10,j=20

(8)以下程序从终端读入数据到数组中统计其中正数的个数,并计算它们之和.请填空. (2004年9月)&a[i] a[i] main()

{ int i, a[20],sum,count; sum=count=0;

for(i=0;i<20;i++)scanf(\ for(i=0;i<20;i++) { if(a[i]>0) { count++; sum+=______; } }

printf(\}

考点 2 格式输出函数printf

(1)以下程序运行后的输出结果是_____。(2005年9月)88 main()

{ int x=0210; printf(\}

(2)以下程序运行后的输出结果是_____。(2005年9月)3 main()

{ int a=1,b=2,c=3; if(c=a)printf(\ else printf(\}

(3)有以下程序 main()

{ int a=666,b=888; printf(\}

程序运行后的输出结果是_____。(2004年9月)B A)错误信息 B)666 C)888 D)666,888 考点 3 其他输入输出函数 (1)有以下程序 #include main() { char c;

while((getchar())!='?')putchar(--c); }

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为_____。(2002年9月)X

(2)已知字符A的ASCII的代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果为_____。(2005年4月)1B #include main() { char a,b;

a=getchar(); scanf(\ a=a-'A'+'0'; b=b*2; printf(\}

(3)以下叙述中正确的是_____。(2005年9月)B A)调用printf函数时,必须要有输出项

B)调用pruchar函数时,必须在之前包含头文件

C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码当作字符来处理。 (4)有以下程序 #include main()

{ char c1='1',c2='2';

c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); }

当运行时输入:a〈回车〉后,以下叙述正确的是_____。(2005年9月)A A)变量 c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入2个字符

C)变量c1被赋予字符,c2中仍是原有字符2 D)变量c1被赋予字符,c2中将无却值 选择结构程序设计 考点 1 if-else 语句 (1)若有以下程序 main() { int p,a=5;

if(p=a!=0)printf(\else printf(\}

执行后输出结果是_____。(2003年4月)1

(2)有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不等于3的是_____。(2003年9月)C

A)if(c

(3)当把以下4个表达式用作if 语句的控制表达式时,有一个选项与其他选项含义不同,这个选项是_____。(2003年9月)D

A)k%2 B)k%2 ==1 C)(k%2)!=0 D)!k%2==1

(4)以下程序运行后的输出结果是_____。(2003年9月)yes main()

{ int a=1,b=3,c=5;

if(c=a+b) printf(\ else printf(\}

(5)若有以下程序 main()

{ int a=4,b=3,c=5,t=0; if(a

执行后输出结果是_____。(2003年4月)503 (6)有以下程序

main()

{ int a=5,b=4,c=3,d=2;

if(a>b>c) printf(\ else if((c-1>=d)==1)

printf(\

else }

执行后的输出结果是_____。(2003年4月)B

A)2 B)3 C)4 D)编译时出错,无结果 (7)设变量a、b、c、d和y都已正确并赋值。若有以下if 语句 if(a

if(c==d) y=0; else y=1;

该语句所表示的含义是_____。(2005年9月)C A) 0 a

y= y=

1 a>=b 1 a>=b且c≠d

C) 0 a

0 a

printf(\

y= y=

1 a>=b且c≠d 1 c≠d

(8)以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(2004年4月)A A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c)) k=1;

else k=0; else k=0; C)if(a<=b) k=0; D)if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1; else k=0; (9)有以下程序 main()

{ int n=0,m=1,x=2; if(!n) x-=1; if(!m) x-=2; if(!x) x-=3; printf(\}

执行后输出的结果是_____。(2004年4月)1 (10)有以下程序 main()

{ int a=3,b=4,c=5,d=2; if(a>b)

if(b>c)

printf(\

else }

程序运行后的输出结果是_____。(2004年9月)A A)2 B)3 C)43 D)44

(11)下列条件语句中,功能与其他语句不同的是_____。(2004年9月)D

printf(\

printf(\

A)if(a) printf(\B)if(a==0) printf(\C)if(a!=0) printf(\D)if(a==0) printf(\考点 2 switch-case 语句

(1)以下主程序运行后的输出结果是_____。(2003年9月)1 3 2 main()

{ int i,mm=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10)

{ case 0: m++; n++; break; case 10: n++; break; default:k++;n++; }

printf(\}

(2)有以下程序 main()

{ int k=5,n=0; while(k>0) { switch(k) { deault:break; case 1: n+=k; case 2: case 3: n+=k; } k--; }

printf(\}

程序运行后的输出结果是_____。(2005年9月)D A)0 B)4 C)6 D)7 (3)有以下程序 main()

{ char k; int i; for(i+1;i<3;i++)

{ scanf(\

switch(k)

{ case '0':printf(\ case '1':printf(\ } } }

程序运行时,从键盘输入:01〈回车〉,程序执行后输出的结果是_____。(2004年9月)C A)another B)another C)another D)number number number number number another number (4)有以下程序 main() { int i; for(i=0;i<3;i++) switch(i)

{ case 0:printf(\case 2: printf(\default:printf(\} }

程序运行后的输出结果是_____。(2004年9月)C A)022111 B)021021 C)000122 D)012

(5)以下程序运行后的输出结果是_____。(2004年9月)2 1 main()

{ int x=1,y=0,a=0,b=0; switch(x)

{ case 0: a++;break; case 1: b++;break; }

case 2: a++;b++;break; }

printf(\}

{ scanf(\

switch(k)

{ case '0':printf(\ case '1':printf(\ } } }

程序运行时,从键盘输入:01〈回车〉,程序执行后输出的结果是_____。(2004年9月)C A)another B)another C)another D)number number number number number another number (4)有以下程序 main() { int i; for(i=0;i<3;i++) switch(i)

{ case 0:printf(\case 2: printf(\default:printf(\} }

程序运行后的输出结果是_____。(2004年9月)C A)022111 B)021021 C)000122 D)012

(5)以下程序运行后的输出结果是_____。(2004年9月)2 1 main()

{ int x=1,y=0,a=0,b=0; switch(x)

{ case 0: a++;break; case 1: b++;break; }

case 2: a++;b++;break; }

printf(\}

本文来源:https://www.bwwdw.com/article/m4tp.html

Top