5、在考生文件夹下,给定程序FILL.C的功能是: 计算并输出下列多项式的值。
S = 1 + 1/(1+2) + 1/(1+2+3) + …… + 1/(1+2+3+……+50) 例如,若主函数从键盘给n输入50后,则输出为S=1.960784。 #include
/************found************/ ___1___ fun(int n) {
float fun(int n) int i,j;
double sum=0.0, t; for(i=1;i<=n;i++) {
t=0.0; T=T+J; T+=J; for(j=1;j<=i;j++)
/************found************/ t+= ___2___; sum+= 1.0/t; t+=j; }
return sum; }
main() {
int n; double s; printf(\ \ scanf(\ s=fun(n);
printf(\}
6、在考生文件夹下,给定程序FILL.C的功能是:
计算两个整数n和m(m<1000)之间所有数的和。n和m从键盘输入。例如,当n=1,m=100时,sum=5050,当n=100,m=1000时,sum=495550。 #include
int n,m; int sum;
/************found************/ ___1___; sum=0; printf(\ scanf(\ while( n<=m ) {
/************found************/ ___2___; sum=sum+n; n++; }
printf(\ }
7、在考生文件夹下,给定程序FILL.C的功能是:
计算N*N矩阵的主对角线元素和副对角线元素之和,并作为函数值返回。(要求:先累加主对角线元素中的值,然后累加副对角线元素中的值。)
例如,若N=3,有下列矩阵: 1 2 3
4 5 6
7 8 9
fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 #include
fun(int t[][N], int n) {
int i, sum;
/************found************/ ___1___; sum=0; for(i=0; i /************found************/ sum+=___2___ ; sum+=t[i][i]; for(i=0; i sum+= t[i][n-i-1] ; return sum; } main() { int t[][N]={1,2,3,4,5,6,7,8,9},i,j; for(i=0; i for(j=0; j printf(\ printf(\ } printf(\ %d\\n\ } 8、在考生文件夹下,给定程序FILL.C的功能是: 打印出1至1000中满足其个位数字的立方等于其本身的所有整数。本题的结果为:1 64 125 216 729。 #include int i,g; for(i=1;i<1000;i++) { /************found************/ g=i___1___10; g=i; /************found************/ if(___2___) if(i==g*g*g) printf(\ } printf(\} - 25 - 9、在考生文件夹下,给定程序FILL.C的功能是: 把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中 #include for(i=0;i /************found************/ for(i=1; ___(1)___;i++) for(i=1;i printf(\ } 10、在考生文件夹下,给定程序FILL.C的功能是: 统计一维数组a中素数的个数。 例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13, 则程序的输出应为:prime number(s) is(are): 6。 #include 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 { 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 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 { 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 { 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 { 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 /***********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 -