C语言实验指导.docx

上传人:b****1 文档编号:1723597 上传时间:2023-05-01 格式:DOCX 页数:84 大小:101.01KB
下载 相关 举报
C语言实验指导.docx_第1页
第1页 / 共84页
C语言实验指导.docx_第2页
第2页 / 共84页
C语言实验指导.docx_第3页
第3页 / 共84页
C语言实验指导.docx_第4页
第4页 / 共84页
C语言实验指导.docx_第5页
第5页 / 共84页
C语言实验指导.docx_第6页
第6页 / 共84页
C语言实验指导.docx_第7页
第7页 / 共84页
C语言实验指导.docx_第8页
第8页 / 共84页
C语言实验指导.docx_第9页
第9页 / 共84页
C语言实验指导.docx_第10页
第10页 / 共84页
C语言实验指导.docx_第11页
第11页 / 共84页
C语言实验指导.docx_第12页
第12页 / 共84页
C语言实验指导.docx_第13页
第13页 / 共84页
C语言实验指导.docx_第14页
第14页 / 共84页
C语言实验指导.docx_第15页
第15页 / 共84页
C语言实验指导.docx_第16页
第16页 / 共84页
C语言实验指导.docx_第17页
第17页 / 共84页
C语言实验指导.docx_第18页
第18页 / 共84页
C语言实验指导.docx_第19页
第19页 / 共84页
C语言实验指导.docx_第20页
第20页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言实验指导.docx

《C语言实验指导.docx》由会员分享,可在线阅读,更多相关《C语言实验指导.docx(84页珍藏版)》请在冰点文库上搜索。

C语言实验指导.docx

C语言实验指导

实验2数据类型、运算符和表达式

一、实验目的

1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

2、掌握不同类型数据之间赋值的规律。

3、学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

4、进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容和步骤

1、输入并运行下面的程序

#include

voidmain()

{

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、输入并运行以下程序

#include

voidmain()

{

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、输入并运行下面的程序

#include

voidmain()

{

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,b);

c=a=e;

d=b=f;

printf(“%d,%d\n”,a,b);

printf(“%u,%u\n”,c,d);

}

请对照程序和运行结果分析:

(1)将一个负整数赋给一个无符号的变量,会得到什么结果。

(2)将一个大于32767的长整数赋给整型变量,会得到什么结果。

(3)将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。

同学们可以改变程序中各变量的值,以便比较。

例如:

a=65580,b=-40000,e=65535,f=65580。

4、输入以下程序

#include

voidmain()

{

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)将程序改为:

#include

voidmain()

{

inti,j;

i=8;

j=10;

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)将程序改为:

#include

voidmain()

{

inti,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);

}

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’、,并输出。

(课后3.7,p67)

(1)输入事先已编好的程序,并运行该程序。

分析是否符合要求。

(2)改变c1、c2、c3、c4、c5的初值为:

’T’、’o’、’d’、’a’、’y’,对译码规律作如下补充:

’W’用’A’代替,’X’用’B’代替,’Y’用’C’代替,’Z’用’D’代替。

修改程序并运行。

(3)将译码规律修改为:

将字母用它前面的第4个字母代替,例如:

’E’用’A’代替,’Z’用’U’代替,’D’用’Z’代替,’C’用’Y’代替,’B’用’X’代替,’A’用’V’代替。

修改程序并运行。

 

实验3最简单的C程序设计

一、实验目的

1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。

2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

3.掌握C语言的顺序结构程序设计

二、实验内容和步骤

1、掌握各种格式转换符的正确使用方法

(1)输入程序

#include

voidmain()

{

inta,b;

floatd,e;

charc1,c2;

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行:

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;

运行程序,分析结果。

(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)输入一个华氏温度,要求输出摄氏温度。

公式为:

c=5/9*(f-32)

注意:

将表达式转换为c语言中合法的表达式时,加减乘除运算有所不同

(4)求平面上任意两点之间的距离。

提示:

点(x1,y1)到点(x2,y2)的距离公式为:

d=

(5)输入两个数为两个变量赋值,然后将两个变量的值互相交换。

实验4逻辑结构程序设计

一、实验目的

1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2、学会正确使用逻辑运算符和逻辑表达式。

3、熟练掌握if语句和switch语句。

4、结合程序掌握一些简单的算法。

5、学习调试程序。

二、实验内容和步骤

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。

1、改错题。

给定程序MODI1.C的功能是:

对于如下函数:

 

用scanf函数输入x的值,求y值。

/*MODI1.C*/

#include

voidmain()

{

intx,y;

/***********found***********/

scanf("%d",x);

if(x<1)

y=x;

/***********found***********/

elseif(1<=x<10)

y=2*x-1;

else

y=3*x-11;

printf("y=%d\n",y);

}

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要随意改动程序,不得增行或删行,也不得更改程序的结构!

修改程序后,运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况,如0.5、8、15),检查输出的y值是否正确。

2、从键盘输入某学生的考试成绩,要求输出成绩等级A、B、C、D、E。

学生的成绩可分成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、输入3个整数,要求按由小到大的顺序输出。

5、根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型(等边、等腰、直角、一般三角形)。

6、输入某职工的工资,根据不同档次扣除工资所得税,然后计算实发工资。

扣税标准如下:

(1)若工资低于850元,则不扣税。

(2)若工资在850元至1500之间,则扣税比例为1%。

(3)若工资在1500元至2000之间,则扣税比例为1.5%。

(4)若工资高于2000元,则扣税比例为2%。

7、编写一个菜单显示程序,界面如下:

---------------------------------------------------

主菜单

1.添加记录2.显示记录

3.读取记录4.保存记录

----------------------------------------------------

请选择1-4,0退出:

输入1-4可以进行相应的显示,如输入1则显示“你选择了1”,输入2则显示“你选择了2”等,当输入0-4之外的数据时,显示“选择错误!

”。

8、以下给定程序MODI1.C的功能是:

输入一个年份,判断该年是否为闰年。

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

请改正程序中的错误,使它能得出正确的结果。

注意:

程序中的其它地方不要随意改动,不得增行或删行,也不得更改程序的结构!

#include

voidmain()

{intyear,leap;

printf("Pleaseenterayear:

");

scanf("%d",&year);

/*************found**************/

if(year%4==0)leap=0;

elseif(year%100!

=0)leap=1;

elseif(year%400!

=0)leap=0;

elseleap=1;

if(leap)

/*************found**************/

printf("%disaleapyear\n",year)

else

printf("%disnotaleapyear\n",year);

}

9、以下给定程序FILL1.C的功能是:

实现2个浮点数的四则运算,如输入:

4.0*5.2,则打印出:

4.0*5.2=20.8

程序有两个空

(1)、

(2)需要补充完整。

请将程序中的____

(1)____和____

(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。

注意:

不要随意改动程序,不得增行或删行,也不得更改程序的结构!

/*FILL1.C*/

#include

voidmain()

{

floatd1,d2;

charop;

printf(“输入d1opd2”);

scanf(“%f%c%f”,&d1,&op,&d2);

switch(op)

{

floattemp;

case‘+’:

/**************found************/

temp=

(1);

printf(“%f%c%f=%f”,d1,op,d2,temp);

break;

case‘-’:

temp=d1-d2;

printf(“%f%c%f=%f”,d1,op,d2,temp);

break;

case‘*’:

temp=d1*d2;

/************found************/

(2);

break;

case‘/’:

temp=d1/d2;

printf(“%f%c%f=%f”,d1,op,d2,temp);

break;

default:

printf(“错误!

\n”);

}

}

实验5循环控制

(一)

一、实验目的

1、掌握用while语句,do-while语句和for语句实现循环的方法。

2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

3、进一步学习调试程序的技巧。

二、实验内容和步骤

编程序并上机调试运行。

1、以下程序PROG1.C的功能是:

求[1,100]之间所有不能被3整除的整数之和。

部分源程序存在文件PROG1.C中,请将运算结果存入变量s中。

请在/*******begin********/与/********end*********/之间填入你编写的若干语句,存盘并运行,直到得出正确结果。

请勿改动其它位置的任何内容。

/*PROG1.C*/

#include"stdio.h"

#include"math.h"

#include"conio.h"

#include"stdlib.h"

voidmain()

{inti,s;

/***********begin***********/

/************end************/

printf("s=%d\n",s);

}

2、以下给定程序FILL1.C的功能是:

从键盘输入整数,分别计算所输入的正整数的和、负整数的和。

当输入0时,结束输入并输出计算结果。

程序有两个空

(1)、

(2)需要补充完整。

请将程序中的____

(1)____和____

(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。

注意:

不要随意改动程序,不得增行或删行,也不得更改程序的结构!

/*FILL1.C*/

#include

voidmain()

{intx,sum1,sum2;

/**************found************/

(1)

scanf("%d",&x);

while(x!

=0)

{/**************found************/

(2)

sum1+=x;

else

sum2+=x;

scanf("%d",&x);

}

printf("sumof>0is%d\n",sum1);

printf("sumof<0is%d\n",sum2);

}

3、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。

4、以下给定程序MODI1.C的功能是:

猴子吃桃问题。

猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃一个;第二天早上将剩下的桃子吃掉一半又多吃一个,到第10天的早上,只剩下一个桃子,求第一天共摘了多少桃子。

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

请改正程序中的错误,使它能得出正确的结果。

注意:

程序中的其它地方不要随意改动,不得增行或删行,也不得更改程序的结构!

voidmain()

{inti,j,x,p;

x=1;

/************found************/

j=10;

while(j>=1)

{p=(x+1)*2;

/************found************/

p=x;

j--;

}

printf("totalis%d\n",p);

}

在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。

请修改程序,并运行,检查结果是否正确。

5、将实验四第7题的菜单程序改成可循环选择,直到输入0结束程序。

6、以下给定程序MODI1.C的功能,是打印一个如下的九九乘法表的一部分:

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

请改正程序中的错误,使它能得出正确的结果。

注意:

程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!

/*MODI1.C*/

#include

voidmain()

{inti,j,k;

for(i=1;i<=4;i++)

/************found************/

{for(j=1;j<=4;j++)

printf("%3d*%3d=%3d",i,j,i*j);

/************found************/

printf("n");

}

}

7、以下给定程序MODI1.C的功能是:

已知一元以下的硬币中有一角、二角、五角三种面值,列举出将一元兑换成硬币的所有兑换方法。

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

程序中变量i,j,k分别存放五角、二角、一角面值硬币的数量。

请改正程序中的错误,使它能得出正确的结果。

注意:

程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!

/*MODI1.C*/

#include

#include

voidmain()

{floati,j,k;

/************found************/

for(i=1;i<=2;i++)

for(j=0;j<=5;j++)

for(k=0;k<=10;k++)

/************found************/

{if(i*0.5+j*0.2+k*0.1==1)

printf("%.0f,%.0f,%.0f\n",i,j,k);

}

}

8、以下给定程序MODI1.C的功能是:

女儿今年12岁,父亲比女儿大30岁,计算出父亲在多少年后比女儿年龄

大一倍,那时他们的年龄各是多少?

程序中有两处错误,错误都在提示行:

/***********found***********/的下面一行。

请改正程序中的错误,使它能得出正确的结果。

注意:

程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!

#include

voidmain()

{intfather,daughter;

inti;

daughter=12;

/************found************/

father=30;

/************found************/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2