实验1-顺序和分支结构(精)
- 格式:doc
- 大小:53.50 KB
- 文档页数:5
甘肃民族师范学院计算机专业课程教学大纲C语言程序设计一、说明(一)课程性质必修课(二)教学目的本课程是为计算机类等本、专科学生开设的,以培养学生程序设计能力为目的的专业基础课,是学习其他专业课的基础,同时也是第一门高级语言程序设计课。
本课程的任务是结合一般数值计算向学生介绍计算机程序设计的基本知识,使学生掌握C语言的基本语法,掌握程序设计的基本思想、基本概念和基本方法和技巧,并能运用所学的知识和技能对一般问题进行分析和程序设计,编制出高效的C 语言应用程序;同时了解进行科学计算的一般思路,培养应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。
(三)教学内容计算机程序语言发展史,结构化程序设计的三种基本结构,函数,数组,指针,文件。
(四)教学时数90学时,60理论,30上机(五)教学方式多媒体授课二、本文第一章C语言程序设计基础教学要点:C程序的基本结构。
上机环境,进行简单C程序的编写。
教学时数:4学时(理论3学时,上机1学时)教学内容:第一节概述程序设计语言的发展。
C程序的基本结构。
第二节开发环境上机环境,进行简单C程序的编写。
考核要求:1.掌握编写C语言程序的基本步骤。
2. 掌握上机调试过程。
第二章数据类型、运算符与表达式教学要点:数据类型。
表达式。
输入输出函数。
教学时数:12学时(理论8学时,上机4学时)教学内容:第一节数据类型整型、实型、字符型、枚举型、构造类型、指针。
第二节常量与变量第三节运算符与表达式算术运算符及表达式、关系运算符及表达式、逻辑运算符及表达式、逗号运算符及表达式、条件运算符及表达式、赋值运算符及表达式。
第四节标准输入/输出scanf()函数、printf()函数。
第五节数学函数数学库头文件<math.h>。
第六节随机数发生器函数rand()和srand()函数,对应的头文件“stdlib.h”。
考核要求:1.理解数据结构、常量、变量的概念;2.掌握各种运算符的优先级及结合方向;3.熟练掌握数据的输入、输出方法;4.了解其他数学函数及随机函数的使用方法。
顺序结构程序设计习题1、【变量自增运算问题】题目描述:键盘输入整型变量A的值,输出A增加10、再减少30、扩大20倍、缩小5倍后的值。
(要求采用算术复合赋值运算)输入格式:5 输出格式:-602、【交换变量问题】题目描述:键盘输入两个整型变量A、B的值,利用中间变量C交换A、B的值并输出。
输入格式:1 2 输出格式:2 1思考:交换其它数据类型变量的值问题。
3、【三位数数位和问题】题目描述:从键盘输入一个三位的自然数M,分离出它的百位、十位与个位上的数字并求和输出。
输入格式:523 输出格式:104、【大写转小写问题】题目描述:键盘输入一个大写字母,要求改用小写字母输出。
输入格式:A 输出格式:a思考:小写转大写问题。
5、【温度计数转换问题】题目描述:输入一摄氏温度,编程输出华氏温度。
已知:华氏温度转换为摄氏温度的计算公式如下:C=(F-32)5/9;其中,F表示华氏温度,C表示摄氏温度。
输入格式:0 输出格式:326、【长度计数转换问题】题目描述:编程实现输入千米数,输出显示其英里数。
已知:1英里=1.60934千米(用符号常量)。
输入格式:1 输出格式:0.6213简单的分支结构程序设计1、【数字比较问题】题目描述:从键盘上输入两个整型数,比较其大小,并输出显示其中较小的数。
输入格式:20 -30 输出格式:-30思考:输出其中较大的数。
2、【绝对值问题】题目描述:从键盘输入一个浮点型数x,要求不使用系统函数,输出其绝对值。
输入格式:-10.1 输出格式:10.115 153、 【打折问题】题目描述:国庆期间,某超市购物优惠规定:所购物品不超过100元时,按九折付款,如超过100元,超过部分按8折收费,请编一程序完成超市自动计费的工作。
输入格式:90 输出格式:81110 984、 【分段函数问题】题目描述:有一函数如下所示,要求已知x 值时,输出y 值。
输入格式:0.1 输出格式:0.18 1315 105、 【勾股定理】题目描述:输入三角形的三边(整型数据,且数据由小到大排列),利用勾股定理 (商高定理、韦达定理)判断它是否是直角三角形。
实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG 的T 命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG 中的P 命令,对INT 指令的跟踪方法; 3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验内容1.编写程序,已知在DATA 开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。
2.编写程序,从键盘输入若干个任意字符,如果是小写字母a ~z 之间的字符,请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。
四、解题思路1.先对DATA 内存单元连续存放三个一位十六进制数。
先对DATA 内存单元里的前两个数据比较,较大的数据再和第三个数据比较,从而得到最大数据存到MAX 内存单元里。
把两次比较得到的两个较小的数据进行比较,从而得到最小数据存到MIN 内存单元里。
两个无符号数据比较后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA来判别两数的大小关系,这些条件转移指令是把进位标志CF 和零标志位ZF 结合起来判别的。
2.先开辟20个字节的内存单元DATA 用来存储输进来字符串和修改后的字符串。
对字符串的输入是以‘#’为结束字符的,当字符的个数少于20时,只要输入的字符串是以‘#’结尾,就代表字符串输入结束(其中结束字符‘#’也是字符串中的一个字符存储到内存单元里)。
每次输入一个字符,就对其进行判别。
若输入的字符在字符‘a ’到‘z ’之间,那么就对其进行转换成对应的大写字母(方法把小写字母的值减去32即可),然后再存到指定的内存单元中;否则,直接把输入的字符存到指定的内存单元中去。
试验一熟悉汇编环境以及初级程序的编写与调试一实验目的1.熟悉掌握DEBUG的常用命令,学会用DEBUG调试程序。
2.了解数据在存储器中的存取方法以及堆栈中数据的压入与弹出。
3.掌握各种寻址方法及简单指令的执行过程。
二试验要求1.实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析。
2.本实验要求在PC机上进行。
3.本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序、执行程序。
三实验内容1.熟悉DEBUG的常用命令(1)汇编命令A格式:○1A 【段寄存器名】:【偏移地址】○2A 【段地址】:【偏移地址】○3A 【偏移地址】○4A功能:用该命令可以将汇编语言程序直接汇编进入内存。
当键入A命令后,显示段地址和偏移地址等待用户键入汇编指令,每键入一条汇编指令回车后,自动显示下一条指令的段地址和偏移地址,再键入下一条汇编指令,直到汇编语言程序全部键入,又显示下一条地址时可直接键入回车回到提示符“—”为止。
其中○1的段地址在段地址寄存器中,因此在使用该命令时必须将段地址寄存器送入段地址,○3的段地址在CS中,○4的段地址在CS中,偏移地址为100H。
(2)执行程序命令G和单步执行程序T功能:用该G命令可直接执行汇编语言程序;用T命令可单步执行汇编语言程序并显示当前寄存器内容(3)显示内存命令D格式:○1D [地址]○2D [地址范围]○3D功能:显示指定内存范围的内容。
(4)修改存储单元内容命令E格式:○1E [地址][内容表]○2E[地址]功能:○1用命令所给定的内容表去代替指定地址范围的内存单元内容。
○2一个单元一个单元的连续修改单元内容。
其中:内容表为一个十六进制数或一串十六进制数,也可以是用单引号括起的一串字符。
(5)检查和修改寄存器内容命令R格式:○1R○2R [寄存器名]功能:○1显示CPU内部所有寄存器的内容和全部标志位的状态。
○2显示和修改一个指定寄存器的内容和标志位的状态。
实验二各种分支结构一.实验目的1. 了解C语言中表示逻辑量的方法(以0代表“假”,以1代表“真”)。
2. 正确使用C语言中的逻辑运算符和逻辑表达式。
3. 熟练掌握if语句,if-else语句和switch-case语句。
二.实验要点在C语言中主要用以下方法实现分支结构:1. if-else语句格式:if(表达式)语句块1else语句块2若表达式的值为真,就执行语句块1;否则,执行语句块2。
2.switch-case语句if语句只有两个分支可供选择,switch语句可以提供多个分支选择。
switch-case语句格式:switch (表达式{ case 常量1:语句1;case 常量2:语句2;case 常量3:语句3;case 常量4:语句4;default: 语句n}三.实验要求1.上机前编写好以下程序。
(1为程序改错,2-6为填空2.上机输入和调试自己所编的程序并存在自己的软盘上。
3.检查实验结果是否正确。
4.上机结束后,整理实验报告。
四.实验内容上机调通以下程序,并写出以下程序的输出结果。
改正以下程序的错误,并上机调通,程序完成输入两个数,按由小到大的顺序输出。
main({int a,b;scanf(“%d,%d”,a,b;if(a>bc=b;b=a;a=c;printf(“%d,%d”,a,b;}输入45,-55 ( 表回车main({int a,b,c;scanf("%d,%d",&a,&b;if(a>b{c=b;b=a;a=c;}printf("%d,%d",a,b;}45,-55-55,45Press any key to continue以下程序的输出结果是()。
main({printf(“%d\t”,3&&6&&9;printf(“%d\t”,3||6||!0;printf(“%d\n”,0&&1||0;}1 1 0Press any key to continue有一函数 x (x<1y= 2x-1 (1≤x<103x-11 (x≥10用scanf函数输入x的值,求y的值。
封面:2015-2016学年第一学期,年级是2015级,指导教师:网络工程专业1班写:赵玉艳陈海宝;网络工程2班写:赵玉艳肖刚,其它如实填写。
实验名称:实验一用C语言编写简单程序;实验二分支结构程序设计;实验三循环结构程序设计;实验四函数程序设计;实验五数组程序设计;实验六指针程序设计;实验七结构体程序设计。
课程名称:程序设计基础(Ⅰ)实验时间:分别为9.28, 10.12, 11.9, 11.23, 12.7, 12.21, 1.4实验地点:X405组号,同组人以及成绩:不需要填写实验环境:Windows 7;Visual C++ 6.0。
实验目的实验一用C语言编写简单程序1. 熟悉VC6.0的编程环境,掌握运行C程序的基本步骤。
2. 了解C程序的基本框架,模仿例题编写简单的C语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C语言提供的数学库函数。
5. 掌握简单的单步调试方法。
实验二分支结构程序设计1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if语句实现多分支结构程序设计。
3.熟练掌握关系表达式和逻辑表达式的使用。
4.熟练掌握字符型数据的输入输出。
5.熟练掌握用嵌套的if语句或switch语句实现多分支结构程序设计。
6.熟练掌握switch语句中的break语句的作用。
7.掌握使用断点调试程序的方法。
实验三循环结构程序设计1. 熟练使用for、while和do-while语句实现简单的循环程序。
2. 理解循环条件和循环体,以及for、while和do-while语句的相同及不同之处。
3. 掌握使用Debug菜单调试程序的方法。
4. 掌握break语句的使用。
5. 掌握continue语句的使用。
6. 熟练掌握嵌套循环程序设计。
实验四函数程序设计1. 熟练掌握函数的定义和调用。
2. 熟练掌握使用函数编写程序。
3.熟练掌握函数的实参、形参和返回值的概念及使用。
顺序分支循环实验报告实验目的本实验旨在通过编写程序,实践顺序、分支和循环这三种常见的程序控制结构,并加深对这些概念的理解。
实验设备与环境本实验使用的设备为一台运行Windows操作系统的个人电脑,所需开发工具为Python编程语言。
实验过程与结果顺序结构首先,我们编写了一个简单的程序,用于计算并打印两个数的和。
具体代码如下所示:pythona = 5b = 3c = a + bprint("两个数的和为:", c)运行以上代码后,我们可以在控制台上看到输出结果“两个数的和为:8”,说明程序能够顺利地计算出两个数的和并将结果打印出来。
这是因为程序按照代码的书写顺序,依次执行了定义变量、进行计算和打印输出这三个步骤。
分支结构接下来,我们编写了一个程序,用于判断一个数是否为正数。
具体代码如下所示:pythonnum = -20if num > 0:print("这是一个正数")else:print("这不是一个正数")运行以上代码后,我们可以在控制台上看到输出结果“这不是一个正数”,说明程序能够根据num的值,使用if语句进行条件判断,并根据判断结果执行相应的代码块。
循环结构最后,我们编写了一个程序,用于实现1到10的整数相加,并计算它们的平均值。
具体代码如下所示:pythontotal = 0count = 0while count < 10:count += 1total += countaverage = total / countprint("1到10的整数相加的结果为:", total)print("1到10的整数的平均值为:", average)运行以上代码后,我们可以在控制台上看到输出结果“1到10的整数相加的结果为:55”和“1到10的整数的平均值为:5.5”,说明程序能够使用while循环结构依次累加1到10的整数,并根据计算结果进行打印输出。
《C语言程序设计》课程教学大纲课程名称:C语言程序设计课程类别:专业选修课适用专业:食品科学与工程考核方式:考试总学时、学分: 48学时 2.5 学分其中实验学时: 16学时一、课程教学目的高级语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。
本课程旨在培养学生学会分析问题的方法和基本问题的解决能力, 初步了解程序设计的技巧和方法、掌握 C 语言的基本内容及程序设计的基本方法与编程技巧,并能够运用Microsoft Visual C++ 6.0集成开发工具编写一些小程序,为以后继续学习打下基础。
二、课程教学要求本课程主要通过适当的示例, 系统、详细地讲解程序设计的基础知识、 C 程序设计语言的基本语法、编程方法和常用算法。
通过教学的各个环节使学生达到各章中所提的基本要求。
讲授时应以培养学生的程序设计实际软件开发能力和实践应用能力为侧重点。
三、先修课程无四、课程教学重、难点重点:C语言中的逻辑值及表示方式,使用while语句、do-while语句和for语句构成的三种循环结构,常用库函数的调用方法,数组应用的基本算法;难点:指针变量的定义及基本操作;函数之间地址的传递。
五、课程教学方法与教学手段以黑板讲授和多媒体教学手段相结合的课堂教学。
通过典型的示例讲解、必要的现场实际操作演示、适量的课堂练习、课后的上机编程调试以及及时地辅导答疑,在教学过程中增强师生之间的互动性,充分发挥学生在学习过程中的自主性、能动性和创造性。
六、课程教学内容第一章程序设计基本概念(1学时)1. 教学内容程序设计的基本含义,算法的基本特点,算法的重要性,结构化程序设计的三种基本结构,使用流程图表示三种基本结构。
2. 重、难点提示重点是结构化程序设计等基本概念;难点是算法的概念。
第二章 C程序设计的初步知识(2学时)1. 教学内容简单C语言程序的构成和格式、标识符、常量和变量、整型数据、实型数据、算术表达式、赋值表达式、自加、自减运算符、强制类型转换和逗号表达式。
实验1 顺序、分支结构程序填空1.题目描述:输入三个整数存放在变量a、b、c中,找出三个数中的最大值放于max中,并将其输出。
以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。
代码:#include<stdio.h>main(){int a,b,c,max; //声明四个整型变量printf("请输入3个整型数据:");scanf("%d%d%d",&a,&b,&c);if (a>b) max=a;else max=__(1)__; //将a和b中的较大值记录在max中if (__(2)__c>max) max=c; //如果c是最大值printf("max=%d\n",__(3)__); //输出最大值max}2.题目描述:根据三边长求三角形的面积。
请将未完成的部分填入,使之完整。
该题中使用海伦公式求解:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s是三边和的一半,即(a+b+c)/2。
sqrt函数包含在math.h的头文件中,它的功能是求平方根。
代码:#include<stdio.h>#include<math.h>main(){float a,b,c,s,area;printf("输入三角形的边长a,b,c:");scanf("%f%f%f",&a,&b, __(1)__);s=__(2)__;area=sqrt(s*(s-a)*(s-b)*(s-c));/* 函数sqrt()用来计算一个非负数的平方根,使用这个函数,需要在源程序中增加"#include<math.h>" */printf("area=%.2f\n",__(3)__);}3.题目描述:输入一个不多于4位的正整数,要求求出它是几位数,分别输出其每一位数字。
以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。
代码:#include<stdio.h>main(){int n,ge,shi,bai,qian; //个,十,百,千位: ge,shi,bai,qianprintf("输入一个不多于4位的正整数:");scanf("%d",&n);if (n<10) printf("%d是1位数\n",n);elseif( n __(1)__ ){printf("%d是2位数\n",n);ge=n%10;shi=n/10;printf("十位:%d,个位:%d\n",shi,ge);}elseif(n<1000){printf("%d是3位数\n",n);ge=n%10;shi=n/10%10;bai=n/100;printf("百位:%d,十位:%d,个位:%d\n",bai,shi,ge);}elseif( n __(2)__ ) printf("它超过了4位!\n");else{printf("%d是4位数\n",n);ge=n%10;shi=n/10%10;bai=n/100%10;qian= __(3)__;printf("千位:%d,百位:%d,十位:%d,个位:%d\n",qian,bai,shi,ge);}}4.题目描述:在屏幕上显示一张中文时间表,用户根据提示从中选择,程序应根据用户的选择输出相应的英文问候信息。
以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。
代码:#include<stdio.h>main(){int n;printf("**** 时间表 ****\n");printf("1:上午\n");printf("2:下午\n");printf("3:晚上\n");printf("请输入您的选择:");scanf("%d",&n); //用户输入1,2或3switch (__(1)__){case 1: printf("Good morning!\n"); __(2)__;case 2: printf("Good afternoon!\n"); break;case 3: printf("Good evening!\n"); break;__(3)__: printf("输入错误!\n");}}5.题目描述:已知银行整存整取存款不同期限的月息..利率分别为:0.33% 期限1年0.36% 期限2年月息利率= 0.39% 期限3年0.45% 期限5年0.54% 期限8年要求输入存款的本金和期限,求到期时能从银行得到的利息与本金的合计。
以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。
代码:#include<stdio.h>main(){int year; //存款期限float money,rate=0,total; //money:本金,rate:月利率,total:本利合计printf("输入本金和期限(1,2,3,5或8年): ");scanf("%f%d",&money,&year);switch(__(1)__){case 1: rate=0.0033; break; //期限一年的月利率case 2: rate=0.0036; break;case 3: rate=0.0039; break;case 5: rate=0.0045; break;case 8: rate=0.0054; break;default: printf("年限输入错误!\n");}total= __(2)__ *(1+ year*12*rate);printf("到期后本利合计为%.4f元\n",__(3)__);}程序设计6.题目标题:通过日期求某月的天数。
题目描述:输入日期的年份和月份,求该月有多少天。
提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。
输入描述:输入两个正整数y和m分别表示年份和月份。
输出描述:如果y和m满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“Input error!”。
样例输入:2010 12样例输出:317.题目标题:录取研究生。
题目描述:某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。
编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。
输入描述:输入四门课的成绩,成绩均为0~150之间的整数。
输出描述:录取结果。
(“没有录取”、“自费”、“公费”)样例输入:60 100 130 80样例输出:公费8.题目标题:骑车与走路题目描述:在华农校园里,没有自行车,上课办事会很不方便。
但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。
假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。
请判断走不同的距离去办事,是骑车快还是走路快。
输入描述:一个整数:为一次办事要行走的距离,单位为米。
输出描述:对输入的整数,如果骑车快,输出一行“Bike”;如果走路快,输出一行“Walk”;如果一样快,输出一行“All”。
样例输入:【样例输入1】【样例输入2】50 120样例输出:【样例输出1】【样例输出2】Walk Bike9.题目标题:停车场收费题目描述:一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。
最高收费为40元。
假设任何车辆的停车时间都不超过24小时。
编写程序,计算每辆车的停车费。
输入描述:输入停车的时间t。
输出描述:输出应该收取的停车费用cost,保留小数点后2位。
样例输入:3.46样例输出:5.925.题目标题:简单计算器。
题目描述:模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’ 或‘/’),对两个数进行相应的运算,输出运算结果。
注意..:除法运算‘/’的除数不能为0。
输入描述:两个实数a、b和一个运算符号c。
输出描述:如果能运算,输出a和b的运算结果;如果c为除号,且b为0,输出“除数为0!”;如果c不是’+’、‘-’、‘*’ 或‘/’中的运算符号,输出“运算符号错误!”样例输入:4*9样例输出:4.00*9.00=36.00。