辽宁工程技术大学上机实验报告
课程名称 实验题目 院系 姓名 软件学院 C语言上机实验课 顺序结构程序设计 专业 学号 软件工程 班级 实验日期 11.20 成绩 实验 目的 简述本次实验目的: 1、熟练掌握C语言中赋值语句的使用方法; 2、掌握格式输入输出scanf()函数、printf()函数的调用语法;整型、实型、字符型数据的输入输出格式。 3、掌握字符输入输出函数getchar()、putchar()函数的调用语法; 你为本次实验做了哪些准备: 熟悉scanf()函数和printf()函数的意义及用法、getchar()函数和putchar()函数的意义及用法、gets()函数和puts()函数的意义及用法。 实验 准备 实验 进度 本次共有 6 个练习,完成 4 个。 【练习一】从键盘输入两个 0 到 127 的整数,求两数的平方差并输出其值以及这两个整数的 ASCII 码对应的字符。 (1)算法分析:标准 ASCII 码值范围是 0 到 127,所以在这范围内的数可以以字符形式输出,实现方法是用格式输出函数并用格式符 c 控制输出 。 (2)源程序: #include
{ int a,b ; 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=3.56 ; e=-6.87 ; f=3157.890121 ; g=0.123456789 ; m=50000 ; n=-60000 ; p=32768 ; q=40000 ; printf(\ printf(\} (1)运行程序并分析结果。 (2)在此基础上,修改程序的第 10~15 行(即变量赋值部分)为: a=61; b=62; c1=a; c2=b; f=3157.890121; g=0.123456789 d=f; e=g; p=a=m=50000; q=b=n= - 60000; 运行程序,分析结果。 (3)改用 scanf 函数输入数据而不用赋值语句,scanf 函数如下: scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q); 输入的数据如下: 61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,32768,40000(回车) (说明:lf 和 ld 格式符分别用于输入 double 型和 long 型数据)分析运行结果。 (4)将 printf 语句改为: printf(“a=%d,b=%d\\nc1=%c,c2=%c\\nd=.6f,e=.12f\\n”, a,b,c1,c2,d,e); printf(“f=%f,g=%f\\nm=%d,n=%d\\np=%d,q=%d\\n”, f, g, m, n, p, q); 运行程序,分析结果。 (5)将 p、q 改用%o 格式符输出。 (6)将 scanf 函数中的%lf 和%ld 改为%f 和%d,运行程序分析结果。 对照程序和运行结果思考: (7)将一个负整数赋给一个无符号的变量,会得到什么结果。 (8)将一个大于 32767 的长整数赋给整型变量,会得到什么结果。 (9)将一个长整数赋给无符号变量,会得什么结果(分别考虑该长整数的值大于或等于 65535 以及小于 65535 的情况)。 【练习三】 调试训练 —— 改正下列程序中的错误,输入参数 a,b,c,求一元二次方程ax2+bx+c=0 的根。 #include
#include
(6)单击 Stop Debugging 按钮,程序调试结束。 【练习四】输入一个华氏温度,要求输出摄氏温度。公式为 c=5/9*(f-32)。 提示:注意 c=5/9*(f-32) 与 c=5.0/9.0*(f-32)的区别 【练习五】从键盘输入两个字符,要求输出这两个字符,并输出它们的 ASCII 码及其 ASCII码的平方和的平方根。(要求用上 getchar 和 putchar 函数) 提示:字符变量以它的 ASCII 码值参加运算;求平方根应用函数 sqrt,此函数存放在数学函数库中;求出的平方根可能不是整数。 【实验一】 【实验二】 (1) 实验 分析
(2) (3) (4)