C程序试题汇编第二部分试题

第2章 数据类型,运算符与表达式

                           2.1选择题

【题2.1】下列4组选项中,不是C语言关键字的选项是____

A,define   IF type               B,gets   char printf   

C,include scanf case         D,while go pow

解答:A  --解析:C语言严格区分大小写IF 与关键字“if”不相同,没有type关键字

【题2.2】下面4个选项中,是C语言关键字的选项是____

A, auto enum include        B,switch typedef continue

C,signed union scanf        D,if struct type

解答:B  --解析:A中include不是,C中union不是,Dtype不是

【题2.3】下面4个选项中,不合法的用户标识符的选项是____

A,  A P_0 do      B,loat lao _A

C, b-a goto int     D,_123 temp INT

解答: C --解析:C语言用户标识符只能由字母,数字,下划线("_")组成,不能已有关键字,特定字。b-a非下划线 goto和int为已有关键字

【题2.4】C语言中的标识符只能由字母,数字,下划线3中字符组成,且第一个字符____

A,必须为字母        B,必须为下划线

C, 必须为字母或下划线      D,可以是字母,数字,下划线中任一种字符

解答: C 

【题2.5】下面4个选项中,是合法的整形常量的选项是____

A,  160 -0xfff 011    B,-0xcdf 01a 0xe

C,-01 986,012 0668        D,-0x48a 2e5 0x

解答:A  --解析:以0x开头的为16进制范围(0-9,A,,B,C,D,E,F)以0开头的为八进制范围(0-7)

B中 01a为八进制不能带值a  C中989,012不能出现“,” 0668为八进制不能取值8  D中0x

【题2.6】下面4个选项中,是合法的整形常量的选项是____

A,--0f1 -0xfff 0011       B,-0Xcdf 017 12,456

C,-017 999 0668       D,-0x48eg -068 03f

解答: C --解析:A中--0f1双符号而且以0开头八进制不带f  B中12,456不能带“,”  D中-0x48eg 为16进制不能到g -068为8进制不能到8 03f也一样不能到f

【题2.7】下面4个选项中,不合法的浮点数的选项是____

A, 160. 0.12 e3        B,123 2e4.2 .e5

C, -.18 123e4 0.0   D,-1e3 .234 le3

解答: B --解析:指数形式:1),形式的转换用字母“e”代替x10  2),"e"的前后数字不能省略 3),“e"的后方数字只能为整形 个人觉得A的e3也是错误 B中2e4.2 e中后面是小数

【题2.8】下面4个选项中,是合法浮点数的选项是——

A,+le+1       B,-.60       C,123e     D-e3

     5e-9.4            l2e-4          1.2e-.4       .8e-4

     03e2              -8e5             +2e-1       5.e-0

解答:B --解析:如上一题指数形式所示 A中的5e-9.4 e中后方数应该为整数,C中的1.2e-.4也一样

123e e后面要有整数,D -e3前后要有整数

【题2.9】下面4个选项中,是合法转义字符的选项是——

  A,'\''                 B,'\'                 C,'\018'               D,'\\0' 

        '\\'                 '\017'                '\f'                        '\101'

        '\n'                 '\"'                   'xab'                    'xlf'

解答 :A  --解析:B中的'\' 应该写为'\\'表示一个反斜杠,C中'\018'以'\0'开头为1到3位的八进制最大到7,'xab'缺少反斜杠,D中'\\0'表达有误并非转义字符,'xlf'缺少反斜杠

【题 2.10】下面4个选项中,不合法的转义字符的选项是——

  A,'\"'                B, '/'             C,  '\011'            D,'\abc'

         '\\'                  '\'                    '\lf'                '\101'

          '\xf'               '\a'                     '\}'               'xlf'

解答 :B --解析:这题我感觉题目有误,B中'/'和'/a'。不是很理解C中的'\}' D中的'\abc' 'xlf'

【题2.11】下面4个选项中,不合法的转义字符的选项是——

  A,"c"                B, "\\"             C,'W'              D,''

  解答 C: --解析:A和B用双引号是字符串D不合法

【题2.12】下面4个选项中,是正确的八进制数或十六进制数的选项是——

  A,-10                B, 0abc             C,   0010           D,0a12

         0x8f                   -017                     -0x11          -0x123    

           -011                 0xc                       0xf1          -0xa

解答 :C --解析:以0开头为8进制以0x开头以0x开头 A中-10为10进制。B中0abc以0开头每位不得超过7 D中的0a12也是同理

【题2.13】下面4个选项中,是正确的数值常量或字符常量的选项是——

  A,0.0                B,  "a"           C,   '3'           D,+001

        0f                        3.9E-2.5        011             -0xabcd        

        8.9e                  1e1                0xFF00        2e2

      '&'                      '\"'                       0a          50.

解答 :D --解析:结合前面知识A中8.9e后面缺少整数。B中3.9E-2.5后面的数字不是整数、C中0a为八进制不能出现a

【题2.14】下面4个选项中,非法常量的选项是——

  A,‘as’                B,    '\\'          C, -0x18             D,0xabc

        -0fff                   '\101'              01177              '\0'        

          '\0xa'               12,456           0xf                  "a"       

解答 :A --解析:'as'字符只能有一个值

【题2.15】下面不正确的字符串常量是——

  A,'abc'                B,"12'12"              C,  "0"            D,""

 解答 :A --解析:字符串用双引号""

【题2.16】对应一下各代数式中,若变量a和x均为double类型,则不正确的C语言表到式是——

代数式                        C语言表达式

          A,\frac{\exp ^{x_{2/2}}}{\sqrt{2*3.14}}        exp(x*x/2)/sqrt(2*3.14159)

         B,\frac{1}{2}(ax+\frac{a+x}{4a})    1.0/2.0*(a*x+(a+x)/(4*a))   

         C,\sqrt{(sinx)^{2}}      sqrt((pow(sin(x*3.14159/180),2.5)) 

         D,   x^{2}-e^{5}       x*x-exp(5.0)                       

解答 :C --解析:这题没搞懂,应该是要除以360

【题2.17】若有代数式\frac{3ae}{bc}则不正确的C语言表达式是——

A, a/b/c*e*3           B,   3*a*e/b/c        C,   3*a*e/b*c                 D,a*e/c/b*3

解答:C    --解析:根据结合性 应改为3*a*e/(b*c)

【题2.18】以下表达式值为3的是——

A,16-13%10           B,  2+3/2          C, 14/3-2             D,(2+6)/(12-9)

解答: B   --解析:A先算13%10得3,再算16-3=13  C,14/3=4 =>4-2=2          D,(2+6)/(12-9)=>8/3=2

【题2.19】设有说明语句:int k=7,x=12;则以下能使值为3的表达式是——

A,x%=(k%=5)           B,  x%=(k-k%5)          C,  x%=k-k%5            D,(x%=k)-(k%=5)

解答: D   --解析:复合赋值运算把等号右边作为一个整体进行计算 A 先算括号内的k%=5 得2 在用得到的值计算 x%=2 得0 同理可得 B=2 C=2 D =3

【题2.20】若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为——

A,4           B, 16           C,   32           D,52

解答:C    --解析:逗号表达式从左至右依次计算,把最后一个值作为整个表达式的结果

【题2.21】假设所有变量均为整形,则表达式(a=2,b=5,b++,a+b)的值是——

A,  7         B,    8        C,     6         D,2

解答: B   --解析:b++虽然为后置自增,但经过逗号运算进入下一次运算时已经自增为6

【题2.22】已知各变量的类型说明如下:

int k,a,b;
unsigned long w=5;
double x=1.42;

则以下不正确的表达式是——

A,x%(-3)           B,  w+=-2          C,    k=(a=2,b=3,a+b)          D,a+=a-=(b=4)*(a=3)

解答:A    --解析:A为整除取余运算只能对整形进行运算,x为双精度浮点型

【题2.23】已知各变量的类型说明如下

int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;

则以下正确的表达式是——

A,a+=a-=(b=4)*(a=3)           B, a=a*3=2           C, x%(-3)             D,y=float(i)

解答:A    --解析:B赋值号左边只能是变量不能为表达式 C整除取余只能对整数运算 D强制类型转换要带括号(float)(i)

【题2.24】以下不正确的叙述是——

A, 在C程序中,逗号运算符的优先级别最低         

B,在C程序中 ,APH和aph是两个不同的变量           

C,若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变              

D,当从键盘输入数据时,对于整形变量只能输入整形数据,对于实型变量只能输入实行数据

解答: D   --解析:C语言会把低字节数据向高字节转换

【题2.25】以下正确的叙述是——

A,在C程序中,每行只能写一条语句

B, 若a是实型变量,C程序中允许赋值a=10.因此实型变量中允许存放整形数据

C, 在C程序中,无论是整数还是实数,都能被准确无误的表示

D,在C程序中,%是只能用于整数运算的运算符

解答: D   --解析:A一行可以写多条语句,一条语句也可分多行写 B是对整数进行转换成实型数据

C若超过存储范围则会出错

【题2.26】已知字母A的ASCLL码为65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后c2的值为——

A,D           B,  68          C,    不确定值          D,C

解答:A    --解析:因为'6'=54,'3'=51 所有'A'+3='D'

【题2.27】在C语言中,要求运算符必须是整形的运算符是——

A,/           B,     ++       C,        !=      D, %

解答:D    

【题2.28】若有说明语句:char c='\72'';则变量c——

A,包含一个字符           B,包含2个字符            C,   包含3个字符           D,说明不合法,c的值不确定

解答:   A --解析:为转义字符的八进制数

【题2.29】若有定义语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int) (x+y)%2/4的值是——

A, 2.500 000          B,   2.750 000         C,3.500 000               D,0.000 000

解答:A    --解析:先算(int)(x+y)=>7 在按照优先级从左至右依次计算 得2.5

【题2.30】sizeof(float)是——

A,一个双精度表达式           B,一个整形表达式            C, 一种函数调用             D,一个不合法的表达式

解答:B    --解析:sizeof的作用是求内存字节个数

【题2.31】设变量a是整形,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型是——

A,int           B,  float          C,  double            D,不确定

解答:C    --解析:运算时低字节向高字节转换

【题2.32】设以下变量均为int 类型,赋值不等于7的表达式是——

A,(x=y=6,x+y,x+1)           B,  (x=y=6,x+y,y+1)          C,  (x=6,x+1,y=6,x+y)            D,(x=6,y+1,x=y,x+1)

解答:C    --解析:C最后的结果为12

【题2.33】若有代数式\sqrt{y^{2}+1gy}则正确的C语言表达式是——

A, sqrt(fabs(pow(y,x)+log(y)))         

B,   sqrt(abs(pow(y,x)+log(y)))          

C,   sqrt(fabs(pow(x,y)+log(y)))           

D,sqrt(abs(pow(y,x)+log(y)))

解答:D    --解析:fabs对实型数据进行求绝对值 abs对整数进行求绝对值 pow 的格式为:x^{y}==pow(x,y)

【题2.34】若有代数式\left | x^{^{2}} +\log_{10}X\right |——

A,fabs(x*3+log(x))           B, abs(pow(x,3)+log(x))         

 C,abs(pow(x,3.0)+log(x))              D,fabs(pow(x,3.0)+log(x))

解答: D

【题2.35】在C语言中,char型整形数据在内存中的存储形式是——

A,补码           B,    反码        C,  原码            D,ASCLL码

解答:D    

【题2.36】设变量n为float类型,m为int 类型则以下能实现将n中的数值保留小数后两位,第三位进行四舍五入运算的表达式是1——

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

解答:B    --解析:保留两位小数位先乘以100+0.5在赋值给一个整数变量进行四舍五入,得到的值在除以100则得到数值

【题2.37】表达式18/4*sqrt(4.0)/8值的数据类型为——

A,int           B,   float         C,  double            D,不确定

解答:C    

【题2.38】设有说明语句:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是——

A,float           B,  char          C, int             D,double

解答:D    

                      

                          2.2 填空题

【题 2.39】若采用十进制数的表示形式,则077为【1】,0111为【2】,0xab为【3】

解答 【1】63【2】73【3】171 --解析其他进制转十进制为累加法  以0开头的为8进制 0x为16进制

所有 077—>7*8^{0}+7*8^{1}=63  011—>1*8^{0}+1*8^{^{1}}+1*8^{^{2}}=73      0xab--->a+16^{1}+b*16^{0}=171

【题2.40】C语言中的标识符可分为关键字,【1】,【2】3类  

解答 【1】用户标识符 【2】预处理标识符

【题2.41】C语言中的标识符只能有3中字符组成,它们是【1】,【2】,【3】

解答 【1】字母 【2】数字 【3】下划线

【题2.42】在C语言中,用"\"开头的字符序列称为转义字符。转义字符"\n"的功能是【1】,转义字符"\r"的功能是【2】

解答【1】回车换行 【2】回车至下一行行首

【题2.43】在C语言中,用关键字【1】定义单精度实型变量,用关键字【2】定义双进度实型变量;用关键字【3】定义字符型变量

解答:【1】float 【2】double 【3】char

【题2.44】设a,b,c均为int类型变量,请用C语言的表达式描述以下命题

(1)a 或b 中有一个大于c        a>c||b>c

(2)a,b和c中只有两个为正数    a>0&&b>0&&c<0||a>0&&c>0&&b<0||a<0&&b>0&&c>0

(3)c是偶数                         c%2==0

【题2.45】 在C语言中&作为双目运算表示的是【1】,而作为单目运算符时表示的时【2】

解答 【1】与运算 【2】取地址运算

【题2.46】运算符%两侧运算量的数据类型必须是【1】;运算符++和--的运算量必须是【2】

解答 【1】整形 【2】变量

【题2.47】在C语言的赋值表达式中,赋值号左边必须是【1】

解答 【1】变量

【题 2.48】表达式x=6 应当读作【】

解答 将6赋值给x

【题2.49】若有定义语句:int m=5,y=2;则执行表达式 y+=y-=m*=y后的y值是【1】

解答 -16  按照从右至左运算

【题2.50】在C语言中的实型变量分为两种,它们是【1】和【2】

解答【1】float 【2】double

【题2.51】C语言所提供的基本数据类型包括:单精度,双精度【1】【2】和【3】

解答 【1】枚举型【2】字符型【3】整形

【题2.52】已知字母a的ASCLL码为97,而且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【1】

解答 F  解析:前面选择题中有一道差不多的题可以去看一下

【题2.53】若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为 1

解析 s%2+(s+1)%2=6%2+(6+1)%2=7%2=1

【题2.54】若a是int型变量,则表达式s%2+(s+1)%2的值为【1】

解答【1】26

【题2.55】若x和a均是int型变量 则执行表达式(1)后x的值为【1】,执行表达式(2)后的x值为【2】

(1)x=(a=4,6*2)

(2)x=a=4,6*2

解答 根据括号的优先级 【1】12 【2】4

【题2.56】若a,b和c均是int型变量,则执行表达式 a=(b=4)+(c=2)后a的值为【1】,b的值为【2】,c的值为【3】

解答 【1】6 【2】6 【3】2

【题2.57】若a int 型变量,而且a的初值为6,则表达式a+=a-=a*a后的值为 -60

解答  a+=a-=36==>a+=30==>a=60

【题2.58】若a是int 型变量,则执行表达式a=25/3%3后a的值是2

解答 a=8%3=2

【题2.59】若x和n 均是int型变量,而且x和n的初值均为5,则执行表达式x+=n++后x的值为 1,n 的值为 6

解答 后置自增运算先用原值参与运算在自增、

【题2.60】若有定义语句:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值是5.500 000

解答 2.5+(int)(7/3*(int)(2.5+4.7)/2)%4==>2.5+(int)(2.3*7/2)%4==>2.5+7%4==>2.5+3==>5.500000

【题2.61】若有定义语句:int a=2,b=3;float x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y的值为3.500 000

解答  5.000 000/2+3/2==>2.500 000+1==>3.500 000 

【题2.62】若有定义语句:char c='\010';则变量c中包含的字符个数为【1】

【题2.63】若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为【1】

解答 (3+2)%2+2/3==>1

【题2.64】若x和n均为int型变量,而且x的初始值为12,n 的初始值为5,则执行表达式x%=(n%=2)后x的值为【0】

【题2.65】假设变量a,b均为整形,则表达式(a=2,b=5,a++,b++,a+b)的值为【7】

【题2.66】把以下多项式写称只含7次乘法运算表,其余皆为加,减法的C语言表达式

5X^{2}+3x^{6}-4x^{5}+2^{4}+x^{3}-6x^{2}+x+10

解答 x*(x*(x*(*x(x*(x*(5*x+3)-4)+2)+1)-6)+1)+10

【题2.67】若x,和y都是double型变量,而且x的初值是3.0,y的初始值为2.0,则表达式k=

pow(y,fabs(x))的值是【8.000 000】

【题2.68】若有定义语句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则表达式

k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是【13.700 000】

【题2.69】表达式8/4*(int)2.5/(int)(1.25*(3.7_2.3))值的类型为【整形】

【题2.70】表达式 pow(2.8,sqrt(double(x)))值的数据类型为【双精度】

【题2.71】假设m是一个3位数,从左至右依次用a,b,c表示各位的数字,则从左至右各位数字是b,a,c的3位数的表达式是 m/10%10*100+m/100*10+m%10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值