(2] A) high=mid-1 B) low=mid+1 c) high=mid+1 D) low=mid-1 【题8.23】以下正确的说法是 如果在一个函数中的复合语句中定义了一个变量,则该变量 A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内均有效 D)为非法变量 【题8.24】以下不正确的说法为 )在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 【题8.25】以下程序的正确运行结果是 #define max 10 int a [MAX],i malI printf(“Ⅶn”);sub10;sub3(a);sub20;sub3(a) int a[MAX], i, max for(i=0: i<max: i++)ali]=i subl for (i=0: i<MAX: i++)ali]=i+i (int a[) for(i=0;i<MAX;i++) printf(“%d”,a[i]) printf(“n” A)024681012141618 01234
【2】 A)high=mid-1 B)low=mid+1 C)high=mid+1 D)low=mid-1 【题 8.23】以下正确的说法是 。 如果在一个函数中的复合语句中定义了一个变量,则该变量 A) 只在该复合语句中有效 B) 在该函数中有效 C) 在本程序范围内均有效 D) 为非法变量 【题 8.24】以下不正确的说法为 。 A) 在不同函数中可以使用相同名字的变量 B) 形式参数是局部变量 C) 在函数内定义的变量只在本函数范围内有效 D) 在函数内的复合语句中定义的变量在本函数范围内有效 【题 8.25】以下程序的正确运行结果是 。 #define MAX 10 int a[MAX],i; main() { printf(“\n”); sub1(); sub3(a); sub2(); sub3(a); } sub2() { int a[MAX],i,max; max=5; for(i=0;i<max;i++) a[i]=i; } sub1() { for(i=0;i<MAX;i++) a[i]=i+i; } sub3(int a[]) { int i; for(i=0;i<MAX;i++) printf(“%d”,a[i]); printf(“\n”); } A) 0 2 4 6 8 10 12 14 16 18 0 1 2 3 4
B)01234 024681012141618 C)0123456789 0123 D)024681012141618 024681012141618 【题8.26】以下程序的正确运行结果是 #include <stdio. h> void num o extern int x inta=15,b=10; X-a- int x, y malI int a=7, b=5 printf(“%d,%dn”,x,y) A)12,2B)不确定 C)5,25D)1,12 【题8.27】凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 A)自动(auto) B)静态( static) C)外部( extern) D)寄存器( register) 【题8.28】在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局 变量,则该变量需要使用的存储类别是 A) extern B)register C) auto D) static 【题8.29】以下程序的正确运行结果是 malI for(i=0;i<3;i++) printf(“%4d”,f(a)) f(int a)
B) 0 1 2 3 4 0 2 4 6 8 10 12 14 16 18 C) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 D) 0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18 【题 8.26】以下程序的正确运行结果是 。 #include <stdio.h> void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf(“%d,%d\n”,x,y); } A)12,2 B)不确定 C)5,25 D)1,12 【题 8.27】凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 。 A)自动(auto) B)静态(static) C)外部(extern) D)寄存器(register) 【题 8.28】在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局 变量,则该变量需要使用的存储类别是 。 A)extern B)register C)auto D)static 【题 8.29】以下程序的正确运行结果是 。 main() { int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(a)); } f(int a) {
return(a+b+c) A)777B)71013 C)7911 【题8.30】以下程序的正确运行结果是 #include <stdio. h> malI p=func(k,m); printf(“%d”,p); p=func(k,m); printf(“%d\n”,p) func (int a, int b) int m0, i=2. return(m) B)8,16C)8,20D)8,8 8.2填空题 【题8.31】C语言规定,可执行程序的开始执行点是 【题8.32】在C语言中,一个函数一般由两个部分组成,它们是【1】和【2】 【题8.33】若输入的值是-125,以下程序的运行结果是 #include <math. h> printf(“%d=”,n); fun(n)
int b=0; static int c=3; b++; c++; return(a+b+c); } A)7 7 7 B)7 10 13 C)7 9 11 D)7 8 9 【题 8.30】以下程序的正确运行结果是 。 #include <stdio.h> main() { int k=4,m=1,p; p=func(k,m); printf(“%d”,p); p=func(k,m); printf(“%d\n”,p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A)8,17 B)8,16 C)8,20 D)8,8 8.2 填空题 【题 8.31】C 语言规定,可执行程序的开始执行点是 。 【题 8.32】在 C 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。 【题 8.33】若输入的值是-125,以下程序的运行结果是 。 #include <math.h> main() { int n; scanf(“%d”,&n); printf(“%d=”,n); if(n<0) printf(“-”); n=fabs(n); fun(n); }
fun (int n) for(k=2:k (n);k++) while(r==o) 【题8.34】下面ad函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误 的部分是【1】:改正后为【2】 void add (float a, float b) return 【题8.35】以下程序的运行结果是 fun (j, 6): printf(“i=%d;j=%d;x=%d\n”,i,j,x) 【题8.36】以下程序的运行结果是 main increment
fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf(“%d”,k); n=n/k; if(n>1) printf(“*”); r=n%k; } } if(n!=1) printf(“%d\n”,n); } 【题 8.34】下面 add 函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误 的部分是【1】;改正后为【2】。 void add(float a,float b) { float c; c=a+b; return c; } 【题 8.35】以下程序的运行结果是 。 main() { int i=2,x=5,j=7; fun(j,6); printf(“i=%d;j=%d;x=%d\n”,i,j,x); } fun(int i,int j) { int x=7; printf(“i=%d;j=%d;x=%d\n”,i,j,x); } 【题 8.36】以下程序的运行结果是 。 main() { increment();
increment Increment printf(“%d”,x) 【题8.37】以下程序的运行结果是 #include <stdio. h> main( int a=l, b=2 c=max(a, b) max(int x, Int y int z return (z) 【题8.38】以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显 示出“ This is yes.”与“ This is no.”。请填空。 void YesNo(char ch case"Y’: printf(“ nThis is yes.n”);【1】 N': printf("\nThis is No. \n"):[21 maln har ch printf(“ AnEnter a char‘y’,“Yor‘n
increment(); increment(); } increment() { int x=0; x+=1; printf(“%d”,x); } 【题 8.37】以下程序的运行结果是 。 #include <stdio.h> main() { int a=1,b=2,c; c=max(a,b); printf(“max is %d\n”,c); } max(int x,int y) { int z; z=(x>y)?x:y; return(z); } 【题 8.38】以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显 示出“This is YES.”与“This is NO.”。请填空。 #include <stdio.h> void YesNo(char ch) { switch(ch) { case ‘y’: case ‘Y’: printf(“\nThis is YES.\n”); 【1】; case ‘n’: case ‘N’: printf(“\nThis is No.\n”); 【2】; } } main() { char ch; printf(“\nEnter a char ‘y’,‘Y’or‘n’,‘N’:”);