for(i=0;i<3;i++) {temp=a[i][i[;
for(j=0;j<3;j++)
fprintf(p,\
fprintf(p,\ } fclose(p); }
试题二
设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。 #include
{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; float x; int i,j; //考生在这里添加代码 for(i=0;i<3;i++) {
x=a[i][0];
for(j=0;j<3;j++) if(fabs(x) p=fopen(\ for(i=0;i<3;i++) { for(j=0;j<3;j++) fprintf(p,\ fprintf(p,\ } fclose(p); } 试题三 在整数数组a中找出偶数放到数b中,对数组b按从小到大的顺序排序后发格式“=”每行3个数写入考生文件夹中paper子文件夹下的新建文件design1.dat。 #include int i,j,temp,n=0; int a[10]={7,6,20,3,14,88,53,62,10,29},b[10]; //考生在这里添加代码 p=fopen(\ for(i=0;i<10;i++) 11 of 41 if(a[i]%2==0)b[n++]=a[i]; for(i=0;i for(i=1;i<=n;i++) if(i%3==0) fprintf(p,\ else fprintf(p,\ fclose(p); } 五、求整数n的各位数字及各数字之和 1、程序调试题 试题一 该程序功能:运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。 #include scanf(\ n=fabs(n); /******** 1 *******/ while(n>1) { //n或n>0或n!=0 s=s+n; /******** 2 ******/ n=n; //%--?/ } printf(\} 2、程序填空题 试题一 该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include int n,s=0; scanf(\ 12 of 41 ______ 1 ______ //n=fabs(n); while(n!=0) { ______ 2 ______ //s=s+n n=n/10; } printf(\ } 试题二 该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156 则输出5)。 #include scanf(\ while( _____1_____ ){ //n或n!=0 k++; _____2_____; //n=n/10 } printf(\} 试题三 该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321; 若程序输入-34567,则输出-76543。 #include { long m,y=0; m=fabs(n); while(m!=0) { y=y*10+m; ____1____ //m=m/10; } if(n>=0) return y; else _____2_____ // return -y; } void main() { printf(\ printf(\} 3、程序设计题 试题一 设计程序:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt及这些数字的和sum到考生目录中Paper子目录下的 13 of 41 新建文件design.dat中。 #include FILE *p; int cnt,sum; /* 考生在这里添加代码 int i,q,b,s,g; cnt=0;sum=0; p=fopen(“design.dat”,”w”); for(i=1000;i<5000;i++) {g=i;s=i0/10;b=i00/100;q=i/1000; if(q+b==s+g && q+b==(g-q)*10) {cnt++;sum=sum+q+b+s+g;} } fprintf(p,\ fclose(p); } 六、平面上各点之间的距离 1、程序调试题 试题一 该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。 #include int i,n; /***** 1 *****/ struct axy { float x,y; } a; //a--?*a scanf(\ a=(float*) malloc(n*2*sizeof(float)); //a=(struct axy*) malloc(n*2*sizeof(float)); for(i=0;i scanf(\ // a[i].x-----.&a[i].x a[i].y-----.&a[i].y for(i=0;i if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5) printf(\} 2、程序填空题 试题一 14 of 41 在考生目录下,有Modify.c程序,该程序中“ N ”是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 该程序功能:输入n和平面上n个点的坐标,计算各点间距离的总和。 #include #define f(x1,y1,x2,y2) sqrt(pow(x2-x1,2)+pow(y2-y1,2)) 1 // #include { float *x,*y,s=0; int i,j,n; scanf(“%d”,&n); x=(float*)malloc(sizeof(float)*n*2); y=x+ 2 ; //(float*)malloc(sizeof(float)*n*2); for(i=0;i for(j=0;j s+=f(x[i],y[i],x[j],y[j]); printf(“%.2f\\n”,s); } 3、程序设计题 试题一 设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式\写入到考生目录中Paper子目录下的新建文件design.dat中。 #include FILE *p; int i; float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6}; float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; float s=0.0; /****以下要求考生写的代码****/ p=fopen(“design.dat”,”w”); //以写方式打开文件 for(i=0;i<10;i++) s=s+sqrt((x[i]-1)*(x[i]-1)+(y[i]-1)*(y[i]-1)); //求与点(1.0,1.0)的距离之和 fprintf(p,”%.6f”,s); //以%.6f的格式将和写到文件 fclose(p); } 试题二 设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式\写到考生目录中Paper子目录下的新建文件design.dat中。 #include 15 of 41