数据类型及表达式练习题

上传人:dus****log 文档编号:63487259 上传时间:2022-03-19 格式:DOCX 页数:11 大小:17.41KB
收藏 版权申诉 举报 下载
数据类型及表达式练习题_第1页
第1页 / 共11页
数据类型及表达式练习题_第2页
第2页 / 共11页
数据类型及表达式练习题_第3页
第3页 / 共11页
资源描述:

《数据类型及表达式练习题》由会员分享,可在线阅读,更多相关《数据类型及表达式练习题(11页珍藏版)》请在装配图网上搜索。

1、数据类型及表达式习题1. 选择题1 假设x、i、j、k都是int型变量,那么计算下面表达式后,x的值为 x=(i=4,j=16,k=32)A) 4B) 16C) 32D) 522 以下四组选项中,均不是C语言关键字的选项是( )A) define IF typeB) getc char printfC) includecasescanfD) whilegopow3以下四组选项中,均是不合法的用户标识符的选项是( )A) W P_0 doB) b-a goto intC) floatla0_AD) -123 abcTEMP4 以下四组选项中,均是合法转义字符的选项是( )A) nB) 017 C

2、) 018fxabD) 0101 xlf5 下面正确的字符常量是( )A) “cB) C) D) K6 以下表达不正确的选项是( )A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 假设a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7 以下表达正确的选项是( )A) 在C程序中,每行只能写一条语句B) 假设a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,

3、无论是整数还是实数,都能被准确无误地表示8 字母A的ASCII码为十进制数65,且c2为字符型,那么执行语句c2A+6-3后,c2中的值为( )A) DB) 68 C) 不确定的值 D) C9 sizeof(float)是( )A) 一个双精度型表达式 B) 一个整型表达式C) 一种函数表达式 D) 一个不合法的表达式10设C语言中,一个int型数据在内存中占2个字节,那么unsigned int 型数据的取值范围为( )A) 0255 B) 032767 C) 065535 D) 0214748364711设有说明:char w; int x; float y; double z;那么表达式

4、w*x+z-y值的数据类型为( )A) float B) char C) int D) double12设以下变量均为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) (y=6,y+1,x=y,x+1)13、如下所示,执行以下程序段后,变量a,b,c的值分别是 int x =10, y = 9;int a, b, c;a = (-x = y+)? -x : +y; b = x+; c = y; A、a = 9, b = 9, c = 9 B、a = 8, b = 8, c = 1

5、0 C、a = 9, b = 10, c = 9 D、a = 1, b = 11, c = 1014、假设有以下定义,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) 15.假设已定义x是int和y为double类型,那么表达式:x=1,y=x+3/2的值是( )A)1 B)2 C)2.0 D)2.516.假设有以下定义和语句 char c1=b,c2=e; printf(%d,%cn,c2-c1,c2-a+A); 那么输出结果是(

6、 )A)2,MB)3,E C)2, E D)输出项与对应的格式控制不一致,输出结果不确定17.设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,那么逻辑表达式 (m=ab)&(n=cd)运算后,n的值为( )A) 0B) 1 C) 2 D) 32. 填空题1 假设有以下定义,那么计算表达式y+=y-=m*=y后的y值是_2y-m*y_2. 在C语言中,一个short型数据在内存中占2个字节,那么 short型数据的取值范围为_(-32768-32767)_ 3 假设s是int型变量,且s6,那么下面表达式的值为_1_ s%2+(s+1)%24.

7、假设a是int型变量,那么下面表达式的值为_46_ (a=4*5,a*2),a+65 假设x和a均是int型变量,那么计算表达式1后的x值为 12_,计算表达式2后的x 值为_4_ (1) x=(a=4,6*2)(2) x=a=4,6*26. 假设a是int型变量,那么计算下面表达式后a的值为_2_ a=25/3%3 7 假设x和n均是int型变量,且x和n的初值均为5,那么计算表达式后x的值为_10_ ,n的值_5_。X += n+; 8. 假设有定义:char c=010;那么变量c中包含的字符个数为 _3_9 假设有定义:int x=3,y=2;float a=2.5,b=3.5;那么下

8、面表达式的值为_1_ (x+y)%2+(int)a/(int)b10. 字母a的ASCII码为十进制数97,且设ch为字符型变量,那么表达式ch=a+8-3的值为_f_.11.看以下程序,请填空:#include int a;int main(void)static int b; int sum = 0;a+;b+; printf(“a = %d b = %dn, a, b);return 0;a的值为:_1_,b的值为_1_12.看以下程序,请填空:#include int main(void)int a = 5;int b = 5;b = a+ + +a + a+;printf(“a =

9、%d b = %dn, a, b);return 0;程序会输出:_18 8_3. c面试题1. 关键字static的作用是什么?2. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?3. 局部变量能否和全局变量重名?4.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?5.程序的内存分配方式?6.位运算实现指定位清零/写入操作?4. c面试题答案1. 关键字static的作用:这个简单的问题很少有人能答复完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内但在函数体外,一个被声

10、明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。大多数应试者能正确答复第一局部,一局部能正确答复第二局部,同是很少的人能懂得第三局部。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。2. 全局变量和局部变量的区别:答 :全局变量储存在静态数据区有初始值为0,局部变量在堆栈中没有初始值。3. 局部变量能否和全局变量重名?答:能,局部会屏蔽全局。局部变量可以与全局变量同名,在函数内引用这个变量时,会

11、用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比方在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内4.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答 :可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错5. 程序的内存分配方式?答:一个由c/C+编译的程序占用的内存分为以下几个局部1、栈区stack由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈

12、。2、堆区heap一般由程序员分配释放,假设程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区静态区static全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。4、文字常量区常量字符串就是放在这里的。程序结束后由系统释放。5、程序代码区存放函数体的二进制代码6. 例子程序#include #include #include int a=0; /全局初始化区char *p1; /全局未初始化区main()intb;栈char s=ab

13、c; /栈char *p2; /栈char *p3=123456; /1234560在常量区,p3在栈上。static int c=0; /全局静态初始化区p1 = (char*)malloc(10);p2 = (char*)malloc(20); /分配得来得10和20字节的区域就在堆区。strcpy(p1,123456); /1234560放在常量区,编译器可能会将它与p3所向123456优化成一个地方。6.位运算实现指定位清零/写入操作?答: 嵌入式系统总是要用户对变量或存放器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个去除a 的bit 3。在以上两个操作中,要保持其它位不变。对这个问题有以下根本的反响1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。2) 用 #defines 和 bit masks 操作。这是一个有极高可移植性的方法,是应该被用到的方法。最正确的解决方案如下:#define BIT3 (0x1 3)static int a;void set_bit3(void)a |= BIT3;void clear_bit3(void)a &= BIT3;一些人喜欢为设置和去除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=操作。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!