资源描述
【第1题】
给定程序MODI1.C中函数fun的功能是:将长整数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87654时,t中的数为:864.
#include <conio.h>
#include <stdio.h>
Void fun (long s, long *t)
{int d ;
long sL=1
*t=0
While (s>0)
{d=s%10
/**********FOUND*********/
if (d%2=0) 答案 if(d%2= =0)
/**********FOUND*********/
{*t=d*sl+t; 答案 {*t=d*sl+*t;
sl*=10
}
/**********FOUND*********/
s\=10; 答案 s/=10 ;
}
}
main()
{long s, t;
clrscr();
printf (“\nplease enters:”)…………….
【第2题】
题目:编写函数fun其功能是:根据整型参m,计算如下公式的值:
Y=1+1/3+1/5+1/7+….+1/(2m-3)
include “stdio.h”
double fun (int m)
{
/**********FOUND*********/
double y=1 答案double y=1;
int i
/**********FOUND*********/
for (i=1; i<m; i++) 答案 for (i=1; i<=m; i++)
/**********FOUND*********/
y+1.0/2i-3) 答案 y+=1.0/2*i-3)
return(y)…………………………………..
【第3题】
题目函数fun的功能是:根据整形参m的值,计算如下公式的值。
1 1 1
t=1- 2x2 - 3x3 …… - mxm
例如若m=5 则应输出 :0.536389
double fun (int m )
{double y=1.0;
Int i
/**********FOUND*********/
for (i=2;i<m;i- -) 答案For (i=2;i<m;i++)
/**********FOUND*********/
y-=1/(i*i); 答案y-=1.0/(i*i);
/**********FOUND*********/
return m; 答案 return y;
}
main()………………………………………
【第4题】
题目:编写一个函数,判断一个数字是否在一个正整数中,若在则函数返回值为1,否则函数返回值为0.输入输出由主函数完成。
Int fun ( int m,int n )
{int k, z=0;
do
{k=m%10
/**********FOUND*********/
if (n=k ) z=1; 答案 if (n= =k ) z=1;
/**********FOUND*********/
n=m/10 答案 m=m/10
/**********FOUND*********/
}while (m= =0); 答案 }while (m! =0);
/**********FOUND*********/
return(m); 答案 return(z);
mian()…………………………………………
【第5题】
题目:函数fun的功能是:输出fabonacci 数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20.
fun ()
{int i
float f1=1,f2=1,f3;
/**********FOUND*********/
printf(“%8d”,f1); 答案 printf(“%8f”,f1);
/**********FOUND*********/
for(i=1:i<=20;i++) 答案 for(i=1:i<20;i++)
{f3=f1+f2;
/**********FOUND*********/
f2=f1; 答案 f1=f2;
/**********FOUND*********/
f3=f2; 答案 f2=f2
printf(“%8.0f”,f1);………………………………………………………….
【第6题】
题目:以下程序的功能是统计400~499这些数中“4”这个数字出现的次数,
判断一个数有几位4用函数fun实现。
#include<stdio.h>
int fun (int x)
{int fun (int x)
{int y,k=0;
/**********FOUND*********/
while (x= =0) 答案 while (x!=0)
{y=x%10;
/**********FOUND*********/
if(y=4 ) k++; 答案if(y= =4 ) k++;
x=x/10;
}
/**********FOUND*********/
return(y); 答案 return(k)
}
main()
{int i,k=0;
for(i=400;i<=499;i++)
/**********FOUND*********/
k=fun(i); 答案k=k+fun(i);
prinktf(“number=%d\n”,k);
}
【第7题】
题目:用起泡法对10个整数从小到大排序。
void sort (int x[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
/**********FOUND*********/
for(j=0;j<n-i;j++) 答案for(j=0;j<n-1-i;j++)
/**********FOUND*********/
if(x[i]>x[i+1]) 答案if(x[j]>x[j+1])
{t=x[j];x[j]=x[j+1];x[j+1]=t;}
………
………..
…………..
…………
…………………..
/**********FOUND*********/
scanf(“%d”,a[i]); 答案scanf(“%d”,&a[i]);
/**********FOUND*********/
sort (n,a); 答案sort (a,n);
printf(out……………………………………………………………..
【第8题】
题目:将s所指字符的反序和正序进行连接形成一个新串放在t所指的数组中。例如当s所指的字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。
#include<conio.h>
#include<stdio.h>
#include<string.h>
/**********FOUND*********/
void fun (char s , char t) 答案 void fun (char s[], char t[])
{int i, d;
/**********FOUND*********/
d=len(s); 答案d=strlen (s);
/**********FOUND*********/
for(i=1;i<d;i++) 答案 for (i=0;i<d;i++)
t[i]=s……….
…………………
…………………….
/**********FOUND*********/
t[2*d]=”/0” 答案t[2*d]=”\0”
main()………………….. ….
…………………………………………………………………………………..
【第9题】
题目:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。
#include< stdio.h>
#include<string.h>
void strcopy(char*str1,char*str2,int m)
/**********FOUND*********/
char p1,p2; 答案{char *p1,*p2;
int i,j;
/**********FOUND*********/
p1=str1+m; 答案p1=str1+m-1;
/**********FOUND*********/
if(*p1); 答案while(*p1)
……………… …
…………….
…………………………..
………………………………………………..
…………………………………………
/**********FOUND*********/
strcat(str1[0],star2[0],m); 答案 strcopy(str1,str2,m);
………………………..
……………………..
}
【第10题】
题目:函数fun的 功能是:计算正整数mun的各位的数字之积。例如,输入252,则输出应该是20。
Long fun (long num)
{
/*********FOUND*********/
long k; 答案:long k=1;
do
{
k*=num%10;
/*********FOUND*********/
num\=10; 答案:num/=10;或num=num/10;
}while(num);
return k;
}
main()
{ long n;
printf("\nPlease enter a number:");
/*********FOUND*********/
scanf("%ld",n); 答案:scanf("%ld",&n);
/*********FOUND*********/
printf("\n%ld\n",fun(long n)); 答案:printf("\n%ld\n'',fun(n));
}
【第11题】
题目:函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。
π =1- 1 + 1 - 1 + ..........
4 3 5 7
/*********FOUND*********/
#include "stdio.h" 答案:#include"math.h"或#include <math.h>
fun()
{
int i=1;
/*********FOUND*********/
int s=0,t=1,p=1; 答案:float s=0,t=1,p=1;
/*********FOUND*********/
While(fabs(t))<=le-4) 答案:while(fabs(t)>le-4)
{
s=s+t;
p=-p;
i=i+2;
t=p/i;
}
/*********FOUND*********/
printf("pi=%d\n",s*4); 答案:printf("pi=%f\n",s*4);
}
main()
{ fun();
}
【第12题】
题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。
main()
{ int i;
/*********FOUND*********/
float a[8],min,max,avg; 答案: float a[10],min,max,avg;
printf("input 10 score:");
for(i=0;i<=9;i++)
{ printf("input a score of student:");
/*********FOUND*********/
Scanf("%f",a); 答案:scanf("%f",&a[i]);
}
/*********FOUND*********/
max=min=avg=a[1]; 答案:max=min=avg=a[0];
for(i=1;i<=9;i++)
{
/*********FOUND*********/
if(min<a[i]) 答案:if(min>a[i])
min=a[i];
if(max<a[i])
max=a[i];
avg=avg+a[i];
}
avg=avg/10;
printf("max:%f\nmin:%f\navg:%f\n",max,min,avg);
}
【第13题】
题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。
例如原矩阵为:
1 2 3
4 5 6
7 8 9
则转置后的矩阵为:
1 4 7
2 5 8
3 6 9
fun(int a[3][3],int n)
{ int i,j,t;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
/*********FOUND*********/
scanf("%d",a[i][j]); 答案:scanf("%d",&a[i][j]);
for(i=0;i<n;i++);
..............
for(i=o;i,;i++)
/***********************FOUND********************/
for(j=0;j<n;j++) 答案: for(j=0;j<i;j++)
{
/***********************FOUND********************/
a[i][j]=t; 答案:t = a[i][j];
/***********************FOUND********************/
t=a[j][i]; 答案: a[j][i] =t;
/***********************FOUND********************/
……..
【第14题】
题目:奖数组元素逆顺序存放。如数组元素为1,2,3,4,5,则逆序存放后数组元素的值为5,4,3,2,1.
void inv(int x[],int n)
{int i ,j,t,m=(n-1)/2;
/***********************FOUND********************/
for(i=o;i<m;i++) 答案:for(i=o;i<=m;i++)
/***********************FOUND********************/
x[j]=x[i]; 答案:x[i]=x[j];
x[j]=t
………
/***********************FOUND********************/
void inv(int a[10],10) 答案:inv(a,10);
……..
for (i=0;i<10;i++)
/***********************FOUND********************/
printf(“%3f”,a[i]); 答案:printf(“%3d”,a[i]);
【第15题】
题目:函数fun的功能是:根据以下公式求n值,并作为函数值返回,例如,给制定精度的变量eps输入0.0005时,应当输出Pi=3.140578.
π 1 1 2 1 2 3 1 2 3 4
— = 1+ — + — x — + — x — x — + — x — x — + —+……
2 3 3 5 3 5 7 3 5 7 9
double fun(double eps)
{double s,t;
int n=1;
s=0.0;
t=1;
/***********************FOUND********************/
while(t<=eps): 答案:while(t>eps);
{
s+=t;
/***********************FOUND********************/
t=n/(2*n+1)*t 答案:t=t*n/(2*n+1)*t
n++;
}
/***********************FOUND********************/
return s; 答案:return 2*s;
}
main()
……….
【第16题】
题目:给定程序MOD11.C中函数fun的功能是:极炫正整数num的个位数字之积。例如,若输入:252,则输出应该是20……..
#include<stdio.h>
#include<conio.h>
long<long.num>
/***********************FOUND********************/
{long k=1 答案:{long k=1;
do
{k*=num%10;
/***********************FOUND********************/
num\=10; 答案:num/=10;
/***********************FOUND********************/
}while(!num); 答案:}while(num);
return(k);
……..
【第17题】
题目:用“起泡法”对输入的十个字符排序后按从大到小的次序输出
#define N 10
#include <stdio.h>
#include <string.h>
main( )
{int i;
char str[N];
for(i=0;i<N;i++)
/***********************FOUND********************/
scanf(“%c”,str[i]); 答案:scanf(“%c”,&str[i]);
/***********************FOUND********************/
sort(str[N]); 答案:sort(str);
for(i=0;i<N;i++);
printf(“%c”,str[i]);
printf(“\n”);
}
sort(char str[N])
【第18题】
题目:以下程序输出前六行杨辉三角形,既
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
………………….
…………………..
mian()
{ static int a[6][6];
int i,j,k;
/***********FOUND***************/
for(i=1;i<=6;i++) 答案 for(i=0;i<6;;i++)
{ for(k=0;k<10-2*i;k++)
Printf(“ ”);
for(j=0;j<=I;j++)
{
/***********FOUND****************/
If(j==0&&j==i) 答案 if(j==||j=i)
a[i][j]=1;
else
/************FOUND***************/
a[i][j]=a[j-1][j-1]+a[i][j-1];
a[i][j]=a[i-1][j-1]+a[i-1]a[j];
printf(“ ”);
printf(“%-3d”,a[i][j]);
}
/*************FOUND**************/
Printf(“\t”);
}
}
【第19题】
题目:给定程序MODI1.C中函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y=7.936238。
#include<conio.h>
#include<math.h>
/****************FOUND****************/
double fun (double*a,*b) 答案 double fun(double*a,double*b)
{ double c;
/***************FOUND****************/
c=sqr(a)+sqr(b); 答案 c=sqrt(*a)+sqrt(*b);
/***************FOUND****************/
Return a; 答案 return c;或return(c);
}
mian()
{ double a,b,y;
clrscr();
printf (“Enter a&b:”); scanf (“%lf%lf”,&a,&b);
y=fun(&a,&b,);printf(“y=%f\n”,y);
getch();
}
【第20题】
题目:将一个字符串中的大写字母转换成小写字母。例如:+输入aSdFG输出为asdfg。
#include<stdio.h>
/***************FOUND*************/
bool fun(char *c) 答案 char fun(char *c)
{if(*c<’Z’&&*c>=’A’) *c-=’A’-‘a’;
/***************FOUND*************/
Fun=c; 答案 return*c;或 return (*c);
}
Mian()
/***************FOUND************/
char s[81].*p=s; 答案 {char s[81].*p=s;
gets(s);
while(*p)
{*p=fun(p);
/***************FOUND***********/
Puts(*p); 答案putchar(*p);或printf(“%c”,*p);
P++;
}
putchar(‘\n’);
}
【第21题】
题目:在主题函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是;计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值一次为39,-47,21,2,-8,15,0.则程序的运行结果为19.250000
double fun (int s[])
{
/*************FOUND***********/
int sum=0.0; 答案 double sum=0.0;
int c=0,i=0;
/*************FOUND***********/
while(s[i] =0) 答案 while(s[i]!=0)或while(s[i])
{if (s[i]>0)
{sum+=s[i];c++;}
i++;
}
/*************FOUND***********/
sum\=c 答案 sum/=c;或 sum=sum/c;
/*************FOUND***********/
return c; 答案 return sum或 return (sum);
}
mian()
{int x[1000];int i=0;
do
{scanf("%d",&x[i]);} while(x[i++]!=0);
pintf("%f\n",fun(x));
}
【第22题】
题目:给定程序MODI1.C中函数fun的功能是:求广义斐波那契级数的第n项。广义斐波那契级数的前n项为:1,1,1,3,5,9,17,31,......,项值通过函数值返回mian()函数。例如,若n=15,则应输出:The value is:2209.
#include <conio.h>
#include <stdio.h>
long fun(int n)
{ long a=1,b=1,c=1,d=1,k;
******************FOUND*******************
for(k=4;k<n;k++) 答案:for(k=4;k<=n;k++)
{d=a+b+c;
*****************FOUND********************
a=b;b=c;c=d 答案:a=b;b=c;c=d;
}
*****************FOUND********************
Return k; return d;
}
main()
{ int n=15;
clrscr();
printf(“the value is: %ld\n”fun(n));
}
【第23题】
题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。
main()
{ int i a[10],min,k=0;
printf(“\n please input array 10 elements\n”);
for(i=0;i<10;i++)
*****************FOUND********************
scanf(“%d”,a[i]); 答案:scanf(“%d”,&a[i]);
for(i=0;i<10;i++)
Printf(“%d”,a[i]);
min=a[0];
*****************FOUND********************
for(i=3;i<10;i++) 答案:for(i=1;i<10;i++)
*****************FOUND********************
if(a[i]>min)
{ min=a[i]; k=i; }
*****************FOUND********************
a[k]=a[i];
a[0]=min;
printf(“\n after eschange:\n”);
for(i=0;i<10;i++) printf(“%d”,a[i]);
printf(“\nk=%d\n”,k,min);
【24题】
题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回
#include<conio.h>
#include<stdio.h>
int fun(int m)
*****************FOUND********************
{int i;k; 答案{ int i,k;
for(i=m+1;;i++)
{for(k=2;k<i;k++)
*****************FOUND********************
if(i%k!=0) 答案:if(i%k==0)
break;
*****************FOUND********************
if(k=i) 答案:if(k==i) 或 if(k>=i)
return(i);
}
}
main()
{ int n;
clrscr();
printf(“\n please enter n:”);
scanf(“%d”,&n);
printf(“%d\n”,fun(n));
}
【25题】
题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。
main()
{ int i;
float t,s=0;
float fac(int n);
*****************FOUND********************
for(i=1;i<10;i++) 答案:for(i=1;i<=10;i++)
*****************FOUND********************
s=fac(i); 答案: s=s+fac(i);或s+=fac(i);
s=fac(i);
printf(“%f\n”,s);
}
float fac(int n)
{
*****************FOUND********************
int y=1; 答案: float y=1;
int i;
for(i=1;i<=n;i++)
y=y*i;
*****************FOUND********************
return; 答案: return y;或return(y);
}
【26题】
题目:以下程序的功能是求如下表达式:
S=1+
#include <stdio.h>
main()
{ int n;
float fun();
printf(“please input a number:”);
*****************FOUND********************
print(“%d”,n): 答案: scanf(“%d”,&n);
printf(“%10.6f\n”,fun(n));
}
*****************FOUND********************
fun(int n) 答案:float fun(int n)
{ int i,j,t;
float s;
s=0;
*****************FOUND********************
while(i=1;i<=n;i++) 答案: for(i=1;i<=n;i++)
{
t=0;
for(j=1;j<=i;j++)
t=t+j;
*****************FOUND********************
s=s+1\t; 答案:s+=1.0/t或s=s+1.0/t;
}
return s;
}
【第27题】
题目:用指针作函数参数,编程序求一堆数组中的最大和最小的元素值。
#define N 10
/**********FOUND**********/
Void maxmin(int arr [ ],,int *pr1, *pt2, n)
Void maxmin(int arr [ ],int *pt1,int *pt2,int n)
{int 1:
/**********FOUND**********/
*pt1=*pt2=&arr[0]
展开阅读全文