数据类型及表达式练习题
更新时间:2024-01-18 04:17:01 阅读量: 教育文库 文档下载
数据类型及表达式习题
1. 选择题
1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 x=(i=4,j=16,k=32) A) 4 B) 16
C) 32
D) 52
2. 下列四组选项中,均不是C语言关键字的选项是( ) A) define
IF
type
B) getc char printf C) include case scanf D) while go pow
3.下列四组选项中,均是不合法的用户标识符的选项是( A) W P_0 do B) b-a goto int C) float la0
_A D) -123 abc TEMP
4. 下列四组选项中,均是合法转义字符的选项是( )
)
A) ‘\\”’ ‘\\\\’ ‘\\n’
B) ‘\\’ ‘\\017’ ‘\\”’ C) ‘\\018’ ‘\\f’
‘xab’
D) ‘\\\\0’ ‘\\101’ ‘xlf’
5. 下面正确的字符常量是( ) A) “c” B) ‘\\’’
6. 以下叙述不正确的是( )
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程序中,无论是整数还是实数,都能被准确无误地表示
C) ‘’ D) ‘K’
8. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为( ) A) D
9. sizeof(float)是( )
A) 一个双精度型表达式 B) 一个整型表达式 C) 一种函数表达式 D) 一个不合法的表达式
10.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为( )
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647
11.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为( )
A) float B) char C) int D) double
12.设以下变量均为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的值分别是()
B) 68 C) 不确定的值 D) 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 = 10 C、a = 9, b = 10, c = 9 D、a = 1, b = 11, c = 10
14、若有以下定义,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.5
16.若有以下定义和语句 char c1='b',c2='e';
printf(\则输出结果是( ) A)2,M C)2, E 定
17.设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)
运算后,n的值为( ) A) 0
B) 1
C) 2
D) 3
B)3,E
D)输出项与对应的格式控制不一致,输出结果不确
2. 填空题
1. 若有以下定义,则计算表达式y+=y-=m*=y后的y值是__2y-m*y___
2. 在C语言中,一个short型数据在内存中占2个字节,则 short型数据的取值范围为___(-32768-32767)__
3. 若s是int型变量,且s=6,则下面表达式的值为__1__
4. 若a是int型变量,则下面表达式的值为_46___ (a=4*5,a*2),a+6
s%2+(s+1)%2
5. 若x和a均是int型变量,则计算表达式(1)后的x值为 12__,计算表达式(2)后的x 值为_4__ (1) x=(a=4,6*2)
(2) x=a=4,6*2
6. 若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;则下面表达式的值为__1__
(x+y)%2+(int)a/(int)b
10. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为____f____.
11.看下列程序,请填空: #include
int main(void) {
static int b; int sum = 0; a++; b++;
printf(“a = %d b = %d\\n”, a, b);
return 0;
}
a的值为:____1___,b的值为____1___
12.看下列程序,请填空: #include
printf(“a = %d b = %d\\n”, a, b); return 0;
}
程序会输出:___18 8__________________
3. c面试题
1. 关键字static的作用是什么?
2. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
3. 局部变量能否和全局变量重名?
4.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
5.程序的内存分配方式?
6.位运算实现指定位清零/写入操作?
4. c面试题答案
1. 关键字static的作用:
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。
2. 全局变量和局部变量的区别:
答 :全局变量储存在静态数据区有初始值为0,局部变量在堆栈中没有初始值。
3. 局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内
4.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答 :可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
5. 程序的内存分配方式?
答:一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序
结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
4、文字常量区—常量字符串就是放在这里的。程序结束后由系统释放。
5、程序代码区—存放函数体的二进制代码 6. 例子程序 #include
char s*+=”abc”; //栈 char *p2; //栈
char *p3=”123456″; //123456\\0在常量区,p3在栈上。 static int c=0; //全局(静态)初始化区
p1 = (char*)malloc(10);
p2 = (char*)malloc(20); //分配得来得10和20字节的区域就在堆区。 strcpy(p1,”123456″); //123456\\0放在常量区,编译器可能会将它与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; }
一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=~操作。
正在阅读:
数据类型及表达式练习题01-18
同仁门诊部策划书05-20
火电厂一次侧设计05-31
县法院副院长2022年个人述职报告范文03-23
业务员年度工作总结(15篇)03-26
堕落的少女走上刑场004-12
电信促销活动方案(5篇)08-22
场平资料基本表12-14
电子技术期末复习题01-24
龙教信息技术第六册第一课认识新朋友10-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 练习题
- 表达式
- 类型
- 数据
- 文学素养专题训练(一)
- 2010北京中考模拟力学综合题汇总 - 图文
- 护校安园实施方案11
- 2013年全国名校中考物理模拟试卷分类汇编--欧姆定律
- 选聘物业服务企业公告范文本
- 第十五课 人的全面发展与个性自由电子教案
- 论司法腐败的危害,成因及对策
- 党员代表大会组织工作流程
- 某星级宾馆建筑给排水毕业设计 - 图文
- 翻译原稿 - 图文
- 财务分析习题
- 2001年LA医师上岗证考试试题及参考答案要点
- 高中生导师工作手册
- 市政府本级行政规范性文件清理意见反馈表
- 05-第五章 统计指数
- 全民健身运动会开幕式主持词
- 战略管理期末考试试卷A卷
- 1电气主接线及所用高压接线设计1 - 图文
- 战略咨询推荐书单-单其武
- 山东省青岛市2018届高三统一质量监测英语试题 Word版含答案