实验2 逻辑结构程序设计(答案)
常熟理工学院 C语言程序设计实验实验指导书及答案汇总模板

项目 4.(选做)
5
6 《C 语言程序设计》实验指导书 常熟理工学院 电气与自动化工程学院
根据矩形面积的计算方法,编写一个输入圆半径 r,计算园周长 L 和圆面积 S 的程序。注意判断圆半径 r 是否大于零。 (程序代码和运行结果可写在指导书背面)
6
常熟理工学院 电气与自动化工程学院 《C 语言程序设计》实验指导书
运行结果:
项目 3.(选做) 在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的 一个鞍点。要求从键盘上输入一个二维数组,当鞍点存在时,把鞍点找出来。 (程序代码和运行结果可写在指导书背面)
运行结果:
项目 2. 字符统计 【项目说明】 有一篇文章,共有 3 行文字,每行 80 个字符。要求分别统计出其中英文字母和数字的个数。 【项目目的】 (1)掌握键盘输入字符串方法。 (2)掌握二维数组的处理方法。
12 《C 语言程序设计》实验指导书 常熟理工学院 电气与自动化工程学院
【技术要点】 (1)3 行文字可定义一个二维字符数组来表示。 (2)使用 gets( ) 函数对字符串进行输入。 程序代码:
2、用 do…while 和 break 语句实现的程序代码:
10 《C 语言程序设计》实验指导书 常熟理工学院 电气与自动化工程学院
3、用 do…while 和 continue 语句实现的程序代码:
) 求 (程序代码和运行结果可写在指导书背面) å n!(即求1!+ 2!+ 3!+ K + 10! )
项目 2. 调试并运行下面程序,并写出运行结果: #include <stdio.h> int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:
程序设计题库及答案详解

程序设计题库及答案详解程序设计题库及答案详解是面向计算机科学与技术专业学生以及编程爱好者的一份重要学习资料。
它不仅包含了大量的编程题目,还提供了详细的解题思路和答案,帮助读者深入理解程序设计的原理和技巧。
# 一、基础题目1. 题目1:编写一个程序,实现两个整数的加法。
- 答案详解:首先定义两个整数变量,然后使用加法运算符将它们相加,并将结果存储在一个新变量中。
最后,输出结果。
2. 题目2:编写一个程序,实现字符串的反转。
- 答案详解:可以使用循环结构遍历字符串的每个字符,并将它们添加到一个新的字符串的开始位置。
完成后,输出反转后的字符串。
# 二、数组与循环3. 题目3:编写一个程序,找出数组中的最大值。
- 答案详解:首先初始化一个变量来存储最大值,然后使用循环遍历数组中的每个元素,并与当前最大值进行比较,如果当前元素更大,则更新最大值。
循环结束后,输出最大值。
4. 题目4:编写一个程序,实现数组的排序。
- 答案详解:可以使用冒泡排序或选择排序等算法。
以冒泡排序为例,通过多次遍历数组,比较相邻元素的大小,并在必要时交换它们的位置,直到整个数组有序。
# 三、函数与递归5. 题目5:编写一个函数,计算两个数的乘积。
- 答案详解:定义一个函数,接受两个参数,然后在函数内部使用乘法运算符计算它们的乘积,并返回结果。
6. 题目6:编写一个递归函数,计算阶乘。
- 答案详解:定义一个递归函数,如果输入的数为0或1,则返回1;否则,返回输入数乘以递归调用该函数的结果,输入数减1。
# 四、数据结构7. 题目7:编写一个程序,实现链表的插入操作。
- 答案详解:首先定义链表节点的结构,然后编写一个函数来创建新的节点。
在插入操作中,根据插入位置的不同,调整节点的指针指向。
8. 题目8:编写一个程序,实现二叉树的遍历。
- 答案详解:可以使用前序、中序或后序遍历。
以中序遍历为例,首先遍历左子树,然后访问根节点,最后遍历右子树。
C程序设计实验报告(答案)

C程序设计实验报告(答案)《C程序设计》实验报告班级:学号:学期:2009--2010学年第⼆学期姓名:《C程序设计》实验报告学期:2009--2010学年第⼆学期教师姓名:教研室:软件⼯程教研室实验1 熟悉C语⾔程序的运⾏环境,掌握数据描述1.1 实验⽬的1.了解在开发环境中如何编辑、编译、连接和运⾏⼀个C语⾔程序。
2.通过运⾏简单的C语⾔程序,初步了解C语⾔程序的结构特点。
3.掌握C语⾔数据类型的概念,学会使⽤C语⾔的相关运算符构成表达式。
1.2 实验预习1.熟悉Turbo C的启动和退出及Turbo C中的编辑、编译、连接和运⾏命令。
2.了解下列命令及函数:include、main、printf、scanf。
3.熟悉Turbo C环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
表1-1 Turbo C主菜单项功能表表1-2 Turbo C提⽰⾏功能表表1-3 Turbo C快捷操作表4.熟悉Turbo C环境下的块操作。
表1-4 基本光标命令功能操作表表1-5 快速光标移动命令功能操作表表1-6 插⼊与删除命令功能操作表表1-7 块操作命令功能操作表表1-8 其他命令功能操作表1.3 实验任务1.输⼊下列程序,记录在Turbo c 下的操作⽅法。
#includemain(){printf(“I am a student!”);}环境的启动操作:我的电脑—磁盘(各机房磁盘⽬录有所不同)—Turbo C⽂件夹—tc。
Exe 。
程序的编译⽅法:快捷键是 Alt+F9 ;菜单操作是Compile—compile to OBJ程序的保存⽅法:快捷键是 F2 ;菜单操作是 File--Save程序的运⾏⽅法:快捷键是Ctrl+F9;菜单操作是 Run运⾏结果的查看:快捷键是 Alt+F5 ;菜单操作是 Run—User Screen环境的退出操作:快捷键是 Alt+X ;菜单操作是 File--Quit4.现欲将编好的上例程序以⽂件名my.c保存⾄当前⽬录下,请阐述⽅法;当重新进⼊TC对其进⾏简单修改后欲将其另存⾄C 盘SY⽂件夹下(SY⽂件夹请⾃⾏创建),叙述⽅法。
C语言_实验二、选择结构程序设计

实验二 选择结构程序设计一、实验目的1. 掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if 语句进行程序设计。
4. 使用switch 语句实现多分支选择结构。
二、实验内容(1 计算a+|b| 2 判断一个整数是否可以被3和5整除)1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。
[题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[输入]一个字符型数据[输出]整数或出错信息[提示] 根据字符型数据的ASCII 码值是否在‘0’字符与‘9’字符之间进行判断。
使用if …else …语句和复合语句。
2.[目的]掌握条件表达式的使用[题目内容] 编写一个程序,其功能为:从键盘输入三个数x 、y 、z ,判断x+y=z 是否成立,若成立输出‚x+y=z ‛的信息,否则输出‚x+y!=z ‛的信息。
[输入] 三个数x 、y 、z[输出] ‚x+y=z ‛或‚x+y!=z ‛[提示] 条件判断表达式x+y==z3.[目的]掌握求最大值最小值的方法。
[题目内容] 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[输入] 三个整数[输出] 最大值和最小值[提示] 设置最大值变量max 和最小值变量min ;首先比较a,b 的大小,并把大数存入max , 小数存入min ;然后最大值变量max 和最小值变量min 再与c 比较,若c 大于max ,则max 取值c ,否则保持不变;如果c 小于min ,则min 取值c ,否则保持不变。
最后输出max 和min 的值。
使用if …else …语句、if 语句以及复合语句。
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:ax 1+bx 2=mcx 1+dx 2=n该方程的唯一解为(ad-cb 不等于零时):cb ad bn md x --=1 bcad mc na x --=2 请编写一个程序,读取a 、b 、c 、d 的值,计算x1和x2的值。
实验2、选择结构程序设计(有答案)

选择结构程序设计【实验目的】1.熟悉关系表达式和逻辑表达式的使用;2.了解C语句表示逻辑量的方法(以0代表“假”,以非0代表“真”);3.掌握break和continue语句的使用,以及它们之间的区别;4.掌握if语句和switch语句的应用。
【实验内容】1、程序填空(1)下面程序的功能为:输入一个整数,判断该数是否能被7整除。
完成以下程序并运行出正确结果。
# include <stdio.h>void main(){int i;p rintf (“Plaese enter a int number:”);scanf(“%d”,&i);/**************found*************/if ( i%7==0)p rintf(“Yes.\n”);elsep rintf( “No.\n”);}(2)下面程序的功能为:输入两个整数,按照从大到小的顺序输出。
完成以下程序并运行出正确结果。
# include <stdio.h>void main(){int a,b;scanf(“%d,%d”,&a,&b);if(a<b)/**************found**************/{ int t; t=a; a=b; b=t; } //实现两数交换printf(“%d,%d”,a,b);}2.程序改错(1)下面程序的功能为:绝对值函数y=|x|,修改以下的程序并上机运行。
#include <stdio.h>void main(){int x;scanf(“%d”,&x);if(x>=0);y= x;else(x<0)y= -x;printf(“%d”,y);}正确的程序:#include <stdio.h>void main(){int x ,y ; //变量y 没有定义scanf(“%d”,&x);if(x>=0) //句尾不能有“;”y= x;else //else 后不能跟条件y= -x;printf(“%d”,y);}(2)下面程序的功能为:输入一个整数,判断该数是否能同时被3和7整除,修改以下的程序并上机运行。
实验1-2、选择结构程序设计(有答案)

选择结构程序设计【实验内容】1、程序填空(1)下面程序的功能为:输入一个整数,判断该数是否能被7整除。
完成以下程序并运行出正确结果。
# include <stdio.h>void main(){int i;p rintf (“Plaese enter a int number:”);scanf(“%d”,&i);/**************found*************/if ( i%7==0 )p rintf(“Yes.\n”);elsep rintf( “No.\n”);}(2)下面程序的功能为:输入两个整数,按照从大到小的顺序输出。
完成以下程序并运行出正确结果。
# include <stdio.h>void main(){int a,b;scanf(“%d,%d”,&a,&b);if(a<b)/**************found**************/{ int t; t=a; a=b; b=t; } //实现两数交换printf(“%d,%d”,a,b);}2.程序改错(1)下面程序的功能为:绝对值函数y=|x|,修改以下的程序并上机运行。
#include <stdio.h>void main(){int x;scanf(“%d”,&x);if(x>=0);y= x;else(x<0)y= -x;printf(“%d”,y);}正确的程序:#include <stdio.h>void main(){int x ,y ; //变量y 没有定义scanf(“%d”,&x);if(x>=0) //句尾不能有“;”y= x;else //else 后不能跟条件y= -x;printf(“%d”,y);}(2)下面程序的功能为:输入一个整数,判断该数是否能同时被3和7整除,修改以下的程序并上机运行。
《C程序设计》实验报告答案

答案基本订正过错处,程序设计题部分附上源代码,基本无误,但由于时间紧迫,可能也会有小问题,仅供参考。
以/* */表示程序注释。
第一章C语言概述参考答案一、选择题:1-7 ADCBBDD一、选择题:1-5 DBCBD二、算法设计(略)第三章一、选择题1-5 DCCDB 6-10 BACAA21-25 ADABA选择题24题题目应为:(a==b++二、填空题C程序设计-顺序程序设计参考答案D答案改为65534第五章选择结构程序设计参考答案一、选择题1-5 BCDCA 6-10 BCDCB 11-15 DABDD二、填空题1. switch或多分支开关控制2.fabs(x-2)<1e-63. 14. 45995. 10 20 0三、写出程序运行的结果Array 1.97,b2.a=1,b=33.该程序书上有误,正确的是:main(){ char c;while((c=getchar())!=‟\n‟){ switch(c-…1‟){case 0:case 1:putchar(c+2);case 3:putchar(c+4);default}}printf(“\n”);}结果:645341由于程序不同,该题可以有两个答案四、程序设计1、下列程序实现从键盘接收3个数,输出最大数和最小数#include <stdio.h>main(){ int a,b,c,max,min;scanf(“%d,%d,%d”,&a,&b,&c); /*键盘输入3个数a,b,c*/max=min=a; /*假设第一个数a是最大数,也是最小数/if(b>a) max=b; /*分别用a和b,c进行两次比较*/else min=b;if(c>max) max=c;if(c<min) min=c;printf(“\nmax=%d,min=%d”,max, min);}1.输入一百分制的成绩,输出他的等级,90以上“A”等,80-89为“B”等,70-79为“C”等,60-69为“D”等,60以下为“E”等。
c程序设计实验参考答案

c程序设计实验参考答案在计算机科学领域中,C程序设计是一门重要的课程,通过实验来加深对C语言的理解和应用,提高编程技巧和问题解决能力。
本文将提供一些C程序设计实验的参考答案,帮助学生更好地完成实验任务。
1. 实验一:基础语法练习实验目的:熟悉C语言的基础语法,掌握变量定义、运算符使用和基本IO操作等。
```c#include <stdio.h>int main() {int a = 5, b = 3;int sum, product;sum = a + b;product = a * b;printf("The sum of a and b is %d\n", sum);printf("The product of a and b is %d\n", product);return 0;}```2. 实验二:条件语句和循环结构实验目的:学习和掌握if-else语句、switch-case语句以及while和for循环的基本用法。
```c#include <stdio.h>int main() {int score;printf("Please enter your score: ");scanf("%d", &score);if (score >= 90) {printf("Excellent!\n");} else if (score >= 80) {printf("Good job!\n");} else if (score >= 70) {printf("Keep it up!\n");} else {printf("You need to work harder!\n");}int i;for (i = 1; i <= 10; i++) { if (i % 2 == 0) {printf("%d ", i);}}printf("\n");int j = 1;while (j <= 10) {if (j % 2 != 0) {printf("%d ", j);}j++;}printf("\n");return 0;}```3. 实验三:数组和字符串实验目的:熟悉数组和字符串的定义、初始化和基本操作,学习使用数组和字符串解决问题。
VB实验2 答案顺序结构程序设计

实验2顺序结构程序设计2014年月日代码:Public Class Form1Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChangedTextBox3.Text = Math.Sqrt(Val(TextBox1.Text) + Val(TextBox2.Text))TextBox4.Text = Int(Val(TextBox3.Text)) 结果取整TextBox5.Text = Math.Round(Val(TextBox3.Text), 2) 结果取两位小数End SubPrivate Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChangedTextBox3.Text = Math.Sqrt(Val(TextBox1.Text) + Val(TextBox2.Text))TextBox4.Text = Int(Val(TextBox3.Text))TextBox5.Text = Math.Round(Val(TextBox3.Text), 2)End SubEnd Class2.中等题(1)Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickRandomize() 随机TextBox1.Text = Int(Rnd() * (99 - 10 + 1) + 10)TextBox2.Text = Int(Rnd() * (999 - 100 + 1) + 100)TextBox3.Text = Int(Rnd() * (9999 - 1000 + 1) + 1000)End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickTextBox4.Text = (Val(TextBox1.Text) + Val(TextBox2.Text) + Val(TextBox3.Text)) / 3 TextBox4.Text = Format(Val(TextBox4.Text), "0.0") 取一个小数点End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickEndEnd SubEnd Class(2)Public Class Form1Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim n, a, b, c, d, m As IntegerIf Asc(e.KeyChar) = 13 Thenn = Val(TextBox1.Text)a = n Mod 10 取个位b = n \ 10 Mod 10 取十位c = n \ 100 Mod 10 取百位d = n \ 1000 取千位2: m = a * 1000 + b * 100 + c * 10 + dLabel2.Text = "逆序后整数为" & mIf Not IsNumeric(TextBox1.Text) ThenMsgBox("输入有非数字字符,请重新输入", , "数据检验") TextBox1.Text = ""TextBox1.Focus()End IfEnd IfEnd SubPrivate Sub TextBox1_MouseUp(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseUpEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadEnd SubEnd Class(3)代码Public Class Form1Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.ClickEnd SubButton6.ClickLabel2.Text = Button6.Text & "函数的结果"Dim m$ 字符串m = InputBox("用什么来代替", "replace函数")Dim n$n = InputBox("代替什么字符", "replace函数")TextBox2.Text = Replace(TextBox1.Text, n, m) m代替nEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadEnd SubEnd Class(4)vb画图Word代码Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickShell("C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\devenv.exe", 1) End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickShell("%windir%\system32\mspaint.exe", 1)End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click。
实验二数据类型、变量与表达式

C语言程序设计实验指导与习题解答三、注意事项及小结(1)通过本次实验,大家应该初步掌握 Visual C++ 6.0 集成开发环境的使用,包括集成 开发环境的进入、设置、退出,源程序的打开、编辑、保存、编译、运行等内容,能够读懂系 统提示的信息。
这样在今后的学习中,就可以把主要精力放到程序的调试上,提高上机效率。
(2)初学 C 语言程序,容易出错的地方是:①C 语言程序中的标点符号都需是英文输入法下的,如分号、逗号、引号等。
②语句后漏加分号。
如图 219 中编译出错,因为语句 printf("我们一起学习写 C 语言程 序!\n")的最后未加分号。
③使用标识符时,混淆了变量中字母的大小写。
如初学者可能会认为 abc 与 Abc 是同一 个变量,实际 C 编译系统会把它们看作两个不同的变量。
④程序语句中括号不匹配。
C 程序中的括号(如{}和()),引号(如""和''),都必须匹配, 即成对出现,如:例 211 中的源程序,若变为:#include <stdio.h>int main(){printf("我们一起学习写C语言程序!\n";return 0;}则会出现如下错误提示:G:\C例题\例211.c(4) : error C2143: syntax error : missing ')' before ';'即提示在语句“printf("我们一起学习写 C 语言程序!\n";”中分号';'之前少了括号')'。
实验二 数据类型、变量与表达式一、实验目的与要求1.理解数据类型的基本概念。
2.熟练掌握变量的使用方法。
3.熟练掌握运算符与表达式的使用方法。
二、实验内容1.写出下列程序的运行结果,并上机验证。
《程序设计基础[C ]》实验教程和完整答案解析
![《程序设计基础[C ]》实验教程和完整答案解析](https://img.taocdn.com/s3/m/af3a9349783e0912a2162a45.png)
《程序设计基础》实验教程对于从事计算机行业的人员来说,设计能力是最主要的基本功之一。
入门课程《程序设计基础》的学习效果将直接关系到编程能力的掌握和提高以及后续课程的学习。
然而,实践证明,许多初学者在学习这门课程时的效果并不理想。
对初学者来说,如何学好本课程?首先,要理解教材中所给出的语法描述,并学会按语法规定去编写指定问题的求解程序。
经过这样的多次反复,初学者就可以找到编程的感觉。
除了要学好理论知识外,更重要的一点是要到计算机上去验证,因为只有实践才是检验真理的标准。
只有通过到计算机上去实践,才能发现学习中存在的问题,巩固所学知识,加强解决实际问题的能力,增强信心。
因此,《程序设计基础》课程的上机实验是本课程必不可少的实践环节,必须加以重视。
本课程上机实验的目的是使学生熟悉用高级语言解决实际问题的全过程,加深对语言的理解,得到程序设计基本方法和能力的训练。
在独立编写程序、独立上机调试程序的同时,真正能用高级语言这个工具去解决实际问题,对计算机学科的相关知识有所了解,从而为后续课程的学习奠定良好的基础。
本实验指导所用环境是Visual C++ 6.0及以上版本。
考虑到本课程的内容和特点,设置了十四个实验,每次实验需要两至三小时,分别侧重于教材中的一个方面,其中标有“*”号的习题的综合性较强,可供学有余力的学生选择。
实验时也可根据具体情况做适当调整。
虽然可能由于课时和机时限制等原因而不能在实验课时内全部得到安排,但还是建议学生能将其中的每个实验都能认真做一遍,因为这些实验都是学习本课程所必需的。
学生在做实验之前应仔细阅读本实验指导书,初步掌握实验的基本要求和实验方法。
在实验过程中,学生应该有意识的培养自己调试程序的能力,积累发现问题、解决问题的经验,灵活主动的学习。
对于分析运行结果的实验习题,上机前先进行用人工分析,写出运行结果,与上机调试得到的结果进行对照,如有差异,分析其原因。
对于程序编制的实验习题,上机前应考虑出较成熟的编程思路,有意识提供出多种方案,以灵活运用所学知识和技巧。
C语言程序设计实验

实验一顺序结构程序设计一、实验目的1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
二、实验的内容和步骤1.以下程序多处有错。
要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。
#include<stdio.h>void main(){double a,b,c,s,v;printf(input a,b,c:\n);scanf("%d%d%d",a,b,c);s=a*b;v=a*b*c;printf("%d%d%d",a,b,c);printf("s=%f\n",s,"v=%d\n",v);}当程序执行时,屏幕的显示和要求输入形式如下:input a,b,c:1.0 2.0 3.0→此处的1.02.03.0是用户输入的数据a=1.000000b=2.000000,c=3.000000→此处是要求的输出格式s=2.000000,v=6.000000相关知识:①检查程序错误时应注意几点:a)有时程序中一个错误会引发一系列错误信息,工作中不应被这种情况所迷惑,改正了一些错误后应及时对源程序重新进行编译;b)如果修改错误时增删了行,或是一个行里有多个错误,更正前面错误时增删了字符,就可能导致系统对错误定位不准,此时应该重新编译;c)系统给出的警告信息一般都说明程序中有问题,因为系统发现了可疑情况。
对于警告信息同样要逐个仔细分析。
除非明确认定不是问题,否则绝不能简单地认为不是错误而不予理睬。
实际上,很多警告都是因为程序中确实有严重的隐含错误。
d)在连接中发现新错误也需要仔细检查和修改程序。
连接时发现的错误一般是由于函数名或外部变量名字写错,或者一些函数、外部变量没有定义引起的。
系统不能对连接错误给以自动定位,只能提供有关的名字信息等。
C语言程序设计 实验报告2--选择结构

福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程:C语言程序设计姓名:学号:实验室号:计算机号:实验时间:指导教师签字:成绩:实验2:选择结构程序设计一、实验目的和要求1.了解C语言表示逻辑量的方法2.正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句3.结合程序掌握一些简单算法,并学习调试程序二、实验内容和原理1.有一函数:x2+2x-6(x<0,x≠-3)y = x2-5x+6(0≤x<10,x≠2,x≠3)x2-x-15(x=-3,x=2,x=3,x≧10)写一程序,用scanf函数输入x,输出y值。
2.分别用if语句和switch语句编程实现:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
3.输入4个整数,要求按由小到大顺序输出。
4.有三个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序。
(用两种方法实现)5.输入出租车类型和里程,计算打车的费用。
计算方式为:3公里以内10元;3公里以上0车型每公里1.5元,1车型每公里2元。
三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C++ 6.0,DEV-CPP 。
四、算法描述及实验步骤1、先用scanf函数输入,再用if语句的嵌套来计算该方程。
2、(1)用switch语句时,对输入的数据进行检查,在用score/10将其强制转换得到一个整型。
最后用switch语句执行使其得到一个字符型字母。
(2)用if语句分成各个分数段将符合要求的输出对应的字符。
3、用if语句依次比较的方法排出其大小顺序。
4、(1)先用scanf函数输入,再用if语句的嵌套比较其大小顺序。
(2)带入一个中间数用条件表达式比较其大小顺序。
5、在标题写入条件,3公里以下直接输出。
3公里以上判断车型,再带入相应车型计算车费。
逻辑与计算机设计基础课后答案及分析和实验

第三章布置习题参考解
3-1设计一个电路实现下面一对布尔方程:
3-2使用对应于下列函数的层次化组件,
H=XY+XZ
和一些非门来实现下面的等式:
G=ABC+ABD+ABC+ABD
利用Shannon扩展定理可以得到整个电路
F=XF0(X)+XF1(X)
在函数H中令Y=F0,Z=F1就可以得到扩展后的F。
在每一个F0和F1中使都用一个变量,就可以将扩展定理应用于每一个F0和F1。
如果一个变量既以原变量又以反变量的形式出现,则优先取该变量。
重复此过程,直到所有的Fi都只是单因子项或常量项为止。
对于函数G。
令X=A,求出G0和G1,然后对G0和G1,令X=B。
画出G的顶层逻辑图,其中,把H作为它的一个层次化组件使用。
3-3
3-5
3-6
c) 所有情况下两个值都是一样的。
3-11
3-15
(a)
(b)
3-24
题目中的函数F和G用替换,可参考F4-10的译码器设计。
3-27。
《C语言程序设计实验》指导书(实验1~6)

《C语言程序设计实验》指导书(简明版)**大学软件学院**年**月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉C编译环境、简单C程序结构及书写方式、以及C程序的编辑、编译、连接、运行、调试的步骤;2、掌握C语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握C语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握C语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。
二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。
要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和N-S图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。
2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单C程序的结构、书写格式以及上机过程;#include <stdio.h>int main( ){printf("Hello, world!\n");return 0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。
#include <stdio.h>int main( ){int a = 9, b = 2;float x = 32.8459, y = -792.451;char d = 'R';long n = 5461237;unsigned u = 65535;printf("%d,%d\n", a, b);printf("%3d,%3d\n", a, b);printf("%f,%f\n", x, y);printf("%-10f,%-10f\n", x, y);printf("%8.2f,%8.2\n", x, y);printf("%.4f,%.4f\n", x, y);printf("%3f,%3f\n", x, y);printf("%e,%10.2e\n", x, y);putchar(d);putchar('\n');printf("%c,%d,%o,%x\n", d, d, d, d);printf("%ld,%lo,%x\n", n, n, n);printf("%u,%o,%x,%d\n", u, u, u, u);return 0;}(3)[验证型]编辑下列程序,进行编译、连接和运行。
实验二_C语言逻辑结构程序设计

实验二C语言逻辑结构程序设计一、实验内容1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。
2.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。
3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。
4. 学有余力的同学完成附加题。
二、实验目的和要求1. 进一步掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if语句进行程序设计。
4. 使用switch语句实现多分支选择结构。
三、预习要求熟悉选择结构程序设计语句和方法。
四、实验设备(软、硬件)硬件设备:PC机软件环境:Turboc 2.0五、实验方法与步骤1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。
实验步骤与要求:(1)有变量定义为整型。
(2)输入前要加提示语句。
(3)输出结果前要有必要的文字说明。
说明:(1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400 整除。
(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。
2.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。
实验步骤与要求:(1) 输入一组数据3,4,8,观察程序运行结果,并与实验二中程序2做比较(2) 另外再输入几组数据进行测试:3,4,53,3,33,3,5(3)如果程序有误,可采用“跟踪打印”的调试方法,确定错误的出处。
3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。
奖金税率a<500 0.00500≤a<1000 0.051000≤a<2000 0.082000≤a<5000 0.105000≤a 0.15实验步骤与要求:(1) 用if语句编程,自变量和函数值均为双精度类型(2) 用scanf函数输入奖金数a,输出结果采用以下形式:a=具体值 rate=税率值 tax=应缴税款 profit=实得奖金数(3) 分别输入a=280,512,1000,4250,5100,运行该程序(4) 用if~else if语句和switch语句编程,其它同上。
C程序设计_逻辑结构程序设计_实验报告

贵州大学《C程序设计实验》实验报告实验名称:逻辑结构程序设计专业电子信息科学与技术班级姓名学号教师2010年elsey=3*x-11;printf("x=%d,y=%d\n",x,y); }○1输入输出○2输入输出分析:声明变量int x,y;用scanf函数从屏幕输入x的值scanf("%d",&x);当x<1时,执行y=x;党1<=x<10时,执行y=2*x-1;党x是其他值时执行//}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf("score=%d,grade=%c\n",score,grade); }输入:输出:输入输出②再运行一次程序,输入分数为负值(如一70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输人数据错”,程序结束。
为了解决以上问题,程序改为#include<stdio.h>void main(){int score,temp,logic;char grade;//printf("请输入成绩:");//scanf("%d",&score);logic=1;while(logic){}printf("score=%d,grade=%c\n",score,grade);}运行情况当输入负数时分析:这几条语句logic=1;while(logic){printf("请输入成绩:");scanf("%d",&score);if(score>=0&&score<=100),logic=0;printf("\n");}是先把logic的值赋1,用while循环内的语句来判断输入的值,并控制程序运行情况:处理的数为1位正整数处理的数为2位正整数处理的数为3位正整数处理的数为4位正整数处理的数为5位正整数处理的数超过5位正整数if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("计算后的结果为:%d %d %d %d\n",a,b,c,d); 运行情况:输入输出:修改程序使之按由大到小顺序输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二逻辑结构程序设计实验课程名:高级语言程序设计ΙΙ专业班级:学号:姓名:实验时间:16-3-30 实验地点:K4 指导教师:一、实验目的及要求1.了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达。
3.熟练掌握if语句和switch语句.4.学习调试程序。
二、实验内容(1)源程序c30105.c中包含有一些错误,调试下列程序,使之具有如下功能:输入a、b、c三个整数,求最小值。
# include “stdio.h”void main( ){ int a,b,c;scanf("%d%d%d",a,b,c);if((a>b)&&(a>c))if(b<c)printf("min=%d\n",b);elseprintf("min=%d\n",c);if((a<b)&&(a<c))printf("min=%d\n",a);}再次运行程序,输入为“2,1,3”,程序输出却是“min=2”。
用单步执行的方法,马上发现变量a、b、c的值是不对的,原因是程序要求输入数据的分隔符是空格(还允许使用回车或<Tab>键)。
改正输入数据的分隔方式后,程序没有输出,还是用单步执行的方法,监视程序的执行过程,发现程序中条件设计有误,经过改正的程序如下:# include “stdio.h”void main(){ int a,b,c;scanf("%d%d%d",&a,&b,&c);if((a<b)&&(a<c))printf("min=%d\n",a)else if((b<a)&&(b<c))printf("min=%d\n",b);else if((c<a)&&(c<b))printf("min=%d\n",c);elseprintf("No find minimum\n");}上述程序是按在三个数中仅有一个最小值时才称其为最小值进行设计的。
另外,注意程序的书写格式,一定要采用缩进格式,即不同层次(分支)的语句左起的空格不同,这样可以有效地提高程序的可读性。
相关知识:①类似a<b<c表达式的表示方法;②if语句的嵌套;③调试工具的使用。
④求最值的简单算法。
(二)实验任务2(1)程序代码:# include <stdio.h>void main(){ int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);if((a>b)&&(a>c)&&(a>d))printf("max=%d\n",a);else if((b>c)&&(b>d))printf("max=%d\n",b);else if(c>d)printf("max=%d\n",c);elseprintf("max=%d\n",d);}(2)程序运行结果:(3)程序分析://先比较a与bcd大小,当a比其它三个都大时则输出a。
同理,当a最小时,再比较b与cd的大小,以此类推。
最后按顺序依次输出这四个数。
(三)实验任务3(1)程序代码:# include<stdio.h>int main(){int a[4];int i,j,t;printf("input 4 numbers:\n");for(i=0;i<4;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<3;j++)for(i=0;i<3-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("The sort numbers:\n");for(i=0;i<4;i++)printf("%d ",a[i]);printf("\n");return 0; }(2)程序运行结果:由小到大顺序:由大到小输出:(3)程序分析:采用“起泡法”排序算法和嵌套的for 语句;当执行外循环第一次循环时,j=0,然后执行第一次内循环,此时i=0,在if 语句中将a 【i 】和a 【i+1】比较……这时第一趟过程完成。
当执行第二次外循环时,J=1,开始第二趟过程。
内循环条件是i<3-J,由于j=1,因此相当于i<2,即i 由0到1。
其余类推。
(四)实验任务4根据以下c30108.c 函数关系,对输入的每个x 值,计算出相应的y 值。
(1)程序代码:# include <stdio.h> # include <math.h> # define p 3.141592 void main() {float x,y,z;scanf("%f",&x); if((x>=0)&&(x<=1)) y=exp(sqrt(x))-1;else if((x>=3)&&(x<=4)) y=x+2;else {z=pow(x,2)*(p/180);y=sin(z);} printf("x=%f\ny=%f\n",x,y); }(2)运行结果:⎪⎩⎪⎨⎧+-=)sin(2||12x x e yx4310≤≤≤≤x x当x 取其他值时(3)程序分析: 因为输入的是数字,所以应该先将数字转化为弧度制,故在程序开头先定义符号常量P 为3.141592,之后运行x 取不同值时所对应的程序,自后输出相应结果。
(五)5模仿第4题,写程序实现以下函数:⎪⎩⎪⎨⎧≥-≤≤-<=)10(113)101(12)1(x x x x x x y(1)程序代码:# include <stdio.h># include <math.h> int main() {float x,y;scanf("%f",&x); if(x<1) y=x;else if((1<=x)&&(x<=10)) y=2*x-1; else y=3*x-11;printf("x=%f\n,y=%f\n",x,y); }(2)运行结果:(3)程序分析:使用if嵌套语句,(六)实验任务6(1)程序代码:#include <stdio.h>void main( ){ int choice;int value;printf("Convert:\n"); /* 显示菜单*/printf(" 1:decimal to hexadecimal\n ");printf(" 2:hexadecimal to decimal\n ");printf(" 3:decimal to octal\n ");printf(" 4:octal to decimal\n");printf("enter your choice: ");scanf("%d",&choice);switch (choice){ c ase 1: /* 选中1时处理*/printf("enter decimal value:");scanf("%d",&value);printf("%d in hexadecimal is:%x\n",value,value);break;case 2: /* 选中2时处理*/printf("enter hexadecimal value:");scanf("%x",&value);printf("%x in decimal is:%d\n",value,value);break;case 3: /* 选中3时处理*/printf("enter decimal value:");scanf("%d",&value);printf("%d in octal is:%o\n",value,value);break;case 4: /* 选中4时处理*/printf("enter octal value:");scanf("%o",&value);printf("%o in decimal is:%d\n",value,value);break;}}(2)运行结果:(3)程序分析:该程序实现了不同进制间的转换,首先提示输入1~4中的一个数用来选择想实现几进制到几进制间的转换,例如首先输入1,程序会提醒输入一个你想转换的数字,之后程序会将你所输入的十进制数转换为二进制数。
(七)实验任务7(1)程序代码:# include <stdio.h>int main(){char DATE;scanf("%c",&DATE);printf("The Day Is:\n");switch(DATE){case'1':printf("Monday\n");break;case'2':printf("Tuesday\n");break;case'3':printf("Wednsday\n");break;case'4':printf("Thursday\n");break;case'5':printf("Friday\n");break;case'6':printf("Saturday\n");break;case'7':printf("Sunday\n");break;default:printf("enter date error!\n\a");}}(2)运行结果:(3)程序分析:日期date定义为字符变量,从键盘中输入1~7中任意一个数,switch得到date的值并把它和各case中给定的值(‘1’‘2’,‘3’,‘4’,‘5’,‘6’,‘7’之一)相比较,如果其中之一相同,则执行该case后面的语句(即printf后的语句)。