C语言试题21.docx

上传人:b****8 文档编号:10024089 上传时间:2023-05-23 格式:DOCX 页数:18 大小:20.46KB
下载 相关 举报
C语言试题21.docx_第1页
第1页 / 共18页
C语言试题21.docx_第2页
第2页 / 共18页
C语言试题21.docx_第3页
第3页 / 共18页
C语言试题21.docx_第4页
第4页 / 共18页
C语言试题21.docx_第5页
第5页 / 共18页
C语言试题21.docx_第6页
第6页 / 共18页
C语言试题21.docx_第7页
第7页 / 共18页
C语言试题21.docx_第8页
第8页 / 共18页
C语言试题21.docx_第9页
第9页 / 共18页
C语言试题21.docx_第10页
第10页 / 共18页
C语言试题21.docx_第11页
第11页 / 共18页
C语言试题21.docx_第12页
第12页 / 共18页
C语言试题21.docx_第13页
第13页 / 共18页
C语言试题21.docx_第14页
第14页 / 共18页
C语言试题21.docx_第15页
第15页 / 共18页
C语言试题21.docx_第16页
第16页 / 共18页
C语言试题21.docx_第17页
第17页 / 共18页
C语言试题21.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言试题21.docx

《C语言试题21.docx》由会员分享,可在线阅读,更多相关《C语言试题21.docx(18页珍藏版)》请在冰点文库上搜索。

C语言试题21.docx

C语言试题21

一、单选题:

(每题1.5分,共60分)

1、C程序是( )

 A.顺序执行

 B.从Main函数开始

 C.从函数体开始

 D.任意语句

答案:

B

2、以下说法中正确的是( )。

  

 A.C语言程序中是从第一定义的函数开始执行

 B.在C语言程序中,要调用的函数必须在main()函数中定义

 C.C语言程序总是从main()函数开始执行

 D.C语言程序中的main()函数必须放在程序的开始部分

答案:

C

3、算法的表示方法有________。

 A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言

 B.高级语言,汇编语言,机器语言

 C.C语言,QBASIC语言,InterDev

 D.图形图像法,描述法,编程法

 E.计算机语言

答案:

A

4、以下选项中,非法的字符常量是( )

 A.'\t'

 B.'\17'

 C."n"

 D.'\xaa'

答案:

C

5、以下所列的C语言常量中,错误的是

 A.0xFF

 B.1.2e0.5

 C.2L

 D.'\72'

答案:

B

6、下列变量名合法的是()

 A.#1

 B.$567

 C.a-b

 D.m_number

答案:

D

7、下面四个选项中,均是不正确的八进制数或十六进制数的选项是

 A.0160x8f018

 B.0abc0170xa

 C.010-0x110x16

 D.0a127ff-123

答案:

D

8、sizeof(float)是

 A.一个双精度型表达式

 B.一个整型表达式

 C.一种函数调用

 D.一个不合法的表达式

答案:

B

9、C语言中,double类型数据占()个字节,char类型数据占()个字节

 A.1

 B.2

 C.4

 D.8和1

答案:

D

10、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是

 A.c=b=a;

 B.(a=c)‖(b=c);

 C.(a=c)&&(b=c);

 D.a=c=b;

答案:

C

11、若已定义x和y为double型,则表达式:

x=1,y=x+3/2的值是( )

 A.1

 B.2

 C.2.0

 D.2.5

答案:

C

12、执行语句x=(a=3,b=a--)后x,a,b的值为;

 A.332

 B.322

 C.323

 D.232

答案:

C

13、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是

 A.a\bre\'hi\'y\\\bou

 B.a\bre\'hi\'y\bou

 C.re'hi'you

 D.abre'hi'y\bou

答案:

C

14、在下列运算符中,优先级别最高的是

 A.<=

 B.=

 C.%

 D.&&

答案:

C

15、若执行下面的程序时从键盘上输入3和4,则输出是

main()

{

inta,b,s;

a=3,b=4;

scanf("%d%d",&a,&b);

s=a+b;

printf("%d\n",s--);

printf("%d\n,--s);

}

 A.7,7

 B.7,5

 C.6,7

 D.7,6

答案:

B

16、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(  )。

 #include

  main()

  { intx;

  seanf(”%d”,&x);

  if(x++>5)printf(”%d”,x);

  elseprintf(”%d\n”,x--);}

 A.7和5

 B.6和3

 C.7和4

 D.6和4

答案:

A

17、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,

则逻辑表达式(m=a> b)&&(n=c> d)运算后,n的值为:

 A.0

 B.1

 C.2

 D.3

答案:

C

18、逻辑运算符两侧运算对象的数据类型

 A.只能是0或1

 B.只能是0或非0正数

 C.只能是整型或字符型数据

 D.可以是任何类型的数据

答案:

D

19、表示关系X< =Y< =Z的C语言表达式为________。

 A.(X< =Y)&&(Y< =Z)

 B.(X< =Y)AND(Y< =Z)

 C.(X< =Y< =Z)

 D.(X< =Y)&(Y< =Z)

答案:

A

20、判断字符型变量x是否是大写字母的正确的表达式______.

 A.'A'<=x<='Z'

 B.(x>=A)&&(x<=Z)

 C.('A'<=x)&&('Z'=>x)

 D.(x>='A')&&(x<='Z')

答案:

D

21、有如下程序

main0

{intx=1,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++

case2:

a++;b++

}

printf("a=%d,b=%d\n",a,b);

}

该程序的输出结果是

 A.a=2,b=1

 B.a=1,b=1

 C.a=1,b=0

 D.a=2,b=2

答案:

A

22、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

 z=x;x=y;y=z;

 A.x=10,y=20,z=30

 B.x=20,y=30,z=30

 C.x=20,y=30,z=10

 D.x=20,y=30,z=20

答案:

B

23、以下程序的输出结果是

main()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x< y)

 if(y!

=10)

   if(!

ok1)

    a=1;

   else

    if(ok2)a=10;

a=-1;

printf("%d\n",a); 

}

 A.1

 B.0

 C.-1

 D.值不确定

答案:

C

24、i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是

   for(i=5; i; i--)

    for(j=0; j< 4; j++){…}

   

 A.20

 B.24

 C.25

 D.30

答案:

A

25、以下程序的输出结果是

main()

{intx=10,y=10,i;

for(i=0;x> 8;y=++i)

printf("%d,%d",x--,y);

}

 A.10192

 B.9876

 C.10990

 D.101091

答案:

D

26、执行语句:

 for(i=1;i++< 4;);后,变量i的值是______.

 A.3

 B.4

 C.5

 D.不定

答案:

C

27、以下程序的输出结果是

{int i,j,x=0;

 for(i=0;i< 2;i++)

  {x++;

   for(j=0;j< 3;j++)

     { if(j%2)continue;

      x++;

     }

    x++

   }

   printf("x=%d\n",x);

}

 A.x=4

 B.x=8

 C.x=6

 D.x=12

答案:

B

28、有以下程序段

intk=0

while(k=1)k++;

while循环执行的次数是

 A.无限次

 B.有语法错,不能执行

 C.一次也不执行

 D.执行1次

答案:

A

29、在while(x)语句中的x与下面条件表达式等价的是(  )。

 A.x==0

 B.x==1

 C.x!

=0

 D.x!

=1

答案:

C

30、执行下面的程序段后,变量k中的值为

s[0]=k;k=s[1]*10;

 A.不定值

 B.33

 C.30

 D.10

答案:

A

31、若有说明:

inta[10];则对a数组元素的正确引用是

 A.a[10]

 B.a[3,5]

 C.a(5)

 D.a[10-10]

答案:

D

32、设有数组定义:

chararray[]=”China”;,则数组array所占的空间为(  )。

 A.4个字节

 B.5个字节

 C.6个字节

 D.7个字节

答案:

C

33、从下列选项中选择不会引起二义性的宏定义是(  )。

 A)#definePOWER(X)X*X  B)#definePOWER(X)(X)*(X)

 C)#definePOWER(X)(X*X) D)#definePOWER(X)((X)*(X))

 A.A

 B.B

 C.C

 D.D

答案:

D

34、在说明语句:

int*f();中,标识符f代表的是

 A.一个用于指向整型数据的指针变量

 B.一个用于指向一维数组的行指针

 C.一个用于指向函数的指针变量

 D.一个返回值为指针型的函数名

答案:

D

35、 若有说明:

inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是

 A.i=*p;

 B.p*=*&j;

 C.i=&j;

 D.i=**p;

答案:

D

36、下面程序的输出是

main()

{charx=040;

 printf("%d\n",x=x<<1);

}

 A.100

 B.160

 C.120

 D.64

答案:

D

37、C语言中____函数的递归调用。

 A.允许

 B.不允许

 C.由用户自己而定

 D.不确定

答案:

A

38、关于建立函数的目的,以下正确的说法是

 A.提高程序的执行效率

 B.提高程序的可读性

 C.减少程序的篇幅

 D.减少程序文件所占内存

答案:

B

39、有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));

该函数调用语句中,含有的实参个数是

 A.3

 B.4

 C.5

 D.有语法错

答案:

A

40、以下函数

  fff(floatx)

  {

  printf(”%d\n”,x*x);

  }

  的类型是(  )。

 A.与参数x的类型相同

 B.void类型

 C.int类型

 D.无法确定

答案:

C

填空题:

(每题1.5分,共24分)

1、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________

答案:

4,8

2、设有以下变量定义,并已赋确定的值

charw;intx;floaty;doublez;

则表达式:

w*x+z-y所求得的数据类型为__________。

答案:

double

3、设x和y均为int型变量,且x=1,y=2,则以下表达式:

0+x/y的值为___。

答案:

0

4、若a是int型变量,则计算表达式后a的值为_______

a=25/3%3

答案:

2

5、语句:

x++;?

++x;x=x+1;?

x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)

答案:

X+=1

6、若变量已正确定义,以下语句段的输出结果是——。

x=0;y=2;z=3;

switch(x)

{

caseO:

switch(y==2)

{

case1:

printf(”*”);break;

case2:

printf(”%”);break;

}

case1:

switch(z)

{

case1:

printf(”$”);

case2tprintf(”$”);break;

d

答案:

*#

7、设x,y、z均为int型变量,请写出描述“x或Y中至少有一个小于Z”的表达式——。

答案:

x

8、已知charch;则判断ch是英文字符的逻辑表达式是_______________

答案:

(ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A')

9、表示条件:

10< x< 100或x< 0的C语言表达式是________。

答案:

(X> 10&&X< 100)||X< 0

10、请写出以下程序的输出结果——。

#include

main()

{

inta=100:

if(a>100)

printf(”%d\n”,a>100);

else

pIintf(”%d\n”,a<=100);}

答案:

!

&&||

11、下面程序的功能是:

输出100以内能被3整除且个位数为6的所有整数,请填空。

#include< stdio.h> 

main()

{inti,j;

for(i=0;______________;i++)

{j=i*10+6;

if(________)continue;

printf("%d",j);

}

}

答案:

i<10,j%3!

=0

12、下面程序的功能是:

将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

#include< stdio.h> 

#include< string.h> 

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i< =k-2;i+=2)

for(j=i+2;j< =k;_______________)

if(_______________

答案:

j+=2

a[i]>a[j]

13、读入一个1到9的数a,求s=a+aa+aaa+…+aa…a(共20项)。

请对下述程

序填空,其中temp保存当前处理项aa…a。

(每个空分别以序号标注,如:

(1)

____)

#include< stdio.h> 

main()

{

intI;

longa,s,temp;

s=temp=0;

printf("Pleaseenteranumber(1-9)");

scanf(

(1)____);

s=a;

for(I=1;

(2)____;(3)____)

答案:

"%lf",&a,i<20,i++,a+a*10,temp

14、下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存人数组b,并按每行3个元素

输出数组b。

请填空。

#include

main()

{inta[10],b[10],i;

for(i=0;_________;i++)

scanf(”%d”,&a[i]);

for(i=1;__________;i++)

b[i]=a[i]-a[i-1];

for(i=1;i<10;i++)

{printf(”%3d”,b

答案:

i<10i<10i%3==0

15、下面程序的功能是:

将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。

#include

#include

main()

{chara[]=”clanguage”,t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j

if(___________)

{t=a[i];a[i]=a

答案:

i+=2

a[ij>a[j]

16、阅读以下程序并填空,该程序是求阶乘的累加和。

S=0!

+1!

+2!

+…+n!

#include

longf(intn)

{

inti:

longs;

s=________;

for(i=1;i<=n;i++)

s=________;

returns;

}

main()

{

longs;

intk,n;

scanf(”%

答案:

1s*i0f(k)

程序设计题:

(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)

1、编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。

答案:

main()

{

inti,num=0;

for(i=100;i< =200;i++)

{

if((i%3==2)&&(i%5==3))

num=num+1;

}

printf("\n%d",num);

}

本题答案:

6

2、回文数是指正读和反读都一样的正整数。

例如3773等都是回文数。

求出[1000,9999]以内的回文数是6的倍数的最大回文数。

答案:

main()

{

inta1,b1,a2,b2,i,hwm;

for(i=1000;i< =9999;i++)

{

a1=i/1000;

b1=i/100-a1*10;

b2=i/10-a1*100-b1*10;

a2=i%10;

if((a1==a2)&&(b1==b2)&&(i%6==0))

hwm=i;

}

printf("所求的最大回文数为%d",hwm);

}

参考答案:

3、编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。

该数是一个完全平方数,第1、2位数字之和为12,第3、4位数字之积为24。

答案:

#include< math.h> 

main()

{intn=0;

inta,b,c,d,e,m;

for(m=32;m< =99;m++)

{

e=m*m;

a=e/1000;/*a为千位*/

b=(e%1000)/100;/*b为百位*/

c=((e%1000)%100)/10;/*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2