C语言习题2滁州学院计算机科学与技术专升本.docx

上传人:b****6 文档编号:7274954 上传时间:2023-01-22 格式:DOCX 页数:39 大小:30.55KB
下载 相关 举报
C语言习题2滁州学院计算机科学与技术专升本.docx_第1页
第1页 / 共39页
C语言习题2滁州学院计算机科学与技术专升本.docx_第2页
第2页 / 共39页
C语言习题2滁州学院计算机科学与技术专升本.docx_第3页
第3页 / 共39页
C语言习题2滁州学院计算机科学与技术专升本.docx_第4页
第4页 / 共39页
C语言习题2滁州学院计算机科学与技术专升本.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

C语言习题2滁州学院计算机科学与技术专升本.docx

《C语言习题2滁州学院计算机科学与技术专升本.docx》由会员分享,可在线阅读,更多相关《C语言习题2滁州学院计算机科学与技术专升本.docx(39页珍藏版)》请在冰豆网上搜索。

C语言习题2滁州学院计算机科学与技术专升本.docx

C语言习题2滁州学院计算机科学与技术专升本

C语言练习题

(二)

一选择题

1.以下C语言用户标识符中,不合法的是(D)

A)_1              B)AaBc          C)a_b            D)a--b

 2.若有定义:

doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是(C)

A)a=a++,i++    B)i=(a+k)<=(i+k)     C)i=a%11       D)i=!

a

3.

#include

main()

{

chara,b,c,d;

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

scanf(“%c”,&c); scanf(“%c”,&d);

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

}

当执行程序时,按下列方式输入数据(从第一列开始,代表回车,注意:

回车是一个字符)

12

34

则输出结果是:

(B)

A、1234   B、12  C、12   D、12

                     3       34

4、以下关于C语言数据类型使用的叙述中错误的是:

(D)

A、若要准确无误的表示自然数,应使用整数类型。

B、若要保存带有多位小数的数据,应使用双精度类型。

C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型。

D、若只处理"真"和"假"两种逻辑值,应使用逻辑类型。

 

5、若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是:

(A)

A、1       B、0  C、2   D、不知道a的值,不能确定 

6、以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是:

(B)

A、switch(a)                         B、switch(a==1)

  {case1:

a=b;break;                         { case0:

a=b;break;

    default:

a++;                              case1:

a++;

}                                       }

C、switch(a)                         D、switch(a==1)

  { default:

a++;break;                   { case1:

a=b;break;

      case1:

a=b;                                case0:

a++;

}                                       } 

7、有如下嵌套的if语句

      if(a

         if(a

         else  k=c;

      else

         if(b

         else k=c;

以下选项中与上述if语句等价的语句是(C)

A、k=(a

a:

b;k=(b

b:

c;

B、k=(a

((b

a:

b):

((b

b:

c);

C、k=(a

((a

a:

c):

((b

b:

c);

D、k=(a

a:

b;k=(a

a;c 

8有以下程序

#include 

main()

{inti,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j>3)break;

m*=i*j;

}

}

printf("m=%d\n",m)

}

程序运行后的输出结果是(A)

(A)m=6      (B)m=2    (C)m=4    (D)m=5

9有以下程序

#includes

main()

{inta=1,b=2;

 for(;a<8;a++){b+=a;a+=2;}

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

}

程序运行后的输出结果是(D)

(A)9,18       (B)8,11    (C)7,11       (D)10,14

10以下选项中,能用作用户标识符的是(C)

A)void

B)8_8

C)_0_

D)unsigned

11阅读以下程序

 #include“stdio.h”

 main()

 {intcase;floatprintF;

  printf(“请输入2个数:

”);

  scanf(“%d%f”,&case,&printF);

  printf(“%d%f\n”,case,printF);

 }

 该程序编译时产生错误,其出错原因是(A)

 A)定义语句出错,case是关键字,不能用作用户自定义标识符

 B)定义语句出错,printF不能用作用户自定义标识符

 C)定义语句无错,scanf不能作为输入函数使用

 D)定义语句无错,printf不能输出case的值

12表达式:

(int)((double)9/2)-(9)%2的值是(B)

 A)0

 B)3

 C)4

 D)5

13若有定义语句:

intx=10;,则表达式x-=x+x的值为(B)

 A)-20

 B)-10

 C)0

 D)10

14有以下程序

 #include”stdio.h”

 main()

 {inta=1,b=0;

  printf(“%d,”,b=a+b);

  printf(“%d\n”,a=2*b);

 }

 程序运行后的输出结果是(D)

 A)0,0

 B)1,0

 C)3,2

 D)1,2

15设有定义:

inta=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是(C)

 A)if(a>b)c=a,a=b,b=c;

 B)if(a>b){c=a,a=b,b=c;}

 C)if(a>b)c=a;a=b;b=c;

 D)if(a>b){c=a;a=b;b=c;}

16有以下程序

 #include“stdio.h”

main()

 {intc=0,k;

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

  switch(k)

  {default:

c+=k;

 case2:

c++;break;

 case4:

c+=2;break;

  }

  printf(“%d\n”,c);

 }

 程序运行后的输出结果是(A)

 A)3

 B)5

 C)7

 D)9

17以下程序段中,与语句:

k=a>b?

(b>c?

1:

0):

0;功能相同的是(A)

 A)if((a>b)&&(b>c))k=1;

elsek=0;

 B)if((a>b)||(b>c)k=1;

elsek=0;

 C)if(a<=b)k=0;

elseif(b<=c)k=1;

 D)if(a>b)k=1;

elseif(b>c)k=1;

 elsek=0;

18有以下程序(B)

 #include

 main()

 {chars[]={“012xy”};inti,n=0;

 for(i=0;s[i]!

=’\0’;i++)

if(s[i]>=’a’&&s[i]<=’z’)n++;

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

 }

 程序运行后的输出结果是(B)

 A)0

 B)2

 C)3

 D)5

19有以下程序

 #include“stdio.h”

 main()

 {intn=2,k=0;

  while(k++&&n++>2);

  printf(“%d%d\n”,k,n);

 }

程序运行后的输出结果是(D)

 A)02

 B)13

 C)57

D)12

20有以下程序

#include

main()

{charc1,c2;

 c1=’A’+’8’-‘4’;

 c2=’A’+’8’-‘5’;

 printf(“%c,%d\n”,c1,c2);

}

已知字母A的ASCII码为65,程序运行后的输出结果是(A)

 A)E,68

 B)D,69

 C)E,D

 D)输出无定值

21有以下程序

 #include

 voidfun(intp)

 {intd=2;

  p=d++;printf(“%d”,p);}

 main()

 {inta=1;

 fun(a);printf(“%d\n”,a);}

 程序运行后的输出结果是(C)

 A)32

 B)12

 C)21

 D)22

22 有以下程序

#include 

main()

{  

 int   x=1,y=2,z=3;

 if(x>y)

 if(y

 else     printf("%d",++y);

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

}

程序的运行结果是(D)

A)331        B)41          C)2           D)1

23有以下程序

#include  

main()

{  int   i=5;

   do

   {  if(i%3==1)

        if(i%5==2)

         {  printf(“*%d”,i);  break;  }

      i++;

   }   while(i!

=0);

   printf(“\n”);

}

程序的运行结果是(A)

A) *7          B)*3*5           C)*5           D)*2*6

24有以下程序

#include  

int fun(int  a,int   b)

{ if(b==0)  return a;

 else     return(fun(--a,--b));

}

main()

{  printf("%d\n", fun(4,2));}

程序的运行结果是(B)

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

25有以下程序

#include  

void  fun( int a,  int b)

{  int   t;

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

}

main()

{  int  c[10]={1,2,3,4,5,6,7,8,9,0}, i;

   for(i=0;i<10;i+=2)  fun(c[i], c[i+1]);

   for(i=0;i<10;i++)  printf("%d," ,c[i]);

   printf("\n");

}

程序的运行结果是(A)

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

C)0,9,8,7,6,5,4,3,2,1               D)0,1,2,3,4,5,6,7,8,9

26若有以下程序段,其输出是(B)

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(“%d,%d,%d”,a,b,c);

A.0,0,-10B.0,0,5C.-10,3,-10D.3,3,-10

27有如下程序

main0

{inty=3,x=3,z=1;

printf(“%d%d”,(++x,y++),z+2);

}

运行该程序的输出结果是(D)

A)34B)42C)43D)33

28     若变量已正确说明,要求语句:

scanf(“a=%f,b=%f”,&a,&b);给a赋予3.12、给b赋予9.0,用表示空格,用表示回车,则正确的输入形式是(C)

A、3.129.0B、a=3.12b=9

C、a=3.12,b=9D、a=3.12,b=9

29假定x和y为double型,则表达式x=2,y=x+3/2的值是(D)

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

30  设a,b,c,d,m和n均为int型变量,且a=5,b=6,c=7,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(C)

A、0B、1C、2D、3

31  下列表达式中和x*=3+5等价的是(C)

A、(x*=3)+5B、x=x*3+5C、x=x*(3+5)D、x=x+(3+5)

32 C程序的基本结构有(C)

A、选择、重复和模块B、顺序、选择和模块

C、顺序、选择和循环D、逻辑、物理和程序

33 下列说法正确的是(D)

A、main()中()可以省略;

B、注释语句只能放在语句后面;

C、C语句以‘;’结束,也可以‘,’结束;

D、main()主函数可放在程序中任何位置,但程序总是从其开始执行。

34  下列关于C语言说法错误的是(C)

A、C语言运算较其它语言丰富

B、C语言以函数为程序模块单元,实现程序模块化设计

C、C语言不能直接访问物理地址,不能实现汇编语言的部分功能

D、C语言程序的可移植性好,执行效率高。

35若有x=1,y=2,z=3,则表达式(x

++x:

++y)==z的值是(A)

A、0B、1C、2D、3

36 若X&&Y||Z的值为1,则(A)

A、若Z为0,则X和Y必为1B、X,Y,Z必定为1

C、X,Y,Z可能都为0D、若X为1,则Z必为0

37  若有说明语句:

charC=‘72’;则变量C(D)

A.包含1个字符  B.包含2个字符

C.包含3个字符  D.说明不合法

38  有语句ch=getchar();当输入65时,ch的值为(A)

A.6B.AC.aD.’6’

39  putchar(98);执行后输出(C)

A.9B.98`D.’b’

40   chara[50];scanf(“%s”,a);printf(“%s”,a);如果输入abcdefg后回车,则(A)

A.输出abcB.编译通不过,无输出

C.编译能够通过,输出abcdefgD.输出abcdefg

41下列程序的输出结果是(B)

main()

{int a,b,c,x;

a=b=c=0;

x=35;

if(!

a) 

x--;

else if(b)

;

if(c)

  x=3;

else

  x=4;

print("%d",x) ; }

A)34  B)4  C)35    D)3

42下列程序中x的值输入8,那么程序输出结果是(B)

#include

main()

{float x,y;

scanf("%f",&x);

if(x<0.0)

  y=0.0;

else if((x<5.0)&&(x!

=2))

  y=1.0/(x+2.0);

else if(x<10.0)

  y=1.0/x;

else y=10.0;

printf("%f",y) ; }

A)0.000000 B)0.125000 C)0.5000000 D)1.000000

43 下列程序的输出结果是(A)

main()

{int x=1,a=0,b=0;

switch(x)

  {case 0:

b++;

   case 1:

a++;

   case 2:

a++;b++ ;   }

printf("a=%d,b=%d",a,b) ; }   

A)a=2,b=1  B)a=1,b=1  

C)a=1  b=0  D)a=2,b=2

44若有定义float w;int a,b;那一个正确(C)

A)switch(w)

  {case 1.0:

printf("*");

   case 2.0:

printf("**”);}

B)switch(a);

  {case 1:

printf("*");

   case 2:

printf("**"); }

C)switch(a)

  {case 1:

printf("*");

   default:

printf("");

   case 1+2:

printf("**");  }

D)switch(a+b);

  {case 1:

printf("*");

   case 2:

printf("**");

   default:

("");  }

46下列程序的输出结果是(B)

main()

{int i=0,a=0;

 while(i<20)

  {for(;;)

     if (i%10==0) break; else i--;

   i+=11;a+=i ;   }

printf("%d",a) ; }

A)21   B)32  C)33  D)11

47

(1)有以下程序

main()

{ int k=4,n=0;

for( ; n

{ n++;

if(n%3!

=0) continue;

k--; }

printf("%d,%d",k,n);

}

程序运行后的输出结果是(C)

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

47

(2)若执行以下程序时从键盘上输入9,则输出结果是(B)

A、11B、10C、9D、8

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

elseprintf("%d\n",n--);

}

48阅读以下程序:

main()

{intx;

scanf("%d",&x);

if(x--<5) printf("%d",x);

else printf("%d",x++);}

程序运行后,如果从键盘上输人5,则输出结果是(C)

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

49以下叙述正确的是(D)

A、do-while语句构成的循环不能用其它语句构成的循环代替。

B、do-while语句构成的循环只能用break语句退出。

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D、用do-while语句构成的循环,在while后的表达式为零时结束循环。

50以下程序的输出结果是(D)

A、10,19,2B、9,87,6C、10,99,0D、10,109,1

main()

{intx=10,y=10,i;

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

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

}

51以下程序的输出结果是(A)

A、20B、31C、321D、210

main()

{intn=4;

while(n--)printf("%d",--n);

}

52以下程序的输出结果是(A)

A、#*#*#B、#####C、*****D、*#*#*

main()

{inti;

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

{if(i%2){printf("#");continue;}

printf("*");

}

printf("\n");

}

53以下程序的输出结果是(B)

A、编译不通过,无输出B、aceg

C、acegiD、abcdefghi

main()

{inti;

for(i='A';i<'I';i++,i++)printf("%c",i+32);

printf("\n");

}

54以下循环体的执行次数是(C)

A、3B、2C、1D、0

main()

{inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i);

}

55有如下程序

main()

{inti,sum;

for(i=1;i<=3;sum++) sum+=i;

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

}

该程序的执行结果是(C)

A、6B、3C、死循环D、0

56有如下程序

main()

{intx=23;

do

{printf("%d",x--);}while(!

x);}

该程序的执行结果是(B)

A、321B、23C、不输出任何内容D、陷入死循环

57有如下程序

main()

{intn=9;

while(n>6){n--;printf("%d",n);}

}

该程序段的输出结果是(B)

A、987B、876C、8765D、9876

58有以下程序段

intk=0;

while(k=1) k++;

while循环执行的次数是(A)

A、无限次B、有语法错,不能执行C、一次也不执行D、执行1次

59以下程序执行后sum的值是(C)

A、15B、14C、不确定D、0

min()

{inti,sum;

for(i=1;i<6;i++) sum+=i;

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

}

60有以下程序段

intx=3;

do

{printf("%d",x-=2);}while(!

(--x));}

其输出结果是(C)

A、1B、30C、1–2D、死循环

61t为int类型,进人下面的循环之前,t的值为0(B)

while(t=l)

{……}

则以下叙述中正确的是

A、循环控制表达式的值为0B、循环控制表达式的值为1

C、循

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

当前位置:首页 > PPT模板 > 其它模板

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

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