例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 80
void fun(char *s, int n, char *t)
{int len,i,j=0;
len=strlen(s);
/**********found**********/
if(n>=len) strcpy(__1__);
else {
/**********found**********/
for(i=len-n; i<=len-1; i++) t[j++]= __2__ ;
/**********found**********/
t[j]= __3__ ;
}
}
main()
{char s[N],t[N]; int n;
printf("Enter a string: ");gets(s);
printf("Enter n:"); scanf("%d",&n);
fun(s,n,t);
printf("The string t : "); puts(t);
}
解题答案:
/**********第一空**********/
if(n>=len) strcpy(t,s);
/**********第二空**********/
for(i=len-n; i<=len-1; i++) t[j++]= s[i] ;
/**********第三空**********/
t[j]= 0 ;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(int m)
{int i, k ;
for (i = m + 1 ; ; i++) {
for (k = 2 ; k < i ; k++)
/**************found**************/
if (i % k != 0)
break ;
/**************found**************/
if (k < i)
return(i);
}
}
void main()
{
int n ;
n = fun(20);
printf("n=%d\n", n);
}
解题答案:
/**************found**************/
if (i%k==0)
/**************found**************/
if (k>=i)
******************************************
[NextPage] 三、程序题:请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun (int x, int pp[], int *n)
{
}
main()
{int x, aa[1000], n, i ;void NONO ();
printf("\nPlease enter an integer number:\n"); scanf("%d", &x);
fun(x, aa, &n);
for(i = 0 ; i < n ; i++)
printf("%d ", aa[i]);
printf("\n");
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int x, aa[1000], n, i, j ;
FILE *fp ;
fp = fopen("out.dat","w");
for(j = 0 ; j < 10 ; j++) {
x = 30 + j ;
fun(x, aa, &n);
for(i = 0 ; i < n ; i++) fprintf(fp, "%d ", aa[i]);
fprintf(fp, "\n");
}
fclose(fp);
}
参考答案:
void fun ( int x, int pp[], int *n )
{
int i;
*n=0;
for(i=1; i <= x; i++)
if((x % i== 0) && (i % 2)) pp[(*n)++]=i;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|