c++实验2 数据类型与表达式
- 格式:doc
- 大小:78.50 KB
- 文档页数:7
《c语⾔程序设计》实验报告(实验-2)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=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 continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
安庆职业技术学院电子信息系
实验报告(C语言程序设计)姓名:戚晓龙学号:
main( )
{ ;//变量的定义
printf(“请输入一个字符:”);
scanf(“%c”,&a);
b=(int)a;
printf(“\n\n%c的ASCⅡ码为%d\n”,a,b);
}
2、输出任意一个十进制数对应的八进制,十六进制数。
#include<stdio.h>
main( )
{ int a;
scanf(“%d”, );
printf(“\n%d(10) ,%o(8), %x(16)\n”,a,a,a);
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 #include <stdio.h>
1 main( )
2 { int u=v=89;
3 printf(“u=%d,v=%d\n”,u,v);
4 }
错错误在行
应改为:
调试正确后
输出结果:
的运行结果
四、操作过程及实验结果
详细记录在操作过程中出现的问题及解决方法。
记录实验的结果(或截图,以供教师审阅。
)。
1
2
3
4
5
6
7
五、总结。
C语言实验2----基本的程序语句1.1目的和要求(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
(2)学会使用C的有关算术运算符,及包含这些运算符的表达式,(3)自增(++)和自减(--)运算符的使用。
(4)了解字符在计算机中以ASCII码方式表示。
(5)掌握基本的输入输出函数scanf( )、printf( )的基本功能、调用方法、输入/输出格式控制规定等。
(6)巩固学生对于编程概念的理解。
1.2实验内容1.2.1实验练习1:表达式的计算。
实验目的:本实验旨在巩固学生对于编程概念的理解。
在这个实验中将练习:•如何定义浮点型变量•使用scanf输入用户提供的数据•使用printf输出变量问题描述:编写程序sy2_1.c进行温度转换计算,输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。
示例输出:程序主体模板:#include<stdio.h>void main( ){float h, c;printf("请输入华氏温度:");/*接收用户输入的华氏温度*//*将华氏温度转化为摄氏温度*//*输出对应的摄氏温度*/}问题解答提示:1.依据题目,输入和输出数据均为温度,因此用float来表示,其中输入数据为华氏温度,输出数据为摄氏温度;2.提示用户输入华氏温度,并用scanf语句接收此值;3.根据华氏温度和摄氏温度之间的计算公式,将华氏温度转化为摄氏温度,并存储在变量c中;4.用printf语句显示对应的摄氏温度。
1.2.2实验练习2:自增运算符的使用。
实验目的:本实验旨在巩固学生对于编程概念的理解。
在这个实验中,学生将练习:•掌握自增(++)运算符的使用问题描述:编写程序sy2_2.c,观察其执行结果,思考自增运算符放在变量之前和放在变量之后,表达式的值有何不同。
C语言程序设计实验指导与习题解答三、注意事项及小结(1)通过本次实验,大家应该初步掌握 Visual C++ 6.0 集成开发环境的使用,包括集成 开发环境的进入、设置、退出,源程序的打开、编辑、保存、编译、运行等内容,能够读懂系 统提示的信息。
这样在今后的学习中,就可以把主要精力放到程序的调试上,提高上机效率。
(2)初学 C 语言程序,容易出错的地方是:①C 语言程序中的标点符号都需是英文输入法下的,如分号、逗号、引号等。
②语句后漏加分号。
如图 219 中编译出错,因为语句 printf("我们一起学习写 C 语言程 序!\n")的最后未加分号。
③使用标识符时,混淆了变量中字母的大小写。
如初学者可能会认为 abc 与 Abc 是同一 个变量,实际 C 编译系统会把它们看作两个不同的变量。
④程序语句中括号不匹配。
C 程序中的括号(如{}和()),引号(如""和''),都必须匹配, 即成对出现,如:例 211 中的源程序,若变为:#include <stdio.h>int main(){printf("我们一起学习写C语言程序!\n";return 0;}则会出现如下错误提示:G:\C例题\例211.c(4) : error C2143: syntax error : missing ')' before ';'即提示在语句“printf("我们一起学习写 C 语言程序!\n";”中分号';'之前少了括号')'。
实验二 数据类型、变量与表达式一、实验目的与要求1.理解数据类型的基本概念。
2.熟练掌握变量的使用方法。
3.熟练掌握运算符与表达式的使用方法。
二、实验内容1.写出下列程序的运行结果,并上机验证。
凯里学院 C 语言程序设计 实验报告××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩 合作者 实验日期 年 月 日 指导教师 评阅日期 年 月 日实验二 数据类型、运算符和表达式一、实验目的:(1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
(2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
(3)掌握C 语言的输入和输出函数的使用(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用step by step 功能。
(5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。
二、实验内容:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }(2)按习题3. 7的要求编程序并上机运行 该题的要求是:要将“China ”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。
例如,字母“A ”后面第4个字母是“E ”,用“E ”代替“A ”。
因此,“China ”应译为“Glmre" 。
请编一程序,用赋初值的方法使。
cl ,c2,c3,c4,c5五个变量的值分别为‘C ’、‘h ’、‘i ’、‘n ’、‘a ’,经过运算,使cl ,c2,c3,c4,c5分别变为‘G ’、‘l ’、‘m ’、‘r ’、‘e ’,并输出。
三、实验步骤:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }装订线装订线① 运行此程序。
实验2 数据类型与表达式一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与常变量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
运行下列程序,回答相关问题:#include<stdio.h>int main( ){printf ("int 型数据所占字节数: %d\n",sizeof(int));printf ("整数23、所占字节数分别为: %d、%d\n",sizeof(23),sizeof(4567890));printf ("char 型数据所占字节数: %d\n",sizeof(char));printf ("字符\'s\'所占字节数: %d\n",sizeof('a'));printf ("字符串\"s\"所占字节数: %d\n",sizeof("a"));printf ("字符串\"CCTV即中央电视台\" 所占字节数: %d\n\n",sizeof("CCTV即中央电视台"));int n1=13;printf ("%d\t%X\n",n1,n1);int n2=-13;printf ("%d\t%X\n",n2,n2);return 0;}(项目名称为lab_2_1,下同,不一一说明)问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?(2)整数的占用长度与其数值大小有关吗?(3)字符串中’\’’、’\”’、’\n’、’\t’的功能各是什么?(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?(5)整数的存储形式是什么?操作内容:请修改上述程序,使之能输出float、double、void类型所占用字节数。
实验2 数据类型、运算符和简单的输入输出1,实验目的(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2)掌握对各种数值型数据的正确输入方法。
(3)学会使用C语言的有关算数运算符,移机包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
(4)学会编写和运行简单的应用程序。
(5)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2,实验内容和步骤(1)输入并运行教材第3章第4题给出的程序。
#include<stdio.h>Int main(){char c1,c2;c1=97;c2=98;printf(“c1=%c,c2=%c\n”,c1,c2);printf(“c1=%d,c2=%d\n”,c1,c2);return 0;}○1运行以上程序,分析为什么会输出这些信息。
输出信息:c1=a,c2=bc1=97,c2=98Press any key to continue第6行是将c1,c2按%c的格式输出,97是字符a的AS CⅡ代码,98是字符b的AS CⅡ代码。
第7行是将c1,c2按5d的格式输出,所以输出两个十进制整数。
○2如果将程序第4,5行改为c1=197;c2=198;运行时会输出什么信息?为什么?输出信息:c1=?,c2=?c1=-59,c2=-58Press any key to continue由于Visual C++6.0字符型数据是作为signed char类型处理,它存字符的有效范围为0~127,超出此范围的处理方法,不痛的系统得到的结果不痛,因而用“%d”格式输出,结果是不可预期的。
用“%d”格式输出时,输出c1=-59,c2=-58.这是按补码形式输出的,内存字节中第1位为1时,作为负数。
59和197之和等于256,58与198之和也等于256.○3如果将程序第3行改为int c1,c2;运行时会输出什么信息?为什么?输出结果:c1=a,c2=bc1=97,c2=98Press any key to continue因为97和98在int类型的有效范围。
实验二数据类型与表达式计算、数据的输入输出
实验目的:
1、熟练掌握C语言中的数据类型;
2、了解整型数据和浮点型数据的存储格式;
3、掌握字符数据与整型数据的关系;
4、熟悉各运算符的优先级及各类型数据混合运算时的注意点。
实验内容:
1、编程将整数97536赋给短整型变量x,显示x的值,并分析实验结果。
2、编程计算表达式,教材P39-8题,并分析运算过程。
3、编程分析下列5个程序:
#include <stdio.h> #include <stdio.h> #include <stdio.h>
void main() void main() void main()
{printf("abcd\n");} {printf("abcd\012");} {printf("abcd\x0a");}
#include <stdio.h> #include <stdio.h> #include <stdio.h>
void main() void main() void main()
{printf("abcd\r");} {printf("abcd\015");} {printf("abcd\x0d");}
实验原理、步骤与分析:
【要求】每个实验内容都要先写出其实现的基本原理,再写出实验步骤,最后根据每个实验内容的实验结果进行分析说明。
实验二 C基本数据类型及运算目的要求:掌握C语言中整型、字符型、实型变量的定义及赋值;学会使用C的有关运算符及相关表达式;进一步熟悉VC++ 6.0的集成开发环境。
实验内容:1. 编写程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。
2. 编程。
要求用户输入两个整数a、b(分别为20、10),读取用户从键盘输入的值,然后:1) 用整型输出这两个数的和、差;2) 用长整型输出这两个数的积,用float输出商;3) 用整型输出这两个数的余数,用float输出平均值。
3. 再次运行程序第2题中的程序,使整数a、b的值分别为10、20,分析程序运行结果,并给出说明 *。
实验三 C简单程序设计目的要求:掌握C语言中赋值语句的使用。
掌握数据输入输出的方法。
能正确使用各种格式转换符。
实验内容:1. 编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。
例如,输入整数5,程序运行后输出字符5。
2. 编程。
输入半径,计算球体表面积和球体积。
3. 编写一个程序,要求通过键盘给6个变量赋值,然后将变量的值在屏幕上打印输出。
这六个变量的值分别为:10,-10,40000,a,3.14,hello。
*实验四 C程序控制结构--分支目的要求:学会正确使用逻辑运算符与逻辑表达式。
掌握分支结构的格式及流程。
学会利用分支结构控制程序的流程。
实验内容:1. 编程实现:键盘输入三个整数,分别存放到变量a,b,c中,输出其中的最小值(要求不改变a、b、c的值)。
2. 编程实现:键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则输出相应大写字母;其它字符原样输出。
3. 计算以下分段函数值具体要求如下:①用if语句实现分支结构的编程。
②自变量与函数均采用双精度类型。
③自变量x用scanf函数输入,且输入前要有提示。
④结果的输出采用以下形式:x=具体值,f(x)=j具体值。
实验2 数据类型与表达式实验目的●掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法;●懂得转义字符的使用;●了解基本数据类型的字节宽度;●进一步熟悉C++程序的编辑、编译、连接和运行的过程;●掌握数据的输入输出的方法;●掌握运算符的优先级和结合性,能够正确书写表达式;●掌握不同的类型数据之间运算的类型转换规则,理解自动类型转换和会使用强制类型转换。
实验内容:1、基本数据类型的长度验证你的C++编译环境中每个基本数据类型的长度(即在内存空间所占的字节个数)。
用sizeof运算符获取类型或数据的所占字节数。
# include<iostream>using namespace std;int main(){cout << "字符'a' 所占字节数: " << sizeof('a') << endl;cout << "字符\"a\"所占字节数: " << sizeof("a") << endl;cout << "字符串\"China\" 所占字节数: " << sizeof("China") << endl;cout << "整型常量默认为int,int型所占字节数: " << sizeof(136) << endl;cout << "短整型short类型所占字节数: " << sizeof(short) << endl;cout << "实型常量.23456默认为double类型,double字节数:" << sizeof(1.23456) << endl; cout << "float型数据所占字节数:" << sizeof(float) << endl;cout << "double型数据所占字节数:" << sizeof(double) << endl;cout << "bool型数据所占的字节数:" << sizeof(bool) << endl;return 0;}1)人工分析程序,写出应得结果,上机后将二者对照。
2)仿照上述程序输出基本数据类型char, short, int, long double, float,double,bool的数据类型长度。
3)为什么字符串长度比总字符个数还要多1?2、先阅读下列程序,写出执行结果(有些程序可能存在错误,请调试、改正)(1)#include<iostream >using namespace std;int main(){char c1 = ‘’;char c2 = ‘’;c1 = 'a';c2 = 'b';cout << c1 << endl; cout << c2 << endl; return 0;}(2)#include<iostream> using namespace std; int main(){char c1 = 0 ;char c2 = 0;c1 = 102;c2 = 400;cout << c1 << endl; cout << c2 << endl; return 0;}(3)#include<iostream> using namespace std; int main(){char c1 = ‘’;char c2 = ‘’;c1 = a;c2 = b;cout << c1 << endl; cout << c2 << endl; return 0;}(4)#include<iostream>using namespace std;int main(){char c1 = “”;char c2 = “”;c1 = ”a”;c2 = ”b”;cout << c1 << endl;cout << c2 << endl;return 0;}(5)#include<iostream>using namespace std;int main(){cout << "Prints the \'\\a\' character: " << 'a' << endl;cout << "------------------------------------" << endl;cout << "Prints the \"\\t\" character:" << '\t' << "test" << endl;cout << "------------------------------------" << endl;cout << "Prints the \"\\r\" character: " << '\r' << "test\n\n\n";cout << "------------------------------------" << endl;return 0;}3、运行程序,观察实验结果。
//该程序已知圆的半径R,输出圆的周长P和面积S#include <iostream>using namespace std;#define PI 3.14159const double R = 10;int main(){double peremiter = 0;double area = 0;peremiter = 2 * R * PI; //周长 = 2πRarea = R * R * PI; //面积 = πR2cout << "周长:" << peremiter << endl;cout << "面积:" << area << endl;return 0;}1)将上述用蓝色字显示的语句改为“ int peremiter;int area;”,比较两次实验结果有什么不同,为什么?2)比较用define和const定义符号变量的格式和优缺点4、阅读下面的程序,写出执行结果。
然后上机调试,比较结果的正确性。
(有错误改正后运行)(1)#include<iostream>using namespace std;int main(){int a = 40;int b = 4;int c = 4;a = (b == c);//一个 = 号表示赋值,两个 = = 表示判断两面的值是否相等,是的话为1,否的话为0cout << "( 前面的 ) a = " << a << endl;a = a == (b = c);cout << "( 经过改变后的 ) a = " << a << endl;return 0;}(2)#include<iostream>using namespace std;int main(){int a = 0;int b = 0;int c = 0;a =b = 2;c = 3;b = a++ - 1;cout << "(第一次) a = " << a << ",b = " << b << endl;b = ++a - 1;cout << "(第二次) a = " << a << ",b = " << b << endl;b = c-- + 1;cout << "(这时的) b = " << b << ",第一次:c = " << c << endl;b = --c + 1;cout << "(这时的) b = " << b << ",第二次:c = " << c << endl;return 0;}(3)#include<iostream>using namespace std;int main(){int a = 1 ;int b = 2 ;int x = 0 ;int y = 0;cout << (a++ + ++b) << endl;//a = 2,b = 3cout << (a % b) << endl;x = ! a > b; //!表示“非”的意思//x = 0y = x-- && b;//两个&&表示“与”(而且)的意思,这里用来判断,两边都同时为真(或假)的时候为1,否则就为0cout << x << endl;cout << y << endl;return 0;}(4)#include <iostream>using namespace std;int main(){ int i = 0;int j = 0;int m = 0;int n = 0;i = 8;j = 10;m = ++i;n = j++;n = (++i) + (++j) + m;cout << i << '\t' << j << '\n';cout << m << '\t' << n << '\n';return 0;}(5)#include <iostream>#include <string>using namespace std;int main(){{string s = "a string";{string x = s + ", really";cout << s << endl;}cout << x << endl;}return 0;}5、求出下列算术表达式的值,并上机验证结果。