程序填空
- 格式:docx
- 大小:35.87 KB
- 文档页数:26
/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:以下程序的功能如(图1)。
---------------------------------------------------------请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!-------------------------------------------------------*/#include "stdio.h"/***********FILL***********/double f(_____){/***********FILL***********/_____;/***********FILL***********/if (_____)y=2.0*x*x+3.0*x+4.0;elsey=-2.0*x*x+3.0*x-4.0;/***********FILL***********/_____;}void main ( ){printf("%f\n", f(f(-1.0)+f(5.0))); }【空 1 】错误【学生答案】doublef(_____)【参考答案】float xdouble x【空 2 】错误【学生答案】_____;【参考答案】double yfloat y【空 3 】错误【学生答案】if(_____)【参考答案】x<=22>=x【空 4 】错误【学生答案】_____;【参考答案】return yreturn (y)/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。
---------------------------------------------------------请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!-------------------------------------------------------*/#include "stdio.h"#include "stdlib.h"void main(){/***********FILL***********/_____;inti,j,k;int a[10];for(i=0;i<10;i++)a[i]=rand()%61+30; //产生[30,90]区间上的随机整数for(i=0;i<9;i++){/***********FILL***********/ _____;for(j=i+1;j<10;j++)/***********FILL***********/ if(_____) k=j;if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}/***********FILL***********/for(_____ )printf("%5d",a[i]); printf("\n");}【空 1 】错误【学生答案】_____;【参考答案】int t【空 2 】错误【学生答案】_____;【参考答案】k=ii=k【空 3 】错误【学生答案】if(_____)k=j;【参考答案】a[k]>a[j]a[j]<a[k]【空 4 】错误【学生答案】for(_____)【参考答案】i=0;i<10;i++ i=0;10>i;i++ i=0;i<=9;i+=1 i=0;9>=i;i++ i=0;i<10;i+=1 i=0;10>i;i+=1i=0;i<=9;i++i=0;9>=i;i+=1i=0;i<10;++ii=0;10>i;++ii=0;9>=i;++ii=0;i<=9;++i/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:求数组a中所有小于0的元素之和。
-------------------------------------------------------*/#include "stdio.h"#define N 10main(){int a[N],i,sum;/**********FILL**********/_____ ;for(i=0;i<N;i++){/***********FILL***********/ scanf("%d",_____);/***********FILL***********/ if(_____) sum+=a[i];}printf("%d",sum);}【空 1 】错误【学生答案】_____;【参考答案】sum=0【空 2 】错误【学生答案】scanf("%d",_____);【参考答案】&a[i]a+i【空 3 】错误【学生答案】if(_____)sum+=a[i];【参考答案】a[i]<0*(a+i)<0/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:求两个非负整数的最大公约数和最小公倍数。
---------------------------------------------------------请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!-------------------------------------------------------*/#include "stdio.h"main(){intm,n,r,p,gcd,lcm;scanf("%d%d",&m,&n);if(m<n) {p=m,m=n;n=p;}p=m*n;r=m%n;/***********FILL***********/while(_____ ){/***********FILL***********/m=n;n=r; _____;}/***********FILL***********/gcd=_____;lcm=p/gcd;/***********FILL***********/ printf("gcd=%d,lcm=%d\n", _____); }【空 4 】错误【学生答案】printf("gcd=%d,lcm=%d\n",_____);【参考答案】gcd,lcmn,lcm/*-------------------------------------------------------【程序填空】---------------------------------------------------------以下程序可求出所有的水仙花数。
(所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。
例如;407=4×4×4+0×0×0+7×7×7,故407是一个水仙花数。
)---------------------------------------------------------请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!-------------------------------------------------------*/#include <stdio.h>void main(){ intx,y,z,a[8],m,i=0;printf(″The special numbersare:\n″);/**********FILL**********/for (m=100;_____; m++){ x=m/100;/**********FILL**********/y=_____;z=m%10;if (x*100+y*10+z==x*x*x+y*y*y+z*z*z) /**********FILL**********/{_____;i++;}}for (x=0;x<i;x++)printf(″%6d″,a[x]);}【空 2 】错误【学生答案】y=_____;【参考答案】(m-x*100) /10m%100/10m/10%10【空 3 】错误【学生答案】{_____;i++;}【参考答案】a[i]=m/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:下面函数用于求m*m矩阵主对角线元素之和。
-------------------------------------------------------*/#include "stdio.h"intsh(int array[][3],int m){inti, sum=0;/***********FILL***********/for(i=0;_____;i++)/***********FILL***********/ sum=_____;return sum;}main(){int a[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)/**********FILL**********/scanf("%d",_____);printf("%d",sh(a,3)); }【空 1 】错误【学生答案】for(i=0;_____;i++)【参考答案】i<mi<=m-1i<3【空 2 】错误【学生答案】sum=_____;【参考答案】sum+array[i][i]【空 3 】错误【学生答案】scanf("%d",_____);【参考答案】&a[i][j]*(a+i)+j/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:输出结果为:* * * * ** * * * ** * * * ** * * * ** * * * *-------------------------------------------------------*/#include "stdio.h"main(){/***********FILL***********/ static char_____={'*','*','*','*','*'}; inti,j,k;char space=' ';for(i=0;i<5;i++){printf("\n");for(j=1;j<=3*i;j++)/***********FILL***********/ printf("%1c",_____);/***********FILL***********/ for(k=0;k<_____;k++)printf("%3c",a[k]);}printf("\n");;}【空 1 】错误【学生答案】staticchar_____={'*','*','*','*','*' };【参考答案】a[5]a[]【空 2 】错误【学生答案】printf("%1c",_____);【参考答案】space' '【空 3 】错误【学生答案】for(k=0;k<_____;k++)【参考答案】5=4/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。