2007
10-20

1、若有定义int a[10],则a代表的是数组a的:


           A、第一个元素        B、最后一个元素


           C、首地址            D、最后一个元素的地址


2、若有程序段:int i=2,j;


                       j=i++;


                       printf(“%d,%d”,++i,j);


           该程序段的输出结果是:


A32     B43     C33      D42


3、能正确表示逻辑关系:a10a0C语言表达式为:


           Aa>=10 or a<=0      Ba>=0|a<=10


           Ca>=10 && a<=0     Da>=10||a<=0


4、若tdouble类型,则表达式:t=1,t+5,t++的值是:


           A1        B6.0       C2.0       D1.0


5、要求操作数都为整型数据的算术运算符是:


           A/        B&&       C、%        D^


6、有如下函数调用语句:func(r1,r2+r3,(r4,r5));


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


A3        B4         C5        D、有语法错误


7、若有定义 int *p,a;   p=&a;


          *p表示的是:


A、变量a的地址               B、变量a的值


C、变量p的值                 D、变量p的地址


   8、当定义一个结构体变量时,系统分配给它的内存是:


           A、各成员所需内存量的总和


           B、结构中第一个成员所需内存量


           C、成员中占内存量最大者的容量


           D、结构中最后一个成员所需内存量


 


阅读程序,写出程序的运行结果


1main( )


     {char c1,c2,c3;


      c2=’c’;


      c1=c2-1;


      c3=c2+1;


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


  程序的运行结果是


 


 


 


 


 


2main( )


     {int a=5,b=6,c;


      c=a;


      if(a>b) c=1;


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


else c=1 ;


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


}


 


程序的运行结果是


  


 


 


 


 


3main( )


         {int a=10,y=0;


       do


       {a+=2;y+=a;


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


       while(a!=14);}


   


程序的运行结果是


 


 


 


 


 


   4main( )


      {int i;


       int f[4]={1,1};


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


         f[i]=f[i-1]+f[i-2];


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


         printf(“%d  ”,f[i]);}


   


程序的运行结果是:


 


 


 


 


 


 


一、           完善程序


1、下面程序是输入10个学生的成绩,计算输出平均分。


      main( )


      {int i, a[10];


       float sum=0;mul=1,ave;


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


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


         sum=             ;


         }


       ave=            ;


       printf(“%f,%f,%f\n”,sum,mul,ave);


      }


  2、用冒泡法对10个数由小到大排序。


     main( )


     {int a[11],i,j,t;


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


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


      for(j=1;j<=9;j++)


        for(i=1;             ;i++)


          if(              )


            {t=a[i];                ;a[i+1]=t;}


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


         printf(“%d  ”,a[i]);


}


 


实验选择题


1、构成C程序的基本单位是( 


A、函数  B、过程    C、子程序   D、文件


    2C语言中宏展开的过程是在(   )阶段进行的。


     A、编译   B、链接    C、运行    D、编译预处理


3、运行C源程序的命令是( 


   AALT+F5            BALT+F9


   CCTRL+F5           DCTRL+F9


 


实验改错题


1.按从大到小的顺序输出两个变量的值


main( )


{int a, b, *p1, *p2;


 p1=&a; p2=&b;


 scanf (“%d, %d”, p1, p2);


if (p1<p2)


{t=*p1; *p1=*p2; *p2=t;}


printf (“%d, %d\n”, *p1, *p2);}


 


  错误1                     改正1


 


  错误2                     改正


2.计算两数之积。


main()


{float mul(float,float);


float a,b,c;


scancf(“%f,%f”,&a,&b);


c=m(a,b);


printf(“%f\n”,c);}


float mul (float x,y)


{float z;


z=x*y;


return;}


 


  错误1                      改正1


 


  错误2                      改正2


 


二、        编程题


1、   编写一个将三个整数按从小到大排列输出的函数。  


 


 


 


 


 


 


 


急求答案》有 4 条评论

  1. 5iluo 说:

    很基础的题目,,看一下书可以做出来了,,,不能白吃饭啊,,,你发你的答案,,,有错误会有人帮你改的

  2. cyx101782 说:

    1、A改为C   2、D  3、D  4、D  5、C  6、A  7、B  8、A
    1:b 99 d
    2:c=-1
    3:a=12 y=12
       a=14 y=26
    4:1 1 2 3
    一、1、
    main( )
    {
        int i, a[10];

        float sum=0,mul=0,ave;

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

            {scanf(“%d”,&a[i]);
             sum= sum+a[i]            ;
             mul++;
            }
        ave=sum/mul            ;

        printf(“%f,%f,%f\n”,sum,mul,ave);
        getch();
    }
    2、
    main( )

      {int a[10],i,j,t;
        for(i=0;i<=9;i++)
        scanf(“%d”,&a[i]);
        for(j=0;j<=9;j++)
         {
           for(i=0; i<=8  ;i++)
             {
               if(a[i]>a[i+1])

                {
                  t=a[i]; a[i]=a[i+1] ;a[i+1]=t;
                }
             }
          }
        for(i=0;i<=9;i++)
        printf(“%d  “,a[i]);
       getch();

    }
    实验选择题
    1、A
    2、D
    3、D
    实验改错题
    1、
    错误1:未定义t                     改正1:int t;
        错误2if (p1<p2)                   改正2:if (*p1<*p2)
    2、
    错误1scancf(“%f,%f”,&a,&b);   改正1   scanf(“%f,%f”,&a,&b);

     

      错误2c=m(a,b);                      改正2c=mul(a,b);

      错误3 float mul (float x,y)    改正3  float mul (float x,float y)
    错误4:   return;}     改正4  return z;}
    二、        编程题
    #include<stdio.h>
    main()
    {
        int a,b,c,t,f;
        scanf(“%d %d %d”,&a,&b,&c);
        for(f=0;f<2;f++)
          {
            if(a>b)
             {t=a;a=b;b=t;}
            if(b>c)
             {t=b;b=c;c=t;}
           }

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

  3. younger 说:

    …….

    我只看了第1题…不过楼上的答案好象有问题,我的印象中,数组是并行存放的,a似乎在程序运行中是应该表示其代表数组的首地址.

  4. cyx101782 说:

    [QUOTE=younger]

    …….

    我只看了第1题…不过楼上的答案好象有问题,我的印象中,数组是并行存放的,a似乎在程序运行中是应该表示其代表数组的首地址.

    [/QUOTE]
    的确错了,数组第一个元素的地址也是整个数组的首地址,应是地址,选C,谢谢楼上。刚学C几天

留下一个回复