B. a==11||a==12||a==13||a==14
C. a>10&&a<15
D. !(a<=10)&&!(a>=15)
3. 以下程序段的输出结果是。
int a=0,b=4,k=2;
k=a+1>0||(++a<0)&&(!(b--<=0));
printf(”%d,%d,%d”,k,a,b);
A. 1,1,3
B. 1,1,4
C. 1,0,3
D. 1,0,4
4.若有“int a=5; a+=a-=-a*a;”,则a的值是。
5. 以下所列语句中,合法的语句是。
A. a=1,b=2
B. ++a;
C. a=a+1=5;
D. y=int(a);
6. 以下所列字符常量中,不合法的是。
A. ’\0xff’
B. ’\65’
C. ’$’
D.’\x1a’
7. 设有定义“float y=3.45678; int x;”,则以下表达式中能实现将y中数值保留小数点后2位,第
3位四舍五入的表达式是。
A. y=(y*100+0.5)/100.0
B. x=y*100+0.5,y=x/100.0
C. y=y*100+0.5/100.0
D. y=(y/100+0.5)*100.0
8. 以下程序段输出结果是。
int a=10,b=11,c=12,s;
s=a++<=10&&b--<=2&&c++;
printf(”%d,%d,%d,%d”,s,a,b,c);
A. 0,11,10,13
B. 1,11,10,13
C. 0,11,10,12
D. 1,11,10,12
9. 设有语句“int a=2,b=3,c=2; a+=b*=(++b-c++);”,变量b的值是。
习题二
1. 以下关于if语句的错误描述是。
A. 条件表达式可以是任意的表达式
B. 条件表达式只能是关系表达式或逻辑表达式
C. 条件表达式的括号不可以省略
D. 与else配对的if语句是其之前最近的未配对的if语句
2. 以下叙述中不正确的是。
A. 一个变量的作用域完全取决于变量说明语句的位置
B. 外部变量可以在函数以外的任何位置定义
C. 内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用
D. 用static说明一个外部变量是为了限制其他编译单位的引用
3. 以下程序的输出结果是。
main()
{ extern int x;
printf(”%d”,x+=2); fun1(2);
}
int x=1;
fun1(int x)
{ printf(”%d”,x++); fun2(2); }
fun2(void)
{ printf(”%d”,x);
int x=5; printf(”%d”,x);
}
4. 以下不致造成死循环的语句是。
A. for(y=0,x=1;x>++y;x=i++)i=x;
B. for(;;x+=i);
C. while(x=8)x--;
D. for(i=10,sum=0;sum<=i;)sum=--i;
5. 以下程序输出结果是。
main()
{ printf(”%d”,fun(5)); }
fun(int n)
{ if(n==1) return 1;
return n-fun(n-1);
}
6. [程序]
main()
{ int j,k,s,m;
for(k=1;k<10;k++)
{ s=1; m=k+2;
for(j=k;j}
printf(”s=%d,k=%d”,s,k);
}
程序输出结果s= ,k= 。
7. 若有宏定义:
#define N 2
#define Y(n) ((N+1)*n)
则执行语句“z=2*(N+Y(N+2));”后,z的值是。
8. 以下程序输出结果是。
#define T(x,y,z) x*y*z/4
main()
{ int a=1,b=3,c=5;
printf(”%d”,T(b+a,a*++b,a+b+c));
}
习题三
1. 若有“int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);”,则值为9的表达式是
。
A. p+=3,*p++
B. p+=4,*(p++)
C. p+=4,*++p
D. p+=4,++*p
2. 设有以下函数定义,则返回的函数值是。
main()
{int x,*y; y=fun(&x); …}
int *fun(int *a)
{int *t; *a=99; t=a; return t;}
A. 无确切的值
B. 形参a的地址
C. 主函数中变量x的地址
D. fun函数中变量t的地址
3.[程序]
main()
{ int s,p[9]={1,2,3,4,5,6,7,8,9};
printf(”\n%d”,add(p,5));
}
add(int *p,int n)
{ if(n==1) return *p;
else return *p+add(p+1,n-1);
}
程序输出结果是。
4. [程序]
int *swap(int *a, int *b)
{ int *p;
p=a; a=b; b=p;
return a;
}
main()
{ int x=3,y=4,z=5;
swap(swap(&x,&y),&z);
printf(”%d,%d,%d”,x,y,z);
}
程序输出结果是。
5. [程序]
fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2) *s=1;