实验4选择结构程序设计
《C语言程序设计》实验指导

实验1、C语言编程环境和运行C程序的方法一、实验目的1、熟悉Visual C++6.0集成开发环境的使用方法;2、熟悉C语言程序从编辑、编译、连接到最后运行得到结果的全过程及每一步骤的作用;3、了解C语言程序的结构特征与书写规则,能够编写简单的C程序;4、初步理解程序调试的思想,能找出并改正C程序中的典型语法错误。
二、实验内容1、熟悉上机环境⑴参照教材附录A(P370~376)或实验指导书前言中的内容,熟悉VC++6.0集成环境,重点是其中常用菜单、工具按钮的功能;⑵在D盘建立一个自己的工作文件夹,文件夹以班名+学号后两位+姓名来命名(例如:动漫班75号张三的工作文件夹命名为dm75zhangsan 注意:文件夹及文件的命名尽量不要用汉字!);⑶参照教材第1章中的3个例题的源代码,在自己的工作文件夹中分别创建并运行三个C源程序,初步熟悉C 程序的结构特点和运行方式。
注意:①每个例题对应一个C源程序(新建C源文件时,文件时务必要加扩展名.c);②一个源程序成功运行后,要关闭工作区后再新建下一个例题的源程序(否则会出错);2、编程参照教材例题1.1编写一个程序实现分两行输出自己的姓名及联系电话。
3、程序改错调试以下给定程序的功能是在屏幕上显示“Welcome to Y ou!”,其中存在3处语法错误,请根据编译给出的出错提示,依次指出错误所在行并进行修改,调试程序使其能运行得到正确结果。
#include<stdio.h>mian() //1{printf(Welcome to You!\n") //2}三、实验要求1、将每次实验所编辑的C 源程序调试通过后分别保存在D 盘上自己的文件夹中(备查!)及自己的U 盘中;2、对调试过程中出现的问题和解决方法进行必要的记录,并予以简要分析四、实验小结1、结合本次实验,简述C 程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。
实验4选择结构程序设计

实验4 选择结构程序设计一、实验目的1.掌握C语言中逻辑量的表示和使用方法。
2.掌握if语句及switch语句的使用。
3.熟悉各种表达式作为if语句及switch语句的条件。
4.了解Turbo C程序的基本调试方法。
二、实验内容1.验证性实验(1)分析程序的运行结果。
①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。
#include <stdio.h>void main(){ int week;printf("Input(1-7):");scanf("%d",&week);switch(week){ case 1:printf("Mon.\n"); break;case 2:printf("Tue.\n"); break;case 3:printf("Wed.\n"); break;case 4:printf("Tur.\n"); break;case 5:printf("Fri.\n"); break;case 6:printf("Sat.\n"); break;case 7:printf("Sun.\n"); break;default:printf("The input is wrong!\n");}}②运行5次下列程序,输入的数据分别是1,2,3,4,5,请观察每次的运行结果,并根据结果分析原因。
#include <stdio.h>void main(){ int n,a=0,b=0,c=0,d=0,k=0;scanf("%d",&n);switch(n){ case 1:b++;break;case 2:c++;case 3:d++;break;case 4:k++;default:a++;}printf("%d,%d,%d,%d",a,b,c,d,n);}(2)输入x的不同值,以下程序将求一给定“y=f(x)”函数的值。
《C语言程序设计实验》指导书

《C语言程序设计实验》指导书以下是为大家整理的《c语言程序设计实验》指导书的相关范文,本文关键词为c语言程序设计实验,指导书,c语言程序设计实验,简明版,中北,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。
《c语言程序设计实验》指导书(简明版)中北大学软件学院20XX年10月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉c编译环境、简单c程序结构及书写方式、以及c程序的编辑、编译、连接、运行、调试的步骤;2、掌握c语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握c语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握c语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。
二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。
要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和n-s 图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。
2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单c程序的结构、书写格式以及上机过程;#includeintmain(){printf(\return0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。
C语言程序设计第四次作业-选择结构(2)

C语⾔程序设计第四次作业-选择结构(2)(⼀)改错题输出三⾓形的⾯积和周长,输⼊三⾓形的三条边a、b、c,如果能构成⼀个三⾓形,输出⾯积area和周长perimeter(保留2位⼩数);否则,输出“These sides do not correspond to a valid triangle”。
输⼊输出样例1: Enter 3 sides of the triangle: 5 5 3 area = 7.15; perimeter = 13.00输⼊输出样例2: Enter 3 sides of the triangle: 1 4 1 These sides do not correspond to a valid triangle源程序(有错误的程序)#include <stdio.h>#include <math.h>int main(void){double a,b,c;double area,perimeter,s;printf("Enter 3 sides of the triangle: ");scanf( "%lf%lf%lf",&a,&b,&c );if( a + b > c || b + c > a || a + c > b)s = ( a + b + c ) / 2;area = sqrt( s * ( s - a ) * ( s - b ) * ( s - c );perimeter = a + b + c;printf("area = %.2f; perimeter = %.2f\n",area,perimeter);elseprintf("These sides do not correspond to a valid triangle\n");return 0;}错误信息1:错误原因:少⼀个右括号。
《C#程序设计》上机实验报告(2)

《Visual C#程序设计》课程上机实验报告专业 _________________班级学号________________姓名 ______________指导教师 ______________学期_______________________南京工业大学测绘学院上机守则1.学生必须按指导教师安排的上机实验时间进入机房上机,未经许可,不得带外人进入机房。
2.进入机房时必须穿上鞋套,否则不得进入机房。
3.认真填写上机情况登记表,若遇计算机有异常情况,应先向老师汇报,不得擅自处理。
4.遵守计算机操作规程,即开机时先开显示器再开主机;结束时须关闭计算机,关机时先通过Windows功能关闭系统,主机电源指示灯灭了以后再关闭显示器。
5.禁止上机时玩游戏或从事与上机实验无关的内容。
6.保持机房安静和整洁,不得携带食品、饮料进入机房,严禁随地吐痰、乱扔垃圾或杂物,禁止吸烟、大声喧哗或闲聊。
7.爱护机房设施,严禁更改设置参数、添加口令或删除非本人文件。
对于导致计算机不能正常工作、影响他人上机者,将取消其上机资格。
8.严禁私自拆卸配件或将室内物品带出室外。
一经发现,除要求按价赔偿外,将通报批评和取消其上机资格,情节严重者交有关行政部门和司法部门处理。
上机实验注意事项1、上机实验前必须阅读有关教材及本上机实验指导书,初步了解上机实验内容要求与步骤。
2、严格遵守上机守则,严禁大声喧哗或玩游戏。
3、认真填上机实验记录,不可潦草,填写内容包括上机实验时间、地点、实验主要内容、步骤及完成成果说明等。
4、独立完成上机实验内容,实事求是,严禁抄袭他人作业。
若有弄虚作假现象,该课程成绩按不及格处理。
5、实验结束时,应向指导教师提交上机实验报告和有关成果,符合要求并经允许,方可关机和离开机房。
6、按时上机,不准迟到、早退、旷课,有事须预先履行请假手续,征得指导教师同意后方可离开。
上机实验一、熟悉Visual C#开发环境一、实验目的熟悉Visual C#集成开发环境,了解Visual C#控制台应用程序和窗体应用程序的编写过程。
C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
实验四 选择结构程序设计2答案
#include "stdio.h"
main()
{ int i;
scanf("%d",&i);
switch(i)
{ case 1:
case 2:putchar('i');
case 3:printf("%d\n",i);break;
#include<stdio.h>
main()
{ float x,y,m=0,n=0;
scanf("%f,%f",&x,&y);
n=(x-2)*(x-2);
m=(y-2)*(y-2);
if((m+n)<=1) printf("(%.3f,%.3f)In the yuan",x,y);
}
printf("\nThe tax=%10.2f\n",tax);
}
[程序三]输入两个字符,若这两个字符的ASCII之差为偶数,则输出它们的后继字符,否则输出它们的前驱字符。
#include<stdio.h>
main()
{ char ch1,ch2,t1,t2;
else printf("前驱字符ch1=%c,ch2=%c",ch1-1,ch2-1);
}
[程序四]输入整数a、b,如果a能被b整除,则输出算式和商,否则输出算式、整数商和余数。
#include<stdio.h>
main()
{ int x,y;
printf("Please input (x,y): ");
五C语言程序设计
五《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(2)用switch语句实现该功能。
(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
《C语言程序设计》课程实验指导书
三、预习内容
预习教材第3章。
实验四 选择结构程序设计
一、实验目的
1.了解C语言表示逻辑值的方法。
2.学会正确使用逻辑运算符和逻辑表达式的方法。
3.熟悉if语句和switch语句。
4.结合程序掌握一些简单的算法。
5.学习调试程序的方法。
二、实验内容
本实验要求编程解决以下问题,然后上机调试运行程序。
d=f;e=g;
p=a=m=50000;q=b=n=-60000;
运行程序,分析运行结果。
(3)将9-14行改为以下的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);
{int z;
if(x>y) z=x;
else z=y;
return(z);
}
(1)运行程序,若程序有错,则修改错误后继续运行程序,当没有错误信息时输入:2,5并按Enter键,查看运行结果。
(2)将程序的第三行改为:int a;b;c;然后按F9看结果如何,将其修改为int a,b,c;将子程序max的第3,4行合并为一行,运行程序,看结果是否相同。
printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
}
(1)运行此程序并分析运行结果。
(2)在此基础上,修改程序的第9-14行:
实验报告4
实验报告课程名称:高级语言程序设计实验四:选择结构程序设计班级:学生姓名:学号:专业:指导教师:学期:2011-2012学年上学期云南大学信息学院一、 实验目的1、掌握关系运算和逻辑运算2、掌握选择结构相关语句的使用3、训练所学知识的综合应用二、 知识要点1、关系运算及运算符2、逻辑运算及运算符3、选择结构相关语句if 、if-else 、if 嵌套、switch 等的意义、语法格式及使用4、容易混淆的“==”与“=”运算符三、 实验预习(要求做实验前完成)1、写出6种比较运算符:2、写出3种逻辑运算符:3、“a 和b 都是正数”的逻辑表达式是:4、“a 比b 大,或者c 比b 大” 的逻辑表达式是:5、“a 等于b ,但是c 不等于d ” 的逻辑表达式是:6、“y 大于等于x1且小于等于x2” 的逻辑表达式是:7、“x 不等于0” 的逻辑表达式是:四、 实验内容 (要求提供:① 算法描述或流程图 ② 源程序 )1、编程序,计算下面分段函数的值(if-else )⎪⎩⎪⎨⎧≥-<≤+<+=)15(102)150(53)0(10x x x x x x y2、编写程序,输入一个小写英文字母,如果它位于字母表的前半部分,输出它的后一个字母;位于后半部分时输出它的前一个字母(if-else )。
3、输入某学生的考试成绩等级A 、B 、C 、D (或a 、b 、c 、d ),要求按照等级输出对应的分数段。
A 级对应的分数段为85~100分;B 级对应分数段为70~84;C 级对应分数段为60~69;D 级对应分数段位60分以下(switch )。
4、输入某学生的考试成绩,如果在90分以上,输出“A ”;80~89分输出“B ”;70~79分输出“C ”;60~69分输出“D ”;60分以下则输出“E ”(if-else 或swiitch )。
五、实验结果(要求写出运行界面及输出的运行结果)六、实验小结。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 选择结构程序设计
一、实验目的
1.掌握C语言中逻辑量的表示和使用方法。
2.掌握if语句及switch语句的使用。
3.熟悉各种表达式作为if语句及switch语句的条件。
4.了解Turbo C程序的基本调试方法。
二、实验内容
1.验证性实验
(1)分析程序的运行结果。
①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。
#include <stdio.h>
void main()
{ int week;
printf("Input(1-7):");
scanf("%d",&week);
switch(week)
{ case 1:printf("Mon.\n"); break;
case 2:printf("Tue.\n"); break;
case 3:printf("Wed.\n"); break;
case 4:printf("Tur.\n"); break;
case 5:printf("Fri.\n"); break;
case 6:printf("Sat.\n"); break;
case 7:printf("Sun.\n"); break;
default:printf("The input is wrong!\n");
}
}
②运行5次下列程序,输入的数据分别是1,2,3,4,5,请观察每次的运行结果,并根据结果分析原因。
#include <stdio.h>
void main()
{ int n,a=0,b=0,c=0,d=0,k=0;
scanf("%d",&n);
switch(n)
{ case 1:b++;break;
case 2:c++;
case 3:d++;break;
case 4:k++;
default:a++;
}
printf("%d,%d,%d,%d",a,b,c,d,n);
}
(2)输入x的不同值,以下程序将求一给定“y=f(x)”函数的值。
#include <stdio.h>
#include <math.h>
void main()
{ float x,y;
scanf("%f",&x);
if(x<0) y=fabs(x);
else if(x<10) y=x*x;
else y=log10(x);
printf("%f\n",y);
}
2.程序填空
(1)以下程序的功能是将用户输入的字母进行大小写转换,即若输入小写字母则将其转换为大写字母,如输入大写字母则将其转为小写字母,若输入非字母字符则输出提示信息。
#include<stdio.h>
void main()
{char c;
scanf("%c",&c);
if(‘A’<=c&&c>=‘Z’)c=c-32;
else if(‘a’<=c&&c>=‘z’) c=c+32;
else printf("input error\n");
printf("%c\n",c);
}
(2) 某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。
工龄和现工资从键盘输入,以下程序完成此工资计算。
#include<stdio.h>
void main()
{ float s0,s; /*s0为现工资,s为增加后的工资*/
int y; /*y为工龄*/
printf("Input s0,y:");
scanf("%f%d",&s0,&y);
if(y>=20)
{ if(s0>=2000) s=so+200;
else s=s0+180;
}
else
{ if(s0>=1500)s=s0+150;
else s=so+120;
}
printf("s=%f\n",s);
}
3.程序改错
(1)以下程序的功能是求解一个一元二次方程的实根。
#include <stdio.h>
#include <math.h>
void main( )
{float x1,x2;
int a,b,c,d;
printf("请输入一元二次方程的三个系数:");
scanf("%d%d%d",&a,&b,&c);
d=b*b-4ac; ★
if(d=0) x1=x2=-b-sqrt(d)/2*a; ★ /*sqrt(d)的作用是求d 的平方根*/
if(d>0) x1=-b-sqrt(d)/(2*a); ★
x2=-b+sqrt(d)/(2*a); ★
printf("%f,%f",x1,x2);
}
(2)下列程序的功能是求解函数22(110)
(110)x x x y x x <>⎧=⎨≤≤⎩或。
#include <stdio.h>
void main( )
{float x,y;
printf("请输入x 的值: ");
scanf("%f",x);
if(x<1||x>10) y=2*x;
if(1<=x<=10) y=x*x; ★
printf("y=%f",y);
}
4.设计性实验
(1)由键盘输入3个实型数据,代表三角形的三条边,判断它们能否组成三角形,若构成三角形则计算其面积并输出,否则输出相应提示信息(如“不能构成三角形”)。
提示:三角形的三边A,B,C 要满足:A>0,B>0,C>0并且A+B>C,B+C>A,C+A>B 的条件。
面积=SQRT(L*(L-A)*(L-B)*(L-C))(其中 L=(A+B+C)/2)
(2)编程实现对任意一个3位正整数,判断它是不是回文数。
所谓回文数是指其各位数字左右对称的正整数。
例如121,个位与百位相同。
(3) 键盘输入自己的腰围和体重,根据以下身体脂肪含量的计算公式编程计算出自己的脂肪含量,看看自己的脂肪含量是否在正常值范围内,并输出相应的信息如“正常、完美身材等”。
A=腰围(英寸)*4.15 (1英寸=2.54cm )
B=体重(磅)*0.082 (1公斤=2.2磅)
脂肪含量=(A-B-76.76)*1%
(男性正常脂肪含量是12%-20%;女性正常脂肪含量是20%-30%,23%是公认的完美身材脂肪比例。
)
(4)输入一个整数,输出它是奇数还是偶数。
提示:利用模运算符%2得到的余数去判断一个整数的奇偶性。