C语言复习题及答案全.docx

上传人:b****5 文档编号:7733231 上传时间:2023-01-26 格式:DOCX 页数:21 大小:26.01KB
下载 相关 举报
C语言复习题及答案全.docx_第1页
第1页 / 共21页
C语言复习题及答案全.docx_第2页
第2页 / 共21页
C语言复习题及答案全.docx_第3页
第3页 / 共21页
C语言复习题及答案全.docx_第4页
第4页 / 共21页
C语言复习题及答案全.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言复习题及答案全.docx

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

C语言复习题及答案全.docx

C语言复习题及答案全

C语言程序设计复习题及答案

第一部分程序设计基本概念

1.1在TRUBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。

1.2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。

1.3结构化程序由_____、_____、_____三种基本结构组成。

第二部分C程序设计的初步知识

一、选择题

2.1以下选项中正确的整型常量是

A)12.    B)-20    C)1,000    D)4  5  6

2.2以下选项中正确的实型常量是

A)0    B)3.  1415  C)0.329×10

(2)(10的2次方)    D).871

2.3以下选项中不正确的实型常量是

A)2.607E-1    B)0.8103e  2    C)-77.77    D)456e-2

2.4以下选项中不合法的用户标识符是

A)abc.c    B)file    C)Main    D)PRINTF

2.5以下选项中不合法的用户标识符是

A)_123    B)printf    C)A$    D)Dim

2.6C语言中运算对象必需是整型的运算符是

    A)%        B)/        C)!

        D)**

2.7可在C程序中用作用户标识符的一组标识符是

    A)void    define    WORD

    B)as_b3    _123    If

    C)For    -abc    case

    D)2c    DO    SIG

2.8若变量已正确定义并赋值,符合C语言语法的表达式是

 A)a=a+7;    B)a=7+b+c,a++    C)int(12.3%4)    D)a=a+7=c+b

2.9以下叙述中正确的是

    A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:

实型变量中允许存放整型值。

    B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。

    C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。

    D)已有a=3,b=5。

当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。

第三部分、顺序结构

一、选择题

3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是

 A)a=b=c=100;    B)d++;    C)c+b;    D)d=(c=22)-(b++);

3.2以下选项中不是C语句的是

A){inti;i++;printf("%d\\n",i);}

B);        C)a=5,c=10        D){;}

3.3以下合法的C语言赋值语句是

A)A=B=58    B)k=int(a+b);    C)a=58,b=58    D)--i;

3.4以下程序的输出结果是

A)0    B)1        C)3        D)不确定的值

    main()

    {

        intx=10,y=3;

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

    }

3.5若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是

A)read(a,b,c);        B)scanf("%d%d%d",a,b,c);

C)scanf("%D%D%D",&a,&b,&c); D)scanf("%d%d%d",&a,&b,&c);

3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是

 A)102233    B)10.0,22.0,33.0   C)10.022.033.0    D)102233

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

3.7若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是

    A)a=a+b,b=a-b,a=a-b;    B)t=a,a=b,b=t;

    C)a=t;t=b;b=a;        D)t=b;b=a;a=t;

3.8若变量已正确定义,以下程序段的输出结果是

    A)输出格式说明与输出项不匹配,输出无定值

    B)5.17000    C)5.168000    D)5.169000

    x=5.16894;

    printf("%f\\n",(int)(x*1000+0.5)/(float)1000);

3.9若有以下程序段,c3中的值是

 A)0        B)1/2        C)0.5        D)1

    

3.10若有以下程序段,intc1=1,c2=2,c3;

    c3=c1/c2;其输出结果是

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

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

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

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

3.11当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是

    A)a=98,b=765,c=4321        B)a=10,b=432,c=8765

    C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765,c=4321.0

    main()

    {

        inta;floatb,c;

        scanf("%2d%3f%4f",&a,&b,&c);

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

    }

3.12以下程序的输出结果是

A)a=%2,b=%5    B)a=2,b=5   C)a=%%d,b=%%d    D)a=%d,b=%d

    main()

    {  inta=2,b=5;

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

    }

第四部分、选择结构

一、选择题

4.1下列运算符中优先级最高的运算符是

    A)!

    B)%    C)-=    D)&&

4.2下列运算符中优先级最低的运算符是

    A)||    B)!

=    C)<=    D)+

4.3为表示关系x≥y≥z,应使用的C语言表达式是

    A)(x>=y)&&(y>=z)    B)(x>=y)AND(y>=z)

4.4设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是

A)a&&b B)a<=b  C)a||b+c&&b-D)!

((a

c||1)

4.5以下程序的输出结果是

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

    main()

    {  inta=2,b=-1,c=2;

        if(a

            if(b<0)  c=0;

        else  c+=1;

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

    }

4.6以下程序的输出结果是

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

    main()

    {  intw=4,x=3,y=2,z=1;

        printf("%d\\n",(w

w:

z

z:

x));

    }

4.7若执行以下程序时从键盘上输入3和4,则输出结果是

    A)14    B)16    C)18    D)20

    main()

    {  inta,b,s;

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

        s=a;

        if(a

        s*=s;

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

    }

4.8下面的程序片段所表示的数学函数关系是

      -1(x<0)

A)y=  0(x=0)

      1(x>0)

      1(x<0)

B)y=  -1(x=0)

      0(x>0)

      0(x<0)

C)y=  -1(x=0)

      1(x>0)

      -1(x<0)

D)y=  1(x=0)

      0(x>0)

    y=-1;

    if(x!

=0)y=1;

        if(x>0)y=1;

    elsey=0;

    答案:

本题没有正确答案。

程序片段所表示的数学函数关系应该是

      0(x<0)

  y=  0(x=0)

      1(x>0)

4.9运行以下程序后,输出

    A)****        B)&&&&

    C)####&&&&    D)有语法错误不能通过编译

    main()

    {  intk=-3;

        if(k<=0)printf("****\\n")

        elseprintf("&&&&\\n");

    }

4.10若a和b均是正整型变量,以下正确的switch语句是

A)  switch(pow(a,2)+pow(b,2))

    {case1:

  case3:

  y=a+b;  break;

      case0:

  case5:

  y=a-b;

    }

B)  switch(a*a+b*b);

    {case3:

      case1:

  y=a+b;break;

      case0:

  y=b-a;break;

    }

C)  switcha

    {default:

  x=a+b;

      case10:

  y=a-b;break;

      case11:

  x=a*d;break;

    }

D)  switch(a+b)

    {case10:

x=a+b;break;

      case11:

y=a-b;break;

    }

    答案:

没有正确答案。

如果C选项改为:

    switch(a)

    {default:

  x=a+b;

      case10:

  y=a-b;break;

      case11:

  x=a*b;break;

    }

    则答案可以选择C

第五部分、循环结构

一、选择题

5.1以下程序段的输出结果是

    A)9      B)1      C)11      D)10

    intk,j,s;

    for(k=2;k<6;k++,k++)

    {  s=1;

        for(j=k;j<6;j++)  s+=j;

    }

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

5.2以下程序段的输出结果是

    A)12      B)15    C)20    D)25

    inti,j,m=0;

    for(i=1;i<=15;i+=4)

        for(j=3;j<=19;j+=4)m++;

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

5.3以下程序段的输出结果是

    A)10

      9

      8

    B)9

      8

      7

    C)10

      9

      8

      7

    D)9

      8

      7

      6

    intn=10;

    while(n>7)

    {  n--;

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

    }

5.4以下程序段的输出结果是

    A)1      B)30      C)1-2      D)死循环

    intx=3;

    do

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

    while(!

(--x));

5.5以下程序段的输出结果是

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

    main()

    {  inti,sum;

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

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

    }

5.6以下程序段的输出结果是

    A)741      B)852      C)963      D)875421

    main()

    {  inty=10;

        for(;y>0;y--)

            if(y%3==0)

            {  printf("%d",--y);continue;  }

    }

5.7若x是int型变量,以下程序段的输出结果是

    A)**3

      ##4

      **5

    B)##3

      **4

      ##5

    C)##3

      **4##5

    D)**3##4

      **5

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

        printf((x%2)?

("**%d"):

(##%d\\n"),x);

5.8以下程序的输出结果是

A)*#*#*#$    B)#*#*#*$      C)*#*#$      D)#*#*$

    main()

    {  inti;

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

        {  if(i%2)  printf("*");

            else    contionue;

            printf("#");

        }

        printf("$\\n");

    }

5.9以下叙述正确的是

A)do_while语句构成的循环不能用其它语句构成的循环来代替。

B)do_while语句构成的循环只能用break语句退出。

C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。

D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。

5.10以下程序的输出结果是

A)3981      B)4284      C)2668      D)2870

    main()

    {  intx,i;

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

        {  x=i;

            if(++x%2==0)

                if(++x%3==0)

                    if(++x%7==0)

                        printf("%d",x);

        }

        printf("\\n");

    }

二、填空题

5.11当执行以下程序段后,i的值是____、j的值是____、k的值是____。

    inta,b,c,d,i,j,k;

    a=10;  b=c=d=5;  i=j=k=0;

    for(;a>b;++b)i++;

    while(a>++c)j++;

    dok++;  while(a>d++);

5.12以下程序段的输出结果是____。

    intk,n,m;

    n=10;m=1;k=1;

    while(k<=n)  m*=2;

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

5.13以下程序的输出结果是____。

    main()

    {  intx=2;

        while(x--);

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

    }

5.14以下程序段的输出结果是____。

    inti=0,sum=1;

    do{sum+=i++;}while(i<5);

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

第六部分、字符型数据

一、选择题

6.1C语言中的简单数据类型有

    A)整型、实型、逻辑型      B)整型、实型、字符型

    C)整型、字符型、逻辑型    D)整型、实型、逻辑型、字符型

6.2C语言中,字符(char)型数据在微机内存中的存储形式是

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

6.3设有语句chara=\'\'\\72\'\';,则变量a

A)包含1个字符 B)包含2个字符 C)包含3个字符   D)说明不合法

6.4C语言中不合法的字符常量是

    A)\'\'\\0xff\'\'    B)\'\'\\65\'\'    C)\'\'&\'\'    D)\'\'\\028\'\'

    答案:

本题A)和D)选项都是不合法的字符常量。

若A)选项改为\'\'\\xff\'\',则正确。

6.5C语言中不合法的字符串常量是

A)"\\121"    B)\'\'y=\'\'    C)"\\n\\n"   D)"ABCD\\x6d"

第七部分、函数

一、选择题

7.1以下说法中正确的是

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

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

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

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

7.2以下函数的类型是

    A)与参数x的类型相同      B)void类型      C)int类型      D)无法确定

    fff(floatx)

    {  printf("%d\\n",x*x);}

7.3以下函数调用语句中,含有的实参个数是

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

    func((exp1,exp2),(exp3,exp4,exp5));

7.4以下程序的输出结果是

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

    fun(inta,intb)

    {  intc;

        c=a+b;

        returnc;

    }

    main()

    {  intx=6,y=7,z=8,r;

        r=func((x--,y++,x+y),z--);

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

    }

7.5以下程序的输出结果是

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

    main()

    {  inti=2,p;

        p=f(i,i+1);

        printf("%d",p);

    }

    intf(inta,intb)

    {  intc;

        c=a;

        if(a>b)c=1;

        else  if(a==b)  c=0;

        else  c=-1;

        return(c);

    }

7.6以下程序的输出结果是

    A)0      B)1      C)6      D)无定值

    fun(inta,intb,intc)

    {  c=a*b;    }

    main()

    {  intc;

        fun(2,3,c);

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

    }

7.7以下程序的输出结果是

    A)5.500000    B)3.000000    C)4.000000  D)8.25

    doublef(intn)

    {  inti;    doubles;

        s=1.0;

        for(i=1;i<=n;i++)s+=1.0/i;

        returns;

    }

    main()

    {  inti,m=3;floata=0.0;

        for(i=0;i

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

    }

二、填空题

7.8以下程序的输出结果是____。

    unsignedfun6(unsignednum)

    {  unsignedk=1;

        do

        {  k*=num%10;    num/=10;  }

        while(num);

        returnk;

    }

    main()

    {  unsignedn=26;

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

    }

    答案:

12

7.9以下程序的输出结果是____。

    doublesub(doublex,doubley,doublez)

    {  y-=1.0;

        z=z+x;

        returnz;

    }

    main()

    {  doublea=2.5,b=9.0;

        printf("%f\\n",sub(b-a,a,a));

    }

    答案:

9.000000

7.10以下程序的输出结果是____。

    fun1(inta,intb)

    {  intc;

        a+=a

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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