《C语言实验2.pdf》由会员分享,可在线阅读,更多相关《C语言实验2.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验目的(1)掌握 C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。(+)和自减(-)运算符的使用。二实验内容(1)输人并运行下面的程序#include void main()char c1,c2;c1=a;c2=b;print(%c%c n,cl.c2);)运行此程序。在此根底上增加一个语句:printf(%d%dn cl,c2);再运行,并分析结果。将第 2 行改为:int c1,c2;再使
2、之运行,并观察结果。再将第 3、4 行改为;cl=a;c2=b;再使之运行,分析其运行结果。再将第 3、4 行改为:cl=a;c2=b;再使之运行,分析其运行结果,再将第 3、4 行改为:cl=300;c2=400;再使之运行,分析其运行结果。(2)输人并运行教材第 3 章习题 36 给出的程序#include void main()char c1=aprintf(a%c b%cprintf(,c2=b,c3=c,c=10l,c5=116;tc%ctabc n,c1,c2,c3);t b%c%c,c4c5);在上机前先用人工分析程序,写出应得结果,上机后将二者对照。(3)输入并运行下面的程序#
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(%dprintf(%u,%dn,a,printf(%ub),;%Un,a,b);,%un,c,d)c=a=e;d=b=f;printf(%d,%dn,;,c,d);printf(%ua,b),%un4 输入习310题#include void main(),m,n;int ii=8j=10;m=+i;n=j+;printf%d,%d,%d,%d,i,j,m,n;运行程序,注意 i、j、m n 各变量的值,分别作
4、以下改动并运行。将第 4、5 行改为:m=i+;n=+j;再运行。将程序改为:#include void main int ii=8j=10j;printf%d,%d,i+,j+;在的根底上,将 printf 语句改为:printf%d,%d+i,+j;再将 printf 语句改为:printf%d,%d,%d,%d,i,j,i+j+;将程序改为:#include void main()int i,j,m=O,n=0;i=8:j=10;m+=i+;n-=-j;printf(i=%d,j=%dm=%,d n=%d,i,j,m,n);A后面第 4 个字母是“E,用“E代替“A。因此,(5)按习题
5、37 的要求编程序并上机运行,该题的要求是:要将“China 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母。例如,字母“China应译为“Glmre。请编一程序,用赋初值的方法使 cl、c2、c3、c4、c5 五个变量的值分别为 C、h、i、n、a,经过运算,使 c1、c2、c3、c4、c5 分别变为 G、l、m ,r,e,并输出。输入事先已编好的程序,并运行该程序。分析是否符合要求。改变 cl、c2、c3、c4、c5 的初值为:T、o、d、a、y,对译码规律作如下补充:W 用A代替,X 用 B 代替,Y 用C 代替,Z 用 D 代替。修改程序并运行。将译码规律修改为:将
6、字母用它前面的第4 个字母代替,例如E用A代替,Z用U代替,D用Z代替,C 用 Y 代替。B 用 X 代替,A 用 V 代替。修改程序并运行。三实验步骤可选 对于前四项实验内容步骤,上面已经表达清楚,不再赘述。对于第五项实验内容,程序设计的思路是:将一个字母用它后程序代码为:#include main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(密码是%c%c%c%c%cn,c1,c2,c3,c4,c5);4 个字母代替,只需让字母加 4 就可以了。如果要让字母替换实现“循环,那么最后四个字母要减去 2
7、2,修改程序为:#include main()char c1=T,c2=o,c3=d,c4=a,c5=y;if(c1=W&c1=w&c1=W&c2=w&c2=W&c3=w&c3=W&c4=w&c4=W&c5=w&c5=&c1=Aac1+=22;else c1-=4;if(c2=A&c2=ac2+=22;else c2-=4;if(c3=A&c3=ac3+=22;else c3-=4;if(c4=An,c5=#include void main()a&c1=d)&c2=d)&c3=d)&c4=a&c4=A&c5=a&c5=d)c5+=22;else c5-=4;printf(密码是%c%c%c%
8、c%cn,c1,c2,c3,c4,c5);四实验的结果及分析。输入第一项内容第一步的程序,运行,输出结果:增加一个 printf 语句输出数字,运行结果增加一行a b 程序用 printf 函数输出字符。:97 98 此时输出的是 a b 的 ASCII 码。把变量改成整型,运行结果不变,因为整型数据与字符型数据在内存中的形式是一样的,只要在 0-255 范围内,两种数据是完全一致的,可以相互更换。把赋值语句的单引号去掉,编译时系统报错,此时是把未定义的变量的规那么。把赋值语句的单引号变成双引号,编译时系统报错,此时把字符串赋给字符变量,这也违反了么。把大于 255 的数赋给字符变量,输出结果
9、是别的字符,因为此时把数据中的低八位数据给了变量,发生了截断。C 语言的规那a、b 的值赋给 cl,c2,这违反了 C 语言输入第二项内容的程序,运行,输出结果:aa bb cc abcAN分析:“t 是将光标向右移 8 格“b 是把光标退一格。输入第三项内容的程序,运行,输出结果:100-100100-100100-100-15536 3276750000 32767分析:把大于 32767 的数按整型输出,那么会由-32768 开始“循环。输入第四项内容第一步的程序,运行,输出结果:9,11,9,10分析:自增自减运算符如果在变量前,那么先自增运算,在使用自增后的变量,如果运算符在变量后,
10、那么先 使用变量,再做自增运算。变换自增运算符的位置,运行结果:9,11,8,11。修改成第三步的程序,运行结果:修改成第四步的程序,运行结果:修改成第五步的程序,运行结果:修改成第六步的程序,运行结果:8,10。9,11。8,10,8,10。9,9,8,9相当于 _-j,n=n-j分析:m+=i+相当于 m=m+i,i+。n-=_-j修改成第二步的程序,输出结果:Xshec修改成第三步的程序,输出结果:Pkzvu输入第五项内容第一步的程序,运行,输出结果:Glmre五实验中出现的问题、解决方法和心得体会在定义变量时要指定数据类型,在变量类型的选择上,必须按照变量值的范围去选恰当的类型,否那么可能会 让输入的数据有损失。字符型变量可以做加减成为别的字符。