QQ:2621578584
天大《C语言程序设计》离线考核(标准答案)

时间:2023/3/30点击: 338 次

可做奥鹏院校所有作业、毕业论文咨询请添加 QQ:2621578584
微信:apgzs888

C语言程序设计

要求:

一、 独立完成,下面已将三组题目列出,请按照学院平台指定的做题组数作答,

每人只答一组题目多答无效,满分100分;

    平台查看做题组数操作:学生登录学院平台→系统登录→学生登录→课程考试→离线考核→离线考核课程查看→做题组数,显示的数字为此次离线考核所应做哪一组题的标识;

    例如:“做题组数”标为1,代表学生应作答“第一组”试题; 

二、答题步骤:

1. 使用A4纸打印学院指定答题纸(答题纸请详见附件);

2. 在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括学号、姓名等基本信息和答题内容,请写明题型、题号;

三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word

    文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰;

1. 上传文件命名为“中心-学号-姓名-科目.doc”

2. 文件容量大小:不得超过20MB。

提示:未按要求作答题目的作业及雷同作业,成绩以0分记

 

 

题目如下:

第一组:

一、编程题(每题20分,共40分)

1编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。

 

2编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1按照公式 e=1++++…+e的近似值,至n=10为止。

#include < stdio.n>

void main ( )

{ float__________

       int n=1, i;

       for(__________)

       { n=__________;

        e=__________;

       }

       printf (“ e= %f\n” ,e);

      }

 

 

 

    2将文件file1.dat中的内容复制到file2.dat中。     

          #include <stdio.h>

#define  Null  0

void main()

{  FILE__________;

             char ch;

             if((p1=fopen(file1.dat,r)= =Null)||(p2=fopen(file2.dat,w)= =Null ))

             { printf(Cant open file\n); __________; }

             while(__________)

              { ch=__________; fputc(ch,p2); }

             fclose(p1);

             fclose(p2);

          }

 

 

 

3求二维数组a[5][4]中所有元素的平均值。

   #include <stdio.h>

____  __  ____    

void main ( )

   {  int a[5][4],i ,j, pa;

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

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

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

      pa= __________;

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

   }

int average (int s[ ][4] )

   {  int i,j,aver=0;

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

        for (j=0;j<4;j++) aver=aver+s[i][j];

     aver=__________;

     __________;        

    }

 

 

 

  三、写出程序的执行结果(每题4分,共12分)

1

         #include <stdio.h>                

void main()

         {  int i, j, k=4;

for (int i=1;i<=k;i++)

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

            for (int i=1;i<=k-2;i++)

      {  printf("%c",);

for (j=1;j<= k-2;j++)

printf(" ");

printf("\n");  

}

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

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

} 

 

   

 

 

2

#include <stdio.h>

void fun(int s[ ]);

void main()

{ int a[ ]={1,2,3,4,5,6},k;

fun(a);

for(k=0;k<=5;k++) printf(“%d  ”,a[k]);

printf(“\n”);

}

void fun(int s[ ])

{  int i=0;

 while(i<3) { s[i]=s[i]+5;  i++; }

}

 

 

 

3

   #include <stdio.h>

void main()

{ int j, a[ ]={1,2,3,4,10,12,13,15};

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

      switch ( j )

       {  case 1:

          case 2: printf(“%d,”, a[j+4]); break;

          case 3: printf(“%d,”, a[j-1]);

        }

              printf(“\n”);

}

 

 

 

 

第二组:

一、编程题(每题20分,共40分)

1、 编写程序。定义数组存放任意输入的10个实数,求出其中的最大值以及第一个最

大值的下标并输出 

2编写程序。要求编写一个求最大供公约数的子函数,调用该子函数对输入的ab求它们的最大公约数并输出。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1程序用于输出如下图形。

 

 

 

 

 

 

#include <stdio.h>

void main( )

{ int i, j;

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

         printf(%4d, __________);

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

       { for(j=1; __________;j++)

         printf(%4d”, __________ );

        __________; }

      }

 

 

 

2输入50个实数,统计其中正数、负数和零的个数。

     

#include <stdio.h> 

void fun(int *zs,int *fs,int *l, __________)

{  int i;

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

{ if(aa[i]>0)(*zs)++;

if(aa[i]<0)

(*fs)++;

if(aa[i]==0)

(*l)++; }

}

void main()

{ float num[50];

int i,czs,cfs,cl;

czs=cfs=cl=0;

printf("\nPlease enter 50 float numbers:\n");

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

scanf(“%f”, __________);

fun(__________, __________);

printf("\n正数:%d,负数:%d,:%d\n",czs,cfs,cl);

}

 

 

 

3输入正整数mn,求出[m,n]区间的所有素数

#include <stdio.h>

_____  __  ___

void main()

{  int m,n,i,j,k;

scanf("%d%d",&m,&n);

for(i=m;i<n;i++)

{ k=sqrt(i);

for(j=2; __________;j++)

    if(__________)break;

    if(__________)

printf(" %d",i);

}

printf("\n");

}

 

 

 

 

  三、写出程序的执行结果(每题412

1

          #include <stdio.h>

void main()

{ char  s1[ ]="abcde", s2[10];

           int  i=0;

           while( s1[i] !=\0’)

           { s2[ i ]= s1[ i ]+3; i++; }

s2[ i ]= '\0';

           printf("%s", s2);

}

 

 

2

            #include<stdio.h>

void main()

{  char ch1='A',ch2='B';

switch(ch1)

{  case 'A':switch(ch2)

{  case 'B':printf("Good!  ");break;

case'A':printf("Better!  ");break;

}

case 'B': printf("Best!\n");break;

}

}

 

 

 

3

              #include<stdio.h>

int age(int n)

{  int c;

if(n==1)

c=10;

else

c=age(n-1)+2;

return(c);

}

void main()

{  printf("%d",age(5));

}

 

 

 

第三组:

  一、编程题(每题20分,共40分)

1、编写程序。计算 (求n项,n由键盘输入并要求最后一项小于10-6结束。

2编写程序。自定义函数求N名学生1门课程成绩的平均分,调用该函数求10

学生1门课程成绩的平均分。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1判断一个整数的各位数字是否都相同,相同则显示“yes“,否则显示”no”。

#include <stdio.h>

void main( )

{ int a, r1, r2;

      scanf(“%d”,__________);

do{  r1=a%10;

__________;

           r2=a%10;

      }while( a!=0&&__________ );

      if(a!=0 ) printf(”no \n”);

  else __________;

}

 

 

 

2输出如下图形。

1  2  3  4  5

1  1  2  3  4

1  1  1  2  3

1  1  1  1  2

1  1  1  1  1

 

#include<stdio.h>

void fun(__________)

{ int i,j;

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

{  for(j=1; __________;j++)

printf(“%3d”,1);

for(j=2;j<=__________;j++)

printf(“%3d”,j);

printf(“\n”);

}

}

void main()

{ 

__________;

}

 

 

 

3输入一个35列的整数矩阵,输出其中最大值和它们的下标。

#include<stdio.h>

void main()

{ int a[3][5]ijtn3m5maxmaxrowmaxcol

printf“Enter%d*%dnumbers\n”,nm);

fori 0i<ni++

forj0j<mj++

{ scanf(“%d”,&t);

__________; }

            max=a[0][0]__________

            fori0i<ni++

forj0j<mj++

  if__________

{ __________maxrow=imaxcol=j}

printfMAXa[%d][%d]%d\n”,maxrowmaxcolmax,);

}

 

 

 

 

三、写出程序的执行结果(每题4分,共12分)

1

#include<stdio.h>

void main()

{  int a[][3]{9753l2468}

            int ijsl0s20

fori0i<3i++

forj0j<3j++ 

{ ifi==j

s1s1a[i][j]

ifi+j==2

s2s2a[i][j]

}

printf“%d%4d\n”sls2);

}

 

      

 

2

#include<stdio.h>

void main()

{ char a[]={‘*’‘*’‘*’‘*’‘*’}

int ijk

fori0i<4i++

{ printf“\n”);

forj0j<ij++

printf“%c” );

fork0k<4k++

printf“%c”a[k]);

}

printf“\n”);

}

 

 

 

 

 

    

3

#include <stdio.h>

            void main()

            {   int s[5];

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

                   s[i]=i*2;   

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

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

               printf(“\n”);

             }

 

 

 

 

作业答案请扫二维码添加微信客服
或客服QQ:2621578584

在线作业 离线作业 论文咨询 在线考试 旺旺客服 微信二维码