一、填空题
1、请读程序段: int a=1,b=2;
if(a&b)printf(\"***\\n\"); else printf(\"$$ $\\n\"); 以上程序段的输出结果是_______。
2、结构化程序由________、________ 、________ 3种基本结构组成。 3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。
5、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。 6、以下程序段通过移动指针变量m,将如图9-5所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。请填空。(假设程序段中的所有变量均已正确说明。)
for(m=q;m-q<10;m++)printf(\"%d,\",_______);printf(\"\\n\"); 7、下面程序段中循环体的执行次数是_______。
a=10;b=0;
do{b+=2;a-=2+b;}while(a>=0);
8、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。
a+=_______;b=a-_______;a-=_______;
9、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
10、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
二、选择题
11、下面正确的字符常量是( ) A.\"c\" B. \"\\\\\" C. 'w' D. \"
12、下面4个选项中,是不合法的转义字符的选项是( ) A.'\\\"' B.'\\1011 ' C.'\\0ll' D.'\\abe'
\\\\ '\\' '\\f' '\\0ll' \\xf' ' \\a' '\\]' 'xlf'
13、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )。 A.int a=b=c=5; B.int a,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5; 14、以下针对scanf函数的叙述中,正确的是( )。 A.输入项可以为一实型常量,如scanf(\"%f\",3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\"); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\",&f);
D.当输入数据时,必须指明变量的地址,如scanf(\"%f\",&f); 15、若有说明:inta[3][4];,则对a数组元素的非法引用是( )。 A.a[o][2*1] B.a[1][3] C.a[4-2][ o] D.a[o][4] 16、以下叙述不正确的是( )
A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面 17、以下描述中正确的是( )
A.while、do-while、for循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略
C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作 D.do-while 循环中,根据情况可以省略 while
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是( ) A.地址传递 B.单向值传递
C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 19、下面程序段的运行结果是( )。 char*s=\"abcde\";
s+=2;printf(\"%d',s);
A.cde B.字符c C.字符c的地址 D.无确定的输出结果
20、设char*s=\"\a\\017bc”;则指针变量s指向的字符串所占的字节数( ) A.9 B.5 C.6 D.7
21、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。
int binary(int a[10],int m) {int low=0,high=9,mid; while(low<=high) {mid=(low+high)/2; if(ma[mid])【】; else return(miD.; return(一1); } A.high=mid-1 B.low=mid+1 C.high=mid+1 D.low=mid-1 22、对两个数组a和b进行如下初始化: char a[]=\"ABCDEF\";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是( )。 A.a与b数组完全相同 B.a与b长度相同 C.a和b中都存放字符串 D.a的长度比b长 23、下面程序的运行结果是( )。