1 2 5
5 4 1
2 7 3
3 8 2
The value is 15. 程序:
#include
int 【 2 】 ,j; for (j=0;j<4;j++ ) {
b[3][j]=2*b[0][j]; printf(\ b[3][j]=0; }
printf(\ for(j=0;j<4;j++)
if(b[i][j]<5&&b[i][2]>5)
k+=b[i][j];
return k; } main() {
static int a[4][4]={ int i,j,k; k=func(a,9); for(i=0;i<4;i++) {
【3】};
for(j=0;j<4;j++)
if(a[i][j]!=0)
printf(\
if(a[i][4]!=0)
printf(\
}
printf(\
}
【 1】 A) int b[4][],k 【 2】 A) i=0
B) int b[][4],k B) i=1
C) int b[4,4],int k D )int b[][4],int k
D) i=3
C) i=2
【 3】 A) {1,5,2,3},{2,4,7,8},{5,1,3,2}
C) {1,5,2,3},{2,4,7,8},{5,1,2,3}
B) {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2} D) {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,2,3}
37. 以下程序的功能是用二分法求方程
根,并要求绝对误差不超过
f(x)=x41+x3+1=0 在区间( -1.0 , -0.5 )中的一个实
a,b )中 f(a)
0.001 。二分法的基本思想是:假设在区间(
与 f(b) 异号,先取区间的中点 m,如果 f(m) 与 f(a) 异号,则取新的解区间为( a,m ),否则
取新的解区间为 (m,b) 。不断对解区间对分,直到解区间已经小于给定的误差时,取该区间的中点作为解的近似值。请将程序补充完整。
#include
return (pow(x,41)+pow(x,3)+1); }
float solv(float a,float b) {
float m; m=(a+b)/2;
while(f(m)*f(b)!=0) {
if( 【 1】 )
a=m; b=m;
else
if( 【 2】 ) break;
m=(a+b)/2; }
return m;
} main() {
float r;
r=solv(-1.0,-0.5);
printf(\ }
【3】);
【 1】 A) f(m)*f(b)<0 【 2】 A) b-a<0.001 【 3】 A) f(r)
B) f(m)*f(b)>=0
C) f(m)*f(b)<=0
D )f(m)*f(b)>0
B) fabs(a-b)<0.001 C) ABS(a-b)<0.001 D )a-b<0.001 D )m
B) f(m) C) r
38. 以下程序是选出能被 3 整除且至少有一位是
#include
int a0,a1,a2; a2= 【1 】 ; a1= 【2 】 ; a0=m;
5 的所有三位正整数 k(个位为 a0, 十位为 a1,
百位为 a2), 打印出所有这样的数及其个数。请将程序补充完整。
if(m%3==0 && (a2==5||a1==5||a0==5)) {
printf( “%d”,m);
n++; } return n; } main() {
int m=0,k;
for(k=105;k<=995;k++)
m=sub( 【 3 】 ); printf(\ }
【1】 A) 【2】 A) 【3】 A)
m/10
(m-a2*10)/10 k,m
B) B) B)
m m/10-a2*10 m,k
C) m/100
C) m-a2*10 C) k,n
D) D) D)
m0
m0-m n,k
39. 以下程序可计算 10 名学生 1 门课成绩的平均分,要求使用无返回值函数实现。请将程序
补充完整。
#include
void average(float array[10]) {
int i=0;
while( 【 1 】 )
array[0]+= 【 2】 ; array[i-1]=array[0]/10; } main() {
float score[10]; int i;
printf(\ for(i=0;i<10;i++)
scanf(\ average(score);
printf(\
}
【 1】 A) i<=10 【 2】 A) array[i-1] 【 3】 A) score[8]
B )i++<10 B )array[i] B )score[0]
【 3】 );
C) ++i<10 C) array[i--] C) array[8]
D )i<10 D )array[i++] D )score[9]
40. 以下程序用于输入不超过N 个数的整数序列(用 -1 作为输入结束标志),然后统计出
从 M1 至 M2 各数在序列中出现的次数并显示输出。请将程序补充完整。
#include
int a[N],c[M2-M1+1]={0},i,n=0,x=0;
printf(\ input a sequence of number(%d-%d) which is ended with -1:\\n\ while(x!=-1) {
scanf(\ a[n]=x; n++; }
f(a,c,n);
printf(\for(i=0;i<=M2-M1;i++)
printf( “%d:%d\\n ”, 【 1】 ); printf(\ }
f( 【 2】 ) {
int i;
for(i=0;i if(a[i]>=M1 && a[i]<=M2) 【 3】; } 【 1】 A) M1+i:c[M1+i] C) M1+i:c[i] 【 2】 A) f(a[],c[],n) B )M1+i+1:c[i] D) i:c[M1+i] B )f(int a[],int c[],int n) D )f(int a[N],c[M2-M1+1],n) C) f(a,c,n) 【 3】 A) c[a[i]]++ C) a[c[i]]++ B )c[a[i]-M2]++ D )c[a[i]-M1]++ 二.读程序写结果 1. fun(int x,int y,int z) { z =x*x+y*y; } main ( ) { int a=31; fun (6,3,a); printf (\ } 2. int f( ) { static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0; for(i=0;i<5;i++) a+=f(); printf(\ } 3. 运行程序时 ,若从键盘输入 asd af aa z67 (回车)#include int i,j=0; for(i=0;str[i]!= ??;i++) if(str[i]!= ??) str[j++]=str[i]; str[j]= ??; } main() { char str[81]; int n; printf(\ gets(str); fun(str); printf(\ } 4. void swap(int *p1,int *p2) { int *t; t=p1,p1=p2,p2=t; printf(\ } main() { int x=10,y=20; swap(&x,&y); printf(\ } 分析以下程序的输出结果。 ,