C语言考试习题及答案.docx

上传人:b****8 文档编号:10982241 上传时间:2023-02-24 格式:DOCX 页数:30 大小:26.25KB
下载 相关 举报
C语言考试习题及答案.docx_第1页
第1页 / 共30页
C语言考试习题及答案.docx_第2页
第2页 / 共30页
C语言考试习题及答案.docx_第3页
第3页 / 共30页
C语言考试习题及答案.docx_第4页
第4页 / 共30页
C语言考试习题及答案.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言考试习题及答案.docx

《C语言考试习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言考试习题及答案.docx(30页珍藏版)》请在冰豆网上搜索。

C语言考试习题及答案.docx

C语言考试习题及答案

第一章C语言程序设计概述习题

1.C语言程序的基本结构是【】。

  A)函数B)语句C)字符D)程序行

2.下列四个叙述中,正确的是【】

  A)在C程序中,主函数必须位于其他函数的最前面 

  B)在C程序中,一行只能写一条语句 

  C)C程序的基本结构是程序行 

  D)C语句是完成程序功能的最小单位

3.C语言规定,在一个C程序中,main()函数的位置是【】

  A)必须在开始 B)必须在最后

  C)可以任意 D)必须在系统调用的库函数之后

4.以下叙述中,正确的是【】。

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

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

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

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

5.在C语言提供的合法的关键字是【】

  A) switchB) cherC) CaseD) FLOAT

6.以下用户标识符,其中合法的是【】

  A)ForB)4dC)f2.G3D)_f#

第2章数据类型、运算符和表达式习题

1.intx=43,y=0;charch=‘A’;则表达式x*y+ch-‘B’的值是【】。

  A)43B)65C)1D)0

2.在C语言中,合法的字符常量是【】

  A) '\084'  B) '\x43'    C) 'ab'  D) "\0"

3.若已定义:

intx=5.5,y;则表达式y=2.75+x/2的值是【】。

  A)5.5 B)5  C)4D)4.0

4.a=2为整型变量,(a+‘E’-‘A’)*3表达式的值是【】。

  A) 18  B) 12    C) 8 D) 20

5.表达式5/2的值是【】。

  A)2.5B) 2      C) 3   D) 1

6.设y=z=4,则表达式x=y==z的值为【】。

  A)4B)–4     C)1     D)0

7.设inta,b;则表达式a=2,b=++a*2的值为【】。

  A)6B)4C)8D)2

8.列四组数据类型中,C语言允许的一组是【】

  A)整型、实型、逻辑型,双精度型

  B)整型、实型、字符型,无值类型

  C)整型、双精度型、布尔型,无值类型

  D)整型、实型、复型、字符型

9.以下能正确定义变量a,b和c并为它们赋值的语句是【】

  A)inta=5;b=5;c=5;

  B)inta,b,c=5;

  C)a=5,b=5,c=5;

  D)inta=5,b=5,c=5;

10.C语言所提供的五种基本数据类型包括:

字符型、整型、双精度型、浮点型和【】。

  A)指针型B) 结构型C) 数组型D) 无值类型

11.设变量a为整型,f为实型,i为双精度型,则表达式10+‘a’+i*f的数据类型是【】。

  A)int型B)float型C)double型D)不确定

12.若有定义:

intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值是【】。

  A)0B)2C)1.5D)1

13.若d为double型,表达式d=1,d+5,d++的值是【】。

  A)1B)6.0C)2.0D)1.0

14.设inta=1,d=4;floatb=2.0,c=3.0,则表达式:

a+b*c-d%2的值是【】。

 A)5B)6C)5.0D)6.0

15.下列运算符中,优先级最高的是【】。

A)*B)++C)+D)/=

16.若希望当整型变量A的值为5时,表达式的值为1,则下面不能满足要求的表达式是【】。

A)A/2-1B)A%2C)(A-2)/2D)(A+3)%2

17.a、b均为整数,且b≠0,则表达式a/b*b+a%b的值是【】。

A)aB)bC)a被b除的余数部分D)a被b除商的整数部分

18.设x、y、z、s均为int型变量,且初值均为1,则执行语句s=(++x)+(++y)-(++z);后,s的值为【】。

A)3B)6C)4D)5

19.若已定义:

intx=5.5,y;则表达式y=2.75+x/2的值是【】。

  A)5.5B)5C)4D)4.0

20.若已定义inta;则表达式a=10,a+10,a++的值是【】。

  A)20B)10C)21D)11

21.已知intx=4,y=-1;charch=‘A’;则表达式(x-y+ch-‘B’-y)的值是【】。

  A)2B)1C)3D)-2

22.下列运算符中,运算优先级最低的是【】。

  A)--B)/C)+D)-=

23.若给定表达式2.5+3/2-7%2,则与表达式的值是【】。

  A)2B)1C)2.5D)2.0

24.已定义inta;则表达式a=10,a+10,a++的值是【】。

  A) 20B) 10C) 21D) 11

25.错误的转义字符是【】

  A)'\091'B)'\\'C)'\0' D)'\''

26.设inta,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是【】

  A)2,1,2B)2,0,3C)2,2,3D)2,1,3

27.在C语言中,合法的长整型常数是【】

  A)0LB)49627C)324562&D)216D

28.假定x和y为double型,则表达式x=2,y=x+3/2的值是【】

  A)3.500000B)3C)2.000000D)3.000000

29.以下合法的赋值语句是【】

  A)x=y=100B)d--;C)x+y;D)c=int(a+b);

30.若能x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后x的值是【】

  A)4B)16;C)32D)52

31.下面均是合法整型常量的是【】。

  A)160B)-0xcdfC)-01D)-0x48a

  -0xffff01a986.122e5

  0120xe06680x

32.下面不正确的字符串常量是【】。

  A)‘abc’B)“12’12”C)“0”D)“”

33.符合语法的赋值表达式是【】。

  A)d=9+e+f=d+9B)d=9+e,f=d+9C)d=9+e,e++,d+9D)d=9+e++=d+7

34.要求运算数必须是整型的运算符是【】。

  A)/B)+C)%D)++

35.设变量a为整型,f为实型,i为双精度型则表达式a+i*f值的数据类型是【】。

  A) intB) floatC)doubleD)不确定

36.在C语言中,char型数据在内存中的存储形式是【】。

  A)补码B)反码C)原码D)ASCII码

37.正确标识符符是【】。

  A)4dB)ifC)IntD)AS$

38.若有定义intb=7;floata=2.5,c=4.7则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【】。

  A)5.5B)5C)6.5D)6

39.有定义inta=2,b=3,c=10;则计算表达式a+=b+2,c-=a+1后c的值是【】。

  A)3B)2C)1D)4

40.C语言中,int、char、和short三种类型数据占用的字节数是【】。

  A)用户自定义B)均为2个字节C)任意的D)由机器字长决定

41.以下选项中合法的字符常量是【】

  A)"B"B)'\010'C)68D)D

第3章C程序的基本控制结构习题

一、选择题

1.结构化程序设计中使用的基本程序控制结构是【】。

  A)选择结构、顺序结构、循环结构

  B)条件结构、嵌套结构、顺序结构

  C)嵌套结构、转移结构、递归结构

  D)模块结构、递归结构、循环结构

2.下面程序运行的结果是【】

main()

{

inti=-1;

if(i>=0)

printf("****\n");

}

  A)****B)%%%%

  C)%%%%\nD)****%%%%

3.下列程序段的输出结果是【】。

charm='a';

while(!

m)

printf("%c",m);

  A)aB)aaa...

  C)不输出任何信息D)'a'

4.运行下列程序,输出结果是【】。

main()

{

charm='a';

do

{

printf("%c",m);

}

while(!

m);

}

  A)aB)aaa...

  C)'a'D)不输出任何值

5.下列程序段执行后,s的值为【】。

intk,s=0;

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

s=s*k;

  A)1*2*3*...*10B)0

  C)11D)10

6.下列程序段执行后,s的值为【】。

intk,s=0;

for(k=1;k<=10;)

s=s+k;k++;

  A)1+2+3+...+10B)10

  C)11D)死循环

7.以下四条语句中,有语法错误的是【】。

  A)if(a>b)m=a;B)if(a

  C)if((a=b;)>=0)m=a;D)if((a=b)>=0)m=a;

8.运行下面程序段后,i的值是【】。

inti;

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

printf("%d",i);

  A)9B)10

  C)0D)0123456789

9.有如下程序段:

intp=10;

while(p=0)

p=p-2;

  则下面的描述中正确的是【】。

  A)while语句执行10次

  B)循环是无限循环

  C)循环体语句一次也不执行

  D)循环体语句执行一次

10.语句while(!

E);中的表达式!

E等价于【】。

  A)E==0B)E!

=1

  C)E!

=0D)E==1

11.设a为整型变量,则下列不能正确表达数学关系1

  A)a>1&&a<5B)a==2||a==3||a==4

  C)1

(a<=1)&&!

(a>=5)

12.设inta=1,b=2,c=3,d=4,z;则表达式(a>b)?

(z=c):

(z=d)的值为【】。

  A)4B)2

  C)1D)3

13.设inti=4;则表达式(i==2)?

i:

i-1的值为【】。

  A)1B)2

  C)0D)3

14.以下程序段在执行时,若从键盘输入3,则输出为【】。

intx;

scanf("%d",&x);

switch(x)

{

case5:

printf("Excellent");

default:

printf("Poor");

case4:

printf("Good");

case3:

printf("Pass");

case2:

printf("Fail");

}

  A)PassB)Passpoor

  C)PoorPassFailD)PassFail

15.以下程序段的输出结果是【】。

inti=0,j=0,k=6;

if(i>0||j>=0)

k++;

printf("%d,%d,%d\n",i,j,k);

  A)0,0,7B)1,0,7

  C)1,1,6D)1,0,6

16.若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则下面满足要求的表达式是【】。

  A)A%2==1B)(A%2==0)

  C)!

(A%2)D)(A%2=0)

17.下面的程序运行时,若从键盘输入1和2,则输出结果是【】。

main()

{

inta,b,s;

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

s=a;

if(s

s=b;

s=s*s;

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

}

  A)6B)4

  C)2D)1

18.下列程序段执行后,s的值为【】。

intk,s=0;

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

s=s+k;

  A)55B)0

  C)11D)10

19.设inti=2;则表达式i==2?

i:

i-1的值为【】。

  A)1B)2

  C)0D)3

20.设ch是char型变量,其值为A,则表达式ch=(ch>=’A’&&ch<=’Z’)?

(ch+32):

ch的值为【】。

  A)AB)a

  C)ZD)z

21.已定义x为int型变量,下面程序段的输出结果为【】。

for(x=3;x<6;x++)

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

  A)**3

  **4

  **5

  B)**3,**4,**5

  C)**3

  **4,**5

  D)**3**4

  **5

22.下面的语句执行后,x的值是【】

intx,s=0;

for(x=0;x<10;x++)

s+=x;

  A)10

  B)0+1+2+3+4+5+6+7+8+9

  C)9

  D)0+1+2+3+4+5+6+7+8+9+10

23.如果定义doublex=2.5;inta=2,b=100;,则下面四组答案中正确的是【】。

  A)switch(a+b);

  {case1:

printf("10");

  case2:

printf("100");

  }

  B)switch(x)

  {case1:

printf("10");

  case2:

printf("100");

  }

  C)switch(x);

  {case1.0:

printf("10");

  case2.5:

printf("100");

  }

  D)switch(a+b)

  {case10+1:

printf("10");

  case100+2:

printf("100");

  }

24.下列程序段运行后的输出结果是【】。

inta=4;

do

{

printf("%2d",a-=3);

}

while(!

(--a));

  A)1-3B)1

  C)是无限循环D)1-2

25.下列各程序段中,可以实现1×2×3×4×5×6×7×8×9×10的是【】。

  A)longk=1,M=0;for(;k<11;++k)M*=k;

  B)longk=1,M=1;while(k<10);M*=k,k++;

  C)longk=1,M=1;for(;;++k);M*=k;

  D)longk=1,M=1;while(k<=10){M*=k;k++;}

26.下面程序段运行的结果是【】。

    intn=0;

    while(n++<=1)

    printf("%d",n);

  A)1B)2

  C)1D)123

27.若定义intd,c=1;则执行下面的语句后,d的值为【】。

    switch(c)

    {case0:

d=0;break;

    case1:

    case2:

d=1;

    case3:

    case4:

d=2;break;

    default:

d=3;}

  A)0B)1

  C)2D)3

28.若定义intd,c=0;则执行下面的语句后,d的值为【】。

    switch(c++)

    {case0:

d=0;break;

    case1:

    case2:

d=1;

    case3:

    case4:

d=2;break;

    default:

d=3;}

  A)0B)1

  C)2D)3

29.下面程序段,不是死循环的是【】。

A) inti=100;

  while

(2)

  {i=i%100+1;

  if(i>100)break;

  }

B)for(;;);

C)intk=0;

  do{++k;}while(k>=0);

D)ints=45;

  while(s);s--;

30.下列程序段运行后的输出结果是【】。

inta=1,m=0;

while(a-->=0)m++;

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

A)-2,2B)0,1

C)-1,2D)-1,1

31.执行下列程序后,x和z的值是【】。

main()

{intx,y=1,z;

if(x=z=y)

x=3;

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

}

A)3,0B)0,0

C)0,1D)3,1

32.运行以下程序段的输出结果是【】。

inti=0,j=0,k=6;

if((++i>=0)||(++j>0))

k++;

printf("%d,%d,%d\n",i,j,k);

A)0,0,7B)1,0,7

C)1,1,7D)1,0,6

33.若a,b,c,x,y均为整型变量并且已赋值,则以下正确的switch语句是【】。

  A)switch(a*a+b*b)

   {case1:

    case2+1:

y=a+b;break;

   case0:

   case5:

y=a-b;break;

  }

  B)switcha*2

  {case1:

  case2:

y=a+b;break;

  case4:

y=b-a;

  }

  C)switch(a/10)

  {default:

printf("Fail\n");break;

   case6,7:

printf("Pass\n");break;

  }

  D)switcha

  {caseb:

x=1;break;

   casec:

x=0;

  }

34.下列程序执行时,若从键盘输入12,则输出为【】。

    main()

    {intnum,c;

    scanf("%d",&num);

    do

    {c=num%10;

    printf("%d",c);

    }while((num/=10)>0);

    printf("\n");

    }

  A)21B)2

  C)1D)12

35.下列程序的输出结果是【】。

    main()

    {intx,i;

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

    {x=i;

    if(x%2==0&&x%3==0&&x%7==0)printf("%d",i);

    }

    }

  A)14B)21

  C)42D)6

36.以下两条条件语句语义等价的是【】。

  A)if(a=2)printf("%d\n",a);

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

  B)if(a-2)printf("%d\n",a);

  if(a!

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

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

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

  D)if(a-2)printf("%d\n",a);

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

37.以下程序段的运行结果是【】。

    x=5;

    do{y=x--;

   if(!

y){printf("*");continue;}

   printf("#");

   }while(3<=x<=4);

  A)###B)##*

  C)死循环D)输出错误信息

38.运行下面程序段的输出结果是【】。

   inta=4,b=5,t;

   if(a

   t=a,a=b,b=t;

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

  A)5,4B)4,5

  C)5,0D)语法错误

39.若定义intd,c=6;则执行下面的语句后,d的值为【】。

    switch(c)

    {

    case0:

d=0;break;

    

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

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1