C语言实训指导书钱明珠doc.docx

上传人:b****7 文档编号:9309705 上传时间:2023-02-04 格式:DOCX 页数:29 大小:40.23KB
下载 相关 举报
C语言实训指导书钱明珠doc.docx_第1页
第1页 / 共29页
C语言实训指导书钱明珠doc.docx_第2页
第2页 / 共29页
C语言实训指导书钱明珠doc.docx_第3页
第3页 / 共29页
C语言实训指导书钱明珠doc.docx_第4页
第4页 / 共29页
C语言实训指导书钱明珠doc.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言实训指导书钱明珠doc.docx

《C语言实训指导书钱明珠doc.docx》由会员分享,可在线阅读,更多相关《C语言实训指导书钱明珠doc.docx(29页珍藏版)》请在冰豆网上搜索。

C语言实训指导书钱明珠doc.docx

C语言实训指导书钱明珠doc

c语言实训指导书

实训一熟悉TurboC实验环境

【实训目的】

1、熟悉TurboC实验环境

2、掌握C语言程序的基本结构

3、掌握C语言程序的编辑、调试和运行过程

【实训内容】

1、TurboC实验环境的进入和退出的方法

2、C语言程序的输入(LOAD)和编辑、调试及运行的方法

3、熟悉TurboC常用的信息提示

【实训步骤】

一、上机改错题

(输入以下程序,改正错误所在,并写出程序的结果和功能)

1、#include"stdio.h"

main()

inta,b,c;

scanf("Pleaseinputtwointegerumbers:

",&a,&b);

c=a+b;

printf("%d\n",c)

本题错误有:

修改错误后再完成以下操作:

从键盘输入4,5,程序的运行结果是:

从键盘输入123,765,程序的运行结果是:

从键盘输入659,3789,程序的运行结果是:

从以上结果可以看出,程序的功能是:

2、#include"stdio.h"

main()

{

scanf("%d%d",&a,&b);

a=a+b;b=a-b;a=a-b;

printf("a=%db=%d",a,b)

}

本题错误有:

修改错误后再完成以下操作:

从键盘输入8,3,程序的运行结果是:

从键盘输入25,4,程序的运行结果是:

从以上结果可以看出,程序的功能是:

【思考与练习】

1、在结束一个程序的的运行,开始新程序编辑之前,应做何操作?

2、运行程序和查看程序的运行结果的快捷键是什么?

 

实训二数据类型、运算符和表达式

【实训目的】

1、熟悉C语言数据类型的概念,熟悉如何定义整型、字符型和实型变量

2、掌握C语言中的算术运算符

【预习内容】

1、C语言中类型定义的标志符int、short、unsigned、char、float、double……

2、C语言中的运算符所能实现的操作

【实训内容及步骤】

1.上机改错题。

main()

{floatr,s;

scanf("%f",&r);

main()

s=3.14159*r*r;

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

程序纠错后,若从键盘输入3.5,则程序的运行结果为。

2.上机验证题

main()

{charc1='b',c2='e';

inti=1,j=1;

printf("%d,%c\n",c2-c1,c2-'a'+'A');

printf("%d,%d\n",i++,++j);

}

程序运行结果:

main()

{intx=10,y=3,z;

printf("%d%d\n",x/y,x%y);

}

程序运行结果:

3.上机编程题

1、从键盘上任意输入两个整型数据a和c,要求将其交换输出a和c的值。

如从键盘输入a=10,c=30,程序运行后输出a=30,c=10。

[程序清单]

 

[程序运行过程]

 

实训三输入和输出

【实训目的】

1、学会使用C语言的不同数据类型

2、理解C语言表达式的写法

3、熟练掌握C语言中的赋值语句

4、进一步理解掌握转义字符的使用

5、通过运行简单的C程序,进一步熟悉上机环境

【实训内容及步骤】

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

#include

main()

{charc1='x',c2='y',c3='z',c4='\101',c5='\102';

printf("x-%c\ty-%c\tz-%c",c1,c2,c3);

printf("\nc4=%c,c5=%c",c4,c5);

printf("\n\tend\n");

}

程序运行结果

c4,c5分别代表什么字符?

如何求得?

本程序中,一共有多少转义字符,分别表示什么含义?

2、编程,已知有一个三位的整数,计算其每位数字的累加之和。

例如:

整数123的每位数字累加之和为6(1+2+3)

方法一:

a)题目已经明确是一个整数,因此在第一步变量定义的时候,应该把变量定义成整型,变量名任意。

b)这个三位的整数可以通过赋值的方式直接给变量赋值

c)每一位数字可以通过整除(/)和求余(%)的方式取得

提示:

若这个整数为123,然后分别用变量a、b、c来存放这个三位整数的个位、十位和百位的值,则

a=123%10;(即将123除以10后的余数赋值给变量a)

b=123/10%10;(即123整除10后的结果为12,然后在对12余10,结果赋值给十位数变量b)

c=123/100;(即将123整除100,后求得百位数赋值给变量c)

最后把结果通过输出函数printf输出

3、编程:

从键盘输入两个数,比较大小后,在屏幕上输出比较大的一个数。

提示:

在此需要同学们预习条件判断的语句。

条件判断用if语句,如果要判断变量a的值是不是大于b,可以使用如下方法进行思考:

 

【实训后记(必写)】

收获与体会

 

出现的错误与解决(概述)

 

希望

 

实训四顺序结构程序设计

【实训目的】

1、熟悉C语言表达式语句、空语句和复合语句

2、能编写简单的顺序结构的程序

【预习内容】

1、输入输出函数的调用语句getchar()、putchar()、scanf()、printf()

【实训内容及步骤】

1.上机改错题

main()

{inta,b;

scanf("%d%d",a,b);

printf("%d\n",a/b);}

程序纠错后,若从键盘输入15,4,则程

序的运行结果为。

2.上机验证题

main()

{intsum=5,pad=5;

pad=sum++,pad++,++pad;

printf("%d\n",pad);

}

程序运行结果:

main()

{intn=65536;

n++;

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

}

程序运行结果:

 

3.上机编程题

1、编程从键盘任意输入一个三位数组成的整数,将其个位、十位和百位分离后输出,例输入256,则输出a=2,b=5,c=6。

[程序清单]

[程序运行结果]

 

实训五分支程序设计

一、实训目的

1、掌握C语言表示逻辑量的方法(0表示“假”,1或非0表示“真”)

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

3、熟练使用if语句、if-else、switch语句

二、预习内容

1、熟悉关系表达式和逻辑表达式的表示和使用

2、熟悉if语句和if-else、switch语句的格式、作用和用法

三、上机内容

1、找出程序中的错误,并加以简化

#include"stdio.h"

main()

{scanf("%f,%f,%f",&max,&min,&median);

if(max==0)

{min=0;

median=(max-median)/2;}

else

min=max/2;

}

修改程序后:

(1)若从键盘输入0,5,8

则程序的运行结果为。

(2)若从键盘输入5,8,11

则程序的运行结果为。

#include"stdio.h"

main()

{inta;

scanf("%d",&a);

ifa>0

ifa<10

printf("a>0anda<10\n");

}

修改程序后:

(1)若从键盘输入3

则程序的运行结果为。

(2)若从键盘输入-5

则程序的运行结果为。

#include"stdio.h"

main()

{inta=1,b=1,c;

if(c=(a-b))

printf("cis%d\n",c);

}

修改程序后,程序的运行结果为。

 

2、上机验证程序,并分析结果

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec++;

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

}

该程序的运行结果是         

main()

{inta;

scanf(“%d”,&a);

if(a>50)printf(“%d\n”,a);

if(a>40)printf(“%d\n”,a);

if(a>30)printf(“%d\n”,a);

}

该程序的运行结果是         

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printf(“%d%d\n”,x,y);

}

该程序的运行结果是         

 

main()

{intn;

scanf(“%d”,&n);

if(n++<10)printf(%d\n”,n);

elseprintf(“%d\n”,n--);

}

该程序的运行结果是         

3、编程题

(1)从键盘任意输入四个int类型的整数,要求将其中的最大数输出。

 

(2)从键盘任意输入三个int类型的整数,要求将它们按从小到大的顺序输出。

 

(3)用switch编写一个简单的计数器。

功能:

完成加、减、除运算,但输入“#”时退出。

 

实训六循环程序设计

一、实训目的

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

2、理解循环结构程序段中语句的执行过程

3、进一步掌握循环结构程序的应用

二、预习内容

熟悉以下语句:

while语句、do-while语句、for、break、continue语句

三、上机内容

1、阅读以下程序,先预测其结果,再上机运行验证:

① main()

{intx=-1;

do{

x=x*x;

}while(!

x);

printf("%d\n",x);

}

运行结果是

③ #include"stdio.h"

main()

{inta,s,n,count;

a=2;s=0;n=1;count=1;

while(count<=7)

{n=n*a;s=s+n;++count;}

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

}

运行结果是

② main()

{inti=1,s=3;

do{s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

printf("%d",i);

}

运行结果是

④ #include"stdio.h"

main()

{

intnum=0;

while(num<=2)

{

num++;

printf("%d\n",num);

}

}

运行结果是

1、编程与程序分析

① 编程求1-3+5-7+9-11+……-99+101的值。

 

② 求出100~999之间的所有水仙花数。

所谓的水仙花数是指其各位数的立方和等于此数本身,例371=33 +73 +13

 

③ 从键盘输入一组十进制整数,以9999结束,统计其中正数的个数和其中的正数之和。

 

分析程序的结构:

 

程序的运行结果:

④ #include"stdio.h"

main()

{intx=1,y=0,a=0,b=0;

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

{switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

 case2:

a++;b++;break;

case3:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

}

2、思考题

(1)若有语句while(!

x),则退出循环的条件是。

(2)若有语句while(x%2&&y>100),则继续循环条件是,而退出循环的条件是。

(3)while(x=0)与while(x==0)两条语句的循环条件有何区别?

一、实训目的

1、进一步理解分支程序的执行过程

2、进一步理解循环结构程序段中语句的执行过程

3、掌握分支和循环的综合应用程序设计

二、预习内容

熟悉以下语句:

if-else、switch、while语句、do-while语句、for、break、continue语句

三、上机内容

1.完成程序填空

(1)将用户输入的字母以大写字母的形式输出。

main()

{charc;

scanf("%c",&c);

if()

printf("%c\n",c);

}

(2)以下程序打印菱形图案,程序运行时,输入4给变量n,试完整程序(提示:

可以分解为两个三角形)。

main()

{intn,i,j;

printf("ENTERn:

);

scanf();

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

{for(j=1;;j++)printf("");

for(j-1;;j++)printf("*");

}

for(i=1;i<=n-1;i++)

{for(j=1;;j++)printf("");

for(j-1;;j++)printf("*");

}

}

2.完成以下程序的编程:

(1)编程计算:

(2)“百马百担”问题。

有一百匹马,驮一百担货,大马驮三担,中马驮2担,两匹小马驮一担,试编程计算共有多少种驮法。

实训七一维数组的应用

一、实训目的

1、掌握一维数组的定义、数组元素的引用形式和赋值的方法

2、掌握一维数组的输入和输出的

3、掌握和一维数组有关的典型算法,如求菲波那契数列、最大数、查找、排序等

二、预习内容

1、预习一维数组的定义及引用的一般方法

2、熟悉循环语句和数组处理语句结合的方法

三、实训内容

1、分析和记录以下程序运行结果,并上机验证:

main()

{

intv[5];

inti;

v[0]=197;v[2]=-100

v[4]=350;v[5]=v[0]+v[2];

--v[4];

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

printf("v[%d]=%d\n",i,v[i]);

}

该程序的运行结果是

#include"stdio.h"

main()

{intt,i;

inta[10]={1,2,3,4,5,6,7,8,9,10};

t=a[9];

for(i=9;i>1;i-=2)

a[i]=a[i-2];

a[1]=t;

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

printf("%3d",a[i]);

}

该程序的运行结果是:

2、将程序补充完整,以完成以下功能,并上机调试。

(1)以下程序以每行输出4个数据的格式输出a数组。

(中等难度题)

#include"stdio.h"

{inta[12],i;

for(i=0;i<12;i++)scanf("%d",);

for(i=0;i<12;i++)

{if();

printf("%6d",a[i]);

}

printf("\n");

}

(2)以下程序将数组中的数据按逆序存放。

(中等难度题)

#include"stdio.h"

#defineSIZE12;/*SIZE为常量12*/

main()

{inta[SIZE],i,j,t;

for(i=0;i

i=0;j=;

while(i

{t=a[i];;;i++;j;}

for(i=0;i

printf("\n");

}

(3)以下程序实现将数组a中的元素按从小到大的顺序排列。

#include"stdio.h"

main()

{inti,j,temp,a[10];

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

for(i=0;;i++)

for(;j

if(){;;;}

for()printf("%d",a[i]);

}

7、编程题:

(1)读入10个整数,求出非负数个数及其和,并将10个整数按从小到大的次序输出。

(2)利用随机函数,生成10个50~60之间的随机整数,并判断是否有55,若有输出它在数组中的下标,否则输出“NODATA!

”。

 

一、实训目的

1、掌握二维数组的定义和引用;

2、掌握字符串的定义以及它和一维字符数组之间的关系和区别;

3、掌握字符串处理函数的功能和应用。

二、预习内容

1、二维数组的定义和二重循环之间的关系

2、字符串的概念

三、实训内容

1、分析和记录以下程序运行结果,并上机验证:

main()

{intnum[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42};

inti,j,s=0;

for(j=0;j<3;j++)该程序的运行结果是:

for(i=0;i<3;++i)

if(i==j)s+=num[j][i];

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

}

main()

{inti,j,m,n,a,x[3][4]={43,32,22,13,11,22,33,44,55,11,32,31};

m=n=0;a=x[m][n];

for(i=0;i<3;i++)该程序的运行结果是:

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

if(a>x[i][j]){m=i;n=j;a=x[m][n];}

printf("a=%d,m=%dn=%d\n",a,m,n);

}

2、若有三个字符串s1、s2和s3,其中s1="abcdef",s2="123456",要求用字符数组实现将s1的内容复制到s3中,交将s2的内容添加到s3的后面,最后输出s3。

main()

{chars1="abcdef",s2="123456",s3[20]="";

i=0;j=0;

while()

{s3[i]=s1[i];i++;}

i--;

while(s2[j]!

='\0')

{;j++;}

for()printf("%c",s3[i]);

}

3、下列是打印杨辉三角形的程序,试将程序补充完整,并上机验证:

main()

{inti,j,a[6][6]={0};

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

{a[i][0]=1;;

for(j=1;;j++)

;

}

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

{for(j=0;;j++)

printf("%6d",a[i][j]);

;}

}

4、编程题

(1)从键盘输入十个数对一个一维数组赋值,并将其中的奇数存放到另一个数组中后再输出,并输出奇数的个数。

如:

从键盘输入:

13141734455556767799

则输出:

131745557799

count=6

 

(2)编程求一个m*n的二维数组中所有元素的最大值,元素可随机产生。

 

实训八函数的应用

一、实训目的

1、掌握定义函数的方法;

2、掌握函数实参和形参的对应关系,以及“值传递”的方法;

3、掌握数组名作为实参时,实参和形参之间的传递方法

二、预习内容

函数的概念、定义格式、变量的作用域以及调用过程中数据的传递方法。

三、实训内容

1、分析和记录以下程序运行结果,并上机验证:

#include"stdio.h"

main()

{intx=2,y=4;

intswap(int,int);

printf("

(1)inmain:

x=%d,y=%d\n",x,y);

swap(x,y);

printf("(4)inmain:

x=%d,y=%d\n",x,y);

}

swap(inta,intb)

{intt;

printf("

(2)inswap:

a=%d,b=%d\n",a,b);

t=a;a=b;b=t;

printf("(3)inswap:

a=%d,b=%d\n",a,b);

}

运行结果:

2、若将以上程序中的形参a、b对应改为x和y,使其与实参变量同名,记录并分析结果。

4、分析程序运行结果,并验证程序。

staticintx=20;

voidfun1(intx)

{x+=10;

printf("%d......fun1()\n",x);}

fun2()

{x+=10;

printf("%d......fun2()\n",x);}

main()

{intx=10;

fun1(x);

fun2();

printf("%d......main()\n",x);}

运行结果:

3、预测以下程序结果,并上机验证。

voidfun1()

{intx=5;

printf("x=%d\n",x);}

voidfun2()

{printf("x=%d\n",++x);}

main()

{intx=2;

fun1();

fun2(x);

printf("x=%d\n",x);}

运行结果:

6、分析程序运行结果,并验证程序。

intk;/*k为全局变量*/

main()

{k=3;

fun();

printf("%d\n",k);

}

fun()

{k=k*k;}

运行结果:

5、

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1