C语言期中试题(A卷)
出卷时间:2003/11/19
专业:教育技术 班级: 学号: 姓名:
一、 选择题(5×5′)
1. 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果 B
A. –132 B. –60 C. -24 D. 0
2. 字符a的ASCII码为97,在C程序中可用下列方法表示,除了 B
A. ‘a’ B. ‘97’ C.‘\141’ D. ‘\x61’
3. 以下程序的输出结果是 D
main( )
{ int a=1 ,b=2 ,c=3,d=4,m=0,n=0 ,t;
t=(m=a
printf(“m=%d , n=%d”,m,n); }
A. m=0 , n=0 B. m=1 , n=1
C. m=0 , n=1 D. m=1 , n=0
4. 下列程序的运行结果为 A
main( )
{ int a=1, b=-1, z=0;
if(a<0)if(b<0)z=1;
else z=-1;
if(b)- -a;
else ++a;
printf(“a=%d , z=%d”,a,z); }
A. a=0 , z=0 B. a=0 , z=-1
C. a=2 , z=-1 D. a=2 , z=1
5. 有int i=5 , j=8 ;则执行完以下语句后j的值为 B
switch(i)
{ case 4: j++ ;
case 5: j- - ;
case 6:
case 7: j++;
default: j-=2; }
A. 3 B. 6 C. 7 D. 8
二、 填空题(5×9′)
1 . 以下程序的输出结果为
main( )
{ int x=12;
float a=3.14159;
printf("%5d##\n",x);
printf("%-5d##\n",x);
printf("%10.6f##\n",a);
printf("%-10.6f##\n",a);
}
输出结果:
_ _ _ 1 2##
1 2 _ _ _##
_ _ 3.141590##
3.141590_ _ ##
2. 以下程序输入一个字母,并将它转换为密码。转换规则:将 ‘a’变成‘z’, 将 ‘b’变成‘y’......, 将 ‘Z’变成‘A’, 将 ‘Y’变成‘B’......。
#include "stdio.h"
main( )
{ char c;
c= getchar() ;
if(c>=‘A’&&c<=‘Z’)c= ‘A’+ 26-( c-‘A’+1 ) ;
else if(c>=‘a’&&c<=‘z’)c= ‘a’+ 26-( c-‘a’+1 ) ;
putchar(c);
}
3. 以下函数应用折半查找法从有序(由小到大)数组a中对m进行查找,若找到返回其下标值,否则返回-1。
int binary(int a[10],int m)
{ int low = 0, high = 9, mid;
while(low <= high);
{ mid= (low+high)/2 ;
if(m ==a[mid]) return (mid);
else if(m < a[mid]) high=mid-1 ;
else low=mid+1 ;
}
return(-1);
}
4. 以下程序对一个3×3的矩阵进行行列互换。
main( )
{ int i,j,temp;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for( i=0 ; i<3; i++)
for( j=i+1 ; j<3; j++)
temp=a[i][j], a[i][j]=a[j][i] , a[j][i]=temp ;
printf("\n the rusult array is:\n");
for(i=