资源描述
. .
试卷编号:10767
所属语言:C语言
试卷方案:TC_4
试卷总分:570分
共有题型:1种
一、程序设计共57题〔共计570分〕
第1题〔10.0分〕题号:374 难度:易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数实现两个数据的交换,在主函数中输入任
意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/
#include<stdio.h>
void wwjt();
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);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int m,n;
int i[2];
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;
----------------------
第2题〔10.0分〕题号:381 难度:易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一批数中小于平均值的数的个数。
------------------------------------------------*/
#include<stdio.h>
void wwjt();
int average_num(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int n,a[100],i,num;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
num=average_num(a,n);
printf("the num is:%d\n",num);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n;
int i[10];
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<5;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=average_num(i,5);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,sum=0,k=0;
double average;
for(i=0;i<n;i++)
sum=sum+a[i];
average=sum*1.0/n;
for(i=0;i<n;i++)
if(average>a[i]) k++;
return(k);
----------------------
第3题〔10.0分〕题号:406 难度:易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数fun求1000以内所有7的倍数之和。
------------------------------------------------*/
#define N 1000
#include <stdio.h>
void wwjt();
int fun(int m)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int sum;
sum=fun(7);
printf("%d以内所有%d的倍数之和为:%d\n",N,7,sum);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n;
int i[10];
int o;
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
}
o = fun(6);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int s=0,i;
for(i=1;i<N;i++)
if(i%m==0)
s+=i;
return s;
----------------------
第4题〔10.0分〕题号:324 难度:易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:能计算从1开场到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。〔n是偶数〕
------------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %d\n", fun(m));
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int t;
int o;
int c;
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(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int sum,i;
sum =0;
for(i=2;i<=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
----------------------
第5题〔10.0分〕题号:2 难度:中第1章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:写程序求1-3+5-7+…-99+101的值
要求:使用程序中定义的变量
-------------------------------------------------------*/
#include"stdio.h"
void wwjt();
//函数功能:求1-3+5-7+…-+n的值
int fun(int n)
{
int i,s=0,f=1;//i定义为循环变量,s为1-3+5-7+…-n的值
/**********Program**********/
/********** End **********/
return s;
}
main()
{
printf("%d",fun(101));
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int i,n;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Current 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,"%i",&n);
fprintf(OUT,"%ld\n",fun(n));
}
fclose(IN);
fclose(OUT);
}
答案:for (i=1;i<=n;i+=2)
{
s=s+i*f;
f=-f;
}
第6题〔10.0分〕题号:357 难度:易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)
例如:假设m=9,那么应输出:1.168229
------------------------------------------------*/
#include <stdio.h>
void wwjt();
double fun(int m)
{
/**********Program**********/
/********** End **********/
}
main()
{
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int i ;
int t;
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(i=0;i<5;i++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
double y=0;
int i;
for(i=0; i<=m; i++)
{y+=1.0/(i+5); }
return(y);
----------------------
第7题〔10.0分〕题号:392 难度:中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一批数中最大值和最小值的积。
------------------------------------------------*/
#define N 30
#include "stdlib.h"
#include <stdio.h>
void wwjt();
int max_min(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[N],i,k;
for(i=0;i<N;i++)
a[i]=random(51)+10;
for(i=0;i<N;i++)
{
printf("%5d",a[i]);
if((i+1)%5==0) printf("\n");
}
k=max_min(a,N);
printf("the result is:%d\n",k);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n;
int i[10];
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<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=max_min(i,10);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,max,min;
max=min=a[0];
for(i=1;i<n;i++)
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
return(max*min);
----------------------
第8题〔10.0分〕题号:342 难度:中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:在键盘上输入一个3行3列矩阵的各个元素的值〔值
为整数〕,然后输出矩阵第一行与第三行元素之和,
并在fun()函数中输出。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
void fun(int a[3][3])
{
/**********Program**********/
/********** End **********/
}
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);
wwjt();
}
void wwjt()
{
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=0;
for(i=0;i<3;i+=2)
for(j=0;j<3;j++)
sum=sum+a[i][j];
return sum;
----------------------
第9题〔10.0分〕题号:364 难度:中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一个四位数的各位数字的立方和。
-----------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int k;
k=fun(1234);
printf("k=%d\n",k);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int iIN,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");
}
for(i=0;i<5;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int d,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
return s;
----------------------
第10题〔10.0分〕题号:502 难度:中第20章
#include <stdio.h>
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:用while语句求1~100的累计和。
-------------------------------------------------------*/
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int sum = 0;
sum=fun(100);
printf ("sum = %d\n", sum);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int i;
int iIN,iOUT;
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);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案: int i=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
return sum;
第11题〔10.0分〕题号:53 难度:中第1章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一个四位数的各位数字的立方和
------------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int k;
k=fun(1234);
printf("k=%d\n",k);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen("22.IN","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("22.out","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int d,k,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
return s;
----------------------
第12题〔10.0分〕题号:409 难度:易第20章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:输入华氏温度求摄氏温度。转换公式为 c=5/9〔f-32〕,
输出结果取两位小数。
-------------------------------------------------------*/
#include <stdio.h>
void wwjt();
double fun(double m)
{
/**********Program**********/
/********** End **********/
}
void main()
{
double c,f;
printf("请输入一个华氏温度:");
scanf("%f",&f);
c=fun(f);
printf("摄氏温度为:%5.2f\n",c);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int i;
double iIN,iOUT;
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,"%f",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%f\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案: float n;
n=(5.0/9.0)*(m-32);
return n;
第13题〔10.0分〕题号:345 难度:中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:将两个两位数的正整数a、b合并形成一个整数放在c
中。合并的方式是:将a数的十位和个位数依次放在
c数的千位和十位上, b数的十位和个位数依次放在
c数的个位和百位上。
例如:当a=45,b=12。调用该函数后,c=4251。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
void fun(int a, int b, long *c)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a,b;
long c;
printf("input a, b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %ld\n", c);
wwjt();
}
void wwjt ( )
{
FILE *rf, *wf ;
int i, a,b ;
long c ;
rf = fopen("in.dat", "r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
答案:----------------------
*c=a/10*1000+a%10*10+b/10+b%10*100;
----------------------
第14题〔10.0分〕题号:335 难度:中第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一个n位自然数的各位数字的积。〔n 是小于10的
自然数〕
------------------------------------------------*/
#include <stdio.h>
#include"conio.h"
void wwjt();
long fun(long n)
{
/**********Program**********/
/********** End **********/
}
main()
{
long m;
printf("Enter m: ");
scanf("%ld", &m);
printf("\nThe result is %ld\n", fun(m));
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int c ;
long t;
lon
展开阅读全文