C语言程序设计实验指导书Word文档下载推荐.docx
- 文档编号:246831
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:28
- 大小:28.20KB
C语言程序设计实验指导书Word文档下载推荐.docx
《C语言程序设计实验指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。
sum=a+b;
printf(“sumis%d\n”,sum);
3)编译并分析运行结果。
6、输入并运行一个需要再运行时输入数据的程序:
main()
{inta,b,c;
printf(“inputa&
b:
”);
scanf(“%d,%d”,&
a,&
b);
c=max(a,b);
printf(“max=%d”,c);
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
return(z);
3)编译并运行,在运行时从键盘输入整数2和5,回车,按Alt和F5键,观察运行结果;
4)将程序中的第2行改为:
inta;
b;
c;
再进行编译,观察结果。
5)将子程序max的第3、4两行合并为一行,即:
再进行编译和运行,分析结果;
7、把上述内容在VC++6.0再次实现一次。
实验二数据类型、运算符和表达式
一、实验目的
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、输入并运行下列程序:
{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、输入并运行下面的程序:
{inta,b;
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,d);
c=a=e;
d=b=f;
请对照程序和运行结果分析:
1)将一个负整数赋给一个无符号的变量,会得到什么结果;
2)将一个大于32767的长整数赋给整型变量,会得到什么结果;
3)将一个长整数赋给无符号变量,会得到什么结果。
4、输入下列程序:
{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、要将“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’,并输出。
要求:
1)输入事先已编好的程序,运行该程序,分析是否符合要求;
2)改变c1、c2、c3、c4、c5的初值为:
‘T’、‘o’、‘d’、‘a’、‘y’,对译码规律作如下补充:
‘W’用‘A’代替,‘X’用‘B’代替,‘Y’用‘C’代替,‘Z’用‘D’代替。
修改并运行程序;
3)将译码规律修改为:
将字母用它前面的第4个字母代替,例如‘E’用‘A’代替。
修改并运行程序。
实验三顺序结构程序设计
1、掌握C语言中使用最多的一种语句——赋值语句的使用方法;
2、掌握C语言中最简单的一种结构——顺序结构程序设计方法;
1、掌握各种格式转换符的正确使用方法
1)输入程序
{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsiguldintp,q;
a=61;
b=62;
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行:
b=62;
c1=a;
c2=b;
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、编写程序:
设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果。
输出时要有文字说明,取小数点后两位数字。
3、编写程序:
用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用这两个函数输出字符的特点。
4、书上例题及习题。
实验四分支结构程序设计
1、了解C语言表示逻辑量的方法(以0代表假,以非0代表真);
2、学会正确使用逻辑运算符和逻辑表达式;
3、熟练掌握if语句和switch语句;
4、结合程序掌握一些简单的算法;
5、学习调试程序。
本实验要求事先编好程序,然后上机输入程序并调试运行:
1、有一函数:
x(x<
1)
y=2x—1(1≤x<
10)
3x—11(x≥10)
用scanf函数输入x的值,求y的值。
2、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
要求:
1)用switch语句实现。
2)运行程序,输入一个负值(如-78),查看结果。
修改程序,使当用户输入的数值不在0-100之间时,显示“输入数据错误!
”的提示。
3、给一个不多于5位的正整数,要求:
1)求出它是几位数;
2)分别打印出每一位数字;
3)按逆序打印出各位数字。
(测试要求:
1-5位的数字都要测试;
负数和大于5位的正整数也要测试)
4、输入4个整数,要求按由小到大的顺序输出。
得到正确结果后,修改程序使之按由大到小的顺序输出。
5、书上例题及习题。
实验五分支结构的嵌套
1、熟练掌握分支结构程序设计的方法;
2、掌握分支结构的嵌套方法;
3、结合程序掌握一些简单的算法;
用if语句实现以下程序:
1、实现一个简单的能实现+、—、*、/四则运算的计算机的功能。
2、
有一函数:
3、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
4、书上例题及习题。
实验六循环结构程序设计
1、熟练掌握循环结构程序设计的方法;
2、掌握循环结构的嵌套方法;
3、结合程序掌握一些常用的算法;
编程序并上机调试运行:
1、输入两个正整数m和n,求它们的最大公约数和最小公倍数。
1)输入的值m>
n,观察结果是否正确;
2)再输入的值m<
3)修改程序,不论m和n为何值(包括负整数),都能得到正确结果。
2、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
3、输入一行字符,分别统计出其中的大小写英文字母、空格、数字和其它字符的个数。
4、用牛顿迭代法求方程2x3—4x2+3x—6=0在1.5附近的根。
1)在得到正确结果后,请修改程序使所设的x初值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果由没有影响,为什么?
2)修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响;
5、猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;
第二天又将剩下的桃子吃掉一半,又多吃了一个。
以后每天都吃了前一天剩下的一半多一个。
到第10天再吃时,只剩下一个桃子了。
求第一天共摘了多少个桃子。
6、修改第5题的题目为:
每天吃了前面一天的一半后多吃了两个。
修改程序,并运行。
7、书上例题及习题。
实验七数组的使用
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2、掌握字符数组和字符串函数的使用;
3、掌握与数组有关的算法;
编程并上机调试运行:
1、用选择法对10个整数排序。
10个整数用scanf函数输入。
2、有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
这15个数用赋初值的方法在程序中给初。
要找的数用scanf函数输入。
3、将两个字符串连接起来,不用strcat函数。
4、找出一个二维数组的“鞍点”,既该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
可设置如下的测试数组:
1)有鞍点:
2)没有鞍点:
9
80
205
40
90
-60
96
1
210
-3
101
89
90
196
45
54
156
7
用scanf函数从键盘输入数组个元素的值,检查结果是否正确。
题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。
因此,从理论上来说,应当准备许多种不同行数和列数的数组,但这样的工作量太大,一般来说不需要这样,只需准备典型的数据即可。
如果已指定了数组的行数和列数,可以在程序种对数组元素赋初值,而不必用scanf函数。
请修改并实现。
4、书上例题及习题。
实验八函数的使用
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递”的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法;
5、学习对多文件程序的编译和运行。
编程并上机调试运行。
1、写一个判别素数的函数。
在主函数输入一个整数,输出是否素数的信息。
2、用一个函数来实现将一行字符串中最长的单词输出。
此行字符串从主函数传递给该函数。
3、用递归法将一个整数n转换成字符串。
例如:
输入数字483,输出字符串“483”。
4、求两个整数的最大公约数和最小公倍数。
用一个函数求最大公约数,用另一个函数根据求初的最大公约数求最小公倍数。
5、写一函数,输入一个十六进制数,输出相应的十进制数。
6、书上例题及习题。
实验九指针
1、掌握指针的概念,会定义和使用指针变量;
2、能正确使用数组的指针和指向数组的指针变量;
3、能正确使用字符串的指针和指向字符串的指针变量;
4、能正确使用指向函数的指针变量;
5、了解指向指针的指针的概念及其使用方法;
1、输入三个整数,按由小到大的顺序输出,然后将程序改为:
输入三个字符串,按由小到大的顺序输出;
2、将一个3*3的矩阵转置,用一函数实现。
在主函数种用scanf函数输入以下矩阵元素:
135
7911
131519
将数组名作为函数实参,在执行函数的过程种实现矩阵转置,函数调用结束后在主函数种输出已转置的矩阵。
3、有n个人围成一圈,顺序排号。
从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。
问最后留下的是原来第几号的那位。
4、用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:
intstrcmp(char*p1,char*p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;
如果s1≠s2,则返回他们二者第一个不相同字符的ASCII码差值。
如果s1>
s2,则输出正值,如果s1<
s2,则输出负值。
两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。
5、写一个用矩形法求定积分的通用函数,分别求:
,
说明:
sin、cos、exp已在系统的数学函数库中,程序开头要用#include<
math.h>
。
6、用指向指针的指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N和各整数在主函数中输入,最后在主函数中输出。
实验十文件
1、掌握文件以及缓冲文件系统、文件指针的概念。
1、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。
设5名学生的学号、姓名和3门课成绩如下:
99101Wang89,98,67.5
99103Li60,80,90
99106Fun75.5,91.5,99
99110Ling100,50,62.5
99113Yuan56,68,71
在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。
2、将上题stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stud-sort中。
在向文件stud-sort写入数据后,应检查验证stud-sort文件中的内容是否正确。
3、对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。
程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。
要插入的学生数据为:
99108Xin90,95,60
在向文件stud-new写入数据后,应检查验证stud-new文件中的内容是否正确。
实验报告:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 指导书