《C语言程序设计》作业答案 专页
改观网
首页 > 经典语录 > 《C语言程序设计》作业答案

《C语言程序设计》作业答案

1.第4题 

以下程序的输出结果是______。

 

main()

 

  {   int   n[3][3] , i,  j;

 

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

 

           for( j=0;j<3;j++)   n[i][j]=i+j;

 

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

 

             for(j=0;j++)  n[i+1][j+1]+=n[i][j];

 

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

 

 }

 

 

A.14

B.0

C.6

D.值不确定

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

2.第5题 

以下程序段中,变量n计算外循环体的执行次数,程序执行后n的值为_______。

 

main()

 

{  int  i,j,n=0;

 

   for(i=4;i;i--)

 

       for(j=0;j-5;j++)

 

       n++;

 

           printf("%d",n);

 

}

 

 

A.20

B.24

C.25

D.30

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

3.第6题 

写出下列程序的运行结果_______。

 

main()

 

{  void  swap1();

 

  void  swap2();

 

      int  a=3,b=4;

 

       swap1(a,b);

 

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

 

        a=3;b=4;

 

     swap 2(&a,&b);

 

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

 

}

 

void  swap1(x,y)

 

int  x,y;

 

{  int t;t=x;x=y;y=t;}

 

void  swap2(x,y)

 

int  *x,*y;

 

{  int  t;t=*x;*x=*y;*y=t;}

 

 

A.3,4 (换行) 4,3 

B.4,3 (换行) 3,4

C.3 4 (换行) 4 3

D.4 3 (换行) 3 4

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

4.第7题 

设p为int型变量,则下面for循环语句的执行结果是______。

 

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

 

   {   if(p%3)  p++;

 

          ++p;  printf("%d",p);

 

    }

 

 

A.35811

B.36912

C.2468

D.258

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

5.第8题 

以下程序的输出结果是______。

 

 main()

 

  {   int   i,x,a[10],b[3];

 

       x=5;

 

        for(i=0;i<10;i++)   a[i]=i;

 

          for(i=0;i<3;i++)   b[i]=a[i*(i+1)];

 

           for(i=0;i<3;i++)    x=b[i]*2;

 

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

 

}

 

 

A.12

B.21

C.22

D.23

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

6.第9题 

以下程序的运行结果是______。

 

# include  "stdio.h"

 

main()

 

{   int   a[ ]={1,2,3,4,5,6,7,8,9,10,11,12};

 

    int *p=a+5,*q=NULL;

 

        *q=*(p+5);

 

           printf("%d  %d\n",  *p,*q);

 

  }

 

 

A.运行后报错

B.6 6

C.6 12

D.5 5

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

7.第10题 

字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是_______。

 

#  include "stdio.h"

 

main()

 

  { union

 

           {   int  i[4];

 

                long  k;

 

                 char  c[6];

 

               }a,*s=&a;

 

            s->i[0]=0x39;

 

          s->i[1]=0x38;

 

              printf("%c\n",s->c[0]);

 

  }

 

 

A.5

B.3

C.6

D.9

 

标准答案:D 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

8.第11题 

若有以下说明,

 

char  *str1="copy",str2[10],*str3="hijkl", *str4, *str5="abcd"

 

则______不是对strcpy库函数的正确调用

 

 

A.strcpy(str2,str1);

B.strcpy(str3,str1);

C.strcpy(str4,str1);

D.strcpy(str5,str1);

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

9.第12题 

下面程序运行结果是______。

 

main()

 

{   int  a[6],i;

 

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

 

        {   a[i]=9*(i-2+4*(i>3)%5);

 

               printf("%2d", a[i]);

 

          }

 

 }

 

 

A.-9 0 9 5 4 3 6

B.-18 -9 0 9 54

C.-9 0 95463

D.-9095463

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

10.第13题 

以下程序的输出结果是______。

 

main()

 

  {  char   *p="12134211";   int  z[4]={0,0,0,0}, j, i;

 

          for(j=0;p[j];j++)

 

           {switch ( p[j] )

 

              { case  '1': i=0;

 

                  case  '2':i=1;

 

                   case  '3':  i=2;

 

                     case  '4':    i=3;

 

              }

 

            z[i]++;

 

                 }

 

             for( j=0;j<4;j++)  printf("%d",z[j]);

 

        }

 

 

A.4 2 1 1

B.0 0 0 8

C.4 6 7 8

D.8 8 8 8

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

11.第14题 

若有定义: int a=67; char b='A';则表达式"a"的结果为_____。

 

 

A.0

B.1

C.任何一个非零的整数

D.两个变量不能比较

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

12.第15题 

设有以下宏定义:

 

#define  N   4

 

#define   Y(n)    ((N+1)*n)

 

则执行语句z=2*(N+Y(5+1));后,z的值为______。

 

 

A.出错

B.60

C.48

D.54

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

13.第16题 

以下函数调用语句中含有______参数。

 

excc ((v1,v2),(v2,v3,v4),v6)

 

 

A.3

B.4

C.5

D.6

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

14.第17题 

以下程序的输出结果是______。

 

main()

 

{   int  i,x[3][3]={9,8,7,6,5,4,3,2,1 },*p=&x[1][1];

 

         for(i=0;i<4;i+=2)  printf("%d",p[i]);

 

}

 

 

A.5 2

B.5 1

C.5 3

D.9 7

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

15.第18题 

假定x,y为int类型,则执行以下程序段后x的值为______。

 

  x=1;   y=10;

 

   while(x<6)

 

{   y-=x;

 

     if  (  y<x) 

 

       break;

 

    x++;

 

 

 

}

 

 

A.3

B.4

C.5

D.6

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

16.第19题 

若"int i=10;",则执行下列程序后,变量i的正确结果是______。

 

switch(i)

 

 {   case    8: i+=1;

 

       case  10: i+=1;

 

          case  1: i+=1;

 

        default:    i+=1;

 

}

 

 

A.10

B.11

C.12

D.13

 

标准答案:D 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

17.第20题 

写出下列程序的运行结果_______。

 

main()

 

  {  int  a[]={2,4,6},*pr=&a[0],x=6,y,z;

 

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

 

    z=(*(pr+y)<x)?*(pr+y):x;

 

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

 

}

 

 

A.6

B.0

C.4

D.2

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

18.第21题 

下面程序的输出是_______。

 

main()

 

{  int  j,a[ ]={1,3,5,7,9,11,13,15},*p=a+5;

 

   for(j=5;j>0;j--)

 

         { switch  (j)

 

               { case   3:

 

                   case  1:  *(p++);break;

 

                   case  2:*(--p);

 

                             default:*p++;

 

                        }

 

                 }

 

           printf("%d",*p);

 

 }

 

 

A.14

B.13

C.15

D.12

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

19.第22题 

写出下列程序的运行结果_______。

 

main()

 

{  int  a=3,y;

 

  y=fn(a,a++);

 

   printf("%d",y);

 

}

 

int  fn(x,c)

 

int  x,c;

 

{int  b;

 

        if(x<c)  b=1;

 

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

 

  else  b=-1;

 

     return(b);

 

}

 

 

A.3

B.-1

C.1

D.0

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

20.第23题 

在下列符号中,不属于转义字符的是_______。

A.\

B.\x12

C.\013

D.\05

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

21.第25题 

以下程序的运行结果是______。

 

# include "stdio.h"

 

main()

 

  {  int a=1,b=2,c;

 

    c=max(a,b);

 

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

 

}

 

max(int x,int  y)

 

 { int  z;

 

     z=(x>y)?x:y;

 

   return(z);

 

}

 

 

 

A.2

B.MAXIS2

C.max is 2

D.maxis2

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

22.第26题 

下面程序段的输出结果为:_______。

 

int  p=2;

 

 main()

 

{   int  s,j,sum( );

 

       for(j=0;j<=5;j++)s=sum(j);

 

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

 

   }

 

 int  sum(int  k)

 

            {  static  int  x=1;int  y=1;

 

                p++;y++;

 

              return(x+=k+p+y);

 

 }

 

 

A.s=67

B.s=61

C.s=63

D.s=56

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

23.第27题 

如果函数定义时,形式参数是实型变量,则调用该函数时,实际参数不可以是______。

A.实型常量

B.字符型变量

C.实型表达式

D.指向实型变量的指针变量前面加“*”

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

24.第28题 

以下程序的输出结果是______。

 

main()

 

{   union  {  char  i[2];   int   k ;  } r;

 

        r.i[0]=2;        r.i[1]=0;

 

             r.k=r.i[0]+r.i[1]*2;

 

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

 

}

 

 

A.2

B.1

C.0

D.不确定

 

标准答案:A 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

25.第29题 

设有下列定义  

 

static   int  x,*p=&x,*q;

 

   q=p;scanf("%d,%d",p,q);

 

若输入"3,4"则x的值为______。

 

 

A.3

B.4

C.0

D.无法确定

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

26.第30题 

下列程序运行结果是______。

 

swap(  int  *pt1,int * pt2)

 

{   int   p;

 

      p=*pt1;*pt1=*pt2;  *pt2=p;

 

       }

 

 main()

 

 {  int  a=5,b=7,*p1,*p2;

 

     p1=&a;  p2=&b;

 

       swap(p1,p2);

 

             printf("*p1=%d, * p2=%d\n", *p1,*p2);

 

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

 

}

 

 

A.*p1=7,*p2=5,a=5,b=7

B.*p1=7,*p2=5 a=7,b=5

C.*p1=7*p2=5 a=7b=5

D.*p1=5,*p2=7, a=7,b=5

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

27.第31题 

以下程序的输出结果是______。

 

int  a=1;

 

  fun(int   k)

 

  {  static   int   a=5;

 

        a+=k;  printf("%d",a);

 

          return(a);

 

}

 

main()

 

{  int  b=3;  printf("%d\n"  ,fun(b+fun(a)));}

 

 

A.6 9 9

B.6 6 9

C.6 15 15

D.6 6 15

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

28.第32题 

以下程序的运行结果是______。

 

void prt(x,y,z)

 

int  *x,*y,*z;

 

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

 

 int  a=12,b=20,c=30;

 

 main()

 

{    prt(&a,&b,&c);

 

    prt (&a,&b,&c);

 

}

 

 

A.21,13,30 14,21,30

B.13,21,30 14,22,30

C.13,21,30 14,21,30

D.30,21,13 14,22,30

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

29.第33题 

定义如下变量和数组:

 

int  i;

 

int  x[3][3]={1,2,3,4,5,6,7,8,9};

 

则下面语句的输出结果是______。

 

for(i=0;i<3;i++)  printf("%d",x[i][2-1]);

 

 

A.1 5 9

B.1 4 7

C.2 5 8

D.3 6 9

 

标准答案:C 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

30.第34题 

如果在用户的程序中使用C语言库函数中的数学函数时,应在该源文件中使用的include命令是_______。

A.# include " string.h" 

B.# include " math.h" 

C.#include" stype.h" 

D.# include" stdio.h" 

 

标准答案:B 

您的答案: 

题目分数:1.0 

此题得分:0.0 

  

31.第1题 

有定义 int b[7]={3,1,2},则b[5]的值为______。

 

标准答案:0 

您的答案: 

题目分数:2.0 

此题得分:0.0 

  

32.第2题 

以下程序将一个名为f1.dat的文件复制到一个名为f2.dat的文件中。请填入正确答案。

 

  #  include "stdio.h"

 

  main()

 

   {  char  c ;  file *fp1, *fp2;

 

          fp1=fopen("f1.dat  ,  ___________);

 

           fp2=fopen("f2.dat , __________);

 

          c=getc(fp1);

 

   while (c!=eof)

 

      {  __________(c,fp2); c=fgetc(fp1); }

 

         fclose (fp1);

 

fclose (fp2);

 

  return;

 

}

 

 

标准答案:

" r"

 

" w"

 

fputc

 

您的答案: 

题目分数:2.0 

此题得分:0.0 

  

33.第24题 

设有说明 char str[20],如果想从终端上把以下字符" This is a book." 送到数组str中,使用的完整语句为______。

 

标准答案:gets(str); 

您的答案: 

题目分数:2.0 

此题得分:0.0 

  

34.第35题 

若有以下定义语句: int a[4]={0,1,2,3},*p;p=& a[1];则++(*p)的值是______。

 

标准答案:2 

您的答案: 

题目分数:2.0 

此题得分:0.0 

  

35.第38题 

下列程序段的循环次数______。

 

n=0;i=7;

 

do

 

n=2*n+1;

 

while (n<=i);

 

 

标准答案:

4

 

您的答案: 

题目分数:2.0 

此题得分:0.0 

  

36.第36题 

下列程序中,函数fun()的功能是求出一下分数序列的前n项之和。

 

1/2,2/3,3/5,5/8,8/13,13/21,.....之和通过函数值返回main()函数。例如,若n的值为5,则应输出3.007051。

 

请修改程序中的错误,使它能计算出正确的结果。

 

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

 

试题程序:

 

行1: # include"stdio.h"

 

行2:double  fun(int  t)

 

行3:  {   int   i;

 

行4:    double  n,s,a,b,c;

 

行5:      s=1;

 

行6:      a=1;b=2;

 

行7:       for(i=0;i 

 

行8:      {   n=a/b;

 

行9:           s=s+n;

 

行10:          c=a+b;

 

行11:       b=a;

 

行12:      a=c;

 

行13:    }

 

行14:    return   s;

 

行15:   }

 

  main()

 

{    int   n;

 

        printf("Enter  n:");scanf("%d",&n);

 

           printf("\n  The result  :%f \n",fun(n));

 

  }

 

 

标准答案:

行11:    b=a;     错,应改为  a=b;。

 

行12:    a=c;   错,应改为  b=c;。

 

您的答案: 

题目分数:15.0 

此题得分:0.0 

  

37.第39题 

下列程序中,函数fun()的功能是:计算并输出k以内最大的10个能被13和17整除的自然数之和。K的值由主函数传入,若k的值为500,则函数值为4622.

 

请修改程序中的错误,使它能计算出正确的结果。

 

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

 

试题程序:

 

行1: # include"stdio.h"

 

行2: # include"conio.h"

 

行3:int  fun(int  k)

 

行4:  {int  m=0,mc=0,j;

 

行5:      while((k>=2)&&(mc<10))

 

行6:  { if ((k%13=0)||(k%17=0))

 

行7:        {m=m+k;mc++;}

 

行8:     k--;

 

行9:     }

 

行10:      return  m

 

行11:    }

 

  main()

 

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

 

 

标准答案:

行6:  if((k%13=0)||(k%17=0))   错, 应改为  if ((k%13==0)||(k%17==0))。

 

行10:  return  m     错, 应改为  return  m;   。

 

您的答案: 

题目分数:15.0 

此题得分:0.0 

  

38.第3题 

编写函数 int fun( int   n),它的功能是判断整数n是否是同构数。若是同构数。函数返回1,否则返回0.

 

所谓“同构数”是指这样的数,它出现在它的平均数的右边。

 

例如:输入整数6,5的平方是25,5是25中右侧的数,所以5是同构数。

 

n的值由主函数从键盘输入,要求不大于100.

 

注意:部分源程序给出如下。

 

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

 

试题程序:

 

#include"conio.h"

 

#include"stdio.h"

 

int fun(int  x)

 

{/*请在此处编程*/

 

}

 

main()

 

{  int x,y;

 

      printf("\n please enter a integer numbers:");

 

        scanf("%d",&x);

 

           if (x>100){  printf("data error!\n");  exit(0);  }

 

      y=fun(x);if(y)  printf("%d YES\n",x);

 

     else  printf("%d NO!n",x);

 

 

标准答案:

int  y;

 

y=x*x;

 

if(x==(y%10))return 1;

 

else return 0;

 

您的答案: 

题目分数:15.0 

此题得分:0.0 

  

39.第37题 

编写函数 int fun( int lim,int  aa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。

 

注意:部分源程序给出如下。

 

请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。

 

试题程序:

 

#include

 

#include

 

int   fun(int lim,int a[100])

 

{/*请在此处编程*/

 

}

 

main()

 

{    int limit,i,sum;

 

     int  a[100];

 

      scanf("%d",&limit);sum=fun(limit,a);

 

    for(i=0;i

 

          {   if (i%10==0&&i!=0)    printf("\n");

 

                     printf("%5d",a[i]);

 

               }

 

}

 

 

 

 

标准答案:

int i,j,k=0,flag;

 

for(i=2;i

 

{flag =1;

 

        for(j=2;j<=i/2;j++)

 

                  if(i%j==0)   flag=0;

 

          if (flag)   a[k++]=i;

 

 }

 

 return(k);

 

您的答案: 

题目分数:15.0 

此题得分:0.0 

  

2017-11-21 18:07   阅读

 《C语言程序设计》作业答案 为你推荐:



栏目列表
推荐的经典语录

热点的经典语录