1、1. 请编写一个函数fun,它的功能是:输入一个整数,判断该整数是否为素数。如果是素数,则输出1,如果是非素数,则输出0.
程序输出后,如果输入5,则输出x=5,x is a prime number,1
#include
2、出数据,关闭文件。*/FILE *fp, *wf ; inti ;int x ; fp = fopen("BC365.IN","r");if(fp == NULL) { printf("数据文件BC365.IN不存在!"); return ; } wf = fopen("bc365.out","w"); for(i = 0 ; i< 3 ; i++) {fscanf(fp, "%d", &x); fprintf(wf, "%d\n", fun(x)); } fclose(fp) ; fclose(wf) ;} main( ){ int x; printf("Input
3、 x:");
scanf("%d",&x); printf("\nx = %d, x is a prime number,%d\n", x, fun(x));NONO();
}
2. 请编写一个函数fun,它的功能是:利用选择排序法对一个数组中的十个整数从小到大排序。
#include 4、]=t;}
}
void NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
inti ;
int x ;
int b[10];
fp = fopen("bc366.in","r");
if(fp == NULL) {
printf("数据文件bc366.in不存在!");
return ;
}
wf = fopen("bc366.out","w");
for(i = 0 ; i< 10 ; i++) {
fscanf(fp, "%d", &x);
b[i]=x;
}
fun(b,10);
5、
for(i = 0 ; i< 10 ; i++) {
fprintf(wf, "%d\n",b[i]);
}
fclose(fp) ;
fclose(wf) ;
}
main( )
{ inti,a[10];
printf("Input array a:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
NONO();
3.请编写一个函数fun,它的功能是:输入一个百分制成绩score,用switch语句输出该成绩对应的等级:90 6、re<100,等级为 A, 80 7、se 6:ch='D';break;
default:ch='E';
}
return(ch);
}void NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
inti ;
int x ;
fp = fopen("bc371.in","r");
if(fp == NULL) {
printf("数据文件bc371.in不存在!");
return ;
}
wf = fopen("bc371.out","w");
for(i = 0 ; i< 5 ; i++) {
fscanf(fp, "%d" 8、 &x);
fprintf(wf, "%c\n", fun(x));
}
fclose(fp) ;
fclose(wf) ;
}
main()
{ float score;
printf("Input score:\n");
scanf("%f",&score);
printf("\ngrade = %c\n", fun(score));
NONO();
}
4.请编写一个函数str_cat,它的功能是:将两个字符串str1和str2连接起来,其中,连接后的 str1 和 str2 间加一个空格。如 str1 %"China”,str2 为“Nanjing”,调用 9、str_cat 后,str1为“China Nanjing”。
不允许使用strcat函数。
#include 10、tring2[10];
intlen;
fp = fopen("bc372.in","r");
if(fp == NULL) {
printf("数据文件bc372.in不存在!");
return ;
}
wf = fopen("bc372.out","w");
// for(i = 0 ; i< 2 ; i++) {
fgets( string1,20,fp);
len=strlen(string1);
string1[len-1]='\0';
fgets(string2,10,fp);
len=strlen(string1);
string1[len-1]=' 11、\0';
str_cat(string1,string2);
fputs(string1,wf);
// }fclose(fp);fclose(wf);
}
main()
{
char str1[20]="China",str2[10]="Nanjing";
str_cat (str1,str2);
puts(str1);
NONO();
}
5.请编写一个函数fun,它的功能是:用递归函数调用方法,对主函数main传来的参数计算阶乘。
程序运行后,如输入5,输出为:120.
#include 12、int t){long m;
if(t==0||t==1) m=1;
if(t>1) m=t*fun(t-1);return m;
}
void NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf ;
inti ;
int x ;
fp = fopen("bc367.in","r");
if(fp == NULL) {
printf("数据文件bc367.in不存在!");
return ;
}
wf = fopen("bc367.out","w");
for(i = 0 ; i< 3 ; i++) { 13、fscanf(fp, "%d", &x);
fprintf(wf, "%d\n", fun(x));
}fclose(fp) ;
fclose(wf);
}main()
{int x;
printf("Input x:");
scanf("%d",&x); printf("\nx = %d, factorial of x is:%d\n", x, fun(x));
NONO();
}
6.请编写一个函数character_count,它的功能是:统计并输出字符串中的数字、字母、空格及其他字符个数。如输入“ AbbcD12 3”,则输出:
3
5
2
0
#incl 14、ude 15、本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf ;
char string1[80];
inti,t[4]={0};
fp = fopen("bc373.in","r");
if(fp == NULL) {
printf("数据文件bc373.in不存在!");
return ;
}
wf = fopen("bc373.out","w");
fgets( string1,80,fp);
character_count(string1,t);
for(i=0;i<4;i++)
fprintf(wf, "%d\n",t[i]) 16、
fclose(fp);
fclose(wf);
}
main()
{
char str1[80];
inti,coun[4]={0};//coun数组元素用于存放strl字符串中各符号的个数,coun[0]、
coun[1]、coun[2]、coun[3]分别存放数字、字母、空格及其他字符的个数
printf("enter a line of characters:\n");
gets(strl);
character_count(str1,coun);
for(i=0;i<4;i++)
printf("%d\n",coun[i]);
NONO();
}
7 17、 请编写一个函数fun,它的功能是:用冒泡排序法对一个数组中的整数从小到大排序。
#include 18、t x ;
int b[10];
fp = fopen("bc368.in","r");if(fp == NULL) {printf("数据文件bc368.in不存在!");
return ;
}
wf = fopen("bc368.out","w");
for(i = 0 ; i< 10 ; i++) {
fscanf(fp, "%d", &x);
b[i]=x;
}
fun(b,10);
for(i = 0 ; i< 10 ; i++) {
fprintf(wf, "%d\n",b[i]);
}
fclose(fp);
fclose(wf);
}
main 19、)
{ inti,a[10];
printf("Input array a:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
for(i=0;i<10;i++)
printf("%4d",a[i]);
NONO();
}
8. 请编写一个函数reverse,它的功能是:将一个数组逆序存放。要求采用数组名作为函数参数传递,不允许重新申请内存空间用于存放逆序后的结果。
在主函数中输入十个元素到整型数组
#include 20、[],int m)
{int j,temp;
for(j=0;j<(m/2);j++)
{temp=x[j];x[j]=x[m-1-j];x[m-1-j]=temp; }
}
void NONO ( )
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf;
int x[12];
inti ;
fp = fopen("bc370.in","r");
if(fp == NULL) (
printf("数据文件bc370.in不存在!");
return ;
}
wf = fopen("bc370.out","w");
21、for(i = 0 ; i< 12 ; i++)
fscanf(fp, "%d", &x[i]);
reverse(x,12);
for(i = 0 ; i< 12 ; i++)
fprintf(wf, "%d\n",x[i]);
fclose(fp);
fclose(wf);
}
main()
{ inti,a[10];
printf("enter array a:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
reverse(a,10);
〃输出逆序后的数组
for(i=0;i<10;i++) 22、
printf("%4d",a[i]);
printf("\n");
NONO();
}
9. 请编写一个函数bin_search,它的功能是:有一个从小到大排列的一维数组,大小为20,输入一个数,用二分查找法判断该数组中是否有这个数,若有,则输出该数在数组中的下标(数组下标从0开始),若无,输出-1.
#include 23、mid]) i=mid+1;
else if(key 24、 fopen("bc369-2.in","r");
if(fp2 == NULL) {
printf("数据文件 bc369-2.in 不存在!");
return ;
}
wf = fopen("bc369.out","w");
for(i = 0 ; i< 18 ; i++) {
fscanf(fp1, "%d", &a[i]);
}
for(i = 0 ; i< 10 ; i++) {
fscanf(fp2, "%d", &b[i]);
}
for(i = 0 ; i< 10 ; i++)
{
t=bin_search(a,18,b[i]);
fprintf 25、wf, "%d\n",t);
}
fclose(fp1) ;
fclose(fp2);
fclose(wf) ;
}
main( )
{ int t=0,n,a[20]={1,3,5,8,12,23,34,37,38,40,42,48,50,57,60,63,69,75,80,84};
printf("enter a number:\n");
scanf("%d",&n);
〃当x存在于数组a中时,t值为1, x不存在与数组a中时,t值为0t=bin_search (a,20,n);
if(t>=0)
printf("n exists in array a,the p 26、osition of n is:%d\n",t);
else if(t==-1)
printf("-1\n");
NONO();
}
10. 最大公约数:
int gys(int m,int n)
{int x,i,t, k;
for(i=1;i<=m&&i<=n;i++)
if(m%i==0&&n%i==0)
t=i
;return t;
}
最小公倍数:
int gys(int m,int n)
{int x,t,j;
if(m>n)t=m;
else t=n;
for(j=t;!(j%m==0&&j%n==0);j++);
return j;
}






