12.一个C程序由函数A(),B(),C()和函数P()构成,在函数A()中分别调用了函数B()和函数C(),在函数B()中调用了函数A(),且在函数P()中也调用了函数A(),则可以说( )。
A、函数B()中调用的函数A()是函数A()的间接递归调用 B、函数A()被函数B()调用是直接递归调用 C、函数P()直接递归调用了函数A()
D、函数P()中调用的函数A()是函数P()的嵌套 13.下面函数调用语句含有实参的个数为( )。
func((a,b,c,d),(e,f,g)); A、1 B、2 C、4 D、以上都不对
14.已有函数max(a,b)为了让函数指针变量p指向函数max正确的赋值方法是( )。
A、p=max; C、p=max(a,b); #include
int m=3,n=4;
printf(“The old:m=%d,n=%d\\n”,m,n); swap(m,n);
Printf(“The new:m=%d,n=%d\\n”,m,n); } A、3,4
3,4
B、m=3,n=4
m=3,n=4
C、3,4
4,3
D、m=3,n=4
m=4,n=3
int t; t=a;a=b;b=t;
B、*p=max;
D、*p=max(a,b);
N15.下面程序运行的结果为:
N16、选择程序的运行结果 。 main( ) { int x;
x=try(5); printf (\ }
try ( int n )
{ if ( n>0 ) return ( n * try (n-2) ); else return(1); }
A) 1 B) 15 C) 120 D) 答案均是错误的
17.有以下程序
viod fun (int a,int b,int c) { a=456; b=567; c=678;} main()
{ int x=10, y=20,z=30; fun (x,y,z);
printf(\}
输出结果是( )。
A.30,20,10 B.10,20,30 C.456,567,678 D.678,567,456 18.下列语句的执行结果是( )。
static char str[10]={“china”}; printf(“%d”,strlen(str));
A.10 B.6 C.5 N19.读程序,回答问题。 #include
static int a = 3; int t = 0; if(n%2)
{ static int a = 4; t+=a++; } else
{ static int a= 5; t+=a++; }
return t+a++; }
void main()
D.0 {
int s=a,i;
for(i=0;i<3;i++) s+=f(i); printf(\}
程序运行结果是(C)。
A、26 B、28 C、29 D、25 20.有如下程序
int func(int a,int b) {
return(a+b); } main0 {
int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\\n”,r); }
该程序的输出的结果是 __________。
A)12 B) 13 C) 14 21.有以下程序
viod fun (int a,int b,int c) { a=456; b=567; c=678;} main()
{ int x=10, y=20,z=30; fun (x,y,z);
printf(\}
输出结果是_________。 A)30,20,10 B)、10,20,30 C)456,567,678 D22.以下程序执行之后sum的值是_________。 main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i; printf(\}
A)15 B)14 C) 不确定 D)0 N23.void main() { int f(int); int w = 2,k; for(k=0;k<3;k++) {
w=f(w);
printf(“%d\\n”,w);
)678,567,456 D) 15 } }
int f(int x) {
int y=0;
static int z=3; y++; z++;
return (x+y+z); }
程序结束后,w的值为______。
(2) A) 20 B) 7 C) 28 D) 13 N24.int x1=30,x2=40;// x1 x2是全局变量 void main() {
int x3=10,x4=20 ; sub(x3,x4) ; sub(x2,x1);
L1:printf(“%d,%d,%d,%d\\n”,x3,x4,x1,x2); }
void sub(int x, int y) {
x1=x ;x=y ;y=x1 ;
L2 :printf(“%d,%d\\n”,x,y) ; }
L2行输出结果为____________。
(4) A) 10,20 B) 20,10 C) 10,20 D) 20,10 40,10 10,40 10,40 40,10 25、有以下程序
void ss(char *s,char t) {while(*s)
{if(*s==t) *s=t-'a'+'A'; s++; } } main()
{char str1[100]=\ss(str1,c); printf(\}