admin管理员组

文章数量:1533913

2024年3月26日发(作者:)

凯里学院 C语言程序设计 实验报告

××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩

合作者 实验日期 年 月 日

指导教师 评阅日期 年 月 日

实验二 数据类型、运算符和表达式

一、实验目的:

(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值

的方法,了解以上类型数据输出时所用的格式转换符。

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

自减(――)运算符的使用。

(3)掌握C语言的输入和输出函数的使用

(4)进一步熟悉C程序的编辑、编译、连接和运行的过程,学会使用step by step功能。

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

线

二、实验内容:

(1)输人并运行下面的程序

#include

void main()

{

char c1,c2;

c1='a';

c2='b';

printf("%c %cn",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

void main()

{

char c1,c2;

c1='a';

c2='b';

printf("%c %cn",c1,c2);

}

① 运行此程序。

程序结果为:

②在此基础上增加一个语句:

printf("%d %dn",c1,c2);

再运行,并分析结果。

③将第2行改为:

int c1,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

main ()

{

char c1='a',c2='b',c3='c',c4='101',c5='116';

printf("a%c b%ctc%ctabcn",c1,c2,c3);

printf("tb%c %cn",c4,c5);

}

分析输出结果:(短线代表空格数)

aa-bb---cc------abc

-------A-N

(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,d);

c=a=e;

d=b=f;

printf("%d,%dn",a,b);

printf("%u,%un",c,d);

}

线

请对照程序和运行结果分析:

①将一个负整数斌给一个无符号的变t,会得到什么结果。画出它们在内存中的表

示形式。

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

②将一个大于32767的长整数斌给整型变t,会得到什么结果。画出它们在内存中

的表示形式。

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

③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或

线

线

等于65535以及小于65535的情况)。画出它们在内存中的表示形式。

会出现从低位向高位截取16位,且第16位为符号位。大于截取,等于为零,小于不变。

读者可以改变程序中各变的值,以便比较。例如:a = 65580, b=-40000. e =

65535,f=65580。

(4)输人习题3. 10

#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);

}

①运行程序,注意i,j,m,n各变量的值。分别作以下改动并运行:

②将第6,7行改为:

m=i++;

n=++j;

再运行。

③将程序改为:

#include

void main()

{

int i,j;

i=8;

j=10;

printf("%d,%dn",i++,j++);

}

④在③的基础上,将printf语句改为:

printf("%d,%d,%d,%dn",i,j,++i,++j);

⑤再将printf语句改为:

printf("%d,%d,%d,%dn",i,j,i++,j++);

线

⑥将程序改为:

#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);

}

线

四、实验心得(体会):

通过本次C语言上机实验,我对计算机编程语言有了一定的体验。我对C

语言中各种数据类型及表达式的实用有了一定的了解。特别是关于自增自减运算

符的使用加深了印象。对C语言的学习,我将更加努力。

线

本文标签: 运行符号结果