/************found************/ for(i=1; ___(1)___;i++)
for(i=1;ia[i]) a[M-1]=a[i];
printf(\ }
10、在考生文件夹下,给定程序FILL.C的功能是: 统计一维数组a中素数的个数。
例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13, 则程序的输出应为:prime number(s) is(are): 6。
#include #include #include prinum( int a[]) { int count,i,j,k; count = 0;
for ( i=0; i<10; i++) {
k=a[i]-1;
for ( j=2; j<=k; j++) if (a[i] % j == 0) break;
if(j >= k+1) count++; }
/************found************/ ____(1)____;
return count; }
void main()
{ int a[10]={2,3,5,7,8,9,10,11,12,13},n; /************found************/ n = ____(2)____;
n=prinum(a); printf(\ }
11、在考生文件夹下,给定程序FILL.C的功能是: 求一维数组a中素数之和。
例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 58。
#include #include #include void main()
{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ ___(1)___; s=0; for ( i=0; i<12; i++) {
k=(int)sqrt(a[i]); for ( j=2;j <= k; j++) if (a[i] % j == 0) break; if( j>k )
/************found************/ s=s+__(2)__; s=s+a[i]; }
printf(\ }
12、在考生文件夹下,给定程序FILL.C的功能是: 从键盘上输入两个正整数x,y,求它们的最大公约数。 例如:如果从键盘上输入24,36, 程序的输出应为:max is : 12。
#include #include #include void main() { int x,y,t,i;
printf(\ scanf(\ if(x < y)
/************found************/ {t = x; ____(1)____ ; y = t;} t = x % y; while( t ) x=y; { x = y; y=t;
t = x % y; }
/************found************/ printf(\} printf(\- 26 -
13、在考生文件夹下,给定程序FILL.C的功能是: 求一维数组a中非素数之和。
例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 54。
#include #include #include void main()
{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ ____(1)____; s=0; for ( i=0; i<12; i++) {
k=sqrt(a[i]);
for ( j=2;j <= k; j++) if (a[i] % j == 0) break; if( j<=k )
/************found************/ s=s+____(2)____; s=s+a[i]; }
printf(\}
14、在考生文件夹下,给定程序FILL.C的功能是: 查找n在数组a中最后一次出现的位置(数组首元素的位置为零)。
例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0, 当n=5时,程序的输出结果为:5 is No.3 。
当n=10时,程序的输出结果应为:10 not found !。
#include void main( )
{ int a[10]={1,5,2,5,6,8,7,4,3,0}; int i,k,n,f=0; scanf(\ for(i=0;i<10;i++)
/************found************/ if(___(1)___) if(a[i]==n) { f=1;
/************found************/ ___(2)___; } k=i; if(f)
printf(\ is No. %d\\n\ else
printf(\ }
15、在考生文件夹下,给定程序FILL.C的功能是: 求两个正整数x,y的最大公约数和最小公倍数。 例如:如果x=24,y=36,程序的输出应为: max is : 12 min is : 72 。
#include #include #include void main()
{ int x,y,t,max,min,i,n1,n2;
printf(\ scanf(\ if(x > y)
{t = x; x = y; y = t;} n1=x; n2=y; t = n2 % n1;
/************found************/ while( ____(1)____ ) while(t!=0) {
n2 = n1 ; n1 = t ; t = n2 % n1; }
/************found************/ max = ____(2)____ ; max=n1; min = x * y / max ;
printf(\ printf(\}
- 27 -
程序设计题(共15题)
1、在考生文件夹下,要求程序PROG.C的功能是: 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。
例如,当字符串为\ 输出:\
#include void fun(char str1[]) {
/***********begin***********/ int i=0; while(str1[i]!='\\0') { if (str1[i]>='A' && str1[i]<='Z') str1[i]+=32; else; i++;
} /************end************/ }
void main() {
void NONO( );//函数声明 char str1[80];
printf(\ gets(str1); fun(str1);
printf(\ NONO( ); }
void NONO( ) { FILE *fr,*fw; int i;
char s[80];
fr=fopen(\ fw=fopen(\ for(i=1;i<=2;i++) { fgets(s,80,fr); fun(s);
fprintf(fw,\ fclose(fr); fclose(fw); }
2、在考生文件夹下,要求程序PROG.C的功能是: 求[1,1000]之间既不能被7整除也不能被5整除的整数之和,将结果存入变量s中。
#include \ #include \ #include \ void main() {
void NONO( int y);//函数声明 int s; int i;
/***********begin***********/ s=0; for(i=1;i<=1000;i++) if(i%5!=0 && i%7!=0) s=s+i;
else; /************end************/ printf(\ NONO(s); }
void NONO( int y) { FILE *f;
f=fopen(\ fprintf(f,\ fclose(f); }
- 28 -