c语言数据类型运算符与表达式.docx
- 文档编号:8161171
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:14
- 大小:23.92KB
c语言数据类型运算符与表达式.docx
《c语言数据类型运算符与表达式.docx》由会员分享,可在线阅读,更多相关《c语言数据类型运算符与表达式.docx(14页珍藏版)》请在冰豆网上搜索。
c语言数据类型运算符与表达式
第一部分写在作业本上
三、读程题:
1.读下列程序的运行结果
#include
main()
{
inta=-1,b=4,k;
k=(++a<0)&&(b<0);
printf("%d,%d,%d\n",k,a,b);
}_
2.读下列程序的运行结果
#include
main()
{
intx,y,z;
x=y=5;z=++x;
printf(“\n%d%d%d”,z,x,y,);
x=y=5;z=x++;
printf(“\n%d%d%d”,z,x,y,);
x=y=5;z=--x;
printf(“\n%d%d%d”,z,x,y,);
x=y=5;z=x--;
printf(“\n%d%d%d”,z,x,y,);
}
3.读下列程序的运行结果
main()
{
intw,x,z;
w=3;
x=z=10;
printf("%d",x>10?
x+100:
x-10);
printf("%d",w--||z++);
printf("%d",x++>=z);
printf("%d",--w&&z);
printf("%d%d%d\n",w,x,z);
}_
4.读下列程序的运行结果
main()
{
charc1,c2;
c1=‘a’+’6’-’2’;
c2=‘a’+’6’-’3’;
printf(“%c,%d\n”,c2,c1);}
5.读下列程序的运行结果
main()
{
intj,k,l,a=3,b=2;
j=(-a==b++)?
--a:
++b;
k=a++;
l=b;
printf("%d,%d,%d",j,k,l);
}
6.读下列程序的运行结果
main()
{
intj,k,l,a=3,b=2;
j=(--a==b++)?
--a:
++b;
k=a++;
l=b;
printf("%d,%d,%d",j,k,l);
}
四、完善程序题(即:
给出了程序所完成的功能,根据此功能在上填写合适的一条语句)
1.下面的程序是借肋于第三个变量将a,b中的值交换。
main()
{
inta,b,c;
scanf(“%d%d”,&a,&b);
printf(“a=%db=%d\n”,a,b);
c=a;
;
;
printf(“a=%db=%d\n”,a,b);
}
2.求三个数值中的较大的数:
#include
main()
{
intx,y,z,max;
printf("inputx,y,z:
\n");
scanf("%d%d%d",);
max=(x>y)?
X:
y;
max=;
printf("max=%d\n",max);
}
3.从键盘上输入一个小写字母字符,将它转换为大写字母。
#include
main()
{
charch;
ch=getchar();
;
putchar();
}
4.从键盘上输入一个大写字母字符,将它转换为小写字母。
#include
main()
{
charch;
ch=getchar();
;
putchar();
}
后面的题目,自己做练习并根据答案批改,如有错误自行看书分析,若有不懂,课间休息时问老师。
第二部分:
数据类型、运算符与表达式
一、基础题
【l】以下四个字符序列中,能用作用户自定义的标志符是。
A.putcharB.doubleC.A123_D.int
【2】在C语言中,合法的长整型常数是。
A.0LB.4962710C.324-562&D.216D
【3】以下选项中合法的字符常量是。
A.”B”B.’\010’C.68D.D
【4】假定x和y为double型,则表达式x=2,y=x+3/2的值是。
A.3.500000B.3C.2.000000D.3.000000
【5】以下合法的赋值语句是。
A.x=y=100B.d--;C.x+y;D.c=int(a+B.;
【6】以下程序的输出结果是。
main()
{charc=’z’;
printf(”%c”,c-25);
}
【7】若a为int类型,且其值为8,则执行完表达式a+=a%=a%3后,a的值是。
A.8B.3C.2D.0
【8】设有定义“floaty=3.45678;intx;”,则以下表达式中能实现将y中数值保留小数点后2位,第三位四舍五入的表达式是。
A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0
C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.0
【9】设x和y均为int型变量,且x=9和y=3,则以下语句
printf(“%d,%d”,x++,--y);
的输出结果是。
A.10,3B.9,3C.9,2D.10,2
【10】有如下程序
main()
{inta=5,b=-3,c=4;
printf(“%d%d\n”,(++a,b++),c-2);
}
运行该程序的输出结果是。
A.-42B.-32C.-42D.-22
【11】若a1,a2,a3,a4均为整型变量,则以下选项中,符合C
语法规则的表达式是( )
Aa1=25%3.3Ba2=a1+a3=3*5Ca3=078Da4=0xa2
【12】假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为。
【13】字符串”\n\”defg\101\x5B\t”的长度为。
【14】若a是int型变量,则下面表达式的值为。
(a=3+5,a*2),a*6
【15】经过下述赋值后,变量x的数据类型是,y的值是。
intx=100;
doubley;
y=(int)(float)x;
【16】语句:
x++;++x;x=x+l:
x=l+x:
,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)
【17】以下程序的输出结果为()
#include
main()
{
inta=2;
a%=4-1;
printf(“%d,”,a);
a+=a*=a-=a*=3;
printf(“%d”,a);
}
A)2,0B)1,0C)-1,12D)2,12
。
答案:
1.C;2.A;3.B;4.D;5.B;6.A;7.D;8.B;9.C;10.B;11.D;12.9;13.9;14.48;15.整型100.0;16.x+=l;或x-=-1;17.A
二、提高题
【1】设有说明“intx=10,y=4,f;floatm;”,执行表达式“f=m=x/y”后,
则f,m的值分别是( )
A 2、2.5 B 3、2.5 C 2.5、2.5 D 2、2.0
【2】在数学式
中,变量x和y的取值为整数,变量a和b的取
值为实数,在C程序中对应的正确表达式是( )
A 3/5*x*y/a/bB3*x*y/5/a/b
C3*x*y/5*a*bD3/a/b/5*x*y
【3】表达式“(a=4*5,b=a*2),b-a,a+=2”的值是()
A2B20C22D42
【4】设有说明“inta=3,b=5,m;”,则执行表达式
“m=a<=3&&a+b<8”后,m的值为()
AtrueBfalseC0D1
【5】设有说明“intx=5,y=7,z=8;”,执行表达式“z+=x++||y++||z++”
后,则x,y,z的值分别为( )
A6、7、9 B6、8、10 C6、8、8 D6、8、1
【6】设有说明“inta=15,b=17,c;”,执行表达式“c=a||(b+=b)”后,
则a,b,c的值分别为( )
A15、17、1 B1、34、35 C15、34、1 D15、17、15
【7】设有说明“inta,b,c;a=b=c=5;”,执行表达式
“b+=++a>b&&++c>b”后,则a,b,c的值分别为( )
A6、7、6 B6、6、6 C6、6、5 D6、1、6
【8】设有定义“intj,i;”,则执行“j=(i=1,1+9)>9?
i++||++i:
++i;”
后,i,j的值为( )
A10,10 B2,2 C2,3 D2,1
【9】设“intx=2,y=3,z=(++x<=y--)?
((--y==1)?
y--:
--y):
y--;”,
则x,y,z的值为( )
A3,0,1B2,0,0C3,1,1D2,2,1
【10】若有定义:
intb=17;floata=4.5,c=6.5;则下面表达式的值为。
a+(int)(b/3*(int)(a+C./2)%4
【11】若int类型数据占两个字节,则下列语句的输出结果是()
intk=-1;
prinntf(“%d,%u\n”,k,k);
A.-1,-1B.-1,32767
C.-1,32768D.-1,65535
【12】以下程序的输出结果是。
main()
{inta=l,b=2,c=3,k;
k=a+++b+++c;
printf(“k=%dc=%d\n”,k,C.;
}
【13】若x为int型变量,则执行以下语句后,x的值为。
x=5;
x+=x-=x*x;
【14】下列程序的输出结果是16.00,请将程序填完整()。
main()
{inta=9,b=3;
float,x=,y=2.1,z;
z=a/2十b*x/y+l/2;
printf(%5.2f\n",z);
}
设有语句“floatx=2.9;inta=5,b;b=a+x”,则变量b的值()
【15】“inta=5,b=7,c=15,d;d=b>a||(c=a+b).”,则c的值是( )
【16】有“inta=5;a+=a-=-a*a;”,则a的值是()
【17】句”inta=2,b=3,c=2;a+=b*=(++b-c++);”,变量b的值是()
【18】下列不合法的十六进制数是()
A.oxffB.0XcdeC.0x11D.0x23
【19】在C语言中,下列合法的字符常量是()
A.’\039’B.’\x76’C.’ab’D’/n’
答案:
1.D;2.D;3.C;4.C;5.A;6.A;7.B;8.D;9.A;10.7.5;11.D;12.k=6c=3;13.-40;14.8.4;15.15;16.60;17.8;18.A;19.B
三、历年真题
【1】06年9月(14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。
A.++x,y=x-- B.x+1=y C.x=x+10=x+y D.double(x)/10
【2】06年9月(17)有以下程序
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是________。
A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1
【3】06年9月(24)以下选项中,值为1的表达式________。
A.1-"0" B.1-"\0" C."1"-0 D."\0"-"0"
【4】08年4月。
以下选项中不合法的标志符是()
A)printfB)FORC)&aD)_00
【5】08年4月。
以下选项中不属于字符常量的是()
A)‘C’B)“C”C)‘\xcc’D)’\072’
【6】08年4月。
设变量已正确定义并赋值,以下正确的表达式是()
A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0
【7】08年4月。
以下语句中正确的是()
A)inta=b=0;B)charA=65+1,b=’b’;C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;
【8】08年4月。
有以下程序段
charch;intk;
ch=’a’;k=12;
printf(“%c,%d”,ch,ch,k);
printf(“k=%d\n”,k);
已知字符a的ASCII码十进制代码为97,则执行上述愁段后输出结果是()
A)因变量类型焉格式描述符的类型不匹配输出无定值
B)输出项与格式描述符个食不符,输出为零值或不定值
C)a,97,12k=12
D)a,97,k=12
【9】08年4月。
书变量已正确定义为整型,则表达式n=i=2,++i,i++的值为。
【10】07年9月。
可在C程序中用做用户标识符的一组标识符是()
A)andB)DateC)HiD)case
_2007y-m-dDr.TomBigl
【11】07年9月。
以下选项中,合法的一组C语言数值常量是(A)028 B)12. C).177 D)0x8A
. 5e-3 OXa23 4c1.5 10,000
-0xf 4.5e0 Oabc 3.e5
【12】07年9月,以下关于long、int和short类型数据占用内存大小的叙述中正确的是()
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
【13】07年9月。
(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是()
A)x=y==5;B)x=n%2.5;C)x+n=I;D)x=5=4+1;
【14】07年9月。
以下正确的字符串常量是()
A)"\\\"B)’abc’C)OlympicGamesD)""
【15】07年4月。
设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()
A)k++B)k+=1C)++kD)k+1
【16】07年4月。
有以下程序,其中%u表示按无符号整数输出
main()
{unsignedintx=oxFFFF;/*x的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是()
A)-1B)65535C)32767D)0xFFFF
【17】07年4月。
以下合法的字符型常量是()
A)'\x13'B)'\081'C)'65'D)"\n"
【18】07年4月。
已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。
以下不能将变量c中的大写字母转换为对应小写字母的语句是()
A)c=(c-'A')%26+'a'B)c=c+32C)c=c-'A'+'a'D)c=('A'+c)%26-'a'
答案:
1-5ABBAB6-10CBD3A11-15BDADA16-18BAD
第三部分位运算
一、基础题
【1】设有定义语句:
charc1=92,c2=92;,则以下表达式中值为零的是()
A)c1^c2B)c1&c2C)~c2D)c1|c2
【2】有以下程序
main()
{unsignedchara,b;
a=4|3;
b=4&3;
printf(“%d%d\n”,a,b);
}执行后输出结果是()
A)70B)07C)11D)430
【3】有以下程序
main()
{intx=3,y=2,z=1;
printf("%d\n",x/y&~z);
}程序运行后的输出结果是()
A)3B)2C)1D)0
【4】设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()
A)10101001B)10101000
C)11111101D)01010101
【5】设有如下定义:
intx=l,y=-1;,则语句:
printf("%d\n",(x--&++y));的输出结果是()
A)1B)0C)-1D)2
参考答案:
1.A;2.A;3.D;4.D;5.B
二、提高题
【1】设有以下语句:
chara=3,b=6,c;
c=a^b<<2;
则c的二进制值是()。
A)00011011B)00010100
C)00011100D)00011000
【2】以下程序的功能是进行位运算
main()
{unsignedchara,b;
a=7^3;b=~4&3;
printf("%d%d\n",a,b);
}
程序运行后的输出结果是()
A)43B)73C)70D)40
【3】执行下面的程序段
intx=35;
charz='A';
intb;
B=((x&15)&&(z<'a'));
后,B的值为()
A)0B)1C)2D)3
【4】语句:
printf("%d\n",12&012);的输出结果是()
A)12B)8C)6D)012
【5】有以下程序
main()
{unsignedchara,b,c;
a=0x3;b=a|0x8;c=b<<1;
printf(“%d%d\n”,b,c);
}
程序运行后的输出结果是()
A)–1112B)–6–13C)1224D)1122
【6】若定义unsigneda=31003,b=21103;则表达式a^b^b的值为()
A)1B)31003C)21103D)0
【7】下列语句中符合C语言语法的赋值语句是()
A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=7+b,b++,a+7;D)a=7+b,c=a+7;
【8】若变量已正确定义并赋值,符合C语言语法的表达式是()
A)a=a+7;B)a=7+b+c,a++
C)int(12.3/4)D)a=a+7=c+b
【9】对于条件表达式(M)?
(a++):
(a--),其中的表达式M等价于()
A)M==0B)M==1C)M!
=0D)M!
=1
【10】以下程序的结果为()
#include
main()
{
inta=32,b=66;
printf(“%c\n”,a|b);
}
A)66B)98C)bD)B
【11】以下程序的结果为()
#include
main()
{
doubled=3.2;
intx,y;
x=1.2;y=(x+3.8)/5.0;
printf(“%d\n”,d*y);
}
A)3B)3.2C)0D)3.07
【12】设intx=2,y=1;表达式(!
(x-2)||++y)的值和y的值是()
A)1,1B)1,2C)0,1D)0,2
【13】假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式1/abc的表达式为()
A)1.0/a*b*cB)1/(a*b*c)C)1/a/b/(float)cD)1.0/a/b/c
参考答案:
1.A;2.A;3.B;4.B;5.D6.B7.D8.B9.C10.C11.C12.A13.D
三、历年真题
【1】设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是()。
【2】以下程序的输出结果是()
A)0B)1C)2D)3
main()
{intx=05;charz=’a’;
printf(“%d\n”,(x&1)&&(z<’z’));}
【3】整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()
A)x||yB)x|yC)x&yD)x^y
【4】以下程序的输出结果是()
main()
{charx=040;
printf("%0\n",x<<1);
}
A)100B)80C)64D)32
【5】设有以下语句
inta=1,b=2,c;
c=a^(b<<2);
执行后,c的值为()
A)6B)7C)8D)9
参考答案:
1.11110000;2.B;3.D;4.A;5.D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据类型 运算 表达式