return r; }
main( ) {
int x,a[ ]={2,3,4,5,6,7,8,9}; x=f(a,3);
printf(\
return 0;
}
上面程序的输出结果是( )。B A)720 B)120 C)24 D)6 5. 有以下程序:
#include
void 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(\
return 0;
}
输出结果是( )。B A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,456 6. 下面程序的输出结果是( )。C
#include
int c; c=a+b;
return c; }
main( ) {
int x=6,y=7,z=8,r;
r=func((x--, y++, x+y), z--);(13,8) 将逗号表达试的值作为函数的参数 printf(\
return 0;
} A)11 B)20 C)21 D)31
41
7. 下列程序执行后输出的结果是( )。A
#include
int d=5;
d+=p++; d=d+p=5+3=8 p++=4
printf(\ \
return d;
}
main( ) {
int a=3;
fun(a); fun(3)
d+=a++; d=d+a=1+3=4 a++
printf(\
return 0;
}
A)8 4 B)9 6 C)9 4 D)8 5 8. 下面程序的输出是( )。A
#include
static a=3; a+=x;
return a; }
main( ) {
int k=2,m=1,n;
n=fun3(k); n=fun3(m); printf(\
return 0;
}
A)6 B)9 C)0 D)3 9. 以下叙述中不正确的是( )。 D
A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效 10. 以下程序的输出结果是( )。 B #include
main( )
42
{
int i=1,j=3;
printf(―%d,‖,i++); i=1 i++=2
{ int i=0;i+=j*2;printf(―%d,%d,‖,i,j); } j*2=6 i=i+6=0+6=6 printf(―%d,%d\\n‖,i,j); }
A)1,6,3,1,3 B)1,6,3,2,3 C)1,6,3,6,3 D)1,7,3,2,3 11. 下列程序执行后输出的结果是( )。D
#include
int b=0;
static c=3;
i f(a) a++ a b c a=c c++ b++ k a=c++,b++;
0 f(2) 3 2 0 3 3 4. 1 3 return a;
1 f(3) 4 3 0 4 4 5 1 4 }
int main(int argc, char argv[])
{
int a=2,i,k;
for(i=0; i<2; i++)
k=f(a++);
printf(\ return 0; } A)3 B)0 C)5 D) 4 12. 以下程序的输出结果是( )。A
#include
}
func(int a, int b) { static int m=0,i=2; i+=m+1; m=i+a+b;
return m;
}
43
A)8,17 B)8,16 C)8,20 D)8,8 13. 如果一个文件要引用另一个文件中的变量,必须通过( )来实现。 B A)用extern对变量说明 B)#include预处理命令
C)#define预处理命令 D)用typedef重新定义 二、阅读程序写出程序运行结果
1. 下列程序执行后输出的结果是 4 。如果语句static z=3;改为int z=3;程序执行后输出的结果是 3 。 4 3
#include
int y=0;
static z=3;
x=z++,y++;
return(x);
}
main( )
{
int a=2,i,b;
for(i=0;i<2;i++)
b=func(a++); printf(\}
2. 下面程序输出的结果 。 4
#include
int y=0;
static z=3;
x=z++,y++; return(x);
} main( ) {
int a=2,i,b;
for(i=0; i<2; i++) b=func(a++); printf(\ return 0; }
3. 有下列程序:
#include
static int x[3]={2, 3, 4};
44
i a func() a++ x y z x=z z++ y++ b 0 2 2 3 2 0 3 3 4 1 3 1 3 3 4 3 0 4 4 5 1 4 0 2 2 3 2 0 3 3 4 1 3 1 3 3 4 2 0 3 3 4 1 3 int i; for(i=0; i<3; i++) x[i]+=x[i]-m; for(i=0; i<3; i++) printf(\ printf(\ return(x[m]); } main( ) {
int y=1;
f(f(y)); } 3 5 7
该程序运行的结果为 。 1 5 9 4. 读下列C程序,请写出程序运行后的输出结果。
#include
char t[20]; int i,j;
p1:‖abc‖ p2:‖aabdfg‖ for(i=0;i p3:‖abbd‖ p4:‖acdbe‖ for (j=i+1;j if(strcmp(p[i],p[j])<0) p5:‖cd‖ i j p[i] 0 1 p0 p1 strcpy(p[i],p[j]); 将数组用冒泡法从大到小的排序 strcpy(p[j],t); } } main( ) { char p[ ][10]={\int i; f(p,5); printf(\ } 程序的输出结果为 。 5 5. 以下程序的输出结果是 。 8,17 同选择12题 #include int k=4,m=1,p; p=func(k, m); printf(\ p=func(k, m); 45 y=1 f(y)=f(1) m=1 x:2,3,4 i m x[i]-m x[i]=x[i]+ 0 1 2-1=1 2+1=3 1 1 3-1=2 3+2=5 2 1 4-1=3 4+3=7 x:3 5 7 x[1] return(5) f(f(y))=f(5) m=5 x:3 5 7 i m x[i]-m x[i]=x[i]+ 0 5 3-5=-2 3+(-2)=1 1 5 5-5=0 5+0=5 2 5 7-5=2 7+2=9 x:1 5 9