一、選擇題:
(1)有以下程序
int a=2;
int f(int n)
{ 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++;
}
main()
{ int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序運(yùn)行后的輸出結(jié)果是______
A)26 B)28 C)29 D)24
(2) 以下敘述中正確的是______
A) 局部變量說明為static存儲(chǔ)數(shù),其生存期將得到延長
B) 全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C) 任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D) 形參可以使用的存儲(chǔ)類說明符與局部變量完全相同
(3) 有以下程序
int a=2;
int f(int *A)
{return (*A) ++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A) ;
}
s+=f(&A) ;
printf(“%d\n”,s);
}
執(zhí)行后輸出結(jié)果是______
A) 10 B) 9 C) 7 D) 8
(4) 以下敘述中正確的是______
A) 全局變量的作用域一定比局部變量的作用域范圍大
B)靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間
C)函數(shù)的形參都屬于全局變量
D)未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值
(5) 有以下程序
int a=3;
main()
{ int s=0;
{ int a=5; s+=a++; }
s+=a++;printf(“%d\n”,s);
}
程序運(yùn)行后的輸出結(jié)果是______
A) 8 B) 10 C) 7 D) 11
(6) 以下程序的輸出結(jié)果是______
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("%d\n",a);
}
A) 20 B) 24 C) 25 D) 15
(7) 在C語言中,形參的缺省存儲(chǔ)類是______
A) auto B) register C) static D) extern
(8) 以下程序的輸出的結(jié)果是______
int x=3;
main()
{ int i;
for (i=1;i }
ncre()
{ staic int x=1;
x*=x+1;
printf(" %d",x);
}
A) 3 3 B) 2 2 C) 2 6 D) 2 5
(9 ) 設(shè)有以下函數(shù):
f ( int a)
{ int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______
main()
{ int a = 2, i;
for(i=0;i<3;i++) printf(“%d\n”,f(a));
}
A) 7 B) 7 C) 7 D) 7
8 9 10 7
9 11 13 7
(10) 以下程序的輸出結(jié)果是______
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf(“%d%d \n”, a,b);
}
A) 100200 B) 57 C) 200100 D) 75 (11) 以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類說明是______
A) auto和 static B) auto和 register
C) register和 static D) extern和 register
(12) 在C語言中,函數(shù)的隱含存儲(chǔ)類別是______
A) auto B) static C) extern D) 無存儲(chǔ)類別
(13) 下列程序的輸出結(jié)果是______
A) 4 B) 6 C) 8 D) 10
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
(14) 以下程序的輸出結(jié)果是______
A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15
int d=1;
fun(int p)
{ static int d=5;
d+=p;
printf("%d ",d);
return(d);
}
main( )
{ int a=3; printf("%d \n",fun(a+fun(d))); }
(15) 以下程序運(yùn)行后,輸出結(jié)果是______
A) 8,15 B) 8,16 C) 8,17 D) 8,8
func(int a, int b)
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{ int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
(16) 以下程序運(yùn)行后,輸出結(jié)果是______
A) 84 B) 99 C) 95 D) 44
int d=1;
fun(int p)
{ int d=5;
d+=p++;
printf("%d,d);
}
main()
{ int a=3;
fun(a);
d+=a++;
printf("%d\n,d);
}
(17) 以下敘述中不正確的是______
A) 在C中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次,賦一次初值。
B) 在C中,在調(diào)用函數(shù)時(shí),實(shí)在參數(shù)和對(duì)應(yīng)形參在類型上只需賦值兼容。
C) 在C中,外部變量的隱含類別是自動(dòng)存儲(chǔ)類別。
D) 在C中,函數(shù)形參可以說明為register變量。
(18) 下面程序的輸出是______
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
fun(int k)
{ if(k==0) return w;
return(fun(k-1)*k); }
A)360 B)3600 C)1080 D)1200
(19) 下列程序執(zhí)行后輸出的結(jié)果是______
#include
f(int a)
{ int b=0; static c=3:
a=c+ +,b+ +;
return (a); }
main( )
{ int a=2,i,k;
for(i=0;i〈2;i=+ +〉 k=f(a+ +);
printf("%d\n",k); }
(20) 下列程序執(zhí)行后輸出的結(jié)果是______
int d=1;
fun (int q)
{ int d=5;
d + =p + +; printf("%d".d); }
main( )
{ int a=3;
fun(a);
d + = a + +; printf("%d\n",d); }
A) 8 4 B) 9 6 C) 9 4 D) 8 5
(21) 下面程序的輸出是______
A) 3 B) 4 C) 6 D) 9
fun3(int x)
static int a=3;
a+=x;
return(a);}
main()
{ int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
(22) 下面程序的輸出是______
A) 1 B) 2 C) 7 D) 10
int m=13;
int fun2(int x, int y)
{ int m=3;
return(x*y-m);
}
main()
{ int a=7, b=5;
printf("%d\n",fun2(a,b)/m);}
(23) 請(qǐng)讀程序:
#include
void fun( int *s)
{ static int j=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d", a[k]);
}
上面程序的輸出結(jié)果是______
A) 34756 B) 23445 C) 35743 D) 12345
(24) 以下程序的輸出結(jié)果是______
# include
main()
{ int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}
func(a,b)
int a,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 二、填空題:
(1)以下程序運(yùn)行后的輸出結(jié)果是 【1】
fun(int a)
{
int b=0;static int c=3;
b++; c++;
return (a+b+c);
}
main()
{
int i,a=5;
for(i=0;i<3;i++)
printf("%d %d ",i,fun(a));
printf("\n");
}
(2) 以下程序運(yùn)行后的輸出結(jié)果是 【2】
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
(3) 以下程序輸出的最后一個(gè)值是【3】 。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf(“%d\n”,ff(i));
}
(4) 以下程序的輸出結(jié)果是 【4】 。
void fun()
{ static int a=0;
a+=2; printf(“%d”,a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun()
printf(“\n”);
}
(5) 以下程序的運(yùn)行結(jié)果是 【5】
#include
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;
}
(6) 以下程序的輸出結(jié)果是【6】 。
#include
int fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;
m=i+x+y;
return m
}
main()
{ int j=4,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
(7) 下面程序的輸出是【7】 。
#define MAX 5
int a[MAX],k;
main()
{ fun1();fun3(); fun2(); fun3();
printf("\n"); }
fun1()
{ for(k=0;k fun2()
{ int a[MAX],k;
for(k=0;k<5;k++) a[k]=k; }
fun3()
{ int k;
for(k=0;k (8) 閱讀下列程序:
#include
#define MAX_COUNT 4
void fun();
main()
{ int count;
for (count=1; count<=MAX_COUNT; count++) fun();
}
void fun()
{ static int i;
i+=2; printf("%d",i);
}
上述程序的輸出結(jié)果是 【8】 。
答案:
一、選擇題:
1) C 2) A 3) C 4) B 5) A 6) D 7) A 8) C 9) A 10) B
11) B 12) C 13) B 14) C 15) C 16) A 17) C 18) B 19) D 20) A
21) C 22) B 23) C 24) A 25) 26) 27) 28) 29) 30)
二、填空題:
(1) 0 10 1 11 2 12
(2) 30 25
(3) 120
(4) 246
(5) 8,17
(6) 8,17
(7) o246802468
(8) 2468
(1)有以下程序
int a=2;
int f(int n)
{ 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++;
}
main()
{ int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序運(yùn)行后的輸出結(jié)果是______
A)26 B)28 C)29 D)24
(2) 以下敘述中正確的是______
A) 局部變量說明為static存儲(chǔ)數(shù),其生存期將得到延長
B) 全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C) 任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D) 形參可以使用的存儲(chǔ)類說明符與局部變量完全相同
(3) 有以下程序
int a=2;
int f(int *A)
{return (*A) ++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A) ;
}
s+=f(&A) ;
printf(“%d\n”,s);
}
執(zhí)行后輸出結(jié)果是______
A) 10 B) 9 C) 7 D) 8
(4) 以下敘述中正確的是______
A) 全局變量的作用域一定比局部變量的作用域范圍大
B)靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間
C)函數(shù)的形參都屬于全局變量
D)未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值
(5) 有以下程序
int a=3;
main()
{ int s=0;
{ int a=5; s+=a++; }
s+=a++;printf(“%d\n”,s);
}
程序運(yùn)行后的輸出結(jié)果是______
A) 8 B) 10 C) 7 D) 11
(6) 以下程序的輸出結(jié)果是______
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("%d\n",a);
}
A) 20 B) 24 C) 25 D) 15
(7) 在C語言中,形參的缺省存儲(chǔ)類是______
A) auto B) register C) static D) extern
(8) 以下程序的輸出的結(jié)果是______
int x=3;
main()
{ int i;
for (i=1;i
ncre()
{ staic int x=1;
x*=x+1;
printf(" %d",x);
}
A) 3 3 B) 2 2 C) 2 6 D) 2 5
(9 ) 設(shè)有以下函數(shù):
f ( int a)
{ int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______
main()
{ int a = 2, i;
for(i=0;i<3;i++) printf(“%d\n”,f(a));
}
A) 7 B) 7 C) 7 D) 7
8 9 10 7
9 11 13 7
(10) 以下程序的輸出結(jié)果是______
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf(“%d%d \n”, a,b);
}
A) 100200 B) 57 C) 200100 D) 75 (11) 以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類說明是______
A) auto和 static B) auto和 register
C) register和 static D) extern和 register
(12) 在C語言中,函數(shù)的隱含存儲(chǔ)類別是______
A) auto B) static C) extern D) 無存儲(chǔ)類別
(13) 下列程序的輸出結(jié)果是______
A) 4 B) 6 C) 8 D) 10
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
(14) 以下程序的輸出結(jié)果是______
A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15
int d=1;
fun(int p)
{ static int d=5;
d+=p;
printf("%d ",d);
return(d);
}
main( )
{ int a=3; printf("%d \n",fun(a+fun(d))); }
(15) 以下程序運(yùn)行后,輸出結(jié)果是______
A) 8,15 B) 8,16 C) 8,17 D) 8,8
func(int a, int b)
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{ int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
(16) 以下程序運(yùn)行后,輸出結(jié)果是______
A) 84 B) 99 C) 95 D) 44
int d=1;
fun(int p)
{ int d=5;
d+=p++;
printf("%d,d);
}
main()
{ int a=3;
fun(a);
d+=a++;
printf("%d\n,d);
}
(17) 以下敘述中不正確的是______
A) 在C中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次,賦一次初值。
B) 在C中,在調(diào)用函數(shù)時(shí),實(shí)在參數(shù)和對(duì)應(yīng)形參在類型上只需賦值兼容。
C) 在C中,外部變量的隱含類別是自動(dòng)存儲(chǔ)類別。
D) 在C中,函數(shù)形參可以說明為register變量。
(18) 下面程序的輸出是______
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
fun(int k)
{ if(k==0) return w;
return(fun(k-1)*k); }
A)360 B)3600 C)1080 D)1200
(19) 下列程序執(zhí)行后輸出的結(jié)果是______
#include
f(int a)
{ int b=0; static c=3:
a=c+ +,b+ +;
return (a); }
main( )
{ int a=2,i,k;
for(i=0;i〈2;i=+ +〉 k=f(a+ +);
printf("%d\n",k); }
(20) 下列程序執(zhí)行后輸出的結(jié)果是______
int d=1;
fun (int q)
{ int d=5;
d + =p + +; printf("%d".d); }
main( )
{ int a=3;
fun(a);
d + = a + +; printf("%d\n",d); }
A) 8 4 B) 9 6 C) 9 4 D) 8 5
(21) 下面程序的輸出是______
A) 3 B) 4 C) 6 D) 9
fun3(int x)
static int a=3;
a+=x;
return(a);}
main()
{ int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
(22) 下面程序的輸出是______
A) 1 B) 2 C) 7 D) 10
int m=13;
int fun2(int x, int y)
{ int m=3;
return(x*y-m);
}
main()
{ int a=7, b=5;
printf("%d\n",fun2(a,b)/m);}
(23) 請(qǐng)讀程序:
#include
void fun( int *s)
{ static int j=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d", a[k]);
}
上面程序的輸出結(jié)果是______
A) 34756 B) 23445 C) 35743 D) 12345
(24) 以下程序的輸出結(jié)果是______
# include
main()
{ int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}
func(a,b)
int a,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 二、填空題:
(1)以下程序運(yùn)行后的輸出結(jié)果是 【1】
fun(int a)
{
int b=0;static int c=3;
b++; c++;
return (a+b+c);
}
main()
{
int i,a=5;
for(i=0;i<3;i++)
printf("%d %d ",i,fun(a));
printf("\n");
}
(2) 以下程序運(yùn)行后的輸出結(jié)果是 【2】
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
(3) 以下程序輸出的最后一個(gè)值是【3】 。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf(“%d\n”,ff(i));
}
(4) 以下程序的輸出結(jié)果是 【4】 。
void fun()
{ static int a=0;
a+=2; printf(“%d”,a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun()
printf(“\n”);
}
(5) 以下程序的運(yùn)行結(jié)果是 【5】
#include
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;
}
(6) 以下程序的輸出結(jié)果是【6】 。
#include
int fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;
m=i+x+y;
return m
}
main()
{ int j=4,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
(7) 下面程序的輸出是【7】 。
#define MAX 5
int a[MAX],k;
main()
{ fun1();fun3(); fun2(); fun3();
printf("\n"); }
fun1()
{ for(k=0;k
{ int a[MAX],k;
for(k=0;k<5;k++) a[k]=k; }
fun3()
{ int k;
for(k=0;k
#include
#define MAX_COUNT 4
void fun();
main()
{ int count;
for (count=1; count<=MAX_COUNT; count++) fun();
}
void fun()
{ static int i;
i+=2; printf("%d",i);
}
上述程序的輸出結(jié)果是 【8】 。
答案:
一、選擇題:
1) C 2) A 3) C 4) B 5) A 6) D 7) A 8) C 9) A 10) B
11) B 12) C 13) B 14) C 15) C 16) A 17) C 18) B 19) D 20) A
21) C 22) B 23) C 24) A 25) 26) 27) 28) 29) 30)
二、填空題:
(1) 0 10 1 11 2 12
(2) 30 25
(3) 120
(4) 246
(5) 8,17
(6) 8,17
(7) o246802468
(8) 2468