实验3——顺序结构、基本输入输出函数的应用(第三周)
实验目的
1. 掌握C语言中赋值语句的使用,能正确地编写顺序结构的简单程序。 2. 掌握不同的类型数据之间赋值的规律。
学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(- -)运算符的使用。理解和掌握运算符的优先级和结合方向
3. 掌握C语言中各种数据的输入/输出方法,熟练的使用putchar()和 getchar()函数以及格式化的输入输出printf()和 scanf()函数,能正确使用各种格式转换符。
实验要点
C语言中的基本输入/输出语句 1. scanf()函数
一般格式:
scanf(“格式串”,地址表达式1[,地址表达式2,……,地址表达式n]);
2. printf()函数
一般格式:
printf(“格式串”,[表达式1,表达式2,……,表达式n]);
实验要求
1. 上机前编写好程序。
2. 上机输入和调试自己所编的程序并存在自己的目录中或软盘上。 3. 检查实验结果是否正确。
4. 下机时,退出VC++ 6.0 系统(第二轮同学并关机)。
实验内容
1、教材P83 习题4. 自己分析下面的程序:
在上机前先用人工分析程序,写出相应结果,上机后将二者对照。
#include
{ char c1,c2; c1=97; c2=98; printf(\ return 0; } ① 运行此程序后输出什么信息?为什么? ② 如果将程序第4、5行改为:
c1=197
c2=198 后的结果?为什么? ③ 将第3行改为:
int c1, c2;
再使之运行,并分析结果。为什么? ④ 再将第4、5行改为:
c1=a; /*不用单撇号*/ c2=b;
再使之运行,并分析其运行结果。 ⑤ 再将第4、5行改为:
c1=97; c2=98;
再使之运行,分析其运行结果。 ⑥ 再将第4、5行改为:
c1=300; /*用大于255的整数*/ c2=400;
再使之运行,并分析其运行结果。
上机检查:
2、 P83-84 编程序 习题6: 译密码问题
3、 P83-84 编程序 习题7: 求园周长等,要求用宏定义(符号常量)
或 常变量来表示圆周率。
第三章 补充题第2部分
一、 选择题
1.若int a, b; scanf(“%d%d”, &a, &b); 不可以用( )作为输入的分隔符。
A) , B)空格 C)回车 D)TAB键
2.阅读以下程序,当输入数据的形式是:25,13,10
scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); }
A) x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定的一个值 3.已知ch是字符型变量,下边正确的赋值语句是( )
A) ch= ?123?; B)ch=?\\xff?; C)ch=?\\08?; D) ch=”\\”; 4.设x,y均为float型变量,则以下不合法的赋值语句是( )
A)++x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0; 5. 若有float b;则sizeof(b)和sizeof(float)两种描述( )。
A)都正确 B)都不正确 C)前者正确 D)后者正确
二、填空题
1.转义序列\\n表示 符,它把光标定位 位置。
2.标准库函数 用来读取来自键盘的数据。 3. 写出一个程序显示从键盘送入的字符,不许用printf函数。 #include( ) void main()
{ ; ; ; }
4.输出一个实数,要求小数、整数部份各3位,靠左对齐,则应用的格式符号为 。 5. (a=4*5, b=a*2),b-a, a+=2 则表达式及a, b的值是__ ______。 6.若x为int型变量,则执行以下语句后x的值是( ) x=7;
x+=x-=x+x;
7.以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上
输出,完成以下填空,并把程序调通,写出运行结果。 main() {
int a; float b; char c;
scanf(“%d,%f,%c”,【 】); printf(“a=【 】\\n”,a); printf(“b=【 】\\n”,b); printf(“c=【 】\\n”,c); }
输入45,34.5,A
8.指出以下程序的错误并改正,并上机把程序调通。 void main() {
int a;
scanf(“%f”,a); printf(“a=%f, a); char c; c=A;
printf(“%f,c) }
改正如下:【
... ...
】
三、编程序:输入三位数,计算每位数字之和。
四、思考题:
格式化输入输出函数中的类型转换字符有哪些?含义是什么?
第三章 补充题第2部分
二、 选择题(红字为答案)
1. A) , B)空格 C)回车 D)TAB键
2. A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定的一个值 3. A) ch= ?123?; B) ch=’\\xff’; C) ch=?\\08?; D) ch=”\\”; 4. A) +x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0; 5. A)都正确
二、填空题
B)都不正确 C)前者正确 D)后者正确
1.转义序列\\n表示 换行 符,它把光标定位 在屏幕下一行的开始 位置。 2.标准库函数scanf() 用来读取来自键盘的数据。
3. 写出一个程序显示从键盘送入的字符,不许用printf函数。 #include( stdio.h ) void main()
{ char c ; c=getchar() ; putchar(c) ; }
4.输出一个实数,要求小数、整数部份各3位,靠左对齐,则应用的格式符号为 %-7.3f 。 5. (a=4*5, b=a*2),b-a, a+=2 则表达式及a, b的值是_表达式的值22、 a 的值22、b 的值40_。 6.若x为int型变量,则执行以下语句后x的值是( -14 )
7.以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出,….
scanf(“%d,%f,%c”,【 &a,&b,&c 】); printf(“a=【 %d 】\\n”,a); printf(“b=【 %f 】\\n”,b); printf(“c=【 %c 】\\n”,c); }
输入45,34.5,A
则: 输出 a=45
b=34.500000
c=A
8.指出以下程序的错误并改正,并上机把程序调通。
改正如下: void main() { int a; char c;
scanf(“%d”,&a); printf(“%d”,a); c=’A’;
printf(“%c”,c);
}
三、编程序:输入三位数,计算每位数字之和。 #include
int main ( ) {
int n,a,b,c,sum; printf(\ scanf ( \ a=n/100; b=n/10-a*10;
c=n; sum=a+b+c;
printf(\ return 0; }
如: Input n:678 运行结果:n=678,sum=21
三、 思考题:
答: ①printf()函数:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
②scanf函数:是用来从外部输入设备向计算机主机(内存变量)输入数据的。