天大c语言离线考核答案,天大16秋 C语言程序设计 期末考核答案

要求:

1.         独立完成,作答时要按照模版信息填写完整,写明题型、题号;

2.        作答方式:手写作答或电脑录入,请使用学院统一模版(模版详见附件);

3.        提交方式:以下两种方式任选其一,

1)        手写作答的同学可以将作业以图片形式打包压缩上传;

2)        提交电子文档的同学可以将作业以word文档格式上传;

4.         上传文件命名为“中心-学号-姓名-科目.rar” 或“中心-学号-姓名-科目.doc”;

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

请同学们按照学院平台“课程考试——离线考核——离线考核课程查看”中指定的“做题组数”作答,满分100分;

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

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

第一组:

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

1、        编写程序。从输入的若干个大于零的整数中选出最小值(输入-1时结束输入)。

2、编写程序。写一个子函数fac求n!,然后再编写main()调用fac函数分别输出1~5的阶乘。

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

1、程序用于输出以下图形。

#include "stdio.h"

void main ( )

{  int i,j;

for(i=1;i<= ____①____;i++)

{ for(j=1; j<= 9-i ; ____②____)

printf (" ");

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

printf("%c", ____③____ );

________④________;

}

}

2、程序由键盘输入10个整型数写入名为fdada.txt的文件

#include "stdio.h"

#include "process.h"

void main()

{ _____①_____ *fp;

int i,a;

if ((fp=fopen("_____②_____","w"))==NULL)

{ printf("文件不能打开!\n"); exit(1); }

else { printf("请输入10个整数\n");

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

{ scanf("%d",&a); fprintf(____③____,"%d  ",a);}

________④________ ;

}

}

3、输入4×5数组中所有元素,求所有元素的平均值并输出。

#include

void main( )

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

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

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

scanf(“%d”, _____①_____ );

_____②_____;

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

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

sum=____  ③  ____;

printf(“average=%f\n”, ____④____ );

}

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

1、

#include

int x=10;

void f1()

{  int a=10;

static int b=10;

a+=10; b+=10; x+=10;

printf (“%d  %d  %d      ”, a,b,x) ;

}

void main ( )

{ f1( ); f1( ); }

2、

#include

void main()

{   int a[ ]={2,3,5,4},i;

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

switch(i%2)

{   case 0: switch(a[i]%2)

{ case 0: a[i]++;break;

case 1:a[i]--;

}break;

case 1:a[i]=0;

}

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

printf("\n");

}

3、

#include

void main()

{   int beta=10;

int *pointer,*q;

pointer=β

*pointer=20;

beta=*pointer+30;

q=β

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

}

第二组:

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

1、        编写程序。定义N个大小的整型数组,任意输入10个整数,找出其中的最大值和

最小值并输出。

2、        编写程序。自定义函数求y!,调用该函数求s=m!+n!+k!并输出(m、n、k的值从

键盘输入)。

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

1、求数列0,1,1,2,3,5,8,13,21,34,……的前40 个数。其中第一、二两个数为0、1,以后每个数是前两个数之和。

#include

void main()

{ int _____①_____,i;

printf(“%d %d”, _____②_____);

for(_____③_____; i<=21; i++)

{ f1=f1+f2;

f2=_____④_____;

printf(“%d  %d”,f1,f2);

if((i+1)%2==0) printf(“\n”);

}

}

2、在D盘建一个名为”file1.dat”的文件,从键盘输入若干字符(以回车作为结束)存入该文件,。

#include

#define  Null  0

void main()

{  _____①_____;

char c;

if(( fp=fopen(“d:\file.dat”, _____②_____))==Null)

{ printf(“Can’t open file!\n”); exit(0) ; }

do{

c=getcher();

_____③_____;

}while(c!=’\n’)

_____④_____;

}

3、输出如下所示的菱形。

*

***

*****

***

*

#include

void main()

{ int i,j,k;

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

{  for(j=1; j<=3-i; j++)

printf(" ");

for(k=1; k<=_____①_____; k++)

printf("*");

printf("\n");

}

for(i=1; _____②_____; i++)

{  for(j=1; _____③_____; j++)

printf(" ");

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

_____④_____;

printf("\n");

}

}

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

1、

#include

void main()

{ int i, j, N, a[5][5]={{1,2,3,4,5},{2,3,4,5},{3,4,5},{4,5},{5} };

N=5;

for(i=0; i

for(j=0; j

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

printf("\n");

}?

2、

#include

int fun( int x )

{ int  p;

if (x==0||x==1 ) p=1;

else  p=x*fun( x-2 );

return  p;

}

void main()

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

}

3、

#include

void main()

{  int a=1,b=0;

switch(a)

{ case 1:switch(b)

{  case 0:printf(“**0**”);break;

case 1:printf(“**1**”);break;

}

case 2:printf(“**2**”);break;

}

}

第三组:

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

1、编写程序。任意输入10个数,输出这10个数中正数的平均值并将这10个数按相

反的次序并输出。

2、编写程序。自定义函数重复输出给定的一个字符n次,调用该函数输出给定的字符和输出的次数。

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

1、程序用于输出以下图形。

#include

void main( )

{  int i, j;

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

{  for( j=1; j<=12-i; j++)

_____①_____;

for (j=1; _____②_____; j++)

printf(“%4d”, _____③_____);

_____④_____;

}

}

2、将1到100各数的平方根按照每行5个数存到磁盘的file.dat文件中。

#include

#include

#define  Null  0

void main()

{  FILE  *p1;

int i=1;

if((p1=____  _①_  ____)==Null)

{ printf(“Can’t open file\n”); exit(0) ; }

while(i<=100)

{ fprintf(p1,”%f5.3”,sqrt((double)(i)));

if(_____②_____) fprintf(p1,”\n”);

_____③_____;

}

_____④_____;

}

3、用公式                        计算π的值, 直到最后一项的绝对值<10 。

#include

#include

void main()

{  int s; float n, t, pi;

t=1;  n=1.0;  pi=0;  s=1;

while(_____①_____)

{   pi=pi+t;  n+=2;  s=_____②_____;  t=_____③_____; }

_____④_____;

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

}

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

1、

#include

int sum(int p[ ], int a);

void main()

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

for(int s,i=0; i<3; i++)

{ printf("%ds=%d\n", sum(data[i],s),s); }

}

int sum(int p[ ], int a)

{  int i, k=0;

static int s=0;

for(i=0; i<3; i++) { s+=p[i];  k+=p[i]; }

a=k; return  s;

}?

2、

#include

void pp(int x[]);

void main ( )

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

pp(a);

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

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

}

void pp(int x[ ])

{ int k;

for (k=0;k<6;k++)

x[k]=x[k]*x[k];

return;

}

3、

#include

void main()

{  int a[6][6],i,j;

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

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

a[i][j]=(i/j)*(j/i);

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

{  for(j=1;j<6;j++)

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

printf("\n");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值