资源描述:
《c语言第2章 数据类型、运算符与表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章数据类型、运算符与表达式2.1请将C语言的数据类型和其他高级语言的数据类型做比较。C有哪些特点?答:C语言的数据类型如下所示:数据类型基本类型构造类型指针类型空类型整型字符型枚举类型实型数组类型结构体类型共同体类型和其他高级语言数据类型相比,C语言有数据类型丰富,执行效率高等特点。2.2C语言为什么要规定对所有用到的变量要“先定义,后使用”。这样做有什么好处?答: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-232769int型(16位)long型(32位)short型(16位)signedchar型(8位)unsignedint型unsignedlong型unsignedshort型unsignedchar型答:略2.5字符常量与字符串常量有什么区别?答:字符常量在内存中占一个字节(byte),而字符串可占多个;字符常量表示时要用单引号引起来并且只能是一个字符
4、,字符串常量要用双引号,里面可有多个字符,并且存储时自动在字符串后面加一个结束标志 。2.6写出以下程序运行的结果。main(){charc1='a',c2='b',c3='c',c4='101',c5='116';printf("a%cb%ctc%ctabc",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%cb%c是对应下图第5个字符,即第二个b,这时执行t,光标应该从第6个格跳到第9个格,而不是从b开始往后数8个字符位置,因为计算tab位是从上一tab位置开始计算,这里前面不足8个字符,所以是从第一个a数起的,往后8个字符位置,然后在第9个位置重新计算tab
6、位。第1个TAB位第二个TAB位置aabbccabcAN先输出一个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’,并输出。#incl
7、ude”stdio.h”main(){charc1=’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(){intc1,c2;/*原为charc1,c2*/c1=97;c2=98;printf(“%c%c”,c1,c2);printf(“%d%d”,c1,c2);}分析运行时会显示什么信息?为什么?答:可以。因为字符型变量占一个字节,所
8、以在一个字节范围内(整数要小于等于255),整型数和字符型是通用的。题目中的两个变量均小于255,所以题目中的改正是可以的。运行时输出两行,分别以字符型和整形输出c