C语言函数习题及答案 联系客服

发布时间 : 星期六 文章C语言函数习题及答案更新完毕开始阅读

scanf(\ sub(a,b); for(;i<10;i++) {

if(【1】) j++;

if(j!=0) printf(\ } }

sub(int c, int d[]) { int e, i=9; while(c!=0) {

e=c%8; d[i]=e; 【2】; i--; } return; }

【1】A)b[i]<0

B)b[i-1]!=0 B)c=c%8

C)b[i]<=0 C)c=c/8

D)b[i]!=0 D)c=e%8

【2】A)c=sub(c/8)

充完整。

#include #define N 15

bisearch(int a[N], int key) {

int low=0, high=N-1, mid; while(【1】) {

mid=(low+high)/2; if(key

if(key>a[mid]) low=mid+1; else return mid; }

return 【3】 ; } main() {

int b[N],n,I,j;

printf(\

35. 函数bisearch 的作用是应用折半查找法从存有N个整数的升序数组a中对关键字key进行查找。请将程序补

for(i=0;i

printf(\ scanf(\; }

printf(\ scanf(\ j=bisearch(b,n); if(j<-5)

printf(\’t find %d\\n\ else

printf(\}

【1】A)low

2 1 2 5

6 3 8 2

B)low!=high

C)low<=high C)-1

D)low<=high-1 D)1

B)low=mid+1 B)-10

C)high=mid+1

D)low=mid-1

36. 如果程序及其运行结果显示如下,请将程序补充完整。

10 4 5 4 1

2 7 3

The value is 15. 程序:

#include func(【1】) {

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]={ 【3】}; int i,j,k; k=func(a,9); for(i=0;i<4;i++) {

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 C)i=2

D)int b[][4],int k D)i=3

【3】A) {1,5,2,3},{2,4,7,8},{5,1,3,2} B){2,10,4,6},{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} 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)中的一个实根,并要求绝对误差不

超过0.001。二分法的基本思想是:假设在区间(a,b)中f(a)与f(b)异号,先取区间的中点m,如果f(m)与f(a)异号,则取新的解区间为(a,m),否则取新的解区间为(m,b)。不断对解区间对分,直到解区间已经小于给定的误差时,取该区间的中点作为解的近似值。请将程序补充完整。 #include #include float f(float x) {

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) {

a=m; b=m; break;

if(【1】) else if(【2】) m=(a+b)/2; } return m; } main() { float r;

r=solv(-1.0,-0.5);

printf(\【3】); }

【1】A)f(m)*f(b)<0 【3】A)f(r)

B)f(m)*f(b)>=0 B)f(m)

C)f(m)*f(b)<=0 C) r

D)f(m)*f(b)>0 D)m

【2】A)b-a<0.001 B)fabs(a-b)<0.001 C)ABS(a-b)<0.001 D)a-b<0.001

38. 以下程序是选出能被3整除且至少有一位是5的所有三位正整数k(个位为a0,十位为a1,百位为a2),打印出所

有这样的数及其个数。请将程序补充完整。

#include sub(int m,int n) {

int a0,a1,a2; a2=【1】; a1=【2】; a0=m;

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) m/10 【3】A) k,m

B) m

C) m/100

D) m0 D) m0-m D) n,k

【2】A) (m-a2*10)/10 B) m/10-a2*10 C) m-a2*10

B) m,k

C) k,n

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(\【3】 ); }

【1】A)i<=10

B)i++<10

B)score[0]

C)++i<10 C)array[8]

D)i<10 D)score[9]

【2】A)array[i-1] 【3】A)score[8]

B)array[i] C)array[i--] D)array[i++]

40. 以下程序用于输入不超过N个数的整数序列(用-1作为输入结束标志),然后统计出从M1至M2各数在序