C语言第三章数据类型和运算符及表达式复习题
C语言第三章复习题及答案
C语言复习题1一、选择题1.C语言提供的合法的数据类型关键字是(B)。
(A)Double (B)short (C)integer (D)Char2.在C语言中,合法的长整型常数是(A )。
(A)0L (B)4962710 (C)0.054838743 (D)2.1869e103.若有说明和语句:int a=5;a++;此处表达式a++的值是( C)。
(A)7 (B)6 (C)5 (D)44.C语言中最简单的数据类型包括(B )。
(A)整型、实型、逻辑型 (B)整型、实型、字符型(C)整型、字符型、逻辑型 (D)整型、实型、逻辑型、字符型5.以下说法中正确的是( C)。
(A)C语言程序总是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main()函数中定义(C)C语言程序总是从main()函数开始执行(D)C语言程序中的main()函数必须放在程序的开始部分6.在C语言中,要求运算数必须是整型的运算符是( A )。
(A) % (B) / (C) < (D) !7.以下有4个用户标识符,其中合法的一个是(C )。
(A) for (B) 4d (C) f2_G3 (D) short8.假定x和y为double型,则表达式x=2,y=x+3/2的值是( D )。
(A) 3.500000 (B) 3 (C) 2.000000 (D) 3.0000009.下面程序的输出是( C )。
(A) 0 (B) 1 (C) 3 (D) 不确定的值main(){ int x=10,y=3;printf("%d\n",y=x/y);}10.执行下面程序中输出语句后,a的值是( C )。
(A) 65 (B) 20 (C) 15 (D) 10main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}11.C语言提供的合法的关键字是( D )。
C语言 第三章数据类型、运算符和表达式
第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的C 语言浮点型常量是(C )。
A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,(D )是不正确的C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"3、在C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。
A. 原码B. 反码C. ASCII 码D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C )。
x=(i=4,j=16,k=32)A. 4B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。
A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算6、若有代数式,则不正确的C语言表达式是(C )。
A.a/b/c*e*3B. 3*a*e/b/cC.3*a*e/b*cD. a*e/c/b*37、表达式!x||a==b 等效于( D )。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)8、设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是(A)。
A. 0,0B. 0,1C. 1,0D. 1,19、设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a 的值是( B )。
A. 3B. 0C. 9D. -1210、在以下一组运算符中,优先级最低的运算符是( D )。
A. *B. !=C. +D. =11、设整型变量i 值为2,表达式(++i)+(++i)+(++i)的结果是( B )。
A. 6B. 12C. 15D. 表达式出错12、若已定义x 和y为double 类型,则表达式x=1,y=x+3/2 的值是( C )。
(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档
(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档一、选择题1. 可用作C语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A. 0B. ‘0’C. “0”D. 0.03. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。
A. 12B. 144C. 156D. 2885. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。
A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。
A. 15B. 26,15C. 15,26D. 267. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。
A. 1B. 0C. 与x值相同D. 与x值相反8. x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==510. 下面的哪个保留字不能作为函数的返回类型?( C ) 。
知识点一数据类型运算符及表达式模拟练习(答案版)
知识点一数据类型运算符及表达式模拟练习(答案版)模拟练习一(数据类型、运算符及表达式)基础知识及数据类型1.一个C语言程序是由()组成。
(☆基础知识☆)A.主程序B.子程序C.函数D.过程2.一个C程序总是从()开始执行。
(☆基础知识☆)A.程序的第一条执行语句B.主函数C.子程序D.主程序3.一个C语言程序()(☆基础知识☆)A.应当只包含一到多个主函数B.应当由两个主函数C.只能有一个主函数D.可以没有主函数4.C语言规定:在一个源程序中,main函数的位置()(☆基础知识☆)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后5.C语言程序中,main()函数的特征是()(☆基础知识☆)A.可独立运行的程序B.必不可少的函数C.最先执行的函数D.具有前述三特征的函数6.以下叙述中正确的是()(☆基础知识☆)A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编辑7.下面4组常量,合法的一组C语言常量是()(◆常量◆)A.O0某102E+9‘a’‘’’B.1010LE1‘a’‘\\0’C.0.01“\\””“\\””‘t’‘\\t’D.0.13E+0“\\””‘tt’0128.下面不正确的字符串常量是()(◆常量◆)A.‘abc’B.“12’12”C.“w”D.““9.以下选项中不正确的实型常量是()(◆常量◆)A.2.6E-1B.0.8324eC.-78.8745D.456e-210.以下正确的实型常量是()(◆常量◆)A.2B.3.12e0.8C.e8D.5.6E-211.以下所列的C语言常量中,错误的是()(◆常量◆)A.0某FFB.1.2e0.5C.2LD.’\\72’12.下列字符序列中,可用作C语言用户标识符的是()(◆标识符◆)A.enumB._123C.%aD.#age13.对下列标识符或表达形式,正确的是()(◆标识符◆)A.M.johnB.charC.3.2e0.8D.e814.下面标识符中,不合法的用户标识符是()(◆标识符◆)A._charB.charC.abD.a_b15.下面标识符中,合法的用户标识符是()(◆标识符◆)A.P_aB.U-3C.2aD.tatic16.下面标识符中,合法的用户标识符为()(◆标识符◆)A.p#AdB.12aC.charD._int17.下列语句中正确的是()(◆数据类型◆)A.int_1[]=”012345”;B.char[3]={‘1’,’2’,’3’,’4’};C.c har某tring=”hello!”;D.ch=”howareyou”;18.设int类型的数据长度为2个字节,unignedint类型数据的取值范围是()(◆数据类型◆)A.-32768~32767B.0~255C.0~65535D.13019.在C语言中,int,char和hortint三种类型变量所占用的内存大小是()(◆数据类型◆)A.均为2个字节B.由用户自己定义C.由所用机器的字长决定D.是任意的20.若有以下类型说明语句:(◆数据类型◆)chara;intb;floatc;hortintd;则表达式(c某b+a)某d的结果类型是()A.charB.intC.doubleD.float21.若已定义某和y为float类型,则表达式:某=2,y=某+3/2的值是()(◆数据类型◆)A.4B.3C.3.0D.3.522.若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是()(◆数据类型◆)A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符’A’的ASCII值加上123.以下选择中不属于C语言的类型的是()(◆数据类型◆)A.ignedhortintB.unignedlongintC.unignedintD.longhort24.下列程序(◆转义字符◆)voidmain(){printf(“_ab_c\\t_de\\rf\\tg\\n”);printf(“h\\ti\\b\\bj_k\\n”);}执行后的结果是()A.fab_c___gdeB.fab_c___gdeC.fa__c___gdeD.fa__c___gdeh_______jikh_______ji_h_______jikh_______ji_25.下列字符中,不正确的转义字符是()(◆转义字符◆)A.’\\2’B.’\\r’C.’\\\\’D.’\\108’26.在C语言中,下列选项说法错误的是()(☆基础知识☆)A.main函数是程序的入口B.严格区分大小写C.可以进行位运算D.一个字符占两个字节27.以下不是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typedefB.enumC.FloatD.tatic28.以下是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typeefB.outC.cloeD.tatic29.下列选项中,不合法的C语言关键字是()(◆关键字(保留字)◆)A.voidB.charC.defaultD.Do30.对于C语言程序中的变量,()是正确的。
数据类型运算符与表达式练习题
精品文档第三章运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是()。
A.”a” B. {ABC} C. 'abc\0' D. 'a'2.下列数据中属于“字符串常量”的是()。
A.ABC B. “ABC” C. 'abc' D. 'a'3. 在PC机中,'\n'在内存占用的字节数是()。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff”在内存占用的字节数是()。
A. 5B. 6C. 3D. 45.字符串”\”ABCD\””在内存占用的字节数是()。
A. 4B. 6C. 7D. 86. 在C语言中,合法的长整型常数是()。
A. 0LB. 49627C. 0.054838743D. 2.1869e107.在C语言中,合法的短整型常数是()。
A. OLB. 0821C. 40000D. 0x2a8.下列数据中不属于“字符常量”的是()。
A. ‘\a'B. ‘\160'C. ‘070'D. 0709.char型常量在内存中存放的是()。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是()。
A. 1B. 0C. -1D. 出错11.在以下一组运算符中,优先级最高的运算符是()。
A. <=B. =C. %D. &&12.设整型变量i的值为3,则计算表达式i---i后表达式的值为()。
A. 0B. 1C. 2D. 表达式出错13.设整型变量i,j=3; 则计算表达式i=j+++j后i,j的值为()。
A. 4,4B. 6,6C. 4,6D. 6,414.设整型变量a,b,c均为2,表达式a+++b++c++的结果是()。
C语言数据类型和运算符及表达式复习题
数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) d) 213&8. 以下正确的实型常量是()a) 1.2E b) . c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0d) 1.3E10. 以下合法的八进制数是()a) 0135b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5)d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6. b) 6 c) 5. d) 6.17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为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)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z21. 不能正确表示代数式d c b a ⋅⋅的C 语言表达式是( ) a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a) y= 1111 b) y= 1111c) y=1111 d) y= 1111y= y=+01111 y=+01111 y=111126. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a) *y= 710*b) *y= 456**y=710 * *y=456 **y=* *y=*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.* b) *3.** 3.67* *3.667 ** 4* *4.*c) *3.667* d) *3.**3.* *3.67**3.* *4.*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768d) b=-1 39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是___1___.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是___4___.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_4.__.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是__3___.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为__28____.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是_8__,变量x的值是_2__,变量y的值是__3__.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是__111___,变量y的值是__16___。
计算机2级C语言题库第三章 数据类型、运算符与表达式
第三章数据类型、运算符与表达式一单项选择题1.下面四个选项中,均不是c语言关键字的选项是()。
A) define IF Type B) getc char printfC) include scanf case D) while go pow3.下列四个选项中,均是C语言关键字的选项是()。
A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type4.下面四个选项中,均是不合法的用户标识符的选项是()。
A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int5.以下有4组用户标识符,其中合法的一组是()。
A) For -sub Case B) 4d DO SizeC) f2_G3 IF abc D) WORD void define7.下面四个选项中,均是合法整型常量的选项是()。
A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) –01986 012 0668 D) -0x48a 2e5 0xe8.下面四个选项中,均是正确的八进制数或十六进制数的选项是()。
A) -10 0x8f -011 B) 0abc -017 0xcC) 010 -0x11 0xf1 D) 0a12 -0x123 -0xa9.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为()。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 10.在C语言中,不正确的int类型的常数是()。
A)32768 B)0 C)037 D)0xAF13.下面四个选项中,均是合法的浮点数的选项是()。
A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-015.以下选项中合法的字符常量是()。
C语言运算符和表达式练习题
运算符和表达式
1、若有定主:int a=11; float x=2.8,y=5.7;则表在式x+a%3*(int)(x+y)%2/4的值是:
2、若有定义: int a=8,b=5,c; 执行语句:c=a/b+0.4;后,c的值是:
3、已有定义:int x=3; 则表达式:x=x+1.78的值是
4、已有定义:float f=13.8;,则表达式:(int)f/3的值是
5、已有定义:double x=3.5; 则表达式:x=(int)x+1的值是:
6、已有定义:int x=10, y=3,z; ,则表达式:z=(x%y, x/y)的值是
7、已有定义:int x=0,y=0;,则计算表达式:(x=x+2,y=x+3/2,y+5)后,表达式的值是,变量x的值是:
8、若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x 的值为:
9、设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f 值的数据类型为:
1、若有语句:
Int x=12,y=8,z;
Z=0.8+x/y;则执行语句后,z的值为:
2、若“int a; float b=12.2;”,则执行“a=(int)b%3;”后,a的值是:
3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是
4、若有定义句语:int s=6; 则表达式s%2+(s+1)%2的值为
6、设a,b均为double型,且a=5.5;b=25;则表达式(int)a+b/b的值是:
7、已有定义:int x=110, y=017; 则计算表达式:(x++,++y)后,表达
式的值是,变量k的值是,变量j的值是。
C语言教程第3章 数据类型、运算符与表达式
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )
C语言(数据类型与运算符)习题与答案
一、单选题1、表达式:(int)((double)9/2)-(9)%2 的值是A.1B.0C.4D.3正确答案:D解析: D、整数除以整数,结果为整数2、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为A.0B.-10C.10D.20正确答案:B3、以下选项中,不能作为合法常量的是A.1.234e+4B.1.234e04C.1.234e0.4D.1.234e0正确答案:C解析: C、指数次数必须为整型4、下列选项中,不能用作标识符的是A.int_2_B.i_nt123C. _1234_D.2_int_正确答案:D5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是A.(1/2)*(a+b)*hB.h/2*(a+b)C.(a+b)*h/2D.(a+b)*h*1/2正确答案:A二、填空题1、若有定义语句:int a=5;,则表达式:a++ 的值是________。
正确答案:5解析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增1 2、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为 ________。
正确答案:1解析: %运算要求两数为整数,结果为整数3、设有语句char a='\072';则变量a最终获得________个字符?(仅填写具体阿拉伯数字)正确答案:1解析:这是一个转义字符4、一个float型变量占________个字节?(仅填写具体阿拉伯数字)正确答案:45、int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是________。
正确答案:0解析:关系运算只能两两判断。
数据类型、运算符与表达式 习题三及参考答案
第三章习题参考答案一、单项选择题1、C语言中字符型(char)在内存中的形式存储是()。
A)源码 B)补码 C)反码D)ASCII码2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。
A)逻辑运算符高于算术运算符,算术运算符高于关系运算符B)算术运算符高于关系运算符,关系运算符高于赋值运算符C)算术运算符高于逻辑运算符,关系运算符高于关系运算符D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符3、C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是()。
A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4、以下选项中属于C语言的数据类型是()。
A)复数型 B)逻辑型C)双精度型 D)集合型5、在C语言中,int、char和short三种类型数据所占的内存()。
A)均为2个字节 B)由用户自己定义C)由所用机器的字长决定 D)是任意的6、下列常数中不能作为C语言的数据类型是()。
A)0xa5 B)2.5e-2 C)3e2 D)05827、设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是()。
A)0至255 B)0至65535 C)-256至255 D)-32768至327678、在C语言中,数字029是一个()。
A)八进制数 B)十六进制数 C)十进制D)非法数9、下列可以正确表示字符型常数的是()。
A)”a”B)'\t’ C)”\n” D)29710、以下错误的转义字符是()。
A)'\\’ B)'\'’ C)'\81’ D)'\0’11、C语言中整数-8在内存中的存储形式是()。
A)1111 1111 1111 1000 B)1000 0000 0000 0000C)0000 0000 0000 1000 D)1111 1111 1111 011112、已知 int i; float f; 正确的语句是()。
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
数据类型运算符表达式习题
C) 6 6 6.0 6.7
D) 6 6 6.7 6.0
main()
{ double d; float f; long l; int i;
i=f=1=d=20/3;
printf("%d %ld %f %lf \n", i,l,f,d);
}
19.设a为整型变量,不能正确表达数学关系:10<a<15的C
D)输入数据时,对整型变量只能输入整数。
D 32、以下正确的说法是:
A)语句间须用分号分隔; B)实型变量中可存放整数; C)整数和实数都能准确表示; D)运算符%只能用于整数间的运算。
A)4
B)16
C)32
D)52
14.设有语句 int a=3;,则执行了语句
a+=a-=a*a;后,变量a的值是: D
A)3
B)0
C)9Biblioteka D)-1215、设整型变量a,b,c的值均为2,表达式
a+++b+++c++的结果是: A
A)6
B)9
C)8
D)表达式出错
16、设a=1,b=2,c=3,d=4,则表达式:
1. char型常量在内存中存放的是: A
A)ASCII码
B)原码
C)内码值
D)十进制代码值
2.C语言中整数-8在内存中存储形式是:A A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111
11.设 int x=1, y=1; 表达式(!x||y--)的值是: B
C语言章节习题及答案
《C程序设计》复习题集第2章基础概念一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)2.1以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前定义正确答案: A2.3 以下说法正确的是A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案: D2.6 下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用正确答案: D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案: D2.8 下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,但分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B2.9 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: C2.10 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-while D)if,for,continue正确答案: A第3章数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)3.1 C语言提供的基本数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C3.3 下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof正确答案: B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018 B)0abc 017 0xaC)010 -0x11 0x16 D)0a12 7ff -123正确答案: D3.5 下列数据中,不合法的C语言实型数据的是A)0.123 B)123e3 C)2.1e3.5 D)789.0正确答案: C3.7 若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A3.8 有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6 B)7 C)8 D)9正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%= B)/ C)= D)<=正确答案: A3.10 若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b正确答案: B3.11 若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1 B)++i; C)a=a++=5; D)a=int(i);正确答案: B3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000 B)2.750000 C)3.500000 D)0.000000正确答案: A3.13 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^ B)sizeof,<<,^,&= C)^,<<,sizeof,&= D)<<,^,&=,sizeof正确答案: B3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D3.15 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2 B)3 C)4 D)5正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)int B)float C)double D)不确定正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)10100011和 01110111 B)01000101和01100011C)00110101和00110111 D)01100101和01100111正确答案: C3.19 不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量正确答案: D3.20 设有int x=11;则表达式(x++*1/3)的值是A)3 B)4 C)11 D)123.21 以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",- -a+b,- -b+a);}A)30 B)31 C)32 D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17 B)16 C)15 D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B3.26下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z 的C语言表达式是A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z正确答案: A3.28 下列关于语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C二、填空题3.30 以下程序的输出结果是【1】。
C语言运算符与表达式训练附答案
逻辑表达式类型:与运算、 或运算、非运算
逻辑运算符:&&、||、!
逻辑表达式应用:条件判断、 循环控制
逻辑表达式注意事项:运算 符优先级、括号的使用
条件表达式定义
条件表达式的语法
条件表达式的应用
条件表达式的注意 事项
逗号表达式的定义 逗号表达式的语法结构 逗号表达式的执行顺序 逗号表达式的应用场景
编写一个C程序, 要求输入两个浮 点数,计算它们 的和、差、积、 商,并将结果输 出到屏幕上。
编写一个C程序, 要求输入一个字符 串和一个整数,将 字符串中的第几个 字符替换为指定的 字符,并将结果输 出到屏幕上。
编写一个C语 言程序,要求 实现两个数的 四则运算,并
输出结果。
编写一个C语言 程序,要求实 现一个简单的 计算器,可以 进行加减乘除
逻辑或(||):用于连接两个或多个条件,只要其中一个条件为真,结果就为真。
单击此处添加正文,文字是您思想的提炼,请言简意赅的阐述您的观点。单击此处添加正文, 文字是您思想的提炼,请言简意赅的阐述您的观点。
逻辑非(!):用于对一个条件取反,当条件为真时,结果为假;当条件为假时,结果为真。
单击此处添加正文,文字是您思想的提炼,请言简意赅的阐述您的观点。单击此处添加正文, 文字是您思想的提炼,请言简意赅的阐述您的观点。
条件运算符的语法:使用"?"和":"表示条件运算符的格式 条件运算符的执行顺序:先计算条件表达式,再执行相应的语句 条件运算符的应用示例:使用条件运算符进行条件判断和选择执行语句
注意事项:避免在条件表达式中过度嵌套条件运算符,以免影响代码可读性和性能
逗号运算符的定 义
逗号运算符的优 先级
C语言_数据类型运算符及表达式_选择题无答案
C) 40 D) 30 38. 设x,y,z,s均为int型变量,且初值均为1,则执行语句 s=++x||++y&&++z后, 则s的值为: A) 不定值 B) 2 C) 1 D) 0 39. 设有如下变量定义: int i=8,k,a,b; unsigned long w=5;double x=1.42, y=5.2; 则以下符合C语言语法的表达式是: A) a+=a-=(b=4)*(a=3) B) x%(-3) C) a=a*3=2 D) y=float(i) 40. 以下程序的输出结果是: main() { int a=12, b=12; printf("%d,%d\n",--a,++b); } A) 10,10 B) 12,12 C) 11,10 D) 11,13 41. 若有代数式(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 42. 已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是: A) 0 B) 语法错 C) 1 D) "假" 43. 若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是: A) 5.5 B) 5 C) 3 D) 4.0 44. 若已定义int a,则表达式a=10,a+10,a++的值是: A) 20 B) 10 C) 21 D) 11 45. 若有以下定义和语句: int a=010, b=0x10, c=10; printf("%d,%d,%d\n",a,b,c); 则输出结果是: A) 10,10,10 B) 8,16,10
C语言各章节复习题(带答案)
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言基本数据类型及运算题库
D)if (b= =0)m=1;n=2; 答案:D
31. 假定有以下变量定义,则能使值为 3 的表达式
是
。
int k=7,x=12;
A)x%=(k%=5)
B)x%=(k-k%5) C)x%=k-k%5
D)(x%=k)-(k%=5) 答案:D
32. 以下程序的输出结果是
。
#include void main( ) {
a=b=c=1;
++a||++b&&++c;
第4页共8页
我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。——《白居易》
人人好公,则天下太平;人人营私,则天下大乱。——刘鹗
那么,变量 b 的值应是( )
A.2 B.1 C.0 D.3 答案:B
24. 有变量说明 int a=3;,则表达式 a1 的运算结果和 a 的值
(10)’’a’’’ (11)’\\\\’ (12)’\\0123’
(13)’\\xaf’
(14)’王’
(15)”李为民”
(16)”\\xaif” 答案:(2),(12),(14),(16)
17. 下列运算符中,结合方向为自左向右的是( )。
(A)?:
(B), (C)+ =
(D)+ + 答案:(B)
第6页共8页
云路鹏程九万里,雪窗萤火二十年。——《王实甫》
B) /
C) =
D) *= 答案:A
4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执
行后,c3 中的值是
。
A) 0
B) 0.5
C语言第三章数据类型和运算符及表达式复习题
数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768 b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是()a) 1.2E b) .579899 c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0 d) 1.3E10. 以下合法的八进制数是()a) 0135 b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019 b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5) d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为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)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式cb a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c 20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式zy x ⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z 21. 不能正确表示代数式d c ba ⋅⋅的C 语言表达式是( )a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( )a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( )a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n ”,y);printf(“y=%+06d\n ”,y);}程序运行的结果是:( )a) y= 1111 b) y= 1111 c) y=1111 d) y= 1111y=001111 y=+01111 y=+01111 y=111126. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n ”,y);printf(“*y=%-7o*\n ”,y);printf(“*y=%07o*\n ”,y);}程序运行的结果是:( )a) *y= 710* b) *y= 456**y=710 * *y=456 **y=0000710* *y=0000456*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.667000* b) *3.667000** 3.67* *3.667 ** 4* *4.000000*c) *3.667* d) *3.667000**3.667000* *3.67**3.667000* *4.000000*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1 c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768 d) b=-139.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是______.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是______.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_____.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是_______.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为______.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是___,变量x的值是___,变量y的值是____.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是_____,变量y的值是_______。
C程序设计数据类型运算符表达式学习记录主要知识点记录期末易考知识点期末考试题整理
第三章数据类型、运算符与表达式3.1 c 的数据类型第三章数据类型、运算符与表达式3.1 c 的数据类型字符型「基本类型V实型(浮点型) I 枚举类型『数组类型构造类型{结构体类型I 共用体类型指针类型 (空类型3. 2常量与变量 3. 2. 1常量和符号常量在程序运行过程中,其值不能被改变的量称为常量。
常量区分为不同的类型如 12、0、-3为整型常量,4.6、-1.23为实型常量,‘ a ' ‘ d '为字符常量。
1•符号常量的定义与使用 先定义后使用 2•符号常量名要大写单精度型 双精度型数据类型<32.2变量其值可以改变的量称为变量。
一个变量应该有一个名字,在内存中占据一定的存储单元1•标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符(identifier)简单地说,标识符就是一个名字。
2. C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
下面列出的是合法的标识符,也是合法的变量名:sum,average,_total,Class, day, month,Student_name,tan, lotus_1_2_3,BASICh_ng3•变量必须先定义后使用4•定义格式为:数据类型变量名1,变量名2 , ••…,变量名n;3. 3整型数据3. 3. 1整型常量的表示方法,C整常数可用以下三种形式表示:1、十进制整数。
女口123,一456, 0。
2、八进制整数。
以0开头的数是八进制数。
如0123表示八进制数123,即(等于十进制数8 3。
-011表示八进制数--11,即十进制数-9。
3、十六进制整数。
以Ox开头的数是十六进制数。
如0x123,代表十六进制数12 3,即1X16 4 2X16+3=2 5 6+3 2+3=2 91。
-0X12 等于十进制数-18。
3. 3. 2整型变量1.整型数据在内存中的存放形式数据在内存中是以二进制形式存放的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768 b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是()a) 1.2E b) .579899 c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0 d) 1.3E10. 以下合法的八进制数是()a) 0135 b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019 b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5) d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为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)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z21. 不能正确表示代数式d c b a ⋅⋅的C 语言表达式是( ) a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a) y= 1111 b) y= 1111 c) y=1111 d) y= 1111y=001111 y=+01111 y=+01111 y=1111 26. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a) *y= 710* b) *y= 456**y=710 * *y=456 **y=0000710* *y=0000456*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.667000* b) *3.667000** 3.67* *3.667 ** 4* *4.000000*c) *3.667* d) *3.667000**3.667000* *3.67**3.667000* *4.000000*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1 c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768 d) b=-1 39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是______.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是______.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_____.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是_______.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为______.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是___,变量x的值是___,变量y的值是____.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是_____,变量y的值是_______。
8. 若已有定义语句:int k=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是_____,变量k的值是_____,变量j的值是______.9.已有定义:int x,y;,执行以下语句后的输出结果是______.x=11/3; y=5; printf(“%%d,%%%d\n”,x,y);10. 已有定义:int y;,执行以下语句后的输出结果是______.y=26; printf(“%d,%#o,%#x”,y,y,y);11. 执行以下语句后的输出结果是_____.printf(“7/8=%d”,7/8); printf(“%%%d”,7%2);12. 以下程序的运行结果是_______.main(){ float a;int b;b=a=24.5/5;printf(“%f,%d”,a,b);}13. 以下程序的运行结果是_______.main(){ float a;int b;a=b=24.5/5;printf(“%f,%d”,a,b);}14. 以下程序的运行结果是_______.#include <stdio.h>main(){ int a=252;printf(“a=%-5o**a=%x\n”,a,a);printf(“a=%#o**a=%#x\n”,a,a);}15. 若有定义:int t1; double t2;,执行下列语句后,t1的值是_______。