资源描述
一、程序设计 共113题 (共计1130分)
第1题 (10.0分) 题号:390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数求1~100中奇数的平方和。
结果为166650.000000。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
float sum(int n)
{
/**********Program**********/
/********** End **********/
}
答案:----------------------
float s=0;
int i;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
----------------------
第2题 (10.0分) 题号:320
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
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();
}
int fun(int a[3][3])
{
/**********Program**********/
/********** End **********/
}
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=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return sum;
----------------------
第3题 (10.0分) 题号:324
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:能计算从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);
----------------------
第4题 (10.0分) 题号:345
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:将两个两位数的正整数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;
----------------------
第5题 (10.0分) 题号:366
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一组数中大于平均值的数的个数。
例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[10]={1,3,6,9,4,23,35,67,12,88};
int y;
y=fun(a,10);
printf("y=%d\n",y);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int iIN[10],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(j=0;j<10;j++)
{
for(i=0;i<10;i++)
fscanf(IN,"%d",&iIN[i]);
iOUT=fun(iIN,10);
}
fprintf(OUT,"%d\n",iOUT);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,k=0;
float s=0,ave;
for(i=0;i<n;i++)
s+=a[i];
ave=s/n;
printf("%f ",ave);
for(i=0;i<n;i++)
if(a[i]>ave)k++;
return k;
----------------------
第6题 (10.0分) 题号:355
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:对长度为8个字符的字符串,将8个字符按降序排列。
例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。
------------------------------------------------*/
Firefox
答案:----------------------
int i,j;
char t;
for(i=0;i<num;i++)
for(j=i+1;j<num;j++)
if(s[i]<s[j])
{ t=s[i];s[i]=s[j];s[j]=t;}
----------------------
第7题 (10.0分) 题号:44
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求出二维数组周边元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
-------------------------------------------------*/
#define M 4
#define N 5
#include <stdio.h>
void wwjt();
int fun(int a[M][N])
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}};
int y;
y=fun(a);
printf("s=%d\n",y);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int iIN[M][N],iOUT;
int i,j,k;
IN=fopen("14.IN","r");
if(IN==NULL)
{printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("14.out","w");
if(OUT==NULL)
{printf("Please Verify The Current Dir.. it May Be Changed");
}
for(k=0;k<10;k++)
{ for(i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][0]+a[i][N-1];
for(j=1;j<N-1;j++)
s=s+a[0][j]+a[M-1][j];
return s;
----------------------
第8题 (10.0分) 题号:339
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:判断整数x是否是同构数。若是同构数,函数返回1;
否则返回0。x的值由主函数从键盘读入,要求不大
于100。
说明:所谓“同构数”是指这样的数,这个数出现在它的
平方数的右边。
例如:输入整数5,5的平方数是25,5是25中右侧的数,所
以5是同构数。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int x)
{
/**********Program**********/
/********** End **********/
}
main()
{
int x,y;
printf("\nPlease enter a integer numbers:");
scanf("%d",&x);
if(x>100)
{
printf("data error!\n");
exit(0);
}
y=fun(x);
if(y)
printf("%d YES\n",x);
else
printf("%d NO\n",x);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int n,t;
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(t = 0 ; t < 5 ; t++)
{
fscanf(IN, "%d", &n) ;
o=fun(n);
fprintf(OUT, "%d\n",o ) ;
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int k;
k=x*x;
if((k%10==x)||(k%100==x))
return 1;
else
return 0;
----------------------
第9题 (10.0分) 题号:383
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:用函数实现字符串的复制, 不允许用strcpy()函数。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
void copy(char str1[],char str2[])
{
/**********Program**********/
/********** End **********/
}
main()
{
void copy();
char c1[40],c2[40];
gets(c1);
copy(c1,c2);
puts(c2);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
char i[100];
char o[100];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read FILE Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
}
fscanf(IN,"%s",i);
copy(i,o);
fprintf(OUT,"%s\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i;
for(i=0;str1[i]!='\0';i++)
str2[i]=str1[i];
str2[i]='\0';
----------------------
第10题 (10.0分) 题号:310
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:计算并输出给定整数n的所有因子之和(不包括1与
自身)。
注意:n的值不大于1000。
例如:n的值为855时,应输出704。
------------------------------------------------*/
#include <stdio.h>
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
printf("s=%d\n",fun(855));
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 s=0,i;
for(i=2;i<n;i++)
if(n%i==0)s=s+i;
return s;
----------------------
第11题 (10.0分) 题号:354
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求小于lim的所有素数并放在aa数组中,该函数返回
所求出素数的个数。
------------------------------------------------*/
#include<stdio.h>
#include<conio.h>
#define MAX 100
void wwjt();
int fun(int lim,int aa[MAX])
{
/**********Program**********/
/********** End **********/
}
main()
{
int limit,i,sum;
int aa[MAX];
printf("Please input ainteger:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++){
if(i%10==0&&i!=0) printf("\n");
printf("%5d",aa[i]);
}
wwjt();
}
void wwjt()
{
int i,j,array[100],sum,lim;
FILE *rf, *wf ;
rf = fopen("in.dat", "r") ;
wf = fopen("out.dat", "w") ;
for (j=0; j <= 5; j++)
{
fscanf(rf, "%d", &lim);
sum=fun(lim,array);
for(i=0;i<sum;i++)
fprintf(wf, "%7d", array[i]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
答案:----------------------
int n=0;
int i,j;
for(i=2;i<=lim;i++)
{for(j=2;j<i;j++)
if(i%j==0) break;
if(j==i) aa[n++]=i;
}
return n;
----------------------
第12题 (10.0分) 题号:341
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:删除所有值为y的元素。数组元素中的值和y的值由
主函数通过键盘输入。
------------------------------------------------*/
#include <stdio.h>
#include<conio.h>
#include<stdio.h>
#define M 20
void wwjt();
void fun(int bb[],int *n,int y)
{
/**********Program**********/
/********** End **********/
}
main()
{
int aa[M],n,y,k;
printf("\nPlease enter n:");scanf("%d",&n);
printf("\nEnter %d positive number:\n",n);
for(k=0;k<n;k++) scanf("%d",&aa[k]);
printf("The original data is:\n");
for(k=0;k<n;k++) printf("%5d",aa[k]);
printf("\nEnter a number to deletede:");scanf("%d",&y);
fun(aa,&n,y);
printf("The data after deleted %d:\n",y);
for(k=0;k<n;k++) printf("%4d",aa[k]);
printf("\n");
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]);
}
fun(i,&n,3);
for(o=0;o<n;o++)
{
fprintf(OUT,"%d\n",i[o]);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i,j;
for(i=0;i<*n;)
{
if(bb[i]==y)
{for(j=i;j<*n;j++)
bb[j]=bb[j+1];
*n=*n-1;
}
else
i++;
}
----------------------
第13题 (10.0分) 题号:317
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求出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>
void wwjt();
int Row,Col;
int fun(int array[N][M])
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[N][M],i,j,max;
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);
wwjt();
}
void wwjt()
{
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);
----------------------
第14题 (10.0分) 题号:392
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求一批数中最大值和最小值的积。
------------------------------------------------*/
#define N 30
#include "stdlib.h"
#include <stdio.h>
void wwjt();
int max_min(int a[],int n)
{
/**********Program**********/
/********** E
展开阅读全文