上机程序调试及程序设计练习.
C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
Access数据库程序设计上机操作练习题

Access数据库程序设计上机操作练习题一、综合应用题6 在考生文件夹下“库存管理系统.mdb”数据库中有一个“库存情况”窗体和一个“产品定额储备”表。
创建一个宏,使其能打开“产品定额储备”表,将所建宏命名为“打开”。
对“库存情况”窗体进行如下设置:对“库存情况”窗体进行如下设置:厘米、距上边距上边0.4厘米放置在距窗体页脚左边5.501厘米、厘米,在距窗体页脚左边将窗体页脚高度设置为1.616厘米,一个命令按钮,命令按钮的宽度为2厘米,功能是单击“打开”按钮时运行宏,所运行的宏名为“打开”,按钮上显示文本“打开”,名称为“命令1”。
7 在考生文件夹下“教学管理.mdb”数据库中有一个“课程”表,使用“自动创建窗体”,创建纵栏式的“课程”窗体;并在窗体中向“课程”表添加一条,课程号为“4”,课程名为”的记录。
“计算机应用”,课程类别为“选修”,学分为“23”的记录。
8 (1)在考生文件夹下“招生管理.mdb”数据库中有一个“中学”表和“学生报名”表,用向导创建窗体;从“中学”表中选择字段“学校代码”;从“学生报名”表中选择字段“姓名”、“性别”、“年龄”、“联系电话”;“通过中学”的数据查看方式创建带有子窗体的窗体。
选取“表格”为子窗体布局,“远征”为主窗体样式,并将主窗体标题命名为“中学招生情况”,将子窗体标题命名为“学生报名”。
(2)打开“中学招生情况”窗体视图,筛选出“学校代码”为“102”的学校,然后将学生姓名为“谢瓦尔”的记录删除。
生姓名为“谢瓦尔”的记录删除。
9在考生文件夹下“库存管理系统”数据库中有一个“库存情况”窗体和一个“生产品定额储备”表及“产品定额储备查询”。
创建一个宏,使其能删除“产品定额储备查询”,将所建宏命名为“删除”;并将宏转换成模块,模块名为“删除模块”。
对“库存情况”窗体进行如下设置:将窗体页脚高度设置为1.616厘米,在距窗体页脚左边5.501厘米、距上边0.4厘米处放置一个命令按钮,命令按钮的宽度为2厘米,功能是单击“删除”按钮时运行宏,所运行的宏名为“删除”,按钮上显示文本“删除”,名称为“命令1”。
C语言程序设计实验与习题(1-4)

ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。
#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。
4.分析与总结⑴总结C程序的结构和书写规则。
⑵阅读:附件1-C语言程序的跟踪调试。
特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。
12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。
(1)输入10个数,求其中的最大值。
(2)输入3个数,将它们升序排列输出。
(3)输入2个数,求它们的最大公约数。
(4)输入一元二次方程的系数a 、b 、c ,判断其根。
实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。
⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。
C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。
图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。
如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。
要事先准备好保存文件的目录,例d:\lx 目录。
在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。
设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。
图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。
图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。
在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。
内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。
C++程序设计上机考试题库大全(经典)

C++程序设计上机考试题库大全一、第一类题目1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
#include<iostream.h>class Box{ private:int x,y,z; int v,s;public:void init(int x1=0,int y1=0,int z1=0) {x=x1;y=y1;z=z1;}void volue() {v=x*y*z;}void area() {s=2*(x*y+x*z+y*z);}void show(){cout<<"x= "<<x<<" y= "<<y<<" z="<<z<<endl;cout<<"s= "<<s<<" v= "<<v<<endl;}};void main(){ Box a;a.init(2,3,4);a.volue();a.area();a.show();}2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include <iostream>using namespace std;class Box{public:Box(int,int,int);int volume();private:int length;int width;int height;};Box::Box(int len,int w,int w){length=len;height=h;width=w;}int Box::volume(){return(length*width*height);}int main(){Box box1(30,20,10);cout<<"The volume of box1 is "<<box1.volume()<<endl;Box box2(12,10,20);cout<<"The volume of box2 is "<<box2.volume()<<endl;return 0;}3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。
敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。
程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。
按回车键重新返回Turbo C的编辑环境。
注意,在运行程序之前最好先存盘。
【例2】输入并运行程序,写出运行结果。
main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。
【例3】输入并运行程序,写出运行结果。
main(){int a,b,c;int max(int,int);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。
实验一汇编语言上机及Debug调试

实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
C语言程序设计教程上机实验--学生版(精品)

实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
VB练习题(上机)含答案

VB练习题(上机)含答案VB练习题(上机)含答案第一部分1 在窗体上添加一个命令按钮(名称为Cmd1,标题为"输出平均值")。
程序运行后,单击命令按钮完成以下工作:①随机产生20个0到1000的整数,将其放入一个一维数组中②求出所有元素的平均值,并显示在窗体上(如下图所示)Private Sub Cmd1_Click()Dim a%(19), i%, sum!, aver!RandomizeFor i = 0 To 19a(i) = Int(Rnd * 1001)sum = sum + a(i)Next iaver = sum / 20Print averEnd Sub2 请在名称为Form1的窗体上添加一个名称为Text1的文本框和一个名称为C1、标题为"转换"的命令按钮,如下图所示。
在程序运行时,单击"转换"按钮,可以把Text1中的小写字母转换为大写,把大写字母转换为小写,其他字符不变。
Private Sub C1_Click()Dim ch As String, ch1 As String, i%ch = Text1For i = 1 To Len(ch)If Asc(Mid(ch, i, 1)) >= 65 And Asc(Mid(ch, i, 1)) <= 90 Thench1 = ch1 + LCase(Mid(ch, i, 1)) Elsech1 = ch1 + UCase(Mid(ch, i, 1)) End IfNext iText1 = Text1 + vbCrLfText1 = Text1 + ch1End Sub3 在窗体上添加一个命令按钮(名称为MyCmd1,标题为"输出最大值")。
程序运行后,单击命令按钮完成以下工作:①随机产生30个0~1000的整数,将其放入一个一维数组中②求出其中的最大值,并显示在窗体上。
程序设计基础(C语言)第3版习题及答案

第1章C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-3】上机运行本章的3个例题。
答:略。
【习题1-4】请从以下的4个选项中选择一个正确答案。
(1)A (2)A (3)C (4)B【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第2章基本数据类型和运算符【习题2-1】上机编辑并调试本章所有例题。
答:略。
【习题2-2】下面哪些是合法的常量?⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a⑵'mn' "OK" "a" '\012' "a/b" '\\'答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a⑵合法的常量有: "OK" "a" '\012' "a/b" '\\'【习题2-3】下面的变量名中哪些是合法的?A&b abc123 abc% AbC a_b_cint _abc 123abc a\b?ca bc a*bc 'a'bc答:合法的变量名有:abc123 AbC a_b_c _abc【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?⑴Int i,j;⑵float a,b;⑶int a,b;float a,b;⑷float a,int b;⑸char 'a';答:⑴错误,因为关键字Int 应该全为小写字母⑵正确⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号⑸错,'a'表示字符常量,不能用作变量名【习题2-5】把下列数学式子写成C 语言表达式。
c语言程序设计上机答案

c语言程序设计上机答案C语言程序设计是一门实践性很强的课程,上机练习是掌握C语言编程技能的重要环节。
以下是一些常见的C语言上机练习题目及其参考答案,供学习者参考。
1. 打印“Hello, World!”```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num); }return 0;}```4. 计算圆的面积```c#include <stdio.h>#include <math.h>double calculateArea(double radius) {return M_PI * radius * radius;}int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = calculateArea(radius);printf("半径为 %f 的圆的面积是:%f\n", radius, area); return 0;}```5. 字符串反转```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; ++i) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```6. 计算阶乘```c#include <stdio.h>unsigned long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个非负整数:");scanf("%d", &num);printf("%d 的阶乘是:%llu\n", num, factorial(num)); return 0;}```7. 排序算法(冒泡排序)```c#include <stdio.h>void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; ++i) {for (int j = 0; j < n - i - 1; ++j) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf("排序后的数组是:\n");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 寻找最大值```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) { max = arr[i]; }}return max;。
C++程序设计 上机考试复习题及答案(优化版)

C++程序设计上机试题考试时间:180分钟(注:以下所有题目均要求上机实现)第一题( 20分)声明数组如下,按要求编写程序,以f1.cpp作为文件名,存放到D盘: double a[]={1.1,5.2,7.3,4.4}, b[4];要求使用泛型算法完成:1.将数组a内容反转,并正向输出数组a的内容.2.将数组a的内容拷贝到数组b, 并逆向输出数组b的内容.3.将数组b按降幂排序,并输出数组b的内容.4.在数组a中查找4.4的位置,并输出.#include <iostream>#include <algorithm>#include<iterator>#include <functional>using namespace std;void main(){double a[]={1.1,5.2,7.3,4.4},b[4];reverse(a,a+4);copy(a,a+4,ostream_iterator<double>(cout," "));cout<<endl;reverse_copy(a,a+4,ostream_iterator<double>(cout," "));cout<<endl<<endl;copy(a,a+4,b);copy(b,b+4,ostream_iterator<double>(cout," "));cout<<endl;reverse_copy(a,a+4,b);copy(b,b+4,ostream_iterator<double>(cout," "));cout<<endl<<endl;sort(a,a+4);copy(a,a+4,ostream_iterator<double>(cout," "));cout<<endl;sort(a,a+4,greater<double>());copy(a,a+4,ostream_iterator<double>(cout," "));cout<<endl<<endl;double *x=find(a,a+4,4.4);if (x==a+4)elsecout<<"have value is "<<*x;cout<<endl;}第二题(20分)定义队列类模板queue(先进先出),队列的大小由使用者确定。
汇编语言程序设计上机步骤与调试方法

汇编语言程序设计上机步骤与调试方法在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们能够帮助程序员更好地编写和调试程序。
本文将介绍汇编语言程序设计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些知识。
一、上机步骤1. 准备工作在开始上机之前,我们需要做一些准备工作。
首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。
其次,确保操作系统和开发环境已经正确安装并能够正常运行。
最后,根据需要准备好所需的汇编语言文档和程序样例。
2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。
在项目中,我们可以组织和管理相关的文件和代码。
通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。
3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。
首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。
然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。
在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。
4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。
调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。
- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。
- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。
- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。
- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。
5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。
在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。
二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。
《C语言程序设计习题与上机指南》答案

《C语言程序设计习题与上机指南》答案第一部分习题篇第一章c语言概述一、单选题1.以下说法中正确的是(c)。
a) C语言程序总是从第一个函数开始执行b)在c语言程序中,要调用函数必须在main()函数中定义c)c语言程序总是从main()函数开始执行d) C语言中的main()函数必须放在程序的开头。
2.C语言程序由(b)组成。
a)一个主程序和若干子程序组成b)函数组成c)若干过程组成d)若干子程序组成3.C语言指定主函数在源程序中的位置(C)。
a)必须在开头b)必须在系统调用的库函数之后c)可以是任意的d)必须在结尾4。
以下陈述不正确(d)。
a)一个c源程序可由一个或多个函数组成b)一个c源程序必须包含一个main函数c)c程序的基本组成单位是函数d)在C程序中,注释只能放在一条语句之后。
5.以下关于C语言的陈述不正确(d)。
a)c语言既有高级语言的功能,也具有低级语言的一些功能b)c语言中的一条执行语句都必须用分号结束c)注释可以出现在程序中任意合适的地方d)include命令行后面必须加分号6.用c语言编写的代码程序(b)。
a)可以立即执行b)是一个源程序c)用高级语言(如c语言)编写的程序称为(a)源程序B)目标程序c)可执行程序d)编译器8。
函数的组成是(a)。
a)函数首部和函数体b)函数名和函数的声明部分c)主函数和子函数d)声明部分和执行部分9.在C语言中,用来表示“take address”的符号是(b)。
a)#b)和c)*d)10.c语言是计算机高级语言,它适合于作为系统描述语言,它(a)。
a)既可用来写系统软件,也可用来写应用软件b)只能写系统软件,不能用来写应用软件c)不能写系统软件,只能用来写应用软件d)既不能写系统软件,也不能写应用软件二.填空题1.C语言使用函数作为程序的模块单元,便于实现程序的模块化。
2.C语言允许直接访问物理地址和位操作。
3.用c语言编写的程序,每一个语句和数据定义的结尾必须要有一个分号。
C语言程序设计上机练习题

10、表示关系x≥y≥z的c语言表达式是( ) A) (x>=y)&&(y>=z) B) (x>=y)&d(y>=z) C) x>=y>=z D) (x>=y)||(y>=z) 11、已知int x=0, y=0, z=0; 则执行x&&y++&&++z;后,表达式y+z的值为( A)1 B) 2 C) 3 D) 0 12、以下程序段的输出结果是( ) char c=‘a’; if (‘a’<c<=‘z’) printf(“LOW”); else printf(“UP”); A)LOW B) UP C) LOWUP )
)
16、下列描述正确的是( ) A) 在switch 中必须使用break 语句。 B) break语句只能用于switch 中。 C) 在switch 中可根据需要使用或不使用break 语句。 D)break语句是switch 的一部分。
17、以下程序段的输出结果是( ) int x=1, a=0, b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++; b++; } printf(“a=%d, b=%d\n”, a, b); A)a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 18、下列对while和do-while循环的描述正确的是( ) A) do-while的循环体不能是复合语句 B) do-while的循环体至少要执行一次 C) while的循环体至少要执行一次 D) while循环不能使用 break;来结束循环 19、设有如下程序,则程序的输出结果是( ) int k=1, s=0; while(s<10) { s=s+k*k; k++; } printf(“%d”, k); A) 3 B) 4 C) 5 D) 6 20、下面关于for循环的描述错误的是( ) A) for循环经常用于循环次数已经确定的情况 B) for循环的循环体可以是一个复合语句 C) 在for循环中不能用break语句跳出循环体 D) for循环的循环体可以是一个空语句
C++面向对象程序设计习题解答与上机指导(第二版)源程序

C++面向对象程序设计习题解答与上机指导(第2版)习题参考答案源代码使用源程序的几点注意事项(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。
(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h 的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。
将程序中的#include<iostream>using namespace std;修改成#include<iostream.h>即可顺利运行。
第2章 C++基础【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。
#include<stdio.h>int main(){ int a,b,d,min;printf("Enter two numbers:");scanf("%d%d",&a,&b);min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ printf("No common denominators\n");return 0;}printf("The lowest common denominator is %d\n",d);return 0;}【解】#include<iostream>using namespace std;int main(){ int a,b,d,min;cout<<"Enter two numbers:";cin>>a;cin>>b;min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ cout<<"No common denominators\n";return 0;}cout<<"The lowest common denominator is "<<endl<<d;return 0;}【2.24】写出下列程序的运行结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机程序调试及程序设计练习一、程序填空(1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1#include <stdio.h>#include<math.h>void main(){ int i,a,b,c;for(i=100;i<=999;i++){ a=i/100;_______1_______ //b=(i-a*100)/10c=i%10;if (________2________) //printf("%d is a Armstrong number!\n",i);}}答案:1: b=(i-a*100)/10; 2 i==(a*a*a+b*b*b+c*c*c)(2)输入1个整数后,输出该数的位数。
(例:输入3214则输出4,输入-23156则输出5)。
#include <stdio.h>void main(){ int n,k=0;scanf("%d",&n);while( _____1_____ ){ //k++;_____2_____; //}printf("%d\n",k);}答案:1 n!=0 2 n=n/10;(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include <stdio.h>#include <math.h>void main(){int n,s=0;scanf("%d",&n);______ 1 ______while(n!=0) {______ 2 ______n=n/10;}printf("%d\n",s);}答案:1. n=fabs(n); 2. s+=n%10;(4)调用函数f,将一个整数首尾倒置。
例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
#include <stdio.h>#include <math.h>long f(long n){ long m,y=0; m=fabs(n);while(m!=0) {y=y*10+m%10;____1____}if(n>=0) return y;else _____2_____}void main(){printf("%ld\t",f(12345)); printf("%ld\n",f(-34567));}答案:1. m=m/10; 2. return –y;(5)调用函数f,从字符串中删除所有的数字字符。
#include <stdio.h>#include <string.h>#include <ctype.h>void f(char *s){ int i=0;while(s[i]!='\0'){if(isdigit(s[i])) ____1____(s+i,s+i+1);___2___ i++;}}void main(){ char str[80];gets(str); f(str); puts(str);}答案:1.strcpy 2. else(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。
如果查到返回出现的次数,如果未找到返回0。
#include <stdio.h>int find(char *str){ char *fstr="the";int i=0,j,n=0;while (str[i]!='\0'){for(______1______)if (str[j+i]!=fstr[j]) break;if (______2______) n++;i++;}return n;}void main(){ char a[80];gets(a);printf("%d",find(a));}答案:1.j=0j<=2;j++ 2. j==3(7)输入的一个小写字母,将字母循环后移5个位置后输出。
例如:"a"变成"f","w"变成"b"。
#include <stdio.h>void main(){ char c;c=getchar();if(______1______)c=c+5;elseif (c>='v' && c<='z')______2______putchar(c);}答案:1. c>=’a’&&c<’v’ 2. c=c-21;(8)将字符串s中所有的字符'c'删除。
#include <stdio.h>void main(){ char s[80];int i,j;gets(s);for(i=j=0; ______1______; i++)if(s[i] != 'c'){ s[j]=s[i];______2______}s[j]='\0';puts(s);}答案:1. i<=strlen(s) 2. j++;(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include <stdio.h>#include <math.h>#define f(x) x*x-5*x+sin(x)void main(){ int x; float max;______1______for(x=2;x<=10;x++)______2______printf("%f\n",max);}答案:1. max=f(1) 2. if(f(2)>max) max=f(2);(10)输入三个整数,按由小到大的顺序输出这三个数。
#include <stdio.h>void swap(______1______){ /*交换两个数的位置*/int temp;temp = *pa;*pa = *pb;*pb = temp;}void main(){ int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b)swap(&a,&b);if(b>c)swap(&b,&c);if(______2______)swap(&a,&b);printf("%d,%d,%d",a,b,c);}(11)调用函数f,去除数组中的负数,输入数组x[7] ={1,-2,3,4,-5,6,-7},输出结果为:1 3 4 6 #include <stdio.h> // 数组元素的删除void f(int *a,int *m){ int i, j ;for(i=0;i<*m;i++)if(a[i]<0) {for(j=i--;j<*m-1;j++) a[j]=a[j+1];_____1_____;}}void main(){ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};_______2_______;for(i=0;i<n;i++) printf("%5d",x[i]);printf("\n");}(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。
#include <stdio.h>float f(float, float*, int);void main(){ float b[5]={1.1, 2.2, 3.3, 4.4, 5.5 };printf("%f\n", f(1.7,b,5) );}float f( _______1________ ){ float y=a[0], t=1; int i;for(i=1; i<n; i++) { t=t*x; y=y+a[i]*t; }_____2_____}(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。
#include <stdio.h>#include <ctype.h>void main(){ char a[80]; int n[3]={0}, i; gets(a) ;________1________{if (tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/n[0]++;else if (________2________) /*统计数字个数*/n[1]++;elsen[2]++;}for(i=0;i<3;i++) printf("%d\n",n[i]);}(14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。
(例如:输入十进制数79,将输出十六进制4f。
)# include <stdio.h># include <string.h>char trans(int x){if(x<10) return '0'+x;else _______1________}int DtoH(int n,char *str){int i=0;while(n!=0){________2________n/=16;i++; }return i-1;}void main(){int i,k,n;char *str; // 注意:题目有错!str是悬挂指针。
应改为:char str[80];scanf("%d",&n);k=DtoH(n,str);for (i=0;i<=k;i++) printf("%c",str[k-i]);}(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
#include <stdio.h>void Dec2Bin(int m){int bin[32],j;for(j=0;m!=0;j++){bin[j]= ______1______;m=m/2;}for( ; j!=0; j-- )printf("%d", ______2______ );}void main(){int n;scanf("%d",&n);Dec2Bin(n);}(16)数列的第1、2项均为1,此后各项值均为该项前二项之和。