C语言实验一:数据类型,运算符和表达式
- 格式:doc
- 大小:262.50 KB
- 文档页数:9
数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
实验一数据类型和表达式一.实验目的1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间转换的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学式子的表达式表示。
5.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二.实验内容与算法解析1.编程计算下面算术表达式的值,手工计算检测。
(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.52.下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到什么类型?表达式计算的结果是什么?试编程进行验证。
(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12(3) 10/(int)(5.1+3)) (4) 2*10.0/(5*3)3.运行下面程序分析结果:main(){int a,b,c;a=9;b=5;c=24;printf("%d",a%c/b);}4.输入并运行下面程序,对照程序分析运行结果:程序如下:#include <stdio.h>main( ){ int a,b;long d;unsigned e;char c;a=100;c='W';b=-100;d=50000;e=8766;printf("a=%d,b=%d,c=%c,d=%ld,e=%u\n",a,b,c,d,e);}并修改程序测试:1)将a=100;换成a=42569;,会得到什么结果,为什么?2)将b=-100;换成b=c;,会得到什么结果,为什么?3)将e=8766; 换成e=-10;,会得到什么结果,为什么?5.写出程序运行结果,并上机进行验证,并分析原因。
《C语言程序设计》实验报告(实验1-12)《C语言程序设计》实验报告20XX~20XX学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 一、实验目的:1.了解在Visual C++ 环境下如何xx、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C 源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 环境下输入并运行下面的程序:#include int main( ) {printf("This is a C program.\\n"); return 0; }2. 在Visual C++ 环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include int main( ) {int a,b,sum a=3; b=4; sun=a+b;print(“%d+%d=%d\\n”,a,b,sum); return 0; }四、实验结果:1. 运行结果(或截图):This is a C program.Press any key to continue- 1 -2. (1) 改正后的源程序:#include int main( ) {int a,b,sum; a=3; b=4; sum=a+b;printf(\ return 0; }(2) 运行结果(或截图):3+4=7五、思考题:1. 一个C程序上机的步骤有哪些?答:上级输入与xx源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。
2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:一个函数包括两部分:分别为函数头或函数首部和函数体。
成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
中山大学南方学院电子通信与软件工程系课程名称:高级语言程序设计实践实验题目:运算符和表达式附:实验报告专业:年级:完成日期:学号:姓名:成绩:一、实验目的1、能够使用C语言进行简单的算术运算、关系运算和逻辑运算。
2、掌握不同的类型数据之间赋值的规律。
3、进一步熟悉C语言程序的编辑、编译和运行的过程。
二、实验原理1、用int定义整型变量来存放整数;2、用float定义浮点数变量来存放小数;3、使用scanf() 函数从键盘输入两个整型数据,并赋值给两个变量。
三、实验过程1、算术运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int a=2, b=3;float x=3. 9, y=2. 3;float result;result=(float) (a+b) /2+(int) x%(int) y;return result}输出结果如图:2、算术运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int number;int a1, a2, a3;printf("请输入一个三位数:");scanf("%d", &number) ;a1=number%10;number=number/10;a2=number%10;a3=number/10;printf("三位数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",number,a1, a2, a3) ;return 0;}输出结果如图:3、关系运算与逻辑运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int x;printf("输入x的值:") ;scanf("%d", &x) ;printf("表达式(x>0)的值:%d\n", x>0) ;printf("表达式(x>=-20&&x<=-10)的值:%d\n", x>=-20&&x<=-10) ;printf("表达式(x>=100||x<10)的值:%d\n", x>=-20&&x<=-10) ;printf("表达式(x>20&&x%3==0的值:%d\n", x>20&&x%3==0) ;if(x%5==0&&x%3==0)printf("yes\n") ;elseprintf ("no\n") ;return 0;}输出结果如图:4、综合任务实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int grad1, grad2;scanf("%d%d", &grad1, &grad2) ;printf("表达式(grad1>=0&&grad1<=100)值:%d\n",grad1>=0&&grad1<=100);printf("表达式(grad2>=0&&grad2<=100)值:%d\n",grad2>=0&&grad2<=100);printf("%d", grad1>grad2? grad1:grad2) ;return 0;}输出结果如图:四、思考并回答以下问题1、举例说明逻辑运算符的短路特性。
实训实训名称:数据类型、运算符和表达式实训目的:1.掌握c语言的整型、实型、字符型等各种数据类型的分类、定义及初始化方法。
2.掌握不同类型数据之间的赋值的规律。
3.掌握c语言常见运算符的运算规则、优先级和结合性以及表达式的求值规则。
4.进一步熟悉c程序的编辑、编译、连接和运行的过程。
实训内容: 1.阅读程序,分析运行结果,并上机观察实际运行情况。
1>#include “stdio.h”void main(){int i=0.10,j=10,k=0x10;printf(“%d,%d,%d\n”,i,j,k);}2) #include ”stdio.h”void main(){int k,j,m,n;k=8;j=10;M=++k;N=j++;Printf(”\n%d,%d,%d,%d”,k,j,m,n);}注意:m=++i;与m=i++;有什么区别?3) #include “stdio.h”void main(){ int a=9;a+=a-=a+a;printf(“%d\n”,a);}注意:包含复合的赋值运算符的赋值表达式a+=a-=a+a;的求解步骤。
4)#include “stdio.h”Void main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’116’; printf(“a%cb%c\tc%c\tabc\n’,c1,c2,c3);printf(“\t\b%c%c”,c4,c5);}注意:Printf(“a%cb%c\tc%c\tabc\n’,c1,c2,c3);输出的结果。
5)include <stdio.h>void main(){int x=10,y=3,z;printf(“%d\n”,z=(x%y,x/y));}6)#include <stdio.h>void main(){char c1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(%d%d\n”,c1,c2);}注意:char c1,c2;可否改成int c1,c2;2.编写程序,实现输入三个双精度实数,分别求出它们的和、平均值、平方和。
上级实验参考答案#include "stdio.h"#include"math.h"int main(){ int i;double a, b;for(i=0;i<=100000;++i){a=sqrt(i+100);b=sqrt(i+168);if((int)a==ceil(a)&&(int)b==ceil(b))printf("%d\n",i);}}实验2 基本数据类型、运算和表达式一、实验目的1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。
2)掌握不同的类型数据之间赋值的规。
3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运算符的使用。
4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。
二、实验内容1. 变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。
void main(){int a, b; /*定义整型变量a 和b*/int i, j; /*定义实型变量i 和j */a=5;b=6;i=3.14;j=i*a*b;printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j);}[具体操作步骤]1)将代码补充完整;2)在TC 或VC++上运行通过;3)在JudgeOnline 实验系统上提交;2. 赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:void main(){ float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf("%f,%d,%d,%c,%c", a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。
c语⾔-数据类型、运算符与表达式⼀、数据类型1、概念(1)标识符1.定义:⽤来标记常量、变量、函数及⽂件名字的字符序列。
2.构成规则:只能由数字、字母、下划线三部分组成,且不能以数字开头,并且严格区别⼤⼩写,不能定义为系统中存在的关键字。
(2)关键字c语⾔中具有特定含义、专门⽤作语⾔特定成分的⼀类标识符注:在C语⾔中,所有的关键字都有固定的意义,不能⽤作其它,且所有的关键字都必须⼩写(3)c的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)(4)常量和变量1. 常量【1】常量:在程序运⾏过程中,其值不能被改变的量 常量区分为不同类型(表⽰形式),如:12、1.0、‘a’【2】符号常量:⽤⼀个标识符代表的⼀个常量定义⽅法:#define 标识符常量#define PRICE 30#include <stdio.h>void main(){int num,total;num = 10;total = num * PRICE;printf("total = %d",total);}2. 变量【1】变量:其值是可以改变的量,它⽤标识符(变量名)来表⽰,在内存中占据⼀定的存储单元变量的定义⽅法:类型符标识符注意事项:<1>见名知意 <2>先定义后使⽤ <3>习惯上,符号常量名⽤⼤写,变量名⽤⼩写,以⽰区别【2】变量赋初值变量先定义,后使⽤,⼀般放在函数开头变量初始化:可以在定义时赋初值2、整型数据(1)整型常量1. 各种进制的整数表⽰⽅法⼗进制整数:由数字0~9和正负号表⽰. 如 123,-456,0⼋进制整数:由数字0开头,后跟数字0~7表⽰. 如 0123,011⼗六进制整数:由0x开头,后跟0~9,a~f,A~F表⽰. 如 0x123,0xff2. 整型常量的类型【1】整型常量的值在-32768~+32767范围内,编译器认为是int类型【2】整型常量的值超过上述范围,⽽在-2147483648 ~ +2147483647范围内,编译器认为是long类型【3】当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量【4】在整型常量后⾯加⼤写L或⼩写l,则告诉编译器,把该整型常量作为long类型处理。
广州大学实验报告学院商学院专业、班级姓名、学号课程名称C程序设计项目名称数据类型、运算符和表达式实验实验时间:2012 年 3 月20 日数据类型、运算符和表达式实验报告开课实验室:2012年3月20日d=5.670000,e=-6.780000f=1234.567890,g=0.123457m=50000,n=-600000p=32768,q=40000第3页四、实验结果及分析实验一输出结果为:a,b值互换。
分析:在C程序设计中,两个值互换需要一个中间变量来储存数据,如果直接交换会导致其中一个数据丢失。
实验二分析:实验二为自己设计的程序。
在设计这个程序是要注意scanf的用法。
Scanf 为格式输入符,在输入字符时要注意字符输入方式。
在本次实验中其调用格式为:scanf("<格式化字符串>",<地址表>);实验三分析:输出格式的不同会导致输出结果的不同。
将负数赋值给无符号变量时,无符号变量会将这个负值的符号也纳入计算范围从而返回一个正值,导致最后输出结果不正确。
这个实验让我认识到在设计程序时要注意输出格式的选择。
实验四分析:实验四更加强调个语句中在程序的含义。
程序为:printf("d=% f,e=% f\n",d,e);printf("f=% f,g=% f\n",f,g);输出结果为:当程序改为:printf("d=%-6.2f,e=%-6.2f\n",d,e);printf("f=%-15.6f,g=%-15.10f\n",f,g);输出结果为:继续将程序改边为:printf("d=%-6.2f\te=%-6.2f\n",d,e);printf("f=%-15.6f\tg=%-15.10f\n",f,g);输出结果为:以上3种都是改变了输出格式使输出数据的有效数字改变。
上机实验一般应包括以下几个步骤:1.准备好上机所需的程序。
认真完成预习实验报告,报告应包括以下内容:①题目②相关知识点的表述③实验设计思路、流程图或语言描述④程序清单⑤实验中要验证的内容⑥实验计划手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。
对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。
初学者切忌不编程序或抄别人程序走上机,应从一开始就养成严谨的科学作风。
2.上机输入和调试自己所编的程序。
应该一人一组,独立上机。
上机过程中出现的问题,除了是系统的问题以外,一般应自己独立处理,不要轻易举手问教师。
尤其对“出错信息”,应善于自己分析判断。
这是学习调试程序的良好机会。
在使用键盘时,最好采用正确的指法击键,为今后正确使用键盘打下基础。
在程序调试通过后,打印输出程序清单和运行结果,在运行时要注意在输入不同数据时所得到的不同结果(例如解ax2+bx+c=0方程时,不同的a、b、c组合对应得到实根、复根的不同结果)。
此时应运行几次,分别检查在不同情况下程序是否正确。
3.上机结束后,应整理出实验报告,实验报告应包括以下内容:①题目②实验记录③程序清单(计算机打印出的程序清单)④运行结果(必须是上面程序清单所对应打印输出的结果)⑤实验分析⑥技术小结。
对运行情况所作的分析以及本次调试程序所取得的经验。
如果程序未能通过,应分析其原因。
实验一.数据类型、运算符和表达式一、目的要求:1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容:1.编写程序验证各种数据类型、各种运算符。
2.输入并运行教材第三章例题3.1、例3.3、例3.4、例3.10,在上机前先用人工分析程序写出应得结果,上机后将二者对照。
实验一参考答案1、数据类型、运算符和表达式的应用(1)整型数据的溢出(建立程序文件名为sy1-1.c)# include <stdio.h>void main(){short int a,b;a=32767;b=a+1;printf("a=%d,b=%d\n",a,b);}程序运行结果:a=32767,b=-32768原因:32767是short int型数据的最大值,其二进制为(0111111111111111),在其上加1后产生溢出,变成-32768的补码,其二进制为(1000000000000000)。
整数在内存中以二进制补码形式存放,运算时符号位也要参与运算。
结论:使用整型数据应注意其表示范围,避免产生溢出。
(2)浮点型数据的舍入误差(建立程序文件名为sy1-2.c)# include <stdio.h>void main(){float a,b;a=123456.789e5;b=a+20;printf("a=%f\tb=%f\n",a,b);}程序运行结果:a=1345678848.000000 b=12345678868.000000原因:理论分析a变量的值为12345678900,b的值经计算应为12345678920,结果输出的a和b的值都不对,原因是float型数据的有效数字位数为7位,后几位数字都是不准确的。
结论:应当避免将一个很大的数和一个很小的数直接相加或相减,否则会“丢失”较小的数。
(3)字符型数据和整型数据的混合使用(建立程序文件名为sy1-3.c)# include <stdio.h>void main(){char c1,c2;c1=65; c2=66;printf("%c %c\n",c1,c2);}程序运行结果:A B原因:c1,c2两个变量的类型为char型,在内存中分配1B的存储空间用于存放字符的ASCII码二进制,其存放的数据范围为0~255。
C语言实验报告说明1,所有程序均用编译运行,文件名命名为姓名+日期,因为实验存在补做,因此并非是依照日期前后排列的。
2,为了使截图清楚,手动将运行窗口由“黑底白字”改成了“白底黑字”。
实验2 数据类型、运算符和表达式一、实验目的:(1)把握C语言数据类型,熟悉如何概念一个整型、字符型、实型变量、和对它们赋值的方式。
(2)学会利用C的有关算术运算符,和包括这些运算符的表达式,专门是自加(++)和自减(――)运算符的利用。
(3)把握C语言的输入和输出函数的利用(4)进一步熟悉C程序的编辑、编译、连接和运行的进程。
三、程序调试与问题解决:(1)输人并运行下面的程序#include<>void main(){char c1,c2;c1='a';c2='b';printf("%c %c\n",c1,c2);}○1运行此程序。
○2在上面printf语句的下面再增加一个printf语句。
printf("%d %d\n",c1,c2);再运行,并分析结果。
输出结果如图,编译成功,无错误。
○3将第3行改成int c1,c2;再运行,并分析结果。
○4再将第4、5行改成c1=a;c2=b;再运行,并分析结果。
a,b没有概念,编译报错。
○5再将第4、5行改成c1=‘’a‘’;c2=‘’b‘’;再运行,并分析结果。
○6再将第4、5行改成c1=300;c2=400;再运行,并分析结果。
以字符型输出时,输出的将是300,400对应的字符。
(2)输人并运行教材第3章习题3. 6给出的程序#include<>main (){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);}#include<>void main(){int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf("%d,%d\n",a,b);printf("%u,%u\n",a,b);printf("%u,%u\n",c,d);c=a=e; d=b=f;printf("%d,%d\n",a,b);printf("%u,%u\n",c,d);}请对照程序和运行结果分析:①将一个负整数斌给一个无符号的变t,会取得什么结果。
实验一数据类型,运算符和表达式实验课程名:高级语言程序设计专业班级:10级交通运输学号:201040130130 姓名:王稳实验时间: 3.19~ 3.26 实验地点:K4-202 指导教师:高超一、实验目的和要求1.了解TURBOC系统上如何编辑,编译,连接和运行一个C程序.2.掌握C语言数据类型,熟悉如何定义一个整型,字型和实型的变量,以及对它们赋值的方法。
3.掌握不同的类型数据之间赋值的规律。
4.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
5.进一步熟悉C程序逻辑的编辑、编译、连接和运行的过程。
二、实验内容1、熟悉T rbuoC集成环境了解和熟悉编辑(Edit)窗口和信息窗口(Message)作用.试一下能否向信息窗口输入程序,按功能键F5,观察它有什么作用,再按一次F6,再观察它有什么作用。
按功能键F10,并按回车键,观察File菜单,了解它们的作用和用法.用键盘上的键,分别选中Edit,Run,Compile,Project,Debug,Break/watch,观察它们的菜单,大致上了解它们的作用.选择File菜单中的New并按回车键,在编辑窗口中随意输入几行字符,观察窗口顶端line和col后面数字的变化。
再选择File菜单中的New并按回键,使编辑窗口变成空白。
输入下面的程序main(){printf(“This is a C program.\n”);}按功能键F9进行编译和连接,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译。
如果编译无错误,按ctrl和F9键使程序运行,按Alt和F5键,切换到用户屏幕,观察分析运行结果。
(1)源代码:#include<stdio.h>int main(){printf(" This is a C program.\n");return 0;}(2)运行结果:(3)运行结果分析:1.在程序的开头加上#include<stdio.h>;2.程序中,符号的格式要在英文的情况下输入;3.在程序的结尾加上return 0。
2.输入并运行下面的程序main(){char c1,c2;c1=’a’;c2=’b’;printf(“%c,%c\n”,c1,c2);}a.运行此程序。
(1)源代码:#include<stdio.h>int main(){char c1,c2;c1='a';c2='b';printf("%c,%c\n",c1,c2);return 0;}(2)运行结果:b.在此基础上增加一个语句:printf(“%d %d\n”);再运行,并观察结果。
(1)源代码:#include<stdio.h>int main(){char c1,c2;c1='a';c2='b';printf("%c,%c\n",c1,c2);printf("%d %d\n");return 0;}(2)运行结果c.将第二行改为C1=a;C2=b;再运行,分析其运行结果。
(1)源代码:#include<stdio.h>int main(){char C1='a',C2='b',c1='a',c2='b';printf("%c,%c\n",c1,c2);return 0;}(2)运行结果(3)运行结果分析:在先赋值变量前,要先定义变量,也可用复合语句,把定义变量和赋值在一起。
d.第3行和第4行改为:c=“a“;c2=”b“;再便之运行,分析其结果。
(1)源代码:#include<stdio.h>int main(){char c,c2;c='a';c2='b';printf("%c,%c\n",c,c2);return 0;}(2)运行结果(3)运行结果分析:1.在使用变量c前,一定要定义c;2.单撇号内是包含一个字符,双撇号内可以包含一个字符串。
e. 再将第3、4行改为c=300;c2=400;再使之运行,分析其运行结果。
(1)源代码:#include<stdio.h>int main(){char c1,c2;c1=300;c2=400;printf("%c,%c\n",c1,c2);return 0;}(2)运行结果(3)运行结果分析:整型变量与字符变量只在128内完全等效,所以300和400在字符变量不等效。
3、输入并运行教材第3章习题3.6给出的程序main(){ char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%c b%c\tc%ctabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
(1)源代码:#include<stdio.h>int main(){ char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%ctabc\n",c1,c2,c3);printf("\t\b%c %c",c4,c5);return 0; }(2)运行结果:(3)运行结果分析:转义字符一般以\开头的字符序列,注意转义字符在输出语句中的意义。
4、输入并运行下面的程序main(){int a,b;unsigned c,d;long e,f;a=100 ;b=-100 ;e=50000 ;f=62767 ;c=a ;d=b ;printf(“%d,%d\n”,a,b);printf(“%u,%u\n”,a,b);printf(“%u,%u\n”,c,d);c=a=e;d=b=f;pr intf(“%d,%d\n”,a,b);printf(“%u,%u\n”,c,d);}请对照程序和运行结果分析:一个负整数赋给一个无符号的变量,会得什么结果。
画出它们在内存中表示形式。
将一个大于32767的长整数赋给整型变量,会得到什么结果。
画出它们在内存中的表示形式。
将一个长整数赋给无符号变量,会得到什么结果。
画出它们在内存中的表示形式。
学生可以改变程序中各变量的值,经便比较。
例如:a=65880,b= -40000,e=65535,f=65580。
(1)源代码:#include<stdio.h>int main(){int a,b;unsigned c,d;long e,f;a=100 ;b=-100 ;e=50000 ;f=62767 ;c=a ;d=b ;printf("%d,%d\n",a,b);printf("%u,%u\n",a,b);printf("%u,%u\n",c,d);c=a=e;d=b=f;printf("%d,%d\n",a,b);printf("%u,%u\n",c,d);return 0;}(2)运行结果:(1)源代码:#include<stdio.h>int main(){int a,b;unsigned c,d;long e,f;a=65880;b=-40000 ;e=65535 ;f=65580 ;c=a ;d=b ;printf("%d,%d\n",a,b);printf("%u,%u\n",a,b);printf("%u,%u\n",c,d);c=a=e;d=b=f;printf("%d,%d\n",a,b);printf("%u,%u\n",c,d);return 0;}(2)运行结果:(3)运行结果分析:一个负整数赋给一个无符号的变量,会得4294967196结果。
画出它们在内存中表示形式。
11111111111111111111111111111111将一个大于32767的长整数赋给整型变量,会得到原数结果。
画出它们在内存中的表示形式。
占据着4个字节,以其2进制将一个长整数赋给无符号变量,会得到原数结果。
画出它们在内存中的表示形式。
占据着4个字节,以其2进制5、输入习题3.10main( ){int i,j,m,ni=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n) ;}(2)运行结果:a. 运行程序,注意i,j,m,n各变量的值,分别作出以下改动并运行。
第4、5行改为:m=i++;n=j++;再运行。
(1)源代码:#include<stdio.h>int main( ){int i,j,m,n;i=8;j=10;m=i++;n=j++;printf("%d,%d,%d,%d",i,j,m,n) ;}(2)运行结果:(3)运行结果分析:m=i++,先把i的值赋给m,而m=++i是先运算i=i+1再把i的值赋给m。
b. 将程序改为:main( ){ int i,j;i=8;j=10;printf( “%d,%d”,i++,j++);}(1)源代码:#include<stdio.h>int main( )int i,j;i=8;j=10;printf( "%d,%d",i++,j++);}(2)运行结果:(3)运行结果分析:输出表列可以使常量、变量或表达式。
c. 在a的基础上,将printf语句改为:main( ){ printf( “%d,%d”,++i,++j) ;再将printf语句改为:printf(“%d,%d,%d,%d”i,j,i++,j++) ;将程序改为main( ){int I,j,m=0,n=0;i=8;j=10;m+=i++;n- = --j;printf(i=%d,j=%d,m=%d,n=%d”,i,j,m,n) ;}(1)源代码:#include<stdio.h>int main(){int i,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n) ;}(2)运行结果:(3)运行结果分析:复合的赋值运算符石从右往左算。