大学c语言if switch for 语句实验四练习题

大学c语言if switch for 语句实验四练习题
大学c语言if switch for 语句实验四练习题

实验四

【实验目的】

1.熟悉和掌握if、switch的使用方法;学会编写简单的分支程序结构。

2.熟悉for语句的一般形式,学会编写简单的循环结构程序。

【实验报告要求】

1、将所有题的程序复制在以班级、学号和名字命名的word文档中,并将该文档上传至对应ftp地址的作业上传文件中,比如命名为”500班2010210010白立民.doc”。

2、编程题的第4题为选做题。

【实验内容】

一、程序改错

分析下面的程序:如果下列语句来实现s=1+2+3+4+5的累加功能。请分析、运行程序,找出程序中存在的错误并进行修改。

#include

main()

{

int i, s = 0;

for(i=1, i<=5, i++);

s = s + i;

printf(″s + %d\n″, s);

}

二、程序填空

有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请在【1】、【2】处填空,并上机调试运行。

#include

main()

{

int day, x1, x2;

day = 0;

x1 = 1020;

while(【1】)

x2 = 【2】;

x1 = x2;

day++;

printf(″day = %d \n″,day);

}

三、编程题

1、编一程序,要求实现下面的功能:输入一个实数后,屏幕上显示如下菜单(加粗部分):

1.输出相反数

2.输出平方数

3.输出平方根

4.退出

程序运行的效果为:若按1键,则输出该数的相反数;若按2键,则输出该数的平方数;……。按1 ~4之外的其他键时,显示出错,、。

2、课本P85第12题

3.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

4.兔子繁殖问题:(Fibonacci 数列问题)

假设小兔子每隔一个月长成大兔子,大兔子每月生一只小兔子。第一个月有一只小兔子,求n个月后有多少只兔子?(假设所有兔子都不死)

令f(n)为n个月后兔子的数目,则第一个月有一只小兔子,f(1)=1,第二个月小兔子长成大兔子,f(2)=1,第三个月,大兔子生一只小兔子,兔子数目为2,第四个月大兔子生了一只小兔子,原来的小兔子长成大兔子,小兔子数目为1,大兔子数目为2,兔子总数为3,于是,兔子的数目可以用序列表示:

1,1,2,3,5,8,13,21,……

其中从第三项开始,任一项为前两项之和。

云南大学软件学院数据结构实验三实验报告——文件加密译码器

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期: 任课教师: 实验题目: 实验三栈和队列及其应用 小组长: 联系电话: 电子邮件: 完成提交时间:年月日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色:课题分析,算法设计,程序编写,后期调试,完成实验报告 综合得分:(满分100分) 指导教师:年月日 (注:此表在难度为C时使用,每个成员一份。)

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色:课题分析,算法设计,后期调试 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识) 本次实验的目的在于使我们深入了解栈和队列的特性,以便在实际问题背景下灵活运用它们;同时还将巩固对这两种结构构造方法的理解。 核心算法:加密与解密算法。 加密算法:将文件各位取反,再加上密码值。构成密文。 解密算法:将密文减去密码值,在按位取反,获得明文。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 定义一个类MyClass: class MyClass { char *buffer; //定义存储文件的缓存 char name[MAX_PATH]; //来存储用户输入的文件名 char pass[16]; //来存储用户输入的密码 DWORD size, psdlen; //定义变量存储文件的长度,密码的长度DWORD GetSize(); //检查文件的长度 void EncAlg(DWORD bsize); //声明加密函数 void DecAlg(DWORD bsize); //声明解密函数 public: MyClass(char *, char *); //声明构造函数 ~MyClass(); //声明析构函数 FILE *fp; //指向文件流的指针

云南大学830大学物理考试大纲

云南大学830-《大学物理》考试大纲 一、考查目标 大学物理考试内容涵盖力学、热学、电磁学、光学四门课程。要求考生熟练地掌握普通物理的基础知识和基本理论,具备一定的分析问题和解决问题的能力。 二、考试形式与试卷结构 1、试卷满分及考试时间 试卷满分为150分,考试时间为180分钟。 2、试卷的内容结构 力学 30% 热学 20% 电磁学 30% 光学 20% 3、试卷的题型结构 计算题共10 - 12小题。 三、考察的知识及范围 (一)力学 1. 质点运动学: 矢径;参考系;运动方程;瞬时速度;瞬时加速度;切向加速度; 法向加速度;圆周运动;运动的相对性。 2.质点动力学:

惯性参照系;牛顿运动定律;功;功率;质点的动能;弹性势能; 重力势能;保守力;功能原理;机械能守恒与转化定律;动量、冲量、动量定理;动量守恒定律。 3.刚体的转动: 角速度矢量;质心;转动惯量;转动动能;转动定律;力矩;力矩的功;定轴转动中的转动动能定律;角动量和冲量矩;角动量定理;角动量守恒定律。 4.简谐振动和波: 运动学特征(位移、速度、加速度,简谐振动过程中的振幅、角频率、频率、位相、初位相、相位差、同相和反相);动力学分析;振动方程;旋转矢量表示法;谐振动的能量;谐振动的合成; 波的产生与传播;面简谐波波动方程;波的能量、能流密度;波的叠加与干涉;驻波;多普勒效应。 5.狭义相对论基础: 伽利略变换;经典力学的时空观;狭义相对论的相对性原理;光速不变原理;洛仑兹变换;同时性的相对性;狭义相对论的时空观;狭义相对论的动力学基础;相对论的质能守恒定律。 (二)热学 1.气体分子运动论: 理想气体状态方程,理想气体的压强公式,麦克斯韦速率分布律,玻耳兹曼分布律,能量按自由度均分定理,气体的输运过程。 2.热力学: 热力学第一定律,热力学第一定律的应用,循环过程、卡诺循环,

C语言for循环语句教案

for循环结构程序设计教案 课程名称:C语言程序设计 本课内容:循环结构程序设计——for 语句 一、教学目标 1、领会程序设计中构成循环的方法 2 、掌握for 语句的用法 二、教学重点 1、for 语句的一般格式 2、for语句的执行过程 三、教学难点 for 语句的综合利用 四、教学方法 1、课堂讲授,给出主要内容。 2、讲解其基本格式。 3、应用示例,结合相应的知识讲解。 4、执行过程用流程图和例题用(演示法和讲解法)进行详细说明。 五、教学过程 (一)导入 1、复习前两节课我们学习的两种循环语句——while语句和do~while 语句的基本格式和执行过程和特征。 2、给出例子如下:

main( ) {int x=1; (表达式1) s=0; while(x<=100) (表达式2) {s=s+x; x=x+1; (表达式3) } printf(“%d”,s); } 分析用while语句来完成的程序,主要完成1到100的累加和,对一个循环程序来说最关键的三个部分:循环变量的赋初值、控制循环条件、循环控制变量的更新。 (二)教学过程 1、写出本节课要介绍的for语句的一般格式 for(表达式1;表达式2;表达式3) 循环体; 2、掌握:基本格式和各个表达式的功能和特征 强调:for语句中的所有表达式和while语句中的表达式所完成的功能是相同的。 表达式1:循环变量的初始化(初始值) 表达式2:循环条件(终止值) 表达式3:循环变量自增 3、for语句的执行过程 for ( int i = 0 ; i < 10 ; i++) { printf("我最棒"); }

数据结构-迷宫实验报告

云南大学软件学院数据结构实验报告(本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 实验难度 A □ B □ C □ 承担任务 (难度为C时填写) 指导教师评分(签名) 【实验题目】 实验4.数组的表示极其应用 【问题描述】 以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 【基本要求】 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的方向。如;对于下列数据的迷宫,输出的一条通路为:(l,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。?

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识) 本实验的目的是设计一个程序,实现手动或者自动生成一个n×m矩阵的迷宫,寻找一条从入口点到出口点的通路。我们将其简化成具体实验内容如下:选择手动或者自动生成一个n×m的迷宫,将迷宫的左上角作入口,右下角作出口,设“0”为通路,“1”为墙,即无法穿越。假设从起点出发,目的为右下角终点,可向“上、下、左、右、左上、左下、右上、右下”8个方向行走。如果迷宫可以走通,则用“■”代表“1”,用“□”代表“0”,用“→”代表行走迷宫的路径。输出迷宫原型图、迷宫路线图以及迷宫行走路径。如果迷宫为死迷宫,输出信息。 可以二维数组存储迷宫数据,用户指定入口下标和出口下标。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。? 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1. 设定迷宫的抽象数据类型定义: ADT Maze { 数据对象:D = { a i, j | a i, j ∈ { ‘■’、‘□’、‘※’、‘→’、‘←’、 ‘↑’、‘↓’ } , 0≤ i≤row+1, 0≤j≤col+1, row, col≤18 } 数据关系:R = { ROW, COL } ROW = { < a i-1, j , a i, j > | a i-1, j , a i, j ∈D, i=1, … , row+1, j=0, … , col+1} COL = { < a i, j-1, a i, j > | a i, j-1 , a i, j ∈D, i=0, … , row+1, j=1, … , col+1} 基本操作: Init_hand_Maze( Maze, row, col) 初始条件:二维数组Maze[][]已存在。

云南大学大学物理实验5

云南大学软件学院 实验报告 课程: 大学物理实验 学期: 2014-2015学年 第一学期 任课教师: 许红星 序号: 39 专业: 网络工程 学号: 姓名: 成绩: 实验5 静电场 一、实验目的 了解同心圆静电场的电势及电场的分布状况,更深的理解电势及电场的性质,更深层次的理解静电场。 二、实验原理 根据高斯定理推导出电场及电势的分布公式;利用数据分析软件,如Microsoft Excel 绘制电场及电势的分布图。 场强分布: 当r < R 1时, 001=?=???E dS E S 当R 1 < r < R 2时, ?=???01εq dS E S 210241 r q E επ= 当R 2 < r < R 3时, 003=?=???E dS E S 当r > R 3时, 021*******εεπεq q E q q dS E S +=?+=??? 电势分布: 根据电势的定义,可以求得电势的分布。

当r < R 1时, 3210210110143211414141332211R q q R q R q U dr E dr E dr E dr E dr E U R R R R R R r r ++ -=?+?+?+?=?=?????∞∞επεπεπ 当R 1 < r < R 2时, 321021010143214141413322R q q R q r q U dr E dr E dr E dr E U R R R R r r ++ -=?+?+?=?=????∞∞επεπεπ 当R 2 < r < R 3时, 3 2101431413 3 R q q U dr E dr E dr E U R R r r +=?+?=?=???∞∞επ 当r > R 3时, r q q U dr E dr E U r r 21014141+=?=?=??∞ ∞επ 三、实验任务 1. 选取相关参数,截图如下: 同心圆半径和电荷量:

东北大学机械学院C语言考试题库与答案

东北大学机械学院C语言答案 题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。 5 题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写) 6 题目:编写程序将用 户输入的字母进行大小写转换。 7 题目:编程判断输入的正整数是否即是5的倍数又是7的倍数。若是则输出该数;否则输出-1。 8 题目:输入一个整数,判断它是奇数还是偶数并输出。 9 题目:从键盘输入二个整数a、b,将其按大到小排列。 10 题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等。 11 题目:输入一个整数,判断该数是否能被3,5,7整除,并输出以下信息之一: (1)能同时被3,5,7整除; (2)能被其中两数(要指出哪两个)整除; (3)被其中一个数(要指出哪一个)整除; (4)不能被3,5,7任一个整除。 12 题目:输入一个5位的正整数,判定该正整数是否为一个回文数。(所谓回文素数是指正读和反读都相同的数,例如12321)。 13 题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。 14 题目:输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示(例如:输入358时,显示358 is 100 to 999)。 15 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的面积。 16 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般)。 17 题目:计算二次方程的根。

C语言循环程序设计for语句教学案例

《C语言循环程序设计—for语句》教学案例漠河县职业技术学校尘威威

《C语言循环程序设计—for语句》教学案例 漠河县职业技术学校尘威威 C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。 案例背景: 在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。 循环结构是程序设计三种基本结构的重中之重,而循环中的for 循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导

学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。 教学目标确定 (一)知识与技能 1、领会程序设计中构成循环的方法 2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。 (二)过程与方法 C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。 本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、do while语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。 (三)情感与价值观 1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。

云南大学软件学院数据结构实验4

实验难度: A □ B □ C □ 学期:2017秋季学期 任课教师: 实验题目: 组员及组长: 承担工作: 联系电话: 电子邮件: 完成提交时间:年月日

一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析) 首先输入迷宫数据,在计算机的屏幕上显示一个8行8列的矩阵表示迷宫。矩阵中的每个数据或为通路(以0表示),或为墙(以1表示),所求路径必须是简单路径,即在求得的路径上不能重复出现同一道块。假设以栈S记录“当前路径”,则栈顶中存放的是“当前路径上最后一个通道块”。由此,“纳入路径”的操作为“当前位置入栈”;从当前路径删除前一通道块的操作为“出栈”。若找到出口,则从栈中弹出数据,在屏幕上显示从入口到出口的路径坐标。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等) 1、定义坐标(X,Y): struct Coor { int row; int column; int direction; }; 2、定义方向: struct Move { int row; int column; }; 3、定义/链表结点: struct LinkNode { Coor data; LinkNode *next; }; 4、定义栈: class stack { private: LinkNode *top; public:

云南大学应用物理专业教学计划(学校印刷)

物理学院 学院简介…… 应用物理专业本科人才培养方案 一、培养目标及要求 本专业培养掌握物理学的基本理论与方法,具有良好的数学基础和科学素养,受到应用基础研究、技术开发、计算机应用以及工程技术和实验技能的系统训练,适应高新技术发展的需要,具备较强的知识更新能力和较广泛的科技适应能力的宽口径应用型高级专门人才。 毕业生应获得以下几方面的知识和能力: 1) 掌握系统的数学、计算机等方面的基本原理、基本知识; 2) 掌握较坚实的物理学基础理论、较广泛的应用物理知识、基本实验方法和技能;具备运用物理学中某一专门方面的知识和技能进行技术开发、应用研究、教学和相应管理工作的能力; 3) 了解相近专业以及应用领域的一般原理和知识; 4) 了解我国科学技术、知识产权等方面的方针、政策和法规; 5) 了解应用物理的理论前沿、应用前景和最新发展动态以及相关高新技术产业的发展状况; 6) 掌握资料查询、文献检索及运用现代信息技术获取最新参考文献的基本方法;具有一定的实验设计,创造实验条件,归纳、整理、分析实验结果,撰写论文,参与学术交流的能力。 本专业毕业生能在物理学或相关的科学技术领域中从事科研、教学、技术开发和相关的管理工作,也可攻读相关学科理工类硕士研究生。 二、学分要求及分配 应用物理专业人才培养方案修读学分分布表 课程类别总学分 学分类型分配 备注讲授实验实训 公共必修课39 总学分161 综合素质教育选修课22 学科基础课29 专业核心(必修)课34 23 11 校印版有错20, 专业选修课48 10

综合实践12 2 10 三、修业年限:四年 四、授予学位:理学学士 五、课程设置及学时、学分分配表 (一)通识教育课程61学分 1.公共必修课程39学分 课程名称开 课 学 期 总 学 分 总 学 时 学分类型分 配 学时类型分配 周 学 时 副 修 课 程 双 学 位 课 程 备注讲 授 实 验 实 训 讲 授 实 验 实 训 大学生心理健康教育 1 1 18 1 18 1 计算机基础(一) 1 2 64 1 1 36 28 4 思想道德修养与法律基础 1 3 54 3 54 3 体育(1) 1 1 36 1 36 2 形势与政策(1) 1 18 18 1 英语读写(1) 1 2 72 2 72 4 英语听说(1) 1 1 36 1 36 2 计算机基础(二) 2 2 64 1 1 36 28 4 军训和军事理论 2 2 0 2 0 0 2周体育(2) 2 1 36 1 36 2 形势与政策(2) 2 18 18 1 英语读写(2) 2 2 72 2 72 4 英语听说(2) 2 1 36 1 36 2 马克思主义基本原理概论 2 3 54 3 54 3 中国近现代史纲要 3 2 36 2 36 2 毛泽东思想和中国特色社 会主义理论体系概论(上) 3 3 5 4 3 54 3 体育(3) 3 1 36 1 36 2 形势与政策(3) 3 18 18 1 英语读写(3) 3 2 36 2 36 2 英语听说(3) 3 1 36 1 36 2 毛泽东思想和中国特色社 会主义理论体系概论(下) 4 3 54 3 54 3 体育(4)4136 136 2形势与政策(4)418 18 1 英语读写(4) 4 2 36 2 36 2 英语听说(4) 4 1 36 1 36 2

C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

数据结构实验报告[3]

云南大学 数据结构实验报告 第三次实验 学号: 姓名: 一、实验目的 1、复习结构体、指针; 2、掌握链表的创建、遍历等操作; 3、了解函数指针。 二、实验内容 1、(必做题)每个学生的成绩信息包括:学号、语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息;输入学生的学号、语文、数学、英语成绩;计算学生的总分和加权平均分(语文占30%,数学占50%,英语占20%);输出学生的成绩信息。 三、算法描述 (采用自然语言描述) 首先创建链表存储n个学生的成绩信息,再通过键盘输入学生的信息,创建指针p所指结点存储学生的成绩信息,从键盘读入学生人数,求出学生的总分和加权平均分,输出结果。 四、详细设计 (画出程序流程图)

五、程序代码 (给出必要注释) #include #include typedef struct score {int number; int chinese; int math; int english; int total; float average; struct score *next; } student; //创建链表存储n个学生的信息,通过键盘输入信息student*input_score(int n) {int i; student*stu,*p; for(i=0,stu=NULL;inumber);

for循环使用详解(c语言版)

for循环使用详解(c语言版) 说明:c语言的很多语法部分都和JAVA,AS等相同特别是for的用法. c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句. for(表达式 1;表达式 2;表达式 3)语句 它的执行过程如下: (1)先求表达式 1. (2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步做若为 假(值为0),则结束循环,转到第5步. (3)求解表达式3 (4)转回上面第(2)步骤继续执行; (5)结束循环,执行for语句下面的一个语句; for(循环变量赋初值;循环条件;循环变量增值)语句 如 for(i=1;i =100;i++)sum=sum+i; 它的执行相当于 i=1; while(i =100){ sum=sum+i; i++; } 显然,用for语句更简单、方便。 说明: (1)for语句的一般形式中的”表达式1”可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i =100;i++){....}; (2)如果表达式2省略即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真. 例如:for(i=1;;i++){.....}; 相当于 i=1; while(1) {sum=sum+1; i++; } (3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如: for(i=1;i =100;) {sum=sum+1; i++;

(精选)云南大学软件学院数据结构实验3

实验难度: A □ B □ C □序号学号姓名成绩 指导教师(签名) 学期:2017秋季学期 任课教师: 实验题目: 组员及组长: 承担工作: 联系电话: 电子邮件: 完成提交时间:年月日

一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析) 魔王语言的解释规则: 大写字母表示魔王语言的词汇,小写字母表示人的词汇语言,魔王语言中可以包含括号,魔王语言的产生式规则在程序中给定,当接收用户输入的合法的魔王语言时,通过调用魔王语言翻译函数来实现翻译。 在 A 的基础上,(根据产生式)自定义规则,将一段魔王的话翻译为有意义的人类语言(中文):输入wasjg,则魔王语言解释为“我爱数据结构”。 运用了离散数学的一些基本知识及程序设计知识。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等) //---------------抽象数据类型的定义------------------// #define STACK_INIT_SIZE 50 #define STACKINCREMENT 10 #define OVERLOW -2 #define ERROR -1 typedef struct { char *base; //顺序栈的栈底指针 int top; //顺序栈的栈顶 int size; //栈元素空间的大小 }SqStack; //结构体类型顺序栈 typedef struct { char *base; int front; int rear; }SqQueue; //结构体类型队列 //---------------各个模块功能的描述------------------// void Init_SqStack(SqStack &s) //初始化顺序桟 void Push_SqStack(SqStack &s, char c) //压入数据 int Pop_SqStack(SqStack &s, char &e) //出桟 char GetTop_SqStack(SqStack s)//或得栈顶

东北大学c语言编程试题及其答案

东北大学 C 语言题库 第一部分( 选择题 ) 1构成C 语言的基本单位是 __________ 。你的答案是:正确答案是 :B 过程 函数 语句 命令 2、设x 为整型变量,不能正确表达数学关系:5 x>5&&x<10 x==6||x==7||x==8||x==9 !(x<=5)&&(x<10) 3、在C 语言中,逻辑运算符的优先级从高到低的排列顺序为 是:D &&、 || 、 || 、 &&、 &&、 ! 、 || ! 、 &&、 || 4、下面语句中,正确的是 ______ 。你的答案是:正确答案是 :D printf ( "%c\n" , "student" ); printf ( "%c\n" , "c" ); a=2,b=1 a=1,b=0 a=2,b=2 7、执行下面程序段的结果是 ______ 。 int x=0 ;do { printf (“ %2d ”, x-- ); }while (x ); 你的答案是:正确答案是 :D 打印出 321 打印出 23 不打印任何结果 陷入死循环 8、 设x=10, y=5; z=15,执行下面一段程序后 z 的结果是 _____ 。If (x>y ) if ( y>z ) x=y ; else z=y ;你的答案是:正确答案是 :C 7 6 5 for (表达式 1 ; 0;表达式 3) for (表达式 1 ; 1;表达式 3) for (表达式 1 ;表达式 1; 表达式 3) for (表达式 1 ;表达式 3; 表达式 3) 6、 执行下面程序段的结果是 。 main() { int x=1,a=0,b=0; switch(x) { case 0:b++; printf ( "%s\n" , &a ); printf ( "%s\n" , "hello" ); 5、对于 for (表达式 1;;表达式 3) 可以理解为 _____ 。你的答案是:正确答案是 :B case 1:a++; case 2:a++;b++; } printf("a=%d ,b=%d",a ,b); } 你的答案是:正确答案是 :B ____ 。你的答案是:正确答案

数据结构实验二链表

云南大学数学与统计学实验教学中心 实 验 报 告 一、实验目的: 通过实验掌握线性链表的建立及基本操作,巩固课堂内容,练习其程序的设计与实现。 由于顺序存储结构的操作相对比较简单,而且在前期课程《高级语言程序设计》中使用得也多, 所以本次实验侧重于对线性链表存储结构上的操作及应用的实现。 二、实验内容: 本实验包含以下几个子问题: 1、 采用表尾挂入法建立一个以LA 为头指针的单链表: 2、 3、 就地逆转以LB 为头指针的单链表,即得到如下形式的单链表: 4、 将逆转后的LB 表接到LA 表之尾并构成循环链: LA 二、实验要求: 1. 每一个子问题用一个C 语言的函数来完成。 2. 对每一个子问题的结果用一个打印函数输出其结果以验证程序运行是否正确。 打印函数必须是公共的,即:用一个输出函数,既可以对单链表又可对循环链表实现,

打印输出。 3.用主函数调用各个子函数,以完成题目要求。 4.程序设计时应尽量考虑通用性,若改变题给数据仍能实现要求。 [实现提示]: .第3小题题中的“就地逆转”即只允许引入除LB外的两个工作指针来实现。 即可以以循环方式从链表首部起逐个地修改各个结点的指针:从NEXT(向后)指针改变为PRIOR(向前)的指针,并注意保存搜索时的指针。 三、实验环境 Windows win7 程序设计语言C 四、实验过程(请学生认真填写): 1. 实验设计的(各)流程图:

2. 程序设计的代码及解释(必须给出): /*----------------------------------LinkList-------------------------------------*/ /*基本要求---------------------------------------------------------------------*/ /*采用表尾挂入法建立一个以LA为头指针的单链表--------------*/ /*采用表首插入法建立一个以LB为头指针的单链表.---------------*/ /*就地逆转以LB为头指针的单链表,即得到如下形式的单链表.*/ /*将逆转后的LB表接到LA表之尾并构成循环链-------------------*/ /*每一个子问题用一个C语言的函数来完成--------------------------*/ /* 打印函数必须是公共的-------------------------------------------------*/ /*-------------------------------------Start-------------------------------------*/ /*--------------------------------------------------------------------------------*/ #include #include #include #define LIST_SIZE 10 /*--------------------------------------------------------------------------------*/ /*定义链表类型--------------------------------------------------------------*/ typedef struct LNode{ int data; struct LNode *next; }LinkList; /*--------------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------------*/ main(){ LinkList *InitialList1(); LinkList *InitialList2(); LinkList *reverse(LinkList *L); void connect(LinkList *L1,LinkList *L2); void putList(LinkList *L); LinkList *L1,*L2; L1=InitialList1(); L2=InitialList2(); printf("The original of list L1:\n"); putList(L1); printf("The original of list L2:\n");

实验二--弗兰克-赫兹实验

实验二--弗兰克-赫兹实验

云南大学物理实验教学中心 实验报告 课程名称:普通物理实验 实验项目:实验二弗兰克-赫兹实验 学生姓名:马晓娇学号:20131050137 物理科学技术学院物理系 2013 级天文菁英班专业 指导老师:张远宪 试验时间:2015 年11月 20 日 13 时 00 分至 15 时 00 分 实验地点:物理科学技术学院

实验类型:教学 (演示□验证□综合□设计□) 学生科研□课外开放□测试□其它□

一、实验目的 1. 了解弗兰克—赫兹实验的原理和方法,测定汞的第一激发电位,验证原子能 级的存在; 2. 练习使用微机控制的实验数据采集处理系统; 二、实验原理 玻尔的原子模型指出:原子是由原子核和核外电子组成的。原子核位于原子的中心,电子沿着以核为中心的各种不同直径的轨道运动。对于不同的原子,在轨道上运动的电子分布各不相同。 在一定轨道上运动的电子,具有对应的能量。当一个原子内的电子从低能量的轨道跃迁到较高能量的轨道时,该原子就处于一种受激状态。如图l所示,若轨道上为正常状态,则电子从轨道Ⅰ跃迁到轨道Ⅱ时,该原子处于第一激发态;电子跃迁到轨道Ⅲ,原子处于第二激发态。图中,E1、E2、E3分别是与轨道l、Ⅱ、Ⅲ相对应的能量。 当原子状态改变时,伴随着能量的变化。若原子从低能级En态跃迁到高能级Em态,则原子需吸收一定的能量△E: V(1) E Em En =- 原子状态的改变通常有两种方法:一是原子吸收或放出电磁辐射;二是原子与其他粒子发生碰撞而交换能量。本实验利用慢电子与氩原子相碰撞,使氩原子从正常状态跃迁到第一激发态,从而证实原子能级的存在。 由玻尔理论可知,处于正常状态的原子发生状态改变时,所需能量不能小于该原子从正常状态跃迁到第一激发态所需的能量,这个能量称临界能量。当电子与原子相碰撞时,如果电子能量小于临界能量,则电子与原子之间发生弹性碰撞,电子的能量几乎不损失。如果电子的能量大于临界能量,则电子与原子发生非弹性碰撞,电子把能量传递给原子,所传递的能量值恰好等于原子两个状态间的能量差,而其余的能量仍由电子保留。 电子获得能量的方法是将电子置于加速电场中加速。设加速电压为U,则经过加速后的电子具有能量eU,e是电子电量。当电压等于Ug时,电子具有的能量恰好能使原子从正常状态跃迁到第一激发态.因此称Ug为第一激发电势。 弗兰克一赫兹实验的实验原理图如图1所示。电子与原子的碰撞是在充满氩气的F—H管(弗兰克一赫兹管)内进行的。F-H管包括灯丝附近的阴极K,两个栅极G1、G2.板极A。第一栅极G1靠近阴极K,目的在于控制管内电子流的大小,以抵消阴极附近电子云形成的负电势的影响。当F—H管中的灯丝通电时,加热阴极K,由阴极K发射初速度很小的电子。在阴极K与栅极G2之问加上一个可调的加速电势差VG2,它能使从阴极K发射出的电子朝栅极G2加速。由于阴极K到栅极G2之间的距离比较大,在适当的气压下,这些电子有足够的空间与氩原子发生碰撞。在栅极G与板极A之问加一个拒斥电压VG2,当电子从栅极

c语言循环结构练习

2015-2016(2)循环结构练习题 一、单选题(共40题,共100分) 1. 以下正确的描述是()(2分) 语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句 标准答案:B 考生答案: 2. 下面的关键字中,不能够从循环体中跳出循环体外的是()(2分) 标准答案:D 考生答案: 3. 以下叙述中错误的是()(2分) A.语句标号是由合法的标识符后面加一个冒号构成 语句的作用是把程序的执行转向语句标号所在的位置 语句必须与语句标号在同一个函数内 D.结构化程序设计主张使用goto语句,使用goto语句的程序可读性强标准答案:D 考生答案: 4. 有以下程序段,while 循环执行的次数是() int k=0; while(k=1)k++; (2分) A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次 标准答案:A 考生答案: 5. 运行以下程序的结果为() main() { int num=0; while (num<=2) {num++; printf("%d",num); } } (2分) 标准答案:B 考生答案: 6. 下述程序的输出结果是()。 #include<> main() { int Y=100; while(Y--);

printf("y=%d",Y); (2分) =0 =1 =随机值 =-1 标准答案:D 考生答案: 7. 执行下面的程序后的输出结果为() int x,y,z; x=20,y=40,z=15; while(y>x) x+=4,y-=4; z/=2; printf("%d,%d,%d",x,y,z); (2分) ,36,30 ,8,7 ,28,7 ,28, 标准答案:C 考生答案: 8. 以下程序段的输出结果是() int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); (2分) ,2,0 ,2,-1 ,3,-1 ,-2,-5 标准答案:B 考生答案: 9. 下述语句执行后,变量k的值是() int k=1; while(k++<10); (2分) D.此为无限循环,值不定 标准答案:B 考生答案: 10. 下面程序的运行结果是()。 main() { int c1=2, c2=0; while(!c2--) printf("%d,%d", c1--, c2); } (2分) ,-1 B.不输出任何内容 ,-1 ,0 标准答案:C 考生答案: 11. 运行以下程序后,如果从键盘上输入china#main( ) { int v1=0,v2=0; char ch ; while((ch=getchar())!='#') switch(ch) { case 'a': case 'h': default: v1++; case '0': v2++;

《数据结构》实验指导书

《数据结构》实验指导书 石家庄铁道学院计算机系 2006.8

目录 实验指导书概述 (2) 实验大纲实习题 (3) 实习报告规范 (7) 实习步骤 (8) 附录1:实验报告示例 (10) 附录2:实验教学大纲 (13) 实验指导书概述 “数据结构”是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了多种常用的查找和排序技术,并对其进行了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大难度:  (1) 内容多,时间短,给学习带来困难;  (2) 贯穿全书的动态链表存储结构和递归技术是学习中的重点和难点;  (3) 隐含在各部分的技术和方法丰富,也是学习的重点和难点;  (4) 先修课程中所介绍的专业性知识不多,加大了学习难度。 由于数据结构课程的技术性与实践性,《数据结构》课程实验的设置十分必要。为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,与特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。在掌握基本算法的基础上,掌握分析、解决实际问题的能力。通过实验实践内容

的训练,突出构造性思维训练的特征, 提高学生组织数据及编写大型程序的能力。 上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。较大的实习题比平时的习题要复杂得多,也更接近实际。实习着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力。实习还能使书上的知识变“活”,达到深化理解和灵活掌握教学内容的目的。平时的练习较偏重于如何编写功能单一的“小”算法,而实习题是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。此外,还有很重要的一点是:机器是比任何教师都严格的检查者。 每个实习题采取了统一的格式,由问题描述、基本要求、测试数据、实现提示和选做内容等5个部分组成。 问题描述旨在为读者建立问题提出的背景环境,指明问题“是什么”; 基本要求则对问题进一步求精,划出问题的边界,指出具体的参量或前提条件,并规定该题的最低限度要求; 测试数据部分旨在为检查学生上机作业提供方便,在完成实习题时应自己设计完整和严格的测试方案,当数据输入量较大时,提倡以文件形式向程序提供输入数据; 实现提示对实现中的难点及其解法思路等问题作了简要提示,个别问题给出了参考实现; 选做内容向那些尚有余力的读者提出了更严峻的挑战,同时也能开拓其他读者的思路,在完成基本要求时就力求避免就事论事的不良思想方法,尽可能寻求具有普遍意义的解法,使得程序结构合理,容易修改扩充。 在实现的时候应注意,要尽量减少依赖于具体机器计算环境的用法,若使用,也应在注释中指出。这样得出的程序易于在不同机器上运行,有好的可移植性。C语言是结构化程序设计语言,具有递归能力,可移植性也较好,是特别推荐的实现语言。 本书的一个特点是为实习制定了严格的规范。一种普遍存在的错误观念是,调试程序全凭运气。学生花2个小时的机上时间只找出一个错误,甚至一无所获的情况是常见的。其原因在于,很多人只认识到找错误,而没有认识到努力预先避免错误的重要性,也不知道应该如何努力。实际上,结构不好、思路和概念不清的程序可能是根本无法调试正确的。严格按照实习步骤规范进行实习,不但能有效地避免上述种种问题,更重要的是有利于培养软件工作者不可缺少的科学工作方法和作风。 在附录中提供了一个完整的实习报告示例,在起到实习报告规格范例作用的同时,还隐含地提供了很多有益的东西,比如基于数据类型的系统划分方法以及所提倡的程序设计风格等等。计算机学科在不断发展,可以使用的语言工具越来越丰富,在本书中的实习示例是应用面向过程的语言进行设计和编程,同样的实习题,也可以用面向对象的语言来实现。 实验大纲实习题 实习一线性表应用 本次实习的主要目的在于熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的各种操作为侧重点。通过本次实习还可帮助读者复习高级语言的使用方法。 约瑟夫环 [问题描述]

相关文档
最新文档