收藏 分享(赏)

C语言第2章 数据类型、运算符与表达式.doc

上传人:fmgc7290 文档编号:6281718 上传时间:2019-04-04 格式:DOC 页数:5 大小:87KB
下载 相关 举报
C语言第2章 数据类型、运算符与表达式.doc_第1页
第1页 / 共5页
C语言第2章 数据类型、运算符与表达式.doc_第2页
第2页 / 共5页
C语言第2章 数据类型、运算符与表达式.doc_第3页
第3页 / 共5页
C语言第2章 数据类型、运算符与表达式.doc_第4页
第4页 / 共5页
C语言第2章 数据类型、运算符与表达式.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、第 2 章 数据类型、运算符与表达式2.1 请将 C 语言的数据类型和其他高级语言的数据类型做比较。C 有哪些特点?答:C 语言的数据类型如下所示:数据类型基本类型构造类型指针类型空类型整型字符型枚举类型实型数组类型结构体类型共同体类型和其他高级语言数据类型相比,C 语言有数据类型丰富,执行效率高等特点。2.2 C 语言为什么要规定对所有用到的变量要“先定义,后使用” 。这样做有什么好处?答:1凡未被事先定义的,不作为变量名,这样能保证程序中变量名使用正确; 2每一个变量被指定一确定数据类型,在编译时就能为其分配相应的存储单元; 3指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进

2、行的运算是否合法;2.3 请将下面各数用八进制和十六进制数(补码)表示。(1)10 ( 2)32 (3)75 (4)-617 (5)-111 (6)2483 (7)-28654 (8) 21003答:(1) (10) 10=(12) 8=( a) 16(2) (32) 10=(40) 8=( 20) 16(3) (75) 10=(113) 8=( 4b) 16(4) (-617 ) 10=(176627) 8=(fd97) 16(5) (-111 ) 10=(177621) 8=(ff91) 16(6) (2483) 10=(4663) 8=(963) 16(7) (-28654) 10=(1

3、10022) 8=(9012) 16(8) (21003) 10=(51013) 8=(520b) 162.4 将以下 3 个整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。变量的类型 25 -2 32769int 型(16 位)long 型(32 位)short 型(16 位)signed char 型(8位)unsigned int 型unsigned long 型unsigned short 型unsigned char 型答:略2.5 字符常量与字符串常量有什么区别?答:字符常量在内存中占一个字节(byte) ,而字符串可占多个;字符常量表示时要用单引号引起来并且只能是

4、一个字符,字符串常量要用双引号,里面可有多个字符,并且存储时自动在字符串后面加一个结束标志0。2.6 写出以下程序运行的结果。main() char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctc%ctabcn“,c1,c2,c3);printf(“tb%c %c“,c4,c5);结果应该如下:aa 空格 bb 空格空格空格 cc 空格空格空格空格空格空格 abc空格空格空格空格空格空格空格 A 空格 N即:分析:printf 函数中的格式化字符串包含三部分内容,一种是普通字符,一种是以%为标志的格式说明符,一种是以为标志的转义字符。题目中的转义字

5、符 t 的意思是水平制表(跳到下一个 tab 位置) ,通常我们的机器一个 tab 位置占 8 个字符位置。b 的意思是退格。c4=101和 c5 这两个变量,表示 ASCII 码所对应的字符,分别是 A 和 N。分析结果:第一个输出函数输出到这里时:a%c b%c 是对应下图第 5 个字符,即第二个 b,这时执行t,光标应该从第 6 个格跳到第 9 个格,而不是从 b 开始往后数 8 个字符位置,因为计算 tab 位是从上一 tab 位置开始计算,这里前面不足 8 个字符,所以是从第一个 a 数起的,往后 8 个字符位置,然后在第 9 个位置重新计算 tab 位。第 1 个 TAB 位 第二

6、个 TAB 位置a a b b c c a b cA N先输出一个 tab 位置,光标跳到第 9 个格,遇到b ,再往回跳一个格,所以 A 在第 8 个格里。2.7 要将“China”译成密码,密码规律是:用原来的字母后面第 4 个字母代替原来的字母。例如,字母”A”后面第 4 个字母是“E” ,用“E”代替“A ”。因此,China 应译为“Glmre”。请编一程序,用赋初值的方法使 c1、c2 、c3、c4、c5 五个变量的值分别为C 、h、 i、 n、 a,经过运算,使 c1、c2、c3、c4、c5 分别变成G 、 l、 m、r、 e,并输出。#include”stdio.h”main(

7、)char c1=C,c2=h,c3=i,c4=n,c5=a;c1+=4; c2+=4;c3+=4;c4+=4;c5+=4;printf(“keywords=%c%c%c%c%c”,c1,c2,c3,c4,c5);2.8 例 2.6 能否改成如下:main()int c1,c2; /*原为 char c1,c2*/c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d %dn”,c1,c2);分析运行时会显示什么信息?为什么?答:可以。因为字符型变量占一个字节,所以在一个字节范围内(整数要小于等于255) ,整型数和字符型是通用的。题目中的两个变量均小于 25

8、5,所以题目中的改正是可以的。运行时输出两行,分别以字符型和整形输出 c1 c2。结果如下图所示:2.9 求下面算术表达式的值。(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.5首先按优先级和结合性将表达式含义弄清楚。(1)x+a%3*(int)(x+y)%2/4= x+(a%3)*(int)(x+y)%2/4=2.5+1*9%2/4=2.5(2)(float)(a+b)/2+(int)x%(int)y=(float)(a+b)/2+(int)

9、x)%(int)y)=2.5+3%2=3.52.10 写出程序运行结果。main()int i,j,m,n;i=8 ;j=10 ;m=+i ;n=j+ ;printf(“%d,%d,%d,%d”,i,j,m,n);答:运行结果如下图所示:2.11 写出下面赋值的结果。格中写了数值的是要将它赋给其他类型变量,将所有空格填上赋值后的数值。int 99 42char d unsigned int 76 65535float 53.65long int 68答:int 99 100 76 53 68 42 -1char c d L 5 D * unsigned int99 100 76 53 68 4

10、2 65535float 99.000000 100.000000 76.000000 53.65 68.000000 42.000000 65535.000000long int 99 100 76 53 68 42 655352.12 写出下面表达式运算后 a 的值,设原来 a=12。设 a 和 n 已定义为整型变量。(1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n 的值等于 5 (6)a+=a-=a*=a解:(1) a+=a 即 a=a+a 结果为 24(2) a-=a 即 a=a-a 结果为 0(3) a*=a+3 先计算 2+3,值为 5,此时原表达式相当于 a=a*5 结果为 60(4) a/=a+a 先计算 a+a,值为 24,此时原表达式相当于 a=a/24,两个整形数相除,结果为 0(5) a%=(n%=2) 赋值符号结合性是从右向左,先计算 n%=2,值为 1,此时原表达式相当于 a=a%1,结果为 0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报