C语言程序设计实验指导书vc版1Word文档格式.docx
《C语言程序设计实验指导书vc版1Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书vc版1Word文档格式.docx(100页珍藏版)》请在冰豆网上搜索。
voidprnstr(char*s)
prinf(”我是个%s\n”,s);
编译此文件。
然后建立sy1-3.c文件。
内容如下:
#include“sy1-3.h”
printf(”欢迎您使用C语言!
\n”);
prnstr(“大学生”);
printf(”我喜欢C语言!
编译此文件、连接、运行,并记录结果。
4、多文件编辑,设文件名为sy1-4.c和sy1-41.c。
sy1-4.c文件的内容:
include<
voidmain()
a+b=%d"
sy1-41.c文件的内容
请编译这两个文件,并连接、运行(请事先建立一个工程,具体步骤请参考“三、实验指导”)。
注意:
在输入以上程序时,可故意漏打或打错几个字符,然后进行编译,仔细分析编译信息窗口,识别所显示的错误,逐个修改,直到不出现错误。
5、运行自己编写的程序
输入a、b、c三个整数,输出其中最大者。
仿照教材上的例题编写程序或者自己编写新的程序进行练习。
三、实验指导
1、启动VisualC++6.0开发环境
从“开始“菜单中选择“程序”—MicrosoftVisualStudio6.0—MicrosoftVisualC++6.0,显示VisualC++6.0开发环境窗口。
2、创建一个项目或工程(Project)
(1)单击“文件”菜单中的“新建”选项,显示“新建”对话框(如图1-1所示)
(2)单击“工程”标签,在“工程”选项卡中,选择“Win32ConsoleApplication”(Win32控制台应用程序)。
在“位置”文本框中指定一个路径,在“工程”文本框中为项目输入一个名字如lab1-1,单击““确定按纽。
(3)在弹出的Win32ConsoleApplication-Step1of1对话框选择AnEmptyProject单选项,然后单击“完成”按纽(如图1-2所示)。
(4)最后在NewProjectInformation对话框单击“完成”按纽,完成项目的建立。
3、建立C++源程序文件
(1)选择菜单命令“工程”—“添加工程”—“新建”,弹出对话框。
(2)如图1-3所示,在“新建”对话框的“文件”选项卡中选择“C++SourceFile”,并填入文件名称如:
lab1-1,单击“确定”按纽,完成新建C++源程序文件。
4、编辑C++源程序文件内容
(1)在文件编辑窗口中输入代码(如图1-4所示)。
(2)选择“文件”菜单—“保存”命令。
5、建立并运行可执行程序
(1)选择菜单命令“编译”—lab1-1.cpp,编译程序。
如果程序有语法错误,则屏幕下方的状态窗口中会出现错误信息,根据这些错误信息对源程序进行修改后,重新编译。
(2)选择菜单运行命令“编译”—“执行lab1-1.exe”运行程序,观察屏幕的显示内容。
图1-1New对话框
图1-2创建控制台应用程序第一步
图1-3添加新的源程序文件
图1-4在文件编辑窗口中输入代码
6、关闭工作空间
选择“文件”菜单—“关闭工作区”,即可关闭当前工作区。
实验2数据类型、运算符和表达式
1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2、掌握不同类型数据之间赋值的规律。
3、学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
4、进一步熟悉C程序的编辑、编译、连接和运行的过程。
1、输入并运行下面的程序
{
charc1,c2;
c1='
a'
;
c2=‘b’;
printf(“%c%c\n”,c1,c2);
(1)运行此程序。
(2)再此基础上增加一个语句:
printf(“%d%d\n”,c1,c2);
再运行,并分析结果。
(3)再将第2行改为:
intc1,c2;
再使之运行,并观察结果。
(4)再将第3、4行改为:
c1=a;
/*不用单撇号*/
c2=b;
再使之运行,分析其运行结果。
(5)再将第3、4行改为:
c1=”a”;
/*用双撇号*/
c2=”b”;
(6)再将第3、4行改为:
c1=300;
/*用大于255的整数*/
c2=400;
2、输入并运行以下程序(BX2.6)
charc1=‘a’,c2=‘b’,c3=‘c’,c4=‘\101’,c5=‘\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
3、输入并运行下面的程序
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,a,b);
printf(“%u,%u\n”,c,b);
c=a=e;
d=b=f;
printf(“%u,%u\n”,c,d);
请对照程序和运行结果分析:
(1)将一个负整数赋给一个无符号的变量,会得到什么结果。
(2)将一个大于32767的长整数赋给整型变量,会得到什么结果。
(3)将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。
同学们可以改变程序中各变量的值,以便比较。
例如:
a=65580,b=-40000,e=65535,f=65580。
4、输入以下程序(BX2.16)
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
(1)运行程序,注意i、j、m、n各变量的值,分别作以下改动并运行。
(2)将第4、5行改为:
m=i++;
n=++j;
再运行。
(3)将程序改为:
inti,j;
printf(“%d,%d”,i++,j++);
(4)在(3)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
(5)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
(6)将程序改为:
inti,j,m=0,n=0;
m+=i++;
n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
5、按要求编写程序并上机运行
(1)要将”China”译成密码,译码规律是:
用原来字母后面的第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。
因此,”China”应译为”Glmre”。
请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’、,并输出。
(BX2.7)
①输入事先已编好的程序,并运行该程序。
分析是否符合要求。
②改变c1、c2、c3、c4、c5的初值为:
’T’、’o’、’d’、’a’、’y’,对译码规律作如下补充:
’W’用’A’代替,’X’用’B’代替,’Y’用’C’代替,’Z’用’D’代替。
修改程序并运行。
③将译码规律修改为:
将字母用它前面的第4个字母代替,例如:
’E’用’A’代替,’Z’用’U’代替,’D’用’Z’代替,’C’用’Y’代替,’B’用’X’代替,’A’用’V’代替。
(2)已知两个电阻分别为10欧姆和20欧姆,求并联后电阻的值。
提示:
1/R=1/R1+1/R2
实验3最简单的C程序设计
1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
1、掌握各种格式转换符的正确使用方法
(1)输入程序
inta,b;
floatd,e;
doublef,g;
longm,n;
unsignedintp,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(“a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2,d,e);
printf(“f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n”,f,g,m,n,p,q);
(2)运行此程序并分析结果。
(3)在此基础上,修改程序的第8-13行:
d=f;
e=g;
p=a=m=50000;
q=b=n=-60000;
运行程序,分析结果。
(4)改用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,37678,40000↙
请分析运行结果(说明:
lf和ld格式符分别用于输入double型和long型数据)。
(5)在(4)的基础上将printf语句改为:
printf(“a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.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);
运行程序。
(6)将p、q改用%o格式符输出。
(7)将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
2、按要求编写程序
(1)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果。
输出时要有文字说明,取小数点后两位数字。
(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
(3)由键盘输入底和高,求三角形的面积。
(4)求平面上任意两点之间的距离。
点(x1,y1)到点(x2,y2)的距离公式为:
d=
(5)输入两个数为两个变量赋值,然后将两个变量的值互相交换。
(6)输入一个四位数,反序输出这个数。
如:
输入1357,则打印1、3、5、7及7531。
N-S图如下:
(SA1.5)
输入一个四位数如x
取千位数a=x/1000
取百位数b=(x-a*1000)/100
取十位数
取个位数
输出各位数
输出反序数
实验4逻辑结构程序设计
1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if语句和switch语句。
4、结合程序掌握一些简单的算法。
5、学习调试程序。
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
1、对于如下函数:
用scanf函数输入x的值,求y值。
(BX4.5)
运行程序,输入x的值(分别为x<
1、1≤x<
10、x≥10三种情况,如0.5、8、15),检查输出的y值是否正确。
2、从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。
学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。
要求在输入负数时,给出错误提示。
①事先编好程序,要求分别用if语句和switch语句实现。
运行程序,并检查结果是否正确。
②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。
修改程序,使之能正确处理任何数据。
当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。
3、给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别打印出每一位数字;
③按逆序打印出各位数字,例如:
原数据为321,应输出123。
(BX4.6)
应使用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数分别作为测试数据进行测试。
除此之外,程序还应当对不合法的输入作必要的处理。
当输入负数时或输入的数超过5位(如123456)数时。
4、输入4个整数,要求按由小到大的顺序输出。
5、根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型(等边、等腰、直角、一般三角形)。
6、输入两个字符,如果先输入的字符大则输出1,否则输出0(不允许使用if语句)。
7、输入某职工的工资,根据不同档次扣除工资所得税,然后计算实发工资。
扣税标准如下:
(1)
(1)若工资低于850元,则不扣税。
(2)
(2)若工资在850元至1500之间,则扣税比例为1%。
(3)(3)若工资在1500元至2000之间,则扣税比例为1.5%。
(4)(4)若工资高于2000元,则扣税比例为2%。
8、编写一个菜单显示程序,界面如下:
---------------------------------------------------
主菜单
1.添加记录2.显示记录
3.读取记录4.保存记录
----------------------------------------------------
请选择1-4,0退出:
输入1-4可以进行相应的显示,如输入1则显示“你选择了1”,输入2则显示“你选择了2”等,当输入0-4之外的数据时,显示“选择错误!
”。
9、编程实现2个浮点数的四则运算,如输入:
4.0*5.2,则打印出:
4.0*5.2=20.8
(LFZ75)
实验5循环控制
1、掌握用while语句,do-while语句和for语句实现循环的方法。
2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
3、进一步学习调试程序的技巧。
编程序并上机调试运行。
1、输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(BX5.1)
在运行时,输入的值m>
n,观察结果是否正确。
再输入时,使m<
修改程序,不论m和n为何值(包括负整数),都能得到正确结果。
2、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
(BX5.2)
在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。
3、猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘了多少桃子。
(BX5.8)
在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。
请修改程序,并运行,检查结果是否正确。
4、用for语句求1到100中是3的倍数的数的和。
(LL3.3)
5、从键盘输入整数,分别计算所输入的正整数的和、负整数的和。
当输入0时,结束输入并输出计算结果。
(SA2.6)
6、编写一个选票统计程序,四个候选人分别用字母A、B、C、D表示,现有20个人进行投票,每人只能选A、B、C、D四人中的一人。
(SA2.7)
参考下面的N-S图
a=b=c=d=0
i=1
读入字符到ch,根据ch的值不同分别进行累加
ch=’A’
ch=’B’
ch=’C’
ch=’D’
a=a+1
b=b+1
c=c+1
d=d+1
直到i>
100
输出得票数a,b,c,d
7、输入一个4位数,要求逆序打印每一位数字,并打印逆序整数,要求使用循环完成。
请考虑:
如不限定几位数(即只要不超过整数范围),应如何修改程序。
(SX2.3)
8、将实验四的菜单程序,改成可循环选择,直到输入0结束程序。
9、打印1!
+2!
+3!
+……+20!
之和。
(BX5.4)
10、打印出所有的“水仙花”数,“水仙花”数是指一个3位数,其各位数字的立方之和等于该数本身。
如153。
(BX5.5)
11、打印数列2/1,3/2,5/3,8/5,13/8,21/13……的前20项之和。
(BX5.7)
12、打印九九乘法表。
13、打印下列各种图案。
(分别使用递增循环和递减循环完成)
*
***
******
*********
***
*******
*****
*********
*****
***
给
13、给出任意一个正整数,要求:
(1)求它是几位数
(2)按逆序打印出各位数字,例如原数字为321,应输出123。
(3)打印各位数字之和。
实验6数组
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2、掌握字符数组和字符串函数的使用;
3、掌握与数组有关的算法(特别是排序算法)。
1、用选择法对10个整数排序。
10个整数用scanf函数输入。
(BX6.2)
2、有15个数存放在一个数组中,输入一个数,要求查找该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
以15个数用赋初值的方法在程序中给出。
要找的数用scanf函数输入。
3、将两个字符串连接起来,不要用strcat函数。
(BX6.11)
4、找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。
数组也可能没有鞍点。
(BX6.7)
应当至少准备两组测试数据:
①二维数组有鞍点
98020540
90-60961
210-310189
②二维数组没有鞍点
98020540
90-601961
45541567
用scanf函数从键盘输入数组各元素的值,检查结果是否正确。
题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。
因此,需在程序中使用scanf输入行数和列数。
如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。
5、改用数组实现实验五第5题(统计选票)。
技巧是把下标与候选人对应的字母相统一,大大减化了程序。
6、打印出以下的杨