|
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
#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 <stdlib.h>
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 <iostream.h>
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<N; i++)
for(j=0; j<N-i; j++)
printf("%d%s", a[i][j], " ");
printf("\n");
}?
2、
#include<stdio.h>
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<stdio.h>
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 <stdio.h>
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 <stdio.h>
#include <math.h>
#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 <stdio.h>
#include <math.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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");
}
}
|
|