第7章 C语言实验C语言实验的基本操作内容包括C语言编程环境Visual C++ 6.0 (VC6) 的使用;数据类型和输入输出;顺序结构程序设计;分支结构程序设计;循环结构程序设计;数组和字符串;函数的使用;指针的使用;结构体的使用和文件编程通过这些实验,熟练掌握C语言的基本程序设计方法实验重点l 熟练掌握C语言的编程环境Visual C++ 6.0 ;l 熟练掌握各种数据类型和数据的输入和输出;l 熟练掌握顺序结构程序设计;l 熟练掌握分支结构程序设计;l 熟练掌握循环结构程序设计;l 熟练掌握数组和字符串的使用;l 熟练掌握函数的定义和调用;l 熟练掌握指针的使用;l 熟练掌握结构体的编程;l 熟练掌握文件的使用;实验1 C语言编程环境Visual C++ 6.0的使用实验【实验目的】Visual C++ 6.0拥有简洁方便的C语言集成开发功能本实验的目的包括:(1)熟练掌握Visual C++ 6.0 的编程环境;(2)熟练掌握C语言程序的编辑、编译、链接和运行等过程;【先期知识】(1)熟练掌握中英文的输入;(2)熟练掌握Windows的系统的使用方法;【实验内容】(1) 在Visual C++ 6.0 下建立C语言程序项目提示:Visual C++ 6.0 虽然是Windows平台下C++的编译器,但与标准的ANSI C兼容。
在Visual C++ 6.0 进行C语言程序开发的步骤如下:① 打开Visual C++ 6.0 集成开发工具;② 选择“File”菜单,并在其下拉菜单中选择“New”,在屏幕上弹出的“New”对话框中选择“Projects”标签③ 在“Projects”标签的面板中,选择工程类型为“Win32 Console Application”,同时在对话框的右边输入工程名字(Project name)和项目文件存放的路径(Location);然后单击“OK”按钮,Visual C++ 6.0 会弹出项目设置对话框④ 在“Win32 Console Application – Step 1 of 1”对话框中,选择“An empty project”,然后单击“Finish”,完成项目的创建⑤ 再次选择“File”菜单中的“New”菜单项,并在“New”对话框中选择“Files”标签,打开“Files”标签的面板⑥ 在“Files”标签的面板中,选择文件类型为“C++ Source File”,并在对话框的右边输入源文件名(File),如“Hello”,单击“OK”按钮就可以进入C语言程序编辑环境。
Visual C++ 6.0 开发环境以项目(Project)为组织单位,每个项目下面可以包含一个或多个C语言源文件因此在编写一个C语言程序前,需要先创建对应的项目,然后创建对应的C语言源文件2)C语言程序“Hello World”的开发编写一个C语言程序Hello.cpp,要求在控制台屏幕上打印出文字“Hello World”提示:开发步骤如下:① 在实验内容(1)的基础上,在编辑窗口中输入如下程序代码#include void main(){ printf("hello world!\n");}② 选择菜单“Build”中的“Build Hello.exe”菜单项,或者使用快捷键F7,进行编译(Compile)、链接(Link)如果下方的输出窗口没有显示编译和链接错误,则表示可执行文件Hello.exe已经生成,否则请仔细阅读错误信息,并根据错误信息重新编辑修改程序,并重新“Build”,直到没有错误为止③ 如果没有错误,选择“Build”中的“Execute Hello.exe”菜单项,或者使用快捷键Ctrl+F5,开始执行程序,系统会系统弹出程序执行的结果。
设计性实验】(1)在实验内容(1)和(2)的基础上,在屏幕上输出如下图案 * *** ***** ********提示:根据实验内容(1)(2)的操作,创建新的项目和C++源文件,并在编辑窗口中,输入如下程序代码:#include void main(){ printf(" *\n"); printf(" ***\n"); printf(" *****\n"); printf(" *******\n");}(2)VC6的程序调试方法在设计性实验(1)中,故意打错几个字符,或改变大小写,或输入全角字母等,并根据编译链接的错误信息逐一进行修改提示:在输出窗口,查看错误提示信息并双击对应的错误信息,系统会自动定位到源代码中可能的错误位置根据错误提示信息,对程序进行修改后,重新编译链接实验2 数据类型和输入输出实验【实验目的】(1)掌握C语言各种数据类型的变量定义和含义(2)熟练掌握各种基本数据类型的输入和输出(3)熟练掌握输入输出函数的使用方法【实验内容】(1)运行如下程序,观察各种数据类型的变量的输出结果。
include void main(){ int a, b; float f1, f2; char c1, c2; double d1, d2; long m, n; unsigned int p, q; a = 65; b = 65; c1 = 'a'; c2 = '\x42'; f1 = 3.14159265; f2 = -6.87; d1 = 3157.890121; d2 = 0.123456789; m = 50000; n = -60000; p = 32768; q = 40000; printf("int a=%d, b=%d\n", a, b); printf("char c1=%c, c2=%c\n", c1, c2); printf("float f1=%6.2f, f2=%6.2f\n", f1, f2); printf("double d1=%15.6lf, d1=%e, d2=%15.12g\n", d1, d2); printf("long m=%ld, n=%ld\n", m, n); printf("unsigned int p=%u, q=%u\n", p, q);}(2)运行如下程序,并按要求输入数据,观察程序的输出结果。
实验中,注意字符类型的输入特点,尝试去掉 fflush(stdin)语句后,观察输出结果;尝试输入不一样的数据,观察程序的输出结果;尝试将输入数据中的空格换成回车来输入,并观察输出结果;对整数的输出,尝试使用格式控制符%o、%x,并观察输出结果;对字符的输出,尝试使用 putchar(c1); putchar(c2); 并观察输出结果输入数据:65 66 回车ab回车3.14159265 -6.87 回车3157.890121 0.123456789 回车50000 -60000 37678 40000 回车程序清单:#include void main(){ int a, b; float f1, f2; char c1, c2; double d1, d2; long m, n; unsigned int p, q; printf("Input Data:"); scanf("%d%d", &a, &b); fflush(stdin); scanf("%c%c", &c1, &c2); scanf("%f%f", &f1, &f2); scanf("%lf%lf", &d1, &d2); scanf("%ld%ld", &m, &n); scanf("%u%u", &p, &q); printf("int a=%d, b=%d\n", a, b); printf("char c1=%c, c2=%c\n", c1, c2); printf("float f1=%6.2f, f2=%6.2f\n", f1, f2); printf("double d1=%15.6lf, d1=%e, d2=%15.12g\n", d1, d1, d2); printf("long m=%ld, n=%ld\n", m, n); printf("unsigned int p=%u, q=%u\n", p, q);}提示:① 在数值类型的输入时,多个数值之间用空格、TAB键或回车隔开;② 在字符类型的输入时,多个字符之间不要有任何其他字符,因为键盘的任何一次击键都会被认为是一次字符的输入,直到输入足够的字符后,按回车确认输入;(3)设计一个程序,用getchar 函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
提示:学习字符类型的输入输出方法程序清单如下#include void main(){ char c1, c2; c1 = getchar(); c2 = getchar(); printf("c1 = %c, c2 = %c\n", c1, c2); putchar(c1); putchar(c2);}(4)设计一个程序,要求输入圆的半径r(double类型)后,程序自动计算圆的周长和面积,并输出周长和面积提示:直接使用算术运算计算出面积,然后输出即可程序清单如下,注意PI的用法#include #define PI 3.14159265void main(){ double r, c, s; scanf("%lf", &r); c = 2 * PI * r; s = PI * r * r; printf("c = %lf, s = %lf", c, s);}(5)设计一个程序,当输入一个小写字符(a-z)后,程序自动输出对应的大写字符,以及大写字母对应的ASCII码值提示:字符类型可以和整数进行算术运算,小写字母减去32就变成了对应的大写字母。
程序清单如下include void main(){ char c; c = getchar(); c = c - 32; putchar(c); printf("\nASCII code:%d\n", c);}(6)分析下列程序的输出结果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=%d", i, j, m, n);}。