实验02 数据类型、运算符和表达式.doc_第1页
实验02 数据类型、运算符和表达式.doc_第2页
实验02 数据类型、运算符和表达式.doc_第3页
实验02 数据类型、运算符和表达式.doc_第4页
实验02 数据类型、运算符和表达式.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黔南民族师范学院数学系 C程序设计实验实验2 数据类型、运算符和表达式实验目的: 1掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;2掌握不同类型数据之间赋值的规律;3学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用;4进一步熟悉C程序的编辑、编译、连接和运行的过程。实验内容:1输入下面的程序:#include void main( ) char c1, c2; c1 = a; c2 = b; printf (“%c %cn”, c1, c2);(1)运行此程序;(2)在程序的最后增加语句“printf(“%d%dn”,c1,c2);”再运行,并分析结果;分析结果:以%d的形式输出c1,c2就为97,98。(3)将程序的第4行“char c1, c2;”改为“int c1, c2;”后再运行,并分析结果;结果:定义的整型c1,c2以%c的形式输出为a b; 以%d的形式输出为97 98。(4)将程序的第5、6行改为:c1 = a; /* 不用单撇号*/c2 = b;再运行,并分析结果;结果:出现错误提示。(5)再将程序的第5、6行改为:c1 =” a”; /*用双撇号*/c2 =” b”;再运行,并分析结果;结果:用“”的是表示字符串,所以以字符型或整型输出来时就会出现和原来不一样的结果。(6)再将程序的第5、6行改为:c1 =300; /*用大于255的整数*/c2 =400;再运行,并分析结果。分析结果:把定义为字符型的c1 c2赋值为整数,以字符型或整型输出时就出现这个结果。2输入以下程序:#include void 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 bbccabc et运行结果:比较:不清楚字符/101和/116的意思。就直接把它当作以ASCII值为101和116的字符,所以出现与运行结果不一致的分析。3输入并运行下面的程序#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,%dn”, a, b);printf(“%u,%un”, a, b);printf(“%u,%un”, c, b);c = a = e;d = b = f;printf(“%d,%dn”, a, b);printf(“%u,%un”, c, d);请对照程序和运行结果分析:运行结果为:(1)将一个负整数赋给一个无符号的变量,会得到什么结果;将一个负整数赋给一个无符号的变量的结果为:输出的结果是这个负整数的绝对值的补码形式。(2)将一个大于32767的长整数赋给整型变量,会得到什么结果;分析结果:会发生溢出现象,所以它只能显示能将下的最大数。即32762(3)将一个长整型数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。分析结果:同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b = -40000, e = 65535, f = 65580。4输入以下程序:#include void main() int i,j,m,n;i = 8;j = 10;m = +i;n = j+;printf(“%d,%d,%d,%dn”, i, j, m, n);(1)运行程序,分析变量:i、j、m、n 的值;结果分析:m=+i,是先把i的值增加1再赋值给m,所以i=9,m=9; n=j+,是先把j的值赋值给n,然后再增加1,所以j=11,n=10;(2)将第7、8行改为:m = i+;n = +j;再运行并分析结果;结果分析:m=i+,是先把i=8赋给m,然后i再增加1,即i=9.n=+j,是先把j的值增加1,再赋给n,所以j=11,n=11;(3)将程序改为:#include void main() int i,j;i = 8;j = 10;printf(“%d,%dn”, i+, j+);运行并分析结果;分析结果:i+,是先把i的值赋给i+,i的值再加1。j+也是一样的。(4)在(3)的基础上,将printf 语句改为:printf(“%d,%d”, +i, +j);运行并分析结果;分析结果:+i和+j是先把变量值增加1再赋给另一变量。(5)再将printf 语句改为:printf(“%d,%d,%d,%d”, i, j, i+, j+);运行并分析结果;分析结果:i+,j+是先把i,j的值赋给i+,j+后,第二次使用i,j时i,j的值再增加1;(6)将程序改为:#include void main() int i, j, m=0, n=0;i = 8;j = 10;m+= i+; n-= -j;printf(“i=%d,j=%d,m=%d,n=%dn”, i, j, m, n);运行结果:分析结果:m+= i+,是m=m+(i+)意思,m的初值为0,加上i+后为8;n-= -j,是n=n-(-j)的意思,n的初值为0,减去-j,后的值为-9;5按要求编写程序并上机运行(1)要将”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并输出。输入事先已编好的程序,并运行该程序。分析是否符合要求。编写的程序如下:#includevoid main()char c1=C, c2=h, c3=i, c4=n,c5=a;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5);运行结果如下:改变c1、c2、c3、c4、c5的初值为:T、o、d、a、y,对译码规律作如下补充:W用A 代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行。修改后的程序如下:#includevoid main()char c1=T, c2=o, c3=d, c4=a,c5=y;c1=c1-22;c2=c2-22;c3=c3-22;c4=c4-22;c5=c5-22;printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5);运行后的结果为:将译码规律修改为:将字母用它前面的第4个字母代替,例如:E用A 代替,Z用U代替,D用Z代替,C用Y代替,B用X代替,A用V代替。修改程序并运行。按“将字母用它前面的第4个字母代替”规律修改后的程序为:#includevoid main()char c1=C, c2=h, c3=i, c4=n,c5=a;c1=c1-4;c2=c2-4;c3=c3-4;c4=c4-4;c5=c5-4;printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5);运行后的结果为:(2)已知两个电阻分别为10欧姆和20欧姆,求并联后电阻的值。提示:1/R=1/R1+1/R2编写的程序如下:#inc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论