数据类型及表达式练习题
更新时间:2024-04-03 21:10: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; }
一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=~操作。
正在阅读:
数据类型及表达式练习题04-03
抽象名词具体化用法小结09-17
桐华经典语录语句02-10
介绍金鱼的作文300字07-06
中国文化概论试题及答案20120520007-01
阳台菜园经济项目03-24
家具类文案03-21
区街道城管办2022年上半年四区五路综合整治工作计划08-02
奖惩作业管理办法07-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 练习题
- 表达式
- 类型
- 数据
- 战略管理期末考试试卷A卷
- 模糊控制习题
- 高中生导师工作手册
- 财税24号 注释
- 学校创卫病媒生物防治工作要求
- 《金融计量学》习题2答案
- 党员代表大会组织工作流程
- 文学素养专题训练(一)
- 江西省上高二中2011-2012学年高二下学期第一次月考(语文)
- 物流系统分析与设计实验 - 图文
- 不合格品处理标准程序
- 第十二章 存款类金融机构
- 中班主题活动一:玩具总动员 - 图文
- 2014电大《犯罪学》期末复习题及答案二
- 2016-2022年中国杜瓦瓶市场监测及投资前景研究报告 - 图文
- 江苏省句容市后白中学七年级数学下册《7.1.2 三角形的高、中线与
- 气液两相流的分离
- 西顿野生动物故事集 2
- 中国海外医疗中介服务市场研究报告
- 汉滨区机关和事业单位差旅费管理办法