当前位置:文档之家› C语言程序设计实验报告实验数据类型运算符和表达式

C语言程序设计实验报告实验数据类型运算符和表达式

凯里学院C 语言程序设计实验报告 ×××××专业××年级××班,学号××××××姓名××成绩 合作者实验日期年月日 指导教师评阅日期年月日 实验二数据类型、运算符和表达式 一、实验目的: (1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

(2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。

(3)掌握C 语言的输入和输出函数的使用 (4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用stepbystep 功能。

(5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。

二、实验内容: (1)输人并运行下面的程序 #include<stdio.h> voidmain() { charc1,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>
voidmain()
{
charc1,c2;
c1='a';
c2='b';


线


线
printf("%c%c\n",c1,c2);
}
① 运行此程序。

程序结果为:
②在此基础上增加一个语句:
printf("%d%d\n",c1,c2);
再运行,并分析结果。

③将第2行改为:
intc1,c2;
再使之运行,并观察结果。

④再将第3行改为;
cl=a;/*不用单撇号*/
c2=b;
再使之运行,分析其运行结果。

分析:编译通不过,会显示a 、b 未被定义。

⑤再将第4,5行改为:
cl="a";/*用双撇号*/
c2="b";
再使之运行,分析其运行结果。

分析:编译通不过,有语法上的错误。

⑥再将第4,5行改为:
c1=300;/*用大于255的整数*/
c2=400;
再使之运行,分析其运行结果。

分析:字符型变量为一个字节,且为无符号型,字符会输出ASCII 表中44和144所对应的字符,而要将其转换为数字,会进行符号位扩展,则会输出44和-112。

(2)输人并运行教材第3章习题3.6给出的程序
#include<stdio.h>
main()
{
charc1='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\n",c4,c5);
}
分析输出结果:(短线代表空格数) aa-bb---cc------abc -------A-N
(3)输人并运行下面的程序
#include<stdio.h>
voidmain()
{ 装订线 装订线
inta,b; unsignedc,d; longe,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 ,会得到什么结果。

画出它们在内存中的表 示形式。

符号位会变成数位位,数值的绝对值增大。

②将一个大于32767的长整数斌给整型变t ,会得到什么结果。

画出它们在内存中 的表示形式。

会出现从低位向高位截取16位,且第16位为符号位。

③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或 等于65535以及小于65535的情况)。

画出它们在内存中的表示形式。

会出现从低位向高位截取16位,且第16位为符号位。

大于截取,等于为零,小于不变。

读者可以改变程序中各变的值,以便比较。

例如:a=65580,b=-40000.e= 65535,f=65580。

(4)输人习题3.10 #include<stdio.h> voidmain() { inti,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); }


线
①运行程序,注意i,j,m,n 各变量的值。

分别作以下改动并运行:
②将第6,7行改为:
m=i++;
n=++j;
再运行。

③将程序改为:
#include<stdio.h>
voidmain()
{
inti,j;
i=8;
j=10;
printf("%d,%d\n",i++,j++);
}
④在③的基础上,将printf 语句改为:
printf("%d,%d,%d,%d\n",i,j,++i,++j);
⑤再将printf 语句改为: printf("%d,%d,%d,%d\n",i,j,i++,j++);
⑥将程序改为:
#include<stdio.h>
voidmain()
{
inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;
n-=--j;
printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);
}
四、实验心得(体会):
通过本次C 语言上机实验,我对计算机编程语言有了一定的体验。

我对C 语言中各种数据类型及表达式的实用有了一定的了解。

特别是关于自增自减运算符的使用加深了印象。

对C 语言的学习,我将更加努力。

装订
线。

相关主题