C_lab1-2_运算符和表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1-2 数据类型、运算符和表达式【实验目的】
1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间赋值的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学表达式的程序表示方法。
5.掌握C语言标准输入输出库函数scanf、printf的调用形式,掌握scanf、printf函数中常用的格式控制字符,并正确使用scanf、printf函数进行数据输入
【实验内容】
Part1:基础练习(课堂练习)
1.填空:
1).C程序中数据有常量和变量之分,其中,用一个标识符代表一个常量的,称为符号常量。C语言规定在程序中对用到的所有数据都必须指定其数据类型,对变量必须先声明,后使用。
2).常量分为字面常量和符号常量两种。试比较这两种常量
3).C语言所提供的基本数据类型包括:单精度型﹑双精度型﹑字符型﹑整型﹑枚举型。
4).在C语言中的实型变量分为两种类型,它们是单精度浮点型float变量和双精度浮点型double变量。
5).假设所有变量均为整型数据,则表达式(a=2,b=5,a++,a+b)的值为_8__a=_3__b=_5__。
6).一个基本语句的最后一个字符是________;(分号)______________。
7).复合语句又称为分程序、程序块,是用_____{}_______括起来的语句。
8).写出下列数所对应的其他进制度数。
(32)D = (100000)B = ( 40)O = ( 20)H
(75)D = ( 1000111)B = (113 )O = ( 4b)H
9).设a和n为int型变量,且a的初值均为12,写出下面表达式运算后a的值
● a += a ___24___________
● a -=2 _____10_________
● a *= 2 +3 __60____________
● a /= a + a ___0___________
● a %= (n %= 2),n的值为5 ____0__________
● a += a -= a *= a ______0________
2.
3.以下程序的输出结果为_3.141500,3.142_________ _____。
#include
main()
{
printf(“%f,%4.3f\n”, 3.1415, 3.1415);
}
4.以下程序的输出结果为_120,170,78,x_____________。
#include
main()
{
char c=’x’;
printf(“c:dec=%d, oct=%o, hex=%x, char=%c\n”, c, c, c, c);
}
5.根据下图中的输出模式对四个字符串进行输出格式控制,请补充填写格式控制字符串,完成程序设计,并考虑,屏幕截图中分号的作用。
#include
main()
{
printf("12345678901234567890\n");
printf(" %14.8s;\n","GOODGOODSTUDY");
printf("%10.6s;\n","DAYDAYUP");
printf("%6.4s;\n ","GOODGOODSTUDY");
printf("%-8.3s;\n ","DAYDAYUP");
}
6.以下程序的功能如下图,用户在程序提示下键入一个字符b,则程序找出它的前驱字符和后继字符,并按ASCII码值,从小到大顺序输出这3个字符,以及这三个字符对应的ASCII码值。请于空处填写合适的表达式,完成程序设计。
#include
main()
{
char myChar;
printf("Please input a charactor between a and z: ");
scanf("%c", &myChar);
printf("%5c%5c%5c\n", myChar-1, myChar, myChar+1);
printf("%5d%5d%5d\n", myChar-1, myChar, myChar+1);
}
7.以下程序的功能是交换两个相同类型变量的值。试填空完成该程序设计。
#include
main()
{
int x, y, temp;
printf("Please input two integers here,like x,y: ");
scanf("%d,%d", &x, &y );
printf("before swap: x = %d, y = %d \n", x, y);
temp = x;
x = y;
y = temp;
printf("after swap : x = %d, y = %d\n", x, y);
}
8.上题是交换两个变量值的其中一种方法,其实现方法并不唯一,请尝试尽可能多的解决办法,试比较这些实现方法。
Part2:巩固提高(课后实践)
1.求下面算术表达式的值
a)设float x=2.5; int a=7; float y=4.7;
求:x + a % 3 * (int)(x + y) % 2 / 4 2.5
b)设int a=2; int b=3; float x=3.5; float y=2.5
求:(float)(a + b) / 2 + (int) x % (int) y 3.5
2.试阅读并分析程序,写出程序运行结果9,11,9,10
#include
main( )
{
int i, j, m, n;
i = 8;
j = 10;
m = ++i;
n = j++;
printf("i = %d, j = %d, m = %d, n = %d\n", i, j, m, n);
}
2.仔细辨析以下两个程序