试卷编号:10173
所属语言:Turbo C
试卷方案:cxsj
试卷总分:1160分
共有题型:1种
━━━━━━━━━━━━━━━━━━
一、程序设计 共116题 (共计1160分)
━━━━━━━━━━━━━━━━━━
第1题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)
z=log(x+3) (x>-3)
z=sin(x)/((cos(x)+4)
------------------------------------------------*/
#include <math.h>
#include<stdio.h>
double y(float x)
{
/**********Program**********/
/********** End **********/
}
main()
{
float x;
scanf("%f",&x);
printf("y=%f\n",y(x));
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
int n;
float i;
double o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%f",&i);
o=y(i);
fprintf(OUT,"%ld\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
double z;
if(x>10) z=exp(x);
else if(x>-3) z=log(x+3);
else z=sin(x)/(cos(x)+4);
return(z);
----------------------
第2题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include "stdio.h"
void main()
{
int i,j,s,a[3][3];;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf("Sum=%d\n",s);
yzj();
getch();
}
int fun(int a[3][3])
{
/**********Program**********/
/********** End **********/
}
yzj()
{
FILE *IN,*OUT;
int m;
int n;
int i[3][3];
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(m=0;m<3;m++)
{
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
}
o=fun(i);
{
fprintf(OUT,"%d\n",o);
getch();
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int sum;
int i,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return sum;
----------------------
第3题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求1到100之间的偶数之积。
------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{
/**********Program**********/
/********** End **********/
}
void main()
{
printf("ji=%f\n",fun(100));
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
int iIN,i;
double dOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,"%f\n",dOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
double y=1;
int i;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
return y;
----------------------
第4题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:输入的数组为:
1 2 3
4 15 6
12 18 9
10 11 2
求出的最大数为18,行坐标为2,列坐标为1。
------------------------------------------------*/
#define N 4
#define M 3
#include <stdio.h>
int Row,Col;
void main()
{
int a[N][M],i,j,max,row,col;
printf("input a array:");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%d",a[i][j]);
printf("\n");
}
max=fun(a);
printf("max=%d,row=%d,col=%d",max,Row,Col);
getch();
yzj();
}
int fun(int array[N][M])
{
/**********Program**********/
/********** End **********/
}
yzj()
{
FILE *IN,*OUT;
int iIN[N][M],iOUT,i,j;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<N;i++)
for(j=0;j<M;j++)
fscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d %d %d\n",iOUT,Row,Col);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int max,i,j;
max=array [0][0];
Row=0;
Col=0;
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
if(max<array [i][j])
{max=array [i][j];
Row=i;
Col=j;}
}
return(max);
----------------------
第5题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数实现两个数据的交换,在主函数中输入任
意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/
#include<stdio.h>
void swap(int *a,int *b)
{
/**********Program**********/
/********** End **********/
}
main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x<y)swap(&x,&y);
if(x<z)swap(&x,&z);
if(y<z)swap(&y,&z);
printf("%3d%3d%3d",x,y,z);
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
int m,n;
int i[2];
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(n=0;n<3;n++)
{
for(m=0;m<2;m++)
{
fscanf(IN,"%d",&i[m]);
}
swap(&i[0],&i[1]);
fprintf(OUT,"%d\n",i[0]);
fprintf(OUT,"%d\n",i[1]);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int k;
k=*a;
*a=*b;
*b=k;
----------------------
第6题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一个给定字符串中的数字字母的个数。
------------------------------------------------*/
#include "stdio.h"
int fun(char s[])
{
/**********Program**********/
/********** End **********/
}
void main(void)
{
char str[]="Beijing 2008";
int k;
k=fun(str);
printf("k=%d\n",k);
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
char sIN[80];
int iOUT,i;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
fscanf(IN,"%s",sIN);
iOUT=fun(sIN);
fprintf(OUT,"%d\n",iOUT);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,k=0;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9'')
k++;
return k;
----------------------
第7题 (10.0分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:对长度为7个字符的字符串,除首、尾字符外,将其
余5个字符按降序排列。
例如:原来的字符串为CEAedca,排序后输出为CedcEAa。
------------------------------------------------*/
#include<stdio.h>
#include<ctype.h>
#include<co