C语言 第3章
【例3.2】下列选项中,哪一个是C语言中合法的常量 。
(A)1.52e (B)1/4 (C)’X’ (D)”x”’y’
解答:实数的指数形式中,e后面必须有一个整数;1/4是表达式,不是常量;单弓号括起来的一个字符为字符常量,而字符串常量是用双引号括起来的字符序列。因此,本题正确答案为(C)。
【例3.3】下列形式的常数中,C程序不允许出现的是 。
(A).45 (B)±123 (C)25.6e-2 (D)4e3
解答:C程序允许出现的常数为有一确定值的整数、实数(可用小数形式或指数形式)等。±123不允许出现。因此,本题正确答案为(B)。
【例3.4】下列各组字符序列中,可用作C语言程序标识符的一组字符序列是 。
(A)S.b,sum,average,_above (B)class,day,lotusj,2day
(C)#md,&12x,month,student_nl (D)D56,r_l_2,name,_st_1
解答:C语言规定标识符只能由字母、数字和下划线3种字符组成,而且第一个字符必须是字母或下划线。因此,本题正确答案为(D)。
【例3-5】下列变量说明中,正确的是 。
(A)char:abc; (B)char a;b;c;
(C)im x;z; (D)int x,z;
解答:同时说明多个变量为同一类型时,变量之间应用逗号分隔,以分号结束。因此,本题正确答案为(D)。
【例3—6】下列字符序列中,不可用作C语言标识符的是 。
(A)b70 (B)no.1 (C)_symbol (D)a_1
逗号表达式的运算顺序解答:C语言中,除字母、数字和下划线外,其他字符不得用于标识符。因此,本题正确答案为(B)。
【例3.7】下列数据中,为字符串常量的是 。
(A) ’A’ (B)”house” (C)Howdoyoudo. (D) ’Sabc’
解答:字符串常量是用一对双引号括起来的字符序列。因此,本题正确答案为(B)。
【例3—8】下列字符序列中,不合法的用户标识符为 。
(A)name (B)_old (C)char (D)turbo_c
解答:在C语言中,规定标识符只能由字母、数字和下划线3种字符组成,而且第一个字符必须是字母或下划线。char是C语言关键字,不能用作用户标识符。因此,本题正确答案为(C)。
【例3-9】执行以下语句的结果为 。
Y=10;x=y++;
(A)x=10,y=10 (B)x=11,y=11
(C)x=10,y=11 (D)x=11,y=10
解答:执行语句x=y++,先将Y的值10赋给X,然后y自增。因此,本题正确答案为(C)。
【例3—10】先用下列语句定义字符型变量:char c;然后要将字符a赋给变量c,则下列语句中正确的是 。
(A)c=’a’; (B)c=”a” (C)c=”97” (D)c=’97’
解答:c被定义为字符型变量,则不能将一个字符串赋给变量c,因而选项(B)、(C)不正确。要将字符a赋给c,可以将字符…a直接赋给c,即选项(A)。也可以将字符…a对应的ASCII码97赋给c,此时97为整型,不能用引号括起。因此,本题正确答案为(A)。
【例3—11】执行下列语句的结果为 。
i=3:
printf(”%d,”,++i);
printf(”%d”,i++);
(A)3,3 (B)3,4 (C)4,4 (D)4,5
解答:++i是在使用i之前,先使i的值加1,i++是在使用i之后,使i的值加1。当执行语句i=3后,在执行语句printf(”%d,”,++i)时以及之后,i的值均为4,接着执行printf(”%d’’,i++)语句,i的值仍然为4。因此,本题正确答案为(C)。
【例3—121已知x=3,y=2,则表达式x*=y+8的值为 。
(A)2 (B) 3 (C)10 (D)30
解答:表达式x*=y+8等同于x=x*(y十8),所以其值为3*(8+2)=30。
因此,本题正确答案为(D)。
【例3-13】设x=2.5,y=4.7,a=7,算术表达式x+a%3*(int)(x+y)%2/4的值为 。
(A)2.5 (B)7 (C)4.7 (D)2.75
解答:取模运算只能在整型数据之间进行,a为整型变量。因为%、*、/这3个运算符的优
先级别相同,而类型转换符优先于*、/运算符,a的值为7,7%3=1,又因为(int)(2.5+4.7)=7,1*7=7,7%2=1,1/4=0,所以表达式x+a%3*(int)(x+y)%2/4=x+0=2.5。因此,本题正确答案为(A)。
【例3.14】设a=12,a定义为整型变量,表达式a+=a-=a*=a的值为 。(A)12 (B) 144 (C)0 (D)132
解答:表达式a+=a-=a*=a的运算方向是自右向左,按优先级先计算a*a,a值为a*a=144,再计算a一=a。a值为a—a=0,再计算a+=a。故表达式和a的值都为a+a=O。因此,本题正确答案为(C)。
【例3—15】执行x=5>1+2&&2||2*4<4-!0后,X的值为 。
(A)-1 (B)0 (C)1 (D)5
解答:几种运算中,逻辑非!的优先级别最高,其次为算术运算符,再次为关系运算符,关系运算符后为逻辑与&&和逻辑或||,最后为赋值运算符。根据优先级的高低可知,上述表达式相当于表达式x=((5>(1十2))&&2||((2木4)<(4一(!O)))),即x=((5>3)&&2||(8<3),x=(1&
&2||0),因此x=l。因此,本题正确答案为(C)。
【例3—16】已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为“真”的数据是 。
(A)1990 (B)1992 (C)1996 (D)2000
解答:表达式为“真”时有两种情况:第一,year能被4整除,但不能被100整除;第二,year能被400整除。故在所给选项中不符合上述两种情况的只有(A)。因此,本题正确答案为(A)。
【例3—171下列表达式中,属于算术表达式的是 ,属于关系表达式的是 ,属于逻辑表达式的是 ,属于赋值表达式的是 。
(A)x>=60==l (B)x+60*(x>60)
(C)x>=60&&x<70J||x==50 (D)x=(x>=60)
解答:用算术运算符将两个表达式(可以为数据或关系表达式、逻辑表达式等)连接起来的式
子称为算术表达式;用关系运算符将两个表达式(可以为算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式等)连接起来的式子称为关系表达式;用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式;用赋值符号“=”将一个变量和一个常量或表达式连接起来的式子称为赋值表达式。因此,本题正确答案依次分别为(B)、(A)、(C)、(D)。
【例3-18】设a=2,b=3,c=4,则表达式((a+b)>c)&&(b==c)&&a||b+c&&b+c的值为
(A)5 (B)8 (C)0 (D)1
解答:根据逻辑运算符、算术运算符的优先关系,上面的表达式实际上等价于((a+b)>c)&&(b==c)&&a||(b+c)&&(b+c)=1&&0&&2||7&&7=0||1=1因此,本题正确答案为(D)。
【例3—19】用下列语句定义a,b,c,然后执行b=a,c=’b’+b,则b,c的值是 。
Long a=0xffffff;
int b;char c;
(A)0xfffff和0x61 (B)-1和98
(C)-1和97 (D)指向同一地址
解答:由于a为长整型,b为整型,而在微机中前者为32位,后者为16位,所以在将a的值赋给变量b时,系统会自动截断高16位,截断后值为-1,b的值为一1,而字符’b’的ASCII码为98。因此,c的ASCII码值为97。因此,本题正确答案为(C)。
【例3-20】经过以下语句定义后,表达式z+=x>y?++x:++y的值是 。
Int x=l,y=2,z=3;
(A)2 (B)3 (C)6 (D)5
解答:表达式z+=x>y?++x:++y在z+=x>y时等价于z=z+(x>y?++x:++y)=3+3=6。因为x<y,所以表达式x>y?++x:++y的值为十+y的值,即为3。因此,本题正确答案为(C)。
填空题
1.C语言以函数为程序的基本单位,便于实现程序的模块化。
解答:C程序是由函数构成的,一个C源程序至少包含一个函数(main函数)。函数是C程序的基本单位。C语言的这种特点使c程序容易实现模块化。因此,本题正确答案为“函数”。
2.C程序的执行总是从main函数开始。
解答:一个C程序总是从main函数开始执行,而不论main函数处在程序中的位置如何。因此,本题正确答案为“main函数”。
3.字符常量和字符串常量不一样,它是用单引号括起来的。
解答:字符常量是一个字符,用单引号括起来。字符串常量由若干个字符组合而成,用一对双引号括起来。因此,本题正确答案为“单引号”或“撇号”。
4.字符串常量存储时,自动在字符后加一个字符结束符号’\0’。
解答:字符常量是单个字符,存储时不需加结束符号。字符串存储时才自动在字符串的最后加一个结束符号’\0’。因此,本题正确答案为”’\0’”。
5.C语言中要求对变量作强制定义的主要理由是确定类型和分配空间。
解答:变量被强制定义后,指定为一确定类型,在编译时能为其分配相应的存储单元。如果指定变量a为int型,则IBM-PC机为a分配两个字节的内存单元。因此,本题正确答案为“确定类型和分配空间”。
6.已知x为float型,执行语句(int)x后,x为float型。
解答:语句(int)x是将x的值强制转换成int型。在进行强制类型转换时,得到一个所需类型的中间变量,原来变量的类型不发生变化。x原指定为float型,进行强制类型运算后得到一个int型的中间变量,它的值等于X的整数部分,而X的类型不变。因此,本题正确答案为“float”。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论