实验1 数据类型、运算符和表达式
一、 实验目的
1. 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的
变量,掌握它们赋值的方法。
2. 掌握不同数据类型数据之间赋值的规律。
3. 学会使用C的有关算术运算符,以及包含这些运算符的表达式,
特别是自加(++)和自减(--)运算符的使用。
二、 实验内容
1. 变量a、b中各存有一个整数,交换两数后输出。 2. 从键盘输入一个字符,输出这字符的ASCII码的值。
3. 整形变量的用法。编辑运行下面的程序,在上机前先用人工分析
程序,写出应得结果,上机后将二者对照。
#include
int a,b;
unsigned c,d; long e,f; a = 100; b = -100; e = 50000; f = 32767; c = a; d = b;
printf(\, a, b); printf(\, a, b); printf(\, c, b); c = a = e; d = b = f;
printf(\, a, b); printf(\, c, d); return 0;
}
1
4. 基本输入输出函数的用法。编辑运行下面的程序,并根据执行结
果分析程序中各个语句的作用。
#include
float d, e; char c1, c2; double f, g; long m, n; unsigned int p, q; a=61; b=62; c1='a'; c2='b'; d=5.67; e=-6.78;
f=1234.56789; g=0.123456789; m=50000; n=-60000; p=32768; q=40000;
printf(\ printf(\ printf(\
printf(\ return 0;
}
三、 实验指导
1. 设a=10,b=20,若要交换这两数,则需要借用一中间变量。首先将a
中的数值存入变量t 中进行保存,然后将b中的数值存入a中,再将t中的数值存入b中。写出程序代码。
2
2. 一个整数,只要它的值在0—255之间,就以用字符形式输出,在输出
前,系统会将该整数转换为相应的ASCII码的字符;一个字符也可以用一个整数输出,输出的整数即为这字符的ASCII码值。 根据上面的分析,自己写出程序代码。 运行时:从键盘上输入字符:a
输出结果为_______,此结果代表着什么含义? 3. 请对照程序和运行结果分析:
(1). 将一个负整数赋给一个无符号的变量,会得到什么结果。画出它
们在内存中的表示形式。
(2). 将一个大于32767的 整数赋给整形变量,会得到什么结果。画
出它们在内存中的表示形式(在VC环境中,用short int )。 (3). 将一个 整数赋给无符号的变量,会得到什么结果(分别考虑该
整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式((在VC环境中,用short int ))。
同学们可以改变程序中各变量的值,以便比较。例如: a = 65580, b = -40000, e = 65535, f = 65580。
4. 基本输入输出函数的用法。
(1). 运行所给出的源程序,对照结果分析各语句的作用。 (2). 将程序中的第二、第三个printf语句修改为如下形式,然后运
行程序,察看结果。
printf(\ printf(\
(3). 将上述两个printf语句进一步修改为如下形式,然后运行程序,
察看结果。
printf(\ printf(\(4). 将程序的第10-15行修改为如下语句:
a=61;b=62; c1='a';c2='b';
f=1234.56789;g=0.123456789;
3
d=f;e=g;
p=a=m=50000;q=b=n=-60000; 运行程序,并分析结果。
(5). 修改(1)中的程序,不使用赋值语句,而用下面的scanf语句为
a、b、c1、c2、d、e输入数据:
scanf(\
? 请按照程序原来中的数据,选用正确的数据输入格式,为上述变
量提供数据。
? 使用如下数据输入格式,为什么得不到正确的结果?输入数据:
61 62 a b 5.67 -6.78
(6). 进一步修改⑸中使用的程序,使f和g的值用scanf()函数输入。 (7). 进一步修改上面的程序,使其他所有变量的值都改用scanf()函
数输入。 ? 参考程序 #include int main() {
int a, b; float d, e; char c1, c2; double f, g; long m, n; unsigned int p, q;
printf(\
scanf(\ printf(\ scanf(\ printf(\
scanf(\
printf(\
4
printf(\ printf(\
printf(\ return 0; }
? 数据输入格式
Input(a,b,c1,c2,d):61 62ab5.67 -6.78 Input(f,g):1234.567890 0.1234567890 Input(m,n,p,q):50000 -60000 32678 40000
(8). 修改(7)中的程序,使c1、c2的数据用getchar()函数输入,用
putchar()函数输出。
? 可按照如下方法修改程序:
将程序中的“scanf(\”语句用以下四个语句替换:
scanf(\c1=getchar(); c2=getchar(); scanf(\
? 使用与(7)相同的数据输入格式输入数据。
? 请分析:使用如下格式为a、b、c1、c2输入数据时会出现什么
结果?运行程序验证所分析的结论。 输入数据格式: 61 62 a b
四、 预习题(选择题)
1、不正确的C程序描述是 5