C语言数据类型与表达式习题及答案
- 格式:pdf
- 大小:131.42 KB
- 文档页数:4
C语言_分章节练习_带答案_第二章_数据类型[单选题]1.C 语言中(以16 位PC 机为例),各数据类型的存储空间长度的排列顺序为。
A)char<int<long<=float<doubleB)char=int<long<=float<doubleC)char<int<long=float=doubleD)char=int=long<=float<double答案:A解析:2.若x、i、j 和k 都是int 型变量,则计算下面表达式后,x 的值为。
x=(i=4,j=16,k=32)A)4B)16C)32D)52答案:C解析:3.假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b) 的值是。
A)7B)8C)5D)2答案:B解析:4.语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。
A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中的任一种字符答案:C解析:5.下面正确的字符常量是。
A)"c"B)'\\''C)'W'D)""答案:C解析:6.下面不正确的字符串常量是。
A)'abc'B)"12'12"C)"0"D)" "答案:A解析:7.若有代数式3ae/bc,则不正确的C 语言表达式是。
A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3答案:C解析:8.已知各变量的类型说明如下,则不符合C 语言语法规定的表达式是。
int k,a,b;unsigned long w=5;double x=1.42;A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)答案:A解析:9.已知各变量说明如下,则符合C 语言语法规定的表达式是。
数据类型、运算符与表达式练习题课堂答案运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是(A)。
A.”a” B. {ABC} C. ?abc\0? D. ?a?2.下列数据中属于“字符串常量”的是(B )。
A.ABC B. “ABC” C. ?abc? D. ?a?3. 在PC机中,?\n?在内存占用的字节数是(A)。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff” 在内存占用的字节数是(C )。
A. 5B. 6C. 3D. 45.字符串”\”ABCD\””在内存占用的字节数是(C )。
A. 4B. 6C. 7D. 86. 在C语言中,合法的长整型常数是(AB )。
A. 0LB. 49627C. 0.054838743D. 2.1869e107.在C语言中,合法的短整型常数是(D )。
A. OLC. 40000D. 0x2a8.下列数据中不属于“字符常量”的是(D )。
A. …a?B. …\n?C. …\t?D. “a”9.char型常量在内存中存放的是(A)。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是(A )。
A. 1B. 0C. -1D. 出错11.在以下一组运算符中,优先级最高的运算符是(C )。
A. <=B. =C. %D. &&12.设整型变量i的值为3,则计算表达式i--表达式的值为(B )。
A. 0B. 3C. 2D. 表达式出错13.设整型变量i,j=3; 则计算表达式i=j++后i,j的值为(A )。
B. 6,6C. 4,6D. 6,415.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是(B )。
A. 3,3B. 5,4C. 4,5D. 6,616.sizeof(double)的结果值是( A )。
知识点一数据类型运算符及表达式模拟练习(答案版)模拟练习一(数据类型、运算符及表达式)基础知识及数据类型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语言程序中的变量,()是正确的。
C语⾔程序设计第2章数据类型与运算练习题及解答第2章数据类型和运算符习题及解答⼀.选择题。
1.下列是⽤户⾃定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语⾔规定⽤户标识符由英⽂字母、数字和下划线组成,且第⼀个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语⾔不允许⽤户将关键字作为标识符,⽽选项C)选项项中的int 是C语⾔的关键字。
语⾔中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语⾔的数据类型。
在C语⾔中,没有专门的逻辑型数据类型,可以⽤0和1来表⽰逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表⽰只给前⾯的3个成员赋值,后7个元素的值为0,所以,⼀共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表⽰时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含⼀个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第⼀个是错的,因为C语⾔规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进⽽可分解为两个表达式:b=c+2和a=b。
6.下列可⽤于C语⾔⽤户标识符的⼀组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语⾔规定标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符必须为字母或下划线,排除选项C)和D)。
实验一数据类型和表达式一.实验目的1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间转换的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学式子的表达式表示。
5.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二.实验内容与算法解析1.编程计算下面算术表达式的值,手工计算检测。
(1) x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5, y=2.52.下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到什么类型?表达式计算的结果是什么?试编程进行验证。
(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12(3) 10/(int)(5.1+3)) (4) 2*10.0/(5*3)3.运行下面程序分析结果:main(){int a,b,c;a=9;b=5;c=24;printf("%d",a%c/b);}4.输入并运行下面程序,对照程序分析运行结果:程序如下:#include <stdio.h>main( ){ int a,b;long d;unsigned e;char c;a=100;c='W';b=-100;d=50000;e=8766;printf("a=%d,b=%d,c=%c,d=%ld,e=%u\n",a,b,c,d,e);}并修改程序测试:1)将a=100;换成a=42569;,会得到什么结果,为什么?2)将b=-100;换成b=c;,会得到什么结果,为什么?3)将e=8766; 换成e=-10;,会得到什么结果,为什么?5.写出程序运行结果,并上机进行验证,并分析原因。
C语言基本数据类型及运算题库有答案第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。
A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。
A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。
A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。
A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。
A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。
A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。
A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。
A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。
A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。
第1章C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. 回车符B. 冒号C. 逗号D. 分号(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。
A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 37 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前 8 位有效。
(7) 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___。