已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c语言实训指导书23实训一 熟悉Turbo C实验环境【实训目的】1、熟悉Turbo C实验环境2、掌握C语言程序的基本结构3、掌握C语言程序的编辑、调试和运行过程【实训内容】1、Turbo C实验环境的进入和退出的方法2、C语言程序的输入(LOAD)和编辑、调试及运行的方法3、熟悉Turbo C常用的信息提示【实训步骤】一、上机改错题(输入以下程序,改正错误所在,并写出程序的结果和功能)1、#include stdio.h main() int a, b, c; scanf (Please input two integer umbers:, &a, &b ); c=a+b; printf (%dn, c)本题错误有:修改错误后再完成以下操作:从键盘输入4,5, 程序的运行结果是:从键盘输入123,765, 程序的运行结果是:从键盘输入659,3789, 程序的运行结果是:从以上结果可以看出,程序的功能是:2、#include stdio.hmain() scanf (%d%d,&a, &b );a=a+b; b=a-b; a=a-b;printf (a=%d b=%d, a, b)本题错误有:修改错误后再完成以下操作:从键盘输入8,3, 程序的运行结果是:从键盘输入25,4, 程序的运行结果是:从以上结果可以看出,程序的功能是:【思考与练习】1、在结束一个程序的的运行,开始新程序编辑之前,应做何操作?2、运行程序和查看程序的运行结果的快捷键是什么?实训二 数据类型、运算符和表达式【实训目的】1、熟悉C语言数据类型的概念,熟悉如何定义整型、字符型和实型变量2、掌握C语言中的算术运算符【预习内容】1、C语言中类型定义的标志符int 、short、unsigned 、char、float 、double2、C语言中的运算符所能实现的操作【实训内容及步骤】1上机改错题。main() float r, s; scanf(%f,&r); main( )s=3.14159*r*r; printf(%dn, s); 程序纠错后,若从键盘输入3.5,则程序的运行结果为 。2上机验证题main() char c1=b,c2=e;int i=1,j=1; printf(%d,%cn,c2-c1,c2-a+A);printf(%d,%dn,i+,+j);程序运行结果: main() int x=10, y=3, z;printf(%d %dn, 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、输入并运行下面的程序。#includemain()char c1=x,c2=y,c3=z,c4=101,c5=102; printf(x-%cty-%ctz-%c,c1,c2,c3); printf(nc4=%c,c5=%c,c4,c5); printf(ntendn);程序运行结果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(ab) printf(“大的数为%dn”,a)else printf(大的数为%dn”,b) 条件判断用if语句,如果要判断变量a的值是不是大于b,可以使用如下方法进行思考:转换成C语言为如果ab则输出a否则输出b【实训后记(必写)】收获与体会出现的错误与解决(概述)希 望实训四 顺序结构程序设计【实训目的】1、熟悉C语言表达式语句、空语句和复合语句2、能编写简单的顺序结构的程序【预习内容】1、输入输出函数的调用语句getchar()、putchar()、scanf()、printf()【实训内容及步骤】1上机改错题main() int a, b;scanf(%d%d, a, b); printf(%dn, a/b); 程序纠错后,若从键盘输入15,4,则程序的运行结果为 。2上机验证题main() int sum=5, pad=5; pad = sum +, pad +, + pad; printf(%dn, pad);程序运行结果: main() int n=65536;n+;printf(%dn,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.hmain( ) 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.hmain( ) int a;scanf(%d, &a);if a0 if a0 and a10n);修改程序后:(1)若从键盘输入3则程序的运行结果为 。(2)若从键盘输入-5则程序的运行结果为 。#include stdio.hmain( ) int a=1,b=1, c;if (c=(a-b) printf(c is %dn, c);修改程序后,程序的运行结果为 。2、上机验证程序,并分析结果main() int a= 2, b= -1, c= 2; if ( ab) if ( b50 ) printf( “%dn”, a ); if ( a40 ) printf( “%dn”, a ); if (a30 ) printf ( “%dn”, a );该程序的运行结果是main() int x=10, y=20, t=0; if ( x=y ) t=x ; x=y ; y=t ; printf( “%d %dn”, x, y );该程序的运行结果是main() int n ; scanf( “%d”, &n ) ; if ( n+10 ) printf( %dn”, n ) ; else printf( “%dn”, n- ) ;该程序的运行结果是3、编程题(1)从键盘任意输入四个int类型的整数,要求将其中的最大数输出。(2)从键盘任意输入三个int类型的整数,要求将它们按从小到大的顺序输出。(3)用switch编写一个简单的计数器。功能:完成加、减、除运算,但输入“#”时退出。实训六 循环程序设计一、实训目的1、掌握while语句、do-while语句和for语句实现循环的方法2、理解循环结构程序段中语句的执行过程3、进一步掌握循环结构程序的应用二、预习内容熟悉以下语句: while语句、do-while语句、for、break、continue语句三、上机内容1、阅读以下程序,先预测其结果,再上机运行验证:main() int x=-1; do x=x*x; while(!x); printf(%dn, x);运行结果是 #include stdio.h main() int a,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() int i=1,s=3; do s+=i+; if(s%7=0) continue; else +i; while(s15); printf(%d,i);运行结果是 #include stdio.h main() int num=0; while(num=2) num+; printf(%dn,num); 运行结果是 1、编程与程序分析编程求1-3+5-7+9-11+-99+101的值。求出100999之间的所有水仙花数。所谓的水仙花数是指其各位数的立方和等于此数本身,例371=33+73+13从键盘输入一组十进制整数,以9999结束,统计其中正数的个数和其中的正数之和。分析程序的结构:程序的运行结果: #include stdio.hmain() int x=1,y=0,a=0,b=0; for ( x=1; x100 ),则继续循环条件是 ,而退出循环的条件是 。(3)while (x=0)与while (x=0)两条语句的循环条件有何区别?一、实训目的1、进一步理解分支程序的执行过程2、进一步理解循环结构程序段中语句的执行过程3、掌握分支和循环的综合应用程序设计二、预习内容熟悉以下语句:if-else、switch、 while语句、do-while语句、for、break、continue语句三、上机内容1完成程序填空(1)将用户输入的字母以大写字母的形式输出。main() char c; scanf(%c, &c); if ( ) printf(%cn, c);(2)以下程序打印菱形图案,程序运行时,输入4给变量n,试完整程序(提示:可以分解为两个三角形)。main() int n, i, j; printf(ENTER n:); 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( *); y=x ( x1 )3-x/5 ( 1=x10 )3x-11 ( 1=x10 ) 完成以下程序的编程:(1) 编程计算:(2)“百马百担”问题。有一百匹马,驮一百担货,大马驮三担,中马驮2担,两匹小马驮一担,试编程计算共有多少种驮法。实训七 一维数组的应用一、实训目的1、掌握一维数组的定义、数组元素的引用形式和赋值的方法2、掌握一维数组的输入和输出的3、掌握和一维数组有关的典型算法,如求菲波那契数列、最大数、查找、排序等二、预习内容1、预习一维数组的定义及引用的一般方法2、熟悉循环语句和数组处理语句结合的方法三、实训内容1、分析和记录以下程序运行结果,并上机验证:main()int v5;int i; v0=197; v2=-100v4=350; v5=v0+v2;-v4;for (i=0;i1; i-=2) ai=ai-2; a1=t; for ( i=0; i10; i+ ) printf( %3d, ai );该程序的运行结果是: 2、将程序补充完整,以完成以下功能,并上机调试。(1)以下程序以每行输出4个数据的格式输出a数组。(中等难度题)#include stdio.h int a12, i; for ( i=0; i12; i+ ) scanf( %d, ) ; for (i=0; i12; i+ ) if ( ) ; printf( %6d, ai ); printf( n ); (2)以下程序将数组中的数据按逆序存放。(中等难度题)# include stdio.h#define SIZE 12 ; /*SIZE为常量12*/main() int aSIZE, i, j, t; for ( i=0; iSIZE; i+ ) scanf( %d, ); i=0; j= ; while ( ij ) t=ai; ; ; i+; j ; for (i=0; iSIZE; i+) printf( %4d, ai ); printf( n);(3)以下程序实现将数组a中的元素按从小到大的顺序排列。# include stdio.hmain() int i, j, temp, a10; for (i=0; i10; i+ ) ; for (i=0; ; i+ ) for ( ; ji; j+ ) if ( ) ; ; ; for ( ) printf( %d, ai ); 7、编程题:(1)读入10个整数,求出非负数个数及其和,并将10个整数按从小到大的次序输出。(2)利用随机函数,生成10个50 60之间的随机整数,并判断是否有55,若有输出它在数组中的下标,否则输出“NO DATA!”。一、实训目的1、掌握二维数组的定义和引用;2、掌握字符串的定义以及它和一维字符数组之间的关系和区别;3、掌握字符串处理函数的功能和应用。二、预习内容1、二维数组的定义和二重循环之间的关系2、字符串的概念三、实训内容1、分析和记录以下程序运行结果,并上机验证:main() int num44=11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42;int i, j, s=0;for (j=0; j3; j+)该程序的运行结果是: for ( i=0; i3; +i ) if ( i=j ) s+=numji; printf( %dn, s);main()int i, j, m, n, a, x34=43,32,22,13,11,22,33,44,55,11,32,31;m=n=0; a=xmn; for (i=0;i3; i+)该程序的运行结果是: for ( j=0; jxij ) m=i; n=j; a=xmn; printf(a=%d, m=%d n=%dn, a, m, n );2、若有三个字符串s1、s2和s3,其中s1=abcdef,s2=,要求用字符数组实现将s1的内容复制到s3中,交将s2的内容添加到s3的后面,最后输出s3。main() char s1=abcdef, s2=,s320=; i=0; j=0; while ( ) s3 i =s1 i ; i+; i-; while ( s2 j !=0 ) ; j+; for ( ) printf( %c, s3 i ); 3、下列是打印杨辉三角形的程序,试将程序补充完整,并上机验证:main() int i, j, a66=0; for ( i=0; i5; i+ ) ai0=1; ; for ( j=1; ; j+ ) ; for (i=0; i5; i+ ) for (j=0; ; j+ ) printf(%6d, aij); ; 4、编程题(1) 从键盘输入十个数对一个一维数组赋值,并将其中的奇数存放到另一个数组中后再输出,并输出奇数的个数。如:从键盘输入: 13 14 17 34 45 55 56 76 77 99 则输出: 13 17 45 55 77 99 count = 6(2) 编程求一个m*n的二维数组中所有元素的最大值,元素可随机产生。实训八 函数的应用一、实训目的1、掌握定义函数的方法;2、掌握函数实参和形参的对应关系,以及“值传递”的方法;3、掌握数组名作为实参时,实参和形参之间的传递方法二、预习内容函数的概念、定义格式、变量的作用域以及调用过程中数据的传递方法。三、实训内容1、分析和记录以下程序运行结果,并上机验证:#include stdio.hmain() int x=2, y=4; int swap( int, int ); printf(1)in main: x=%d, y=%dn, x, y); swap(x, y); printf(4)in main: x=%d, y=%dn,x, y); swap( int a, int b) int t; printf(2)in swap: a=%d, b=%dn,a, b); t=a; a=b; b=t; printf(3)in swap: a=%d, b=%dn,a, b);运行结果: 2、若将以上程序中的形参a、b对应改为x和y,使其与实参变量同名,记录并分析结果。 4、分析程序运行结果,并验证程序。static int x=20;void fun1( int x ) x+=10; printf(%d.fun1( )n, x ); fun2( ) x+=10; printf(%d.fun2( )n, x ); main( ) int x=10; fun1( x ); fun2( ); printf(%d.main( )n, x ); 运行结果: 3、预测以下程序结果,并上机验证。void fun1( ) int x=5;printf( x=%dn, x ); void fun2( ) printf( x=%dn, +x ); main( ) int x=2; fun1( ); fun2( x );printf( x=%dn, x ); 运行结果: 6、分析程序运行结果,并验证程序。int k;/*k为全局变量*/main( ) k=3; fun( ); printf(%dn, k);fun( ) k=k*k; 运行结果: 5、分析程序运行结果,并验证程序。main( ) fun( ); fun( ); fun( ) static int a=2;/*a为静态变量*/ char k=A; a*=2; k+=1; printf(%d, %cn, a, k);运行结果: 7、编程题:(1)定义一个能判断任意整数a是否是素的函数isprime( int a),并利用这一函数,输出100199之间的所有素数。(2)定义一个函数递归函数 long f (int n) 求n!,并利用此函数,求出sum=4!+6!+7!的值。实训九 位运算符的应用一、实训目的掌握按位运算的方法,学会使用位运算符。二、预习内容二进制数字、与或非运算三、实训内容1编程设计一函数,求任意整数x的补码,并将结果用十进制和十六进制分别输出。存入ex11_1.c文件,并编译、调试、运行。2.编程实现,输入两个正整数并存入a,b,并由a,b产生新的数c.要求将a的低位字节作为c的高位字节,将b的高字节作为c的低字节。将结构用十六进制输出。存入ex11_2.c文件,并编译、调试、运行。【实训后记(必写)】收获与体会出现的错误与解决(概述)希 望实训十 指针的应用一、实训目的1、掌握指针的概念、指针变量的定义2、掌握指针的运算(取地址运算&、取内容运算*、指针移动的运算等)3、掌握指针与数组的关系4、掌握指针与函数的关系二、预习内容指针变量的定义、赋值和取地址&、取内容*、移动等操作,数组元素的多种表示方法三、上机内容1、分析下列程序的运行结果,并上机验证。 main() int i, j, *pi, *pj; pi=&i; pj=&j;程序的运行结果是: i=5; j=7; printf( %dt%dt%dt%d, i, j, pi, pj ); printf( n%dt%dt%dt%dn, &i, *&i, &j, *&j ); main()程序的运行结果是: int a = 1, 2, 3 ; int *p, i; p=a; for ( i=0; i3; i+ ) printf( %d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平板电脑产业链招商引资的调研报告
- 人教版小学语文四年级上册《搭石》说课稿
- 抽油烟机清洁服务行业经营分析报告
- 职业教育新高考招生方案
- 学校操场不锈钢护栏安装与维护方案
- 书写工具用笔尖产业深度调研及未来发展现状趋势
- 宠物用次性训练尿垫产业链招商引资的调研报告
- 手印器具市场需求与消费特点分析
- 帆船运动用帆市场需求与消费特点分析
- 钢铁厂机电设备安装施工方案
- CJT 482-2015 城市轨道交通桥梁球型钢支座
- 我国不锈钢管行业现状分析
- 2024年关于印发全国社会心理服务体系建设试点5篇
- 维修水池合同协议书
- 高效餐饮服务承诺
- DL-T5002-2021地区电网调度自动化设计规程
- DZ∕T 0338.1-2020 固体矿产资源量估算规程 第1部分 通则(正式版)
- FZ∕T 73037-2019 针织运动袜行业标准
- 食品风味研究专题智慧树知到期末考试答案章节答案2024年中国农业大学
- 《智能仪器》课后习题答案
- 医疗收费收据样式(医院基层)
评论
0/150
提交评论