一、填空题
1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。
2、C语言源程序的基本单位是________
3、结构化程序由________、________ 、________ 3种基本结构组成。
4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。
5、若有定义语句:charc='\\010';则变量c中包含的字符个数为_______。 6、下面程序段的运行结果是_______。
chara[]=\"12345\",*p; int s=0;
for(p=a;*p!=\\0';p++) s=10*s+*p-'o'; printf(\"%d\\n\",s);
7、下面程序段是找出整数的所有因子。请填空。
scanf(\"%d\",&x); i=1;for(;_______;)
{if(x%i==0)printf(\"%3d\",i); i++; }
8、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
9、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。 _______;a=b;b=c;_______;
10、下面程序段将输出computer。请填空。
char c[]=\"It is a computer\"; for(i=0;_______;i++) {_______;printf(\"%c\",c[j]);}
二、选择题
11、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。
A.n=(n*100+0.5)/100.0 B.m=n*100+0.5,n=m/100.0 C.n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0
12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( ) A.7 B.8 C.6 D.2
13、以下针对scanf函数的叙述中,正确的是( )。 A.输入项可以为一实型常量,如scanf(\"%f\",3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\");
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\",&f);
D.当输入数据时,必须指明变量的地址,如scanf(\"%f\",&f);
14、设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是( )。
A.z=exp(y)+fabs(x); B.y=log10(y)+pow(y);
C.z=sqrt(y-z); D.x=(int)(atan2((double)x,y)+exp(y-0.2));
15、若有初始化语句:int a[3][4]={0};,则下面正确的叙述是( )。 A.只有元素a[0][0]可得到初值0 B.此初始化语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0 D.数组a中每个元素均可得到初值0
16、C语言规定:在一个源程序中,main函数的位置( ) A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后
17、下面有关for循环的正确描述是( )。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break 语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是( )
A.地址传递 B.单向值传递
C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 19、main函数的正确说明形式是( )。
A.int main(int argc,char*argv) B.int main(int abc,char*x abv) C.int main(int argc,char argv) D.int main(int c,char v[]) 20、若有以下定义,则数值不为3的表达式是( )。 int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; A.x[3] B.p1=x+3,*p1++ C.pl=x+2,*(p1++) D.pl=x+2,*++pl
21、以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空( )。
#include if((k%3==0&&a2==5)|l(k%3==0&&al==5)) {printf(\"%d\",k); n++; return n; } else return-1; } int main(){int i,k,n,m; for(k=10 ;k<=99;k++) {m=sub(k,n); if(m!=-1)n=m; } printf(\"\\nn=%d\",n); return(O); } A.a2*10 B.a2 C.a2/10 D.a2%10 22、下面程序的运行结果是( )。