else if ( ① ) yes=1; else ② ; if(yes) printf(\ else printf(\ printf(\ }
5. 以下程序实现: 输入三个整数,按从大到小的顺序进行输出。 void main(void) {
int x,y,z,c;
scanf(\ if ( ① ) { c=y;y=z;z=c;} if ( ② ) { c=x;x=z;z=c;} if ( ③ ) { c=x;x=y;y=c;} printf(\ }
六、填空题(每题1分,共20分)
1. 在C语言中,一个float型数据在内存中所占的字节数为( ① )个字节;一个double型数据在内存中所占的字节数为( ② )个字节。
2. 若有定义:char c='\\010'; 则变量C中包含的字符个数为( ① )。
3. C源程序的基本单位是( ① )。
4. 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为( ① ); 一个int型数据在内存中所占的字节数为( ② )。
5. 已有定义: int m; float n,k; char chl,ch2;
为使m=3, n=6.5, k=12.6, ch1='a', ch2='A', 输入数据的格式为: 3 6.5 12.6aA
则对应的scanf语句是( ① );。
6. 执行下面的程序片段后,x的值是( ① )。 i=10; i++; x=++i;
7. 设a、b、c均是int 型变量,则执行以下for循环后,c的值为( ① )。 for(a=1,b=5;a<=b;a++) c=a+b;
8. 以下do-while语句中循环体的执行次数是( ① )。
a=10; b=0;
do { b+=2; a-=2+b; } while (a>=0);
9. 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是( ① )。 for (x=0,y=0;y!=123&&x<3;x++) scanf (\
10. 若有以下定义和语句: int *p[3],a[9],i;
for(i=0;i<3;i++) p[i]=&a[3*i]; 则*p[0]引用的是数组元素( ① ); *(p[1]+1)引用的是数组元素(
11. 设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是( ① )。
12. 进行逻辑与运算的运算符是( ① )。
13. 若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是( ① )。
14. 下面程序片段中循环体的执行次数是( ① )次。 for(i=1,s=0;i<11;i+=2) s+=i;
15. 若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[2];
则*--p的值是( ① )。
16. 执行以下程序段后, s的值是( ① ) int a[]={5,3,7,2,1,5,3,10},s=0,k; for(k=0;k<8;k+=2) s+=*(a+k);
17. 执行以下程序段后,m的值是( ① ) int a[]={7,4,6,3,10},m,k,*ptr; m=10; ptr=&a[0];
for(k=0;k<5;k+=2)
m=(*(ptr+k) ② )。 答案: 一、单项选择题(20分) 1.~5.CBACD 6.~10.BDADB 11.~15.CABCC 16.~20.CACCB 二、是非判断题(15分) √√√×√ √√√×× × √ 三、多项选择题(5分) 1.ABC 2.CEGIJ 3.ADFHI 4.ABDEH 5.BEGHI 四、程序运行结果题(20分) 1. t*M 2. 8 3. 3635.4 4. 6 8 10 5. z+y,z-y^x+y,x-y 五、程序填空题(20分) 1. ①double ②pi+1.0/(i*i) 2. ①y<3 ②z==2 3. ①age(n-1)+2 4. ①year%4==0&&yeaar0!=0 ②yes=0 5. ①z>y ②z>x ③y>x 六、填空题(20分) 1. ①4 / 四 ②8 / 八 2. ①1 / 1个 3. ①函数 4. ①1 / 一 ②2 / 二 5. ①scanf(\6. ①12 7. ①10 8. ①3..9. ①3..10. ①a[0] ②a[4] 11. ①112. ①&&13. ①1.14. ①5 15. ①1 16. ①16 17. ①6v

