版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验项目2实验2:数据及运算【实验目的】1、掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。2、握不同的类型数据之间赋值的规律。、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+) 和自减(-)运算符的使用。4、程序的编辑、编译、连接和运行的过程。【实验步骤】按照下列要求,分别编写、运行以及调试程1、输入并运行下面的程序#include <stdio>h>void main(void) ( char cl, c2;cl = 'a'c2 =fbf;printf (u%c %cn5 cl, c2); )(1
2、),运行此程序。it include,stdio.h" uoid)( char c1»c2; c1= a' c2='bB;printFC,,ccn"»c1 ,c2);“ "F:12级计本4班刘宝同DebugVtestexe”Lbpess any key to cortiniue结果分析:定义C1和C2为字符,将a和b的值分别赋给cl和c2,程序的输出形式是以字符的形式输出, 所以输出的结果是以原样输出 的。(2) .在此基础上增加一个语句:printf ("%d%dn”, cl, c2);再运行,并分析结果。tt in
3、clude"stdio .h" uoid main()char d ,c2;c1=BaB;c2=Bb'printf("ccn",c1,c2);printfC'dn",c1 ,c2);F:112 级计本4班文:宝同 Debugtest.exe”ab9798Press any key to continue结果分析:定义Cl和C2为字符,将a和b的值分别赋给cl和c2,程序的输出形式分别是以字符的形式和十进制 形式输出,所以输出的结 果是以原样输出和数字输 出。.再将第2行改为:int cl, c2;再使之运行, 并观察结果。龄 i
4、nclude"stdio .h" uoid main()<int c1 ,c2;c1=,a'c2=;ppintf,c1 ,c2);不皂2级计4班刘宝同Debugtest.exe"仇bPress any key to continue结果分析:定义cl和c2为整形,将a和b的值分别赋给cl和c2,但程序的输出形式是以字符的形式输出,所以 输出的结果是以原样输出的。(4),再将第3、4行改为:cl = a;/*不用单撇号*/c2 = b;再使之运行,分析其运行结果(5).再将第3、4行改为:cl= " a" ;/*用双撇号*/c2 =
5、 " b" ;再使之卒行,分析其里行结果。I (Globals(All global members令main口RXvoid main(uoid)+ test classes(char c1» c2;c1 = "a"c2 =Sib"printF ('笔c cn", c1, c2);I>"lassV.JFileView| | | 川,Fl.-r'ltest.exe - 1 error(s), 0 warninq(s)结果分析:"”其作用是包含字串符,而不 是包含一个字符,此程序步骤有
6、误,所以得不到输出结果。(6).再将第3、4行改为:cl = 300;/*用大于255的整数*/c2 = 400;再使之运行,分析其运行结果include <stdio .h> uoid nain(uoid)chat4 c1, c2;d =300;c2 =480;printf%cn c1, c2); 'F:12级计本4班 加宝同Debugtestexw'Press any key to continue结果分析:定义cl和c2为字符,将300和400 的值分别赋给C1和C2,输出形式是以字符cl,c2的 ASCH值形输出,2、输入并运行以下给出的程序ttinclud
7、e <stdio. h> void main(void)char cl = 'a' , c2 = 'b' , c3c , c4 =, c5 =;printf ( "a%c b%ctc%ctabcn , cl, c2, c3);printf ( atb%c%c , c4, c5);)在上机前先用人工分析程序,写出应得结果,上机后将二者对照。#include <stdio.h> void nain(uoid)char c1 = 'a', c2 =, c3 = SC , cU =, c5 =printf ("
8、ac b,ctcctabcn",c1, c2» c3);printf("tb%cUn", c4, c5);' F;12 级计本4 班刘宝同 Debugte53exe11aa bb cc abcANPress any key to continue结果分析:1.输出结果为aa bb cc abc是因为printf 中猊前分别有abc.2.'”是八进制的字符,V 101是八进制的101,就等 于十进制的65,而65的ASICII 值为A; T 16是八进制的116, 就等于十进制的78,而78的 ASICII值为N,所以输出为AN。3、输入并
9、运行下面的程序ftinclude <stdio. h> void main(void)int a, b; unsigned c, d; long e, f;a = 100;b = -100;e = 50000;f = 32767;c = a;d 二 b;printf ( "%d, %dn"printf ( "%u, %un"printf ( "%u,%un"a, b)a, b)c, b)c - a - e;d = b = f;printf( "%d, %dn"printf ( a%u, %una,b)d
10、)/include <stdio .h>void nain(void)int a,b;unsigned c,d;long e ,f;a = 100;b = -100;e = 50000;f = 32767;c = a;d = b;printfCddXn-, a, b); printFCu ,unet, a, b); printFCu %un", c, b); c = a = e;d = b = f;printfCddXn-, a, b); printFCu ,%un'', c, d);Ld ,F:12级计4班 刘宝同Debugrestl.exe”100,-
11、100100,4294967196100,429496719650000,3276?50000,3276?Press any key to continue:(1) “d”表示以十进制形式输出结果分析所以输出的第一行是以a和b所赋的值。(2) “u”表示以无符号形式输出, 又因为无符号整形变量能存放负数并且赋的值为100,所以不能输出b的正确值,只能输出a的正确值。请对照程序和运行结果分析:(1) .将一个负整数赋给一个无符号的变量, 会得到什么结果。画出它们在内存中的表示形 式。答:会得到计算机的一个随机值,因为无符号整形变量不能储存负数。(2) .将一个大于32765的长整数赋给整形变量,
12、会得到什么结果。画出它们在内存中的表 示形式。(3) .将一个长整数赋给无符号的变量,会得 到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。画出它们在 内存中的表示形式。答:a=llll110(31个1),将其以无符号形式输出,则输出结果为-L同学们可以改变程序中各变量的值,以 便比较。例如:a = 65580, b = -40000, e =65535, f = 65580o4、输入下列程序include <stdio. h> void main(void)int i, j, m, n;i = 8;j = 10;m = +i;n = j+;prin
13、tf (a%d, %d, %d, %d, i, j,叫 n);)(1) .运行程序,注意i、j、m、n各变量的值,分别作以下改动并运行。* include ,'stdio .h" void main ()int i,j;i = 8;j = 10; m=+ +j;n=j+;printFCd Zd %。j,n7n);, 'F;:L2级计4班刘宝同Debugte5t4exe"8 12 11 11Ppess any key to continue结果分析:m=+j,先将j的值变为IL再将j的值赋给m,in的值变为11; n=j+,先将j的值赋给n, n的值为11,然
14、后j的值变为12。 所以I, j, m, n的值分别为8,12,11,11.(2) .将第4、5行改为:m = i+;n = +j;再运行。tt include "stdio.h" uoid main () <int i,j,n,n;i = 8;j = 18;n = + + j ;printF("d %。 %。J,m.n);尸 F:12级计4班 >rSIDebugtest4.exe"9 11 8 11Press any key to continue结果分析:m=i+,先将i的值赋给m, m的值为8,然后i的值变为9; n=+j,先将j的值变
15、为11,再将j的值赋给n,n的值变为11。所以i, j, m, n的结果分别为9,11, 8,11.(3) .将程序改为:#include <stdio> h> void main(void) (int i, j;1 = 8;j = 10;printf( "%d, %d” , i+, j+);it include ,'stdio.h"uoid main ()int i,j;i = 8;j = 10;printf("d; F:12级 计本4 班 刘宝同Dcbugte5M.exe"8 10Press any key to cont
16、inue结果分析:输出的结果是以i增加之前的值输出的,并不是i增加之后 的值。所以输出结果为8 10.(4) .在的基础上,将printf语句改为: printf ( "%d, %d",+i, +j);it include "stdio.ti"uoid main ()<int i,j;i = 8;j = 10;printf("d;,下:二12级计本4班刘宝同Debugtest4.exe”9 11Press any key to continue结果分析:输出的结果是以i增加之后的值输出的,并不是i增加之前 的值。所以输出结果为9 11.(
17、5) .再将printf语句改为:printf("%d,%d,%d,%d",i, j, i+, j+);# include "stdio.h" void main ()<int i,j;i=8;j=10;printf("d %d %d dn",i,j,*+i,+j);'F:12级 计本4班刘宝同Debugtest4.exe”9 11 9 11Press any key to continue结果分析:i,j的结果第一次为8, 10,但在执行+i,+j之后就变 了。+i的值为i加之后的值,为9,此时i的值变为9。+j的值为
18、j加之后的值,为1L此时j的值变为11。所 以最终i和j的值变为9,11。(6)将程序改为:#include <stdio. h>void main(void)(int i, j, m=0, n=0;i = 8;J = 10;m+= i+; n-= 一j;printf (ai=%d, j=%d, m=%d, n=%d", i, j, m, n);)int i,j,m=0>n=0;i = 8;j = 18;m+=i*;n-=-j;printF("i=d j=d m=d n=dnBi,i, j, F;12 级计本4 班 5E®Debu gtest4.
19、exe"i=9 j=9 in =8 n=-9Press any key to continue结果分析:m+=i+的意思是m=m+(i+),其中i+的值为8,所以m+=i+ 的值为8,而i的值变为9; n-=j的意思是n=n-(j),其中一j的值为9,所 以n-=j的值为-%而j的值变为9o5、按要求编程序并上机运行:要将" China”译成密码,译码规律是: 用原来字母后面的第4个字母代替原来的 字母。例如,字母" A”后面第4个字母是”E“,用“ E“ 代替“ A“。因此,"China” 的方法使cl、c2> c3、c4> c5五个变量的
20、 值分别为C'、' h'、' i'、' n'、' a',经过运算,使 cl、c2、c3> c4> c5 分别变为'G、' 1'、'或、'r'、'应译为“ Glmre”o请编一程序,用赋初值、,并输出。输入事先已编好的程序,并运行该程 序。分析是否符合要求。井 include"stdio.h" void main()char c1 = BCB,c2=Bh',c3='i',c4= ng,c5= ai ;c1+=4
21、187;c2+=4!,c3+=4;cU+=4»c5+=;1乱千("密码是和就跳跳跳11',C1 ,c2 ,c3 ,c4,c5); F:12级 计4 班 刘主同 Debugtsgtxe"密布马是Clmre,一Press an5 key to continue改变cl、c2、c3、c4> c5、的初值为:,、,a',对译码规律作如下补充甲用'A'代替,X用'B'代替,Y'用'C'代替,'1?用'D,代替。修改程序并运行.# include"stdio.h"
22、uoid nain()<char c1 ='t',c2 ='o',c3 ='(T,c4=,c5='y'c1+=4,c2+=,c3+=;c4+=4,c5-=22;printf (“密码是2c%c*c%c%cn",c1 ,c2,c3,c4,c5);r F:112级 计:$4 班文j 宝同 Debugtesto(e”密码 TExabecPress dny key to continue将译码规律修改为:将字母用它前面的第4个字母代替,例如:'E,用'N代替,'v用,丁代替,'6用,r代替, C用&
23、#39;Y'代替/ B,用'X,代替,'A' 用'代替。修改程序并运行。 it include,stdio.h" void main() (char c1 = C;c2='h' ,c3='il ,c4='n' ,c5='al ;c1*=225c2-=ii ,c3-=l*;c4 -=4>(:5,=24;pr intf (11密码是%nll,c1,c2,c3,c4,c:5); 'F:12 级计本 4 班刘至同 Debugtest.exe *密码是YgyPress any key to c
24、ontinue6 .购房从银行贷款d,月还款额为p,月利率 为r,编程计算多少月能还清,程序运行时输入 以上相关数据。还清月数的数学计算公式:叱心说明:C的库函数中有函数loglO用来计算以10为底的对数7 .求方程ax2+bx+c=0的实数根,要求输入的 系数a,b,c满足aWO,且b2-4ac0o (提示:C 库函数中有sqrt()计算平方根,如sqrt(x)计算 x的平方根。tt include "stdio.h"tt include "math.h"uoid main ()<double a,b,cscanfdisc=b*b-4*a*c;p
25、=-b/(2.8*a);q = sqrt(disc )/(2.0*a);x1 = p + q ;x2 = p-q;printf (,x1=V.2Fnx2=V.2Fn'B,x1,x2);广, F :12级 计本4班 刘呈同Debugtest.«exa"13 2xl= -1 .00x2= -2.00Press any key to continue:8 .课本第83页习题4U include ",stdio-h" uoid main () char d ,c2; d = 97; c2 = 98;printf (,c1=c,c2=%cn"
26、187;c1 ,c2); printf(,c1=d,c2=dnii>c1,c2);.,F;i2级计本4班刘宝同Debugtest.exe'cl=aJ.c2=bcl=97,c2=98Press any key to continue(2it include "stdio-h"void main ()<char c1,c2;c1=197;c2=198;printF("c1=c,c2=cn",c1,c2);printF("c1=d,c2=dn'c1,c2);F:12级计本4班文主同Debugtest.exw”g!=?g2=
27、?c1=-59,g2=-58Press any key to continuett include "stdio .h" void main ()int c3c2;c1=97;c2=98;printf("01=0,c2=cn",c1»c2);printf("c1=d,c2=dniB,c1,c2);广,F:12级 计4 班又厘同Debugtest.exe,cl=d,c2=bcl=97,c2=98Press any key to continae9 .课本第83页习题5tt include "stdio.h" void
28、 nain()<int a,b;Float x,y;char c1,c2;8 = 3 9b=7;x=8.5,y=71.82;,c2='aB ;printF('Ba=d b=dnBB,a,b);printF(IBx=%F y=enIBrx,y);printFCclc c2=%cn,i,c1 ,c2); jjj F:12级 计本4 班 削宝同'Debug'hjkl.eve"a=3 b=7x=8.500006 5=?.i82000e+00i cl=A c2=aPress any key to continue10.设整数42486,请定义一个变量,初始
29、化之,并分别以8进制和16进制数输出。如果将 该整数定义成无符号短整型,当以有符号数输出 时,结果是什么?对程序运行结果进行解释说 明。(1) .tt include "stdio.h" void main。int a;a=H2i*86;printf("a=on" /);pt-intf (i,a=xnB, );ITh ' F:12 级 计本 4 班 刘主同 Debughjkl.exe”a=122766a=a5£6Press any key to continue结果分析:十进制的42486的二进制是,而将二进制转换成八进制是从二进制的低位开 始三个数一组,而将二进制转换成十六进制是从二进制的低位开始四个数一组,再将二进制的数算出连起 来,就得到输出的结果.(2)U include "stdio.hSi uoid main()(unsigned int a;a=42486;printF(lla=%dnllsa);下:12级计本4班刘宝同Debughjld.«exJ,=42486Press any key to continue结果分析:定义“为无符号变量,而输出形式是以十进制输出,由于无符 号变量不能存放负数,而a>0所以能输出a的值。11 .设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山西长治市第三人民医院第二次招聘聘用制工作人员6人考试历年真题汇编附答案
- 2025年上半年黑龙江工业学院博士(思政类)招聘5人(公共基础知识)综合能力测试题附答案
- 2026新余燃气有限公司工作人员招聘1人笔试备考题库及答案解析
- 2026云南佰胜企业管理有限公司招聘笔试备考试题及答案解析
- 医疗扶贫项目年终义诊总结【演示文档课件】
- 2025秋人教版道德与法治八年级上册5.1文明有礼同步练习
- 2026年保山市昌宁县机关事务管理局招聘编外工作人员(1人)笔试参考题库及答案解析
- 2026西北工业大学动力与能源学院爆震燃烧团队非事业编人员招聘1人(陕西)笔试参考题库及答案解析
- (能力提升)2025-2026学年下学期人教统编版小学语文四年级第七单元练习卷
- 2026辽宁省精神卫生中心招聘高层次和急需紧缺人才7人笔试备考题库及答案解析
- UL1995标准中文版-2018加热和冷却设备UL中文版标准
- 2024至2030年中国家用燃气具数据监测研究报告
- 2024版租房合同协议书下载
- 宝宝喂养记录表
- 《保健食品标识培训》课件
- 2023年非标自动化机械设计工程师年度总结及来年计划
- 丹鹿通督片治疗腰椎疾病所致腰椎狭窄128例
- 股骨颈骨折围手术期护理
- 高空作业车使用说明书
- 保安公司介绍PPT模板
- 医疗质量与安全管理小组活动记录
评论
0/150
提交评论