一、填空题
1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。
a+=_______;b=a-_______;a-=_______;
2、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是
3、一个C语言源程序由若干函数组成,其中至少应含有一个________
4、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。
(1)x=(a=4,6*2)(2)x=a=4,6*2
5、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
6、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。 7、执行下面程序段后,k的值是_______。 k=1;n=263;
do{k*=n%10;n/=10;} while(n);
8、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
9、下面程序段的运行结果是_______。 int i=5;char c[6]=\"abcd\"; do{c[i]=c[i-1];}while(--i>0);
puts(c);
10、以下程序的运行结果是_______。
#include {char s[]=\"ab\\'cdefg\\\",*p=s+1; printf(\"%c”,*(p++)); printf(\"%s\",p+2); return(0); } 二、选择题 11、下面4个选项中,是非法常量的选项是( )。 12、sizeof(float)是( )。 A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 13、以下叙述不正确的是( ) A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数 D.在C程序中,注释说明只能位于一条语句的后面 14、以下叙述正确的是 A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句 D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误15、以下对二维数组a的正确说明是( )。 A.inta[3][];B.float a(3,4);C.double a[ ][4];D.float a(3)(16、设有以下程序: #include {int a=201,b=012; printf(\"%2d,%2d\\n\",a,B.; return 0; .} 程序执行后的输出结果是( )。 A.01,12 B.201,10 C.01,10 D.20,01 17、若有说明语句,则以下不正确的叙述是( )。 char a[]=\"It is mine\";char*p=\"It is mine\"; A.a+1表示的是字符t所在存储单元的地址 B.p指向另外的字符串时,字符串的长度不受限制 C.p变量中存放的地址值可以改变 4); D.a中只能存放10个字符 18、若用数组名作为函数调用的实参,则传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 19、以下描述中正确的是( ) A.while、do-while、for循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略 C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作 D.do-while 循环中,根据情况可以省略 while 20、设有程序段: int k=10;while(k=0)k=k-1; 则下面描述中正确的是( )。 A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 21、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是( )。 if(a A.1 B.2 C.3 D.6 22、下面程序段的运行结果是( )。 int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5; printf(\"%3d\; } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 23、有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请选择填空。 #include {char a[20]=\"cehikngtw\", s[]=\"fbla\"; inti,k,j; for(k=0;s[k]!=\\0';k++) { j=0; while(s[k]>=a[j]& &a[]!=\\0)j++; for(i=strlen(a);i>=j;i--)[2]; a[j]=s[k]; puts(a); return 0; } A)a[i]=a[i+1] B)a[i+1]=a[i] C)a[i]=a[i-1] D)a[i-1]=a[i] 24、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。