1、一、程序设计 共113题 (共计1130分)
第1题 (10.0分) 题号:390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数求1~100中奇数的平方和。
结果为166650.000000。
------------------------------------------------*/
#include
2、 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行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
------------------------------------------------*/
#include
4、 { 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
5、 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); {
6、 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 /*------------------------------------------------ 【程序设计】 -
7、
功能:能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。(n是偶数)
------------------------------------------------*/
#include
8、 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")
9、 } 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)
10、 { sum=sum+i*i;} return(sum); ---------------------- 第4题 (10.0分) 题号:345 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百
11、位上。
例如:当a=45,b=12。调用该函数后,c=4251。
------------------------------------------------*/
#include
12、nt 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 = f
13、open("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%
14、10*100; ---------------------- 第5题 (10.0分) 题号:366 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 ------------------------------------------------*/
15、
#include
16、 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
17、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 18、
for(i=0;i 19、/
Firefox
答案:----------------------
int i,j;
char t;
for(i=0;i 20、
【程序设计】
--------------------------------------------------
功能:求出二维数组周边元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
-------------------------------------------------*/
#define M 4
#define N 5
#include 21、
/********** 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 22、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 23、IN);
fclose(OUT);
}
答案:----------------------
int s=0;
int i,j;
for(i=0;i 24、
功能:判断整数x是否是同构数。若是同构数,函数返回1;
否则返回0。x的值由主函数从键盘读入,要求不大
于100。
说明:所谓“同构数”是指这样的数,这个数出现在它的
平方数的右边。
例如:输入整数5,5的平方数是25,5是25中右侧的数,所
以5是同构数。
------------------------------------------------*/
#include 25、
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)
26、 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" 27、);
}
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;
----------------------
28、第9题 (10.0分) 题号:383
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:用函数实现字符串的复制, 不允许用strcpy()函数。
------------------------------------------------*/
#include 29、
/**********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");
30、 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]!= 31、'\0';i++)
str2[i]=str1[i];
str2[i]='\0';
----------------------
第10题 (10.0分) 题号:310
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:计算并输出给定整数n的所有因子之和(不包括1与
自身)。
注意:n的值不大于1000。
例如:n的值为855时,应输出704。
---- 32、/
#include 33、
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 34、"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int s=0,i;
for(i=2;i 35、
【程序设计】
--------------------------------------------------
功能:求小于lim的所有素数并放在aa数组中,该函数返回
所求出素数的个数。
------------------------------------------------*/
#include 36、/
/********** End **********/
}
main()
{
int limit,i,sum;
int aa[MAX];
printf("Please input ainteger:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i 37、t();
}
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 38、 fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
答案:----------------------
int n=0;
int i,j;
for(i=2;i<=lim;i++)
{for(j=2;j 39、
【程序设计】
--------------------------------------------------
功能:删除所有值为y的元素。数组元素中的值和y的值由
主函数通过键盘输入。
------------------------------------------------*/
#include 40、oid 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 41、"The original data is:\n");
for(k=0;k 42、 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 43、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++;
}
--- 44、
第13题 (10.0分) 题号:317
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:输入的数组为:
1 2 3
4 15 6 45、
12 18 9
10 11 2
求出的最大数为18,行坐标为2,列坐标为1。
------------------------------------------------*/
#define N 4
#define M 3
#include 46、
/********** End **********/
}
main()
{
int a[N][M],i,j,max;
printf("input a array:");
for(i=0;i 47、");
}
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", 48、"w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i 49、
int max,i,j;
max=array [0][0];
Row=0;
Col=0;
for(i=0;i 50、
功能:求一批数中最大值和最小值的积。
------------------------------------------------*/
#define N 30
#include "stdlib.h"
#include






