C语言程序设计教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

习题 3

3.1 单选题

1.若变量a、i已正确定义,且i已正确赋值,则合法的语句是( )。

A.a==1

B.++i;C.a=a++=5;

D.a=int(i);

2.以下程序的输出结果是( )。

            #include "stdio.h"
            main( )
            { int y=3,x=3,z=1;
              printf("%d %d\n",(++x,y++),z+2);
            }

A.3 4

B.4 2

C.4 3

D.3 3

3.若有以下定义和语句:

            int u=010,v=0x10,w=10;
            printf("%d,%d,%d\n",u,v,w) ;

则输出结果是( )。

A.8,16,10

B.10,10,10

C.8,8,10

D.8,10,10

4.若有以下定义和语句:

            char c1='b',c2='e';
            printf("%d,%c\n",c2-c1,c2-'a'+'A');

则输出结果是( )。

A.2,M

B.3,E

C.2,E

D.输出项与对应的格式控制不一致,输出结果不确定

5.以下程序段的输出结果是( )。

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

A.12

B.34

C.1234

D.提示出错、无结果

6.以下程序的输出结果是( )。

            #include "stdio.h"
            main( )
            {
              char c='z';
              printf("%c",c-25);
            }

A.a

B.Z

C.z-25

D.y

7.以下程序的输出结果是( )。

            main( )
            {int  k=17;
              printf("%d,%o,%x \n",k,k,k);
            }

A.17,021,0x11

B.17,17,17

B.17,0x11,021

D.17,21,11

8.以下程序的输出结果是( )。

            main( )
            { double d=3.2; int x,y;
              x=1.2;y=(x+3.8)/5.0;
              printf("%d \n", d*y);
            }

A.3

B.3.2

C.0

D.3.07

9.下列程序执行后的输出结果是(小数点后只写1位)( )。

            main( )
            { double d; float f; long k; int i;
              i=f=k=d=20/3;
              printf("%d%ld%f%f \n", i,k,f,d);
            }

A.6 6 6.0 6.0

B.6 6 6.7 6.7

C.6 6 6.0 6.7

D.6 6 6.7 6.0

10.下列语句:

                printf("a\bre\'hi\'y\\\bou\n");

的输出结果是( )。提示,'\b'是退格符。

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

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

C.re'hi'you

D.abre'hi'y\bou

11.x、y、z被定义为int型变量,若从键盘上给x、y、z输入数据,则正确的输入语句是( )。

A.INPUT x、y、z;

B.scanf("%d%d%d",&x,&y,&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x,&y,&z);

12.设i是int型变量,f是float型变量,要通过语句“scanf("i=%d,f=%f",&i,&f);”给i赋值100,f赋值765.12,则正确的输入为( )。

A.100765.12

B.i=100,f=765.12

C.100765.12

D.x=100y=765.12

3.2 填空题

1.若有定义:

            int a=10,b=9,c=8;

接着顺序执行下列语句后:

            c=(a-=(b-5));
            c=(a%11)+(b=3);

则变量b中的值是__________。

2.以下程序的输出结果是__________。

            #include "stdio.h"
            main( )
            { int a=177;
                printf("%#o\n",a);
            }

3.以下程序的输出结果是__________。

            #include "stdio.h"
            main( )
            { int a=0;
                a+=(a=8);
                printf("%#x\n",a);
            }

4.以下程序的输出结果是__________,程序的功能是__________。

            main( )
            { int a=1, b=2;
              a=a+b; b=a-b; a=a-b;
              printf("%-3d,%-3d\n", a, b );
            }

5.下列程序的输出结果是16.00,请在程序中填空。

            #include "stdio.h"
            main( )
            { int a=9, b=2;
              float x=________ , y=1.1,z;
              z=a/2+b*x/y+1/2;
              printf("%5.2f\n", z );
            }

6.若有语句:

            int i=-19,j=i%4;
            printf("%.3d\n",j);

则输出结果是__________。

7.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__________。

            int b,c; float a;
            scanf("%f,%d,c=%d",&a,&b,&c);

8.若有程序:

            #include "stdio.h"
            main( )
            { int i,j;
              scanf("i=%d,j=%d",&i,&j);
              printf("i=%d,j=%d\n",i,j);
            }

要求给i赋10,给j赋20,则应该从键盘输入__________。

9.以下程序的输出结果是__________。

            #include "stdio.h"
            main( )
            { int x=65;
              float pi=3.1416,a=123.456;
              double b=8765.4321;
              printf("(1)%d\n",x);
              printf("(2)%6d,%c\n",x,x);
              printf("(3)%f,%f\n",56.1234,a);
              printf("(4)%14f\n",pi);
              printf("(5)%14.3lf\n",b);
              printf("(6)%e\n",586.4);
              printf("(7)%14e\n",pi);
              printf("(8)%g\n",pi);
              printf("(9)%8.4g\n",b);
              printf("(10)%12g,%g\n",pi,b);
            }

10.执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=5,x=8.8,y=76.34, c1='A',c2='a',正确的数据输入形式是__________。

            main( )
            { int a,b;
              float x,y;
              char c1,c2;
              scanf("a=%d b=%d",&a,&b);
              scanf("x=%f y=%f",&x,&y);
              scanf("c1=%d c2=%d",&c1,&c2);
              printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);
            }

3.3 编程题

1.编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式输出。

                                x         y
                    十进制数       10     8
                    八进制数       12     10
                    十六进制数     a      8

2.编写一个程序,输入一个大写英文字符('B'~'Y'),输出它的前导字符、该字符本身及其后续字符。

3.编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。编写程序并给出相应的程序流程图。

4.编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。

5.编写程序,读入3个整数给变量a、b、c,然后交换它们的值,把a原来的值给b,把b原来的值给c,把c原来的值给a。