字符及字符串输入输出与顺序程序设计实验
字符及字符串输入输出与顺序程序设计实验报告
字符及字符串输入输出与顺序程序设计实验实验报告2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
2、复习BCD码运算调整指令。
3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
计算机C++程序设计实验报告
一、实验项目名称Visual C++实验环境熟悉及C++语言初步二、实验目的1.了解Visual C++的安装与使用2.熟悉Visual C++程序的编辑、编译、运行及调试3.熟悉简单 C/C++ 程序的基本组成。
4.掌握 C/C++ 程序中输入输出数据的基本方法。
5.掌握编译预处理命令的使用。
6.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C++6.0 程序集成环境五、实验步骤、源程序及实验结果1.下列程序是从键盘输入一个整数,然后计算它的平方并以十六进制的形式输出。
请在Visual C++ 输出、调试该程序。
#include "iostream.h"void main( ){ int x;cin>>x;int y=x*x;cout<<"x*x=="<<hex<<y<<endl;}程序运行结果:2.编写一个计算梯形面积的程序。
要求梯形的上底、下底和高在变量初始化时直接赋值。
源程序:#include <iostream.h>void main( ){float a,b,c,s;a=3.0;b=4.0;c=5.0;s=0.5*(a+b)*c;cout<<"s="<<s<<endl;}程序运行结果:3.编写一个计算一个学生三门课平均成绩的程序。
要求学生成绩从键盘输入。
源程序:#include <iostream.h>void main( ){int a,b,c,d;cin>>a>>b>>c;d=(a+b+c)/3;cout<<"d=="<<d<<endl;}程序运行结果:4.编写一个计算和估计地球重量的程序,并测试它。
顺序结构的程序设计
(3)在用%c格式输入字符时,空格和转义字符 都作为有效字符输入;
(4)在输入数据时,遇以下情况时该数据认为 结束:
• 遇空格,或按TAB或回车键; • 按指定的宽度结束; • 遇非法输入。
§3.4 顺序结构程序设计
从键盘输入一个大写字母,要求改用小写字 母输出。
#include <stdio.h> void main() {
2.若变量已正确定义,要将a和b中的数进行交 换,下面不正确的语句组是:
A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
3.写出输出结果: x=5.16894; printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
注意: 在使用这两个函数时,必须包含头文件 stdio.h。
#include “stdio.h” void main() {
char c; c=getchar(); putchar(c); }
#include<stdio.h> void main() {
char ch1,ch2,ch3; ch1=getchar();ch2=getchar();ch3=getchar(); putchar(ch1);putchar(′′);putchar(ch2); putchar(′′);putchar(ch3); putchar(′\n′); utchar(′\101′);putchar(66);putchar(‘\″’); putchar(′\n′); }
• %-m.nf:同上,左对齐。 (8)e格式符:以指数形式输出实数。 • %e:输出位数13位(正数)或14位(负
《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)[验证型]通过运行下列程序,分析各种格式符的使用方法。
程序设计基础(一)实验
程序设计基础(一)实验实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:*************************Very Good*************************2、计算两个整数的和与积。
3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
2、输入华氏温度h,输出摄氏温度c。
3、从键盘输入一个3位整数,将输出该数的逆序数。
4、输入并运行以下程序,分析运行结果。
#include <stdio.h>void main( ){ int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}5、输入三角形三条边的边长,求三角形的面积。
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
《C语言程序设计》实验报告
(此文档为word格式,下载后您可任意编辑修改!)《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++6.0一、实验目的:1.了解在Visual C++6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1.在Visual C++6.0环境下输入并运行下面的程序:#include<stdio.(){printf("This is a C program.\n");return0;}2.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include<stdio.(){int a,b,suma=3;b=4;sun=a+b;print("%d+%d=%d\n",a,b,sum);return0;}四、实验结果:1.运行结果(或截图):2.(1)改正后的源程序:(2)运行结果(或截图):五、思考题:1.一个C程序上机的步骤有哪些?答:2.组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。
#include<stdio.(){int2cd=3;floatπ=3.14;char for=′A′;printf("%d,%f,%c\n",2cd,π,for);return0;}2.在Visual C++6.0环境下输入并运行下面的程序,观察分析运行结果。
数据的输入和输出及顺序结构程序设计
一、格式化输出
格式: 格式控制串” 输出项列表) 格式:printf(“格式控制串”,输出项列表 格式控制串 功能: 功能:按指定格式向显示器输出数据
一、格式化输出
例ch4_001 main() {int a; 输出变量的值 float b; char c; a=12; b=123.456; c='d'; printf(“a=%d,b=%f,c=%c",a,b,c); }
一、格式化输出
例ch4_002 main() {int a=4; float b=2; char c=‘a’; printf("a=%5d,b=%5.1f,c=%5c\n",a,b,c); printf("a=%-5d,b=%-5.1f,c=%-5c\n",a,b,c); } %[修饰符 格式字符 修饰符]格式字符 修饰符 格式字符: 修饰符常用的有:整数、 、 、 (小写字母) 修饰符常用的有:整数、-、 +、l(小写字母) %ld.表示输出十进制长整型 表示输出十进制长整型 %lf:表示按 型输出。 :表示按double型输出。 型输出 %-5d,表示输出整数占 个字符宽,左对齐。 表示输出整数占5个字符宽 表示输出整数占 个字符宽,左对齐。 %+d,表示在整数前加 号 表示在整数前加+号 表示在整数前加
运行结果:A B 注意 :putchar()函数本身没有换行 的功 能!
字符的输入和输出
/*ch4_010.c*/ #include <stdio.h> void main() { int c; printf("Enter a character:"); c=getchar(); printf("%c--->hex%x\n",c,c); }
C程序实验 顺序程序设计
实验三顺序程序设计一、实验目的1、熟练掌握C语言中赋值语句的使用方法。
2、掌握格式输入输出scanf()函数、printf()函数的调用方法:整型、实型字符型数据的输入输出格式。
3、掌握字符型输入输出函数getchar()、putchar()函数的调用语法。
二、实验内容与步骤:1、从键盘输入两个0到127的整数,求两数的平方差并输出其值以及这两个整数的ASCⅡ码对应的字符。
程序:#include <stdio.h>void main(){int x,y,sub;scanf("%d%d",&x,&y);sub=x*x-y*y;printf("%c,%c,%d\n",x,y,sub);}结果:从键盘输入"100 50",结果是?100 50d,2,75002、#include <stdio.h>void main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61; b=62;c1='a'; c2='b';d=3056; e=-6087;f=3157.; g=0.;m=50000; n=60000;p=32768; q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);}(1)运行程序并分析结果。
结果:a=61,b=62c1=a,c2=bd=3056.00,e=-6087.00f= 3157.,g= 0.0m=50000,n=60000p=32768,q=40000分析:a,b为整型变量,按%d输出,得到如上的结果;c1,c2为字符型,按%c输出,得到如上的结果;d,e为单精度浮点型,按%6.2f输出,其中整个数据占6列,小数两列,得到的结果如上;f,g双精度变量,按%15.6f输出,其中整个数据占15列,小数为6列(如全为小数,则小数全部输出),因为位置过宽,所以前面留有空格,结果如上;m,n为长整型,按%ld 输出,得到结果如上;p,q为无符号整型,存储范围增加,因此得到如上结果。
微机原理字符及字符串输入输出与顺序程序设计实验
微机原理字符及字符串输入输出与顺序程序设计实验
本次实验是关于微机原理的字符及字符串输入输出与顺序程序设计的实验。
在本次实验中,我们将学习如何输入、输出字符和字符串,并且实现一个简单的顺序程序。
下面我将着重介绍本次实验的步骤和相关知识。
一、实验步骤
1. 输入一个字符,然后将其输出
3. 实现一个简单的顺序程序,实现两个数的加减运算
二、相关知识
在 C 语言中,可以使用 getchar() 函数进行字符输入,也可以使用 putchar() 函数进行字符输出。
下面是一个简单的示例代码:
```
#include <stdio.h>
printf("请输入一个字符:");
c = getchar();
return 0;
}
```
3. 顺序程序设计
顺序程序是一种简单的程序设计方式,即按照指定顺序执行一系列的操作。
在本次实验中,我们将实现两个数的加减运算。
下面是一个简单的示例代码:
sum = a + b;
diff = a - b;
printf("它们的和是:%d\n", sum);
printf("它们的差是:%d\n", diff);
三、实验总结。
c语言顺序结构实验报告
c语言顺序结构实验报告篇一:实验三顺序结构程序设计实验报告实验三顺序结构程序设计实验报告一、实验目的1. 掌握掌握赋值语句的使用方法。
2. 各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3. 进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1) ①#includeint main() { int a,b;//基本整型float d,e; //单精度浮点型 char c1,c2;//字符型 double f,g;//双精度浮点型long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型a=61,b=62; c1='a';c2='b';//'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.9; m=50000;n=-60000; p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/" printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g}③#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开 f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g④#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof (a),sizeof(b),sizeof(c1),sizeof(c2),sizeof(d),sizeo f(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f ),sizeof(g),sizeof(m),sizeof(n),sizeof(p),sizeof(q) );}2. sy3-(2)#include int main() {float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:");//提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r;//"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r; v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出 printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2); printf("圆球体积:v1=%6.2f\n",v1); printf("圆柱体积:v2=%6.2f\n",v2); return 0;}3. sy3-(3)#include#include //不要忘了数学函数 int main() {float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000;//赋值printf("r5=,r3=,r2=,r1=,r0=:");//提示 scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入 p1=p*r5*5; //计算}p2=p*(1+2*r2)*(1+3*r3)-p; p3=p*(1+3*r3)*(1+2*r2)-p; p4=p*pow(1+r1,5)-p; p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2); printf("方案3的利息:p3=%f\n",p3); printf("方案4的利息:p4=%f\n",p4); printf("方案5的利息:p5=%f\n",p5); return 0;4. sy3-(4)① #include int main() {char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值 c1=c1+4;//计算 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}② #include int main(){ }char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-22;//计算 c2=c2-22; c3=c3-22; c4=c4-22; c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;③ #include int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-4;//计算 c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}篇二:C语言实验二程序、总结顺序结构与输入、输出方法实验二顺序结构与输入/输出方法1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
汇编语言程序设计实验篇(emu8086)
1.汇编语言程序设计实验篇1.1.汇编系统软件简介Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。
它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。
该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。
利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。
1.1.1创建程序 TEMPLATE程序本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。
在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。
输入全部指令后,单击按钮,保存相应的程序段。
2.EXE TEMPLATE程序本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。
在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。
C语言电子教案第3章 输入输出及顺序结构
o
o
o
在%与格式符之间插入一个整数表示指定输出的宽度.若 指定的输出宽度大于实际数据的宽度,那么数据向右靠齐, 左边补空格;若指定的宽度小于实际数据的宽度,那么按 实际数据的宽度输出. 可以采用"m.n"的格式修饰格式符来输出一个实数,这里m 和n是两个整数. 对于字符串,采用"m.n"的附加格式符来修饰格式符表示 指定字符串的总宽度为m,不足m则向右靠齐,左补空格.n 表示指定截取实际字符串的前n个字符输出.也可以省略m, 不指定总宽度. 可以在宽度之前加一个""来指定输出的数据向左靠齐.
输出表列 o 输出表列是需要输出的数据,可以是变量,常量或表达 式.输出表列可以是零项,一项或多项,若多于一项则 各项之间用逗号分隔. o 输出表列和格式说明符在个数与类型上应相匹配. 例如,printf("\n x = %d , y = %f ", x , y+1);
3.2 常用输出与输入函数 printf的格式说明符
3.2 常用输出与输入函数
程序的运行结果是: 57 5 7 67.856400,-789.124023 67.856400,-789.124023 67.86,-789.12,67.856400,789.124023,67.856400,-789.124023 6.785640e+01,-7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER,COM
3.2 常用输出与输入函数
printf函数在使用时的注意事项
printf函数可以输出常量,变量和表达式的值.但 格式控制中的格式符必须按从左到右的顺序,与 输出项表中每个数据在类型上一一匹配,否则将 导致数据输出错误. 类型转换字符x,e,g可以用小写字母,也可以用大 写字母.使用大写字母时,输出数据中包含的字 母也要大写.除x,e,g外,其他类型转换字符必须 用小写字母,例如%f不能写成%F. 在输入long整型数据时,一定要使用格式%ld.如 果只用了%d,将输出错误数据. 若需要输出百分号"%",则应在格式串中用连续 的两个百分号"%%"表示. 类型转换字符紧跟在"%"后面时作为类型转换字 符,否则将作为普通字符处理. printf函数的返回值通常是本次调用中输出字符的 个数.
C语言习题:顺序、选择、循环
2.3顺序结构程序设计2.3.1 要点导读1.printf() 与scanf()语句。
printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。
它们位于stdio.h库文件中。
2.字符数据的输入输出。
最简单的字符输入输出函数是getchar()和putchar()。
两者分别从键盘读一个字符或向显示屏写一个字符。
2.3.2 经典例题分析1.下列程序运行后输出的结果是。
#include <stdio.h>void main(){int a=0,b=0;a=10;b=20;printf(“a+b=%d”,a+b);}分析:printf( )是输出函数,它的括号内由两部分组成:1)控制字符串,是用双引号括起来的字符串,它包括两种信息:(1) 格式说明。
由”%”和格式字符组成,如:%d、%f、%c等。
它的作用是将输出的数据转换成指定的格式输出。
(2) 普通字符。
需要原样输出的字符。
2)”输出表列”是需要输出的一些数据,可以是表达式。
题目中a的值是10,b的值是20,在printf(“a+b=%d”,a+b);格式说明输出表列中,”a+b= “是普通字符,需原样输出。
输出表列是一个表达式,它的结果以整型输出。
答案:a+b=30。
2.下列程序运行后输出的结果是。
#include <stdio.h>void main(){int a=732;printf(“%d\n”,a);printf(“%2d\n”,a);printf(“%10d\n”,a);printf(“%-10d\n”,a);}分析:d格式符,用来输出十进制整数。
其中%d,按整型数据的实际长度输出。
%md,m为指定的输出字段的宽度。
如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
printf(“%d\n”,a);把a的值按原样输出:732。
8086实验
实验一、寻址方式与基本指令实验一、实验目的1.熟悉8086寻址方式及基本指令功能,进一步理解和巩固课学习内容。
2.掌握汇编语言程序设计上机过程和汇编语言源程序结构。
3.熟悉Microsoft的DEBUG调试工具的使用方法。
二、实验预习要求1.认真阅读教科书第三章,了解并熟悉汇编语言程序的上机步骤及DEBUG调试工具的使用方法。
2.复习8086操作数寻址方式及基本指令功能(数据传送、算术运算和逻辑运算等)。
3.了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题外),以便在实验时进行验证。
三、实验内容1.读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。
1)程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令“MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令源操作数DATA的寻址方式是,其值为。
2)执行完“MOV DS,DATA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据库82H、68H和88H被装入的存储单元的物理地址分别为H,H和H。
3)程序中第一条“ADD AL,[BX]”指令对应的机器代码H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4)执行完第二条“ADD AL,[BX]”指令后,(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5)指令“MOV SUM,AL”中,目的操作数的寻址方式为,该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。
实验3 顺序结构程序设计
实验三数据类型和顺序结构程序设计(4学时)[实验任务一]:通过调试、分析程序运行结果,掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符;掌握各种运算符尤其是复合赋值运算符和除法及求余运算符。
程序分析实例3-1:输入、运行下面的程序,并分析、验证运行结果。
并以文件名assignment.c最终保存在实验3文件夹里:(需要存盘)【分析】程序运行结果为:在此基础上,做以下改动:(1)将程序第9~14行改为:a=61; b=62;c1=a; c2=b;f=3157.890121; g=0.123456789;d=f; e=g;p=a=m=50000; q=b=n=-60000;运行程序,分析结果。
【分析】修改后程序运行结果为:(2)在(1)的基础上将printf语句改为:printf("a=%d,b=%d,c1=%c,c2=%c,d=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);printf("f=%f,g=%f,m=%d\n",f,g,m);printf("n=%d\n”,n);printf(“p=%d,q=%d\n",p,q);运行程序。
(3)将p, q改用%o格式符输出。
注意是字母o而不是数字0。
(4)改用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);输入的数据入下:61, 62, a, b, 3.56,-6.87, 3,157.890121, 0.123456789, 50000,-60000, 40000(说明:lf,ld格式符分别用于输入double型和long型数据)分析运行结果。
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语言程序设计实验报告
c语⾔程序设计实验报告C语⾔程序设计实验报告实验⼀1.⽤scanf函数输⼊数据,a=3,b=7,x=8.2,y=123.22,c1=‘A’,c2=‘a’,⽤printf 函数进⾏输出。
2.输⼊三⾓形的三边长,求三⾓形⾯积。
3..存款利息计算,有10000元,想存5年,按以下⼏种⽅法存。
(1)⼀次存5年。
(2)先存2年期,到期将本息再存3年。
(3)先存3年期,到期后再存2年。
(4)存1年期,到期将本息再存1年,连存5次。
计算各⾃存法5年后的本息是多少?4.设半径r=1.5,圆柱⾼h=3,求圆周长,圆⾯积,圆柱表⾯积,圆柱体积。
⽤scanf 输⼊数据,输出结果,输⼊要有⽂字说明,取⼩数点后2位数字。
5.给出⼀个不多于5位的正整数,要求:(1)求出它是⼏位数?(2)分别输出每个数字?(3)按逆顺序输出。
如(123输出321)实验⼆1.输⼊两个正整数,求其最⼤公约数和最⼩公倍数。
2.⼀个数如果恰好等于它的因⼦之和,这个数就称为完数,例如6=1+2+3,编程找出1000之内的所有完数,并按下⾯格式输出其因⼦。
6its factors are1,2,33.输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其他字符的个数。
4.⼀个球从100m⾼度⾃由落下,每次落地后反跳回原⾼度的⼀半,再落下,再反弹。
求它在第10次落地式,共经过多少⽶,第10次反弹多⾼。
实验三1.从键盘输⼊⼀个整数,并将其插⼊到其元素已按升序排列的数组中,要求插⼊操作完成后,数组中的元素仍按升序排列。
2.⼀篇⽂章,共有三⾏⽂字,每⾏有80个字符。
要求分别统计出其中英⽂⼤写字母、⼩写字母、数字、空格以及其他字符的个数。
3.从键盘输⼊10个整数,并求出这10个数的最⼤值及出现次数。
4.编写个⼈所得税计算器。
输⼊个税起征点和⽉收⼊,计算应交税款。
(起征点为2000元)不超过500元的部分税率5%超过500元⾄2000元的部分税率10%超过2000元⾄5000元的部分税率15%超过5000元⾄20000元的部分税率20%超过20000元⾄40000元的部分税率25%超过40000元⾄60000元的部分税率30%超过60000元⾄80000元的部分税率35%超过80000元⾄100000元的部分税率40%超过100000元的部分税率45%。
C语言程序设计 键盘输入和屏幕输出(4.2.6)--实验1顺序结构程序设计
实验项目表
实验1 顺序结构程序设计
【实验任务】熟悉C开发环境,并进行仿写和改写程序练习
1.参考例
2.1b和例2.2程序,在每一行输出变量的值以后,再输出该变量所占内存的
字节数,在不同的集成开发环境下运行程序,观察程序的运行结果。
2.参考例
3.4和例3.5程序,分别使用宏定义和const常量定义 的值,编程计算并
输出球的体积和表面积,球的半径r的值由用户从键盘输入。
3.参考例
4.2程序,编程从键盘输入一个小写英文字母,将其转换为大写英文字母后
将转换后的大写英文字母及其十进制的ASCII码值显示到屏幕上。
【实验目的】
熟悉Visual C++6.0和Code::Blocks集成开发环境,不同类型的变量的定义和赋值。
熟悉简单的算术运算、宏定义和const常量的使用,以及字符与字符的ASCII码值的输入输出方法。
级软件工程(卓越班)《C语言程序设计》实验指导书
实验1 C的实验环境和C语言的数据类型⒈实验目的⑴了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。
⑵通过运行简单的C程序,初步了解C源程序的特点。
⑶掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
⑷掌握不同的类型数据之间赋值的规律。
⑸学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
⒉实验内容和步骤⑴检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。
⑵进入所用的集成环境。
⑶熟悉集成环境的界面和有关菜单的使用方法。
⑷输入并运行一个简单的、正确的程序。
⒊实验题目⑴输入下面的程序# include “stdio.h”void main(){ printf(“This is a c program.\n”);}程序无误,其运行的结果为:(请填写)⑵输入并编辑一个有错误的C程序。
# include “stdio.h”void main(){ int a,b,suma=123; b=456;sum=a+bprint(“sum i s %d\n”,sum);}运行后程序出现几处错误,请分别指出,并逐一更改:⑶若k,g均为int型变量,则下列语句的输出为,:# include “stdio.h”void main(){ int k, g;k=017; g=111;print(“%d\t”,++k);printf(“%x\n”,g++);}运行结果为:实验2 数据的输入输出⒈实验目的⑴掌握C语言中赋值表达式的使用方法。
⑵掌握用格式化输入/输出函数实现各种类型数据的输入输出,能正确使用各种格式转换符。
⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。
⒉实验内容(1)用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
问在键盘上如何输入?请书写程序#include “stdio.h”void main(){ int a,b;float x,y;charc1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&y);scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”);}运行,并按照如下方式在键盘上输入:A=3 b=78.5 71.82A a运行结果:A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2);按以上的输入、输出将如何变化?请分析原因(2)用下面的程序输出一个实数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理第二次试验字符及字符串输入输出与顺序程序设计实验班级:姓名:学号:日期:字符及字符串输入输出与顺序程序设计实验2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
2、复习BCD码运算调整指令。
3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字0?9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
指令格式如下:MOV D X, OFFSET INFOR1 ;INFOR1为在数据段中定义的要显示的字符串MOV AH, 09HINT 21H(2)非压缩型BCD数加法调整指令的使用设从键盘输入的数值已存放在寄存器AL, BL中,可用下列程序完成数据相加和调整操作:XOR AH,AHADD A L, BLAAA ;执行该指令后,AH中为和的十位上的数字,AL中为个位上的数字请读者考虑,为什么要使用指令“XOR AH,AH”,不用行否?(3)计算结果的显示执行完AAA指令后,只需分别将AH(十位上的数值)和AL(个位上的数值)加上30H,并依次调用功能号为2的DOS 功能调用来显示字符。
具体指令代码如下:PUSH AXMOV DL, AHADD DL, 30HMOV AH, 02HINT 21HPOP AXMOV DL, ALADD DL, 30HMOV AH, 02HINT 21H2、 源程序框架DATA S EGMENTINFOR1 DB "Please Input the First Data(<10):$"INFOR2 DB 0AH,0DH,"Please Input the Second Data(<10):$"INFOR3 DB 0AH,0DH,"The Result is:$" ;0DH 和0AH 分别为非显示字符回;车和换行的ASCII 码值,美圆符号“$”为字符串结束标志,不能省略。
DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART: MOV AX, DATA MOV D S, AXSUBAL, 30H MOV BL, ALSUB AL, 30HPUSH AXPOP AX PUSH AXMOV AH, 4CHINT 21HCODE ENDSEND START3、 程序调试源程序编写完成后,先静态检查,无误后,对源程序进行汇编和连接,生成可执行文件。
在DOS命令提示符下运行该程序,分析运行结果是否正确。
若结果不正确,使用DEBUG对其进行调试。
2.2.4 实验习题1、设a,b,c,d为四个压缩型BCD数,它们被存放在内存dbcd开始的4个存储单元中,计算a+b+c+d,并将结果在屏幕上显示出来(注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H)。
程序编写完成并运行正确后,打开源程序,改变a,b,c,d的内容,然后重新进行汇编、连接并运行程序,检查程序运行结果与手工计算结果是否相符。
下面给出几组实验用数据:(1)a=11, b=23, c=25, d=31(2)a=10, b=20, c=30, d=40(3)a=45, b=45, c=45, c=45(4)a=88, b=99, c=77, d=66(注意压缩型BCD数的表示方法:十进制数38表示成压缩型BCD数时应写成38H)2、从键盘输入两个一位十进制数,计算这两个数之积,并将结果在屏幕上显示出来。
3、从键盘输入0?9中任意一个数自然数,将其平方值在屏幕上显示(使用查表法实现)。
2.2.5 实验报告要求1、补全“2.2.3 实验内容”中源程序框架内未写出的程序代码,并说明你在调试该程序过程中遇到了哪些问题,是如何处理的。
补全后的代码如下:STACK SEGMENTSTL DB 100H DUP(?)STACK ENDSDATA S EGMENTINFOR1 DB "Please Input the First Data(<10):$"INFOR2 DB 0AH,0DH,"Please Input the Second Data(<10):$"INFOR3 DB 0AH,0DH,"The Result is:$"DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA,SS:STACKSTART: MOV AX, DATAMOV D S, AXMOV AX, STACKMOV SS, AXMOV SP, LENGTH STL;表达式“LENGTH STL”的功能为计算STL中定义的变量的个数,;汇编后其值为100H ,详见教材5.2.2MOV D X, OFFSET INFOR1;INFOR1为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HMOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值MOV BL, ALMOV D X, OFFSET INFOR2;INFOR2为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HMOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值XOR AH,AHMUL BLAAA ;执行该指令后,AH中为和的十位上的数字,AL中为个位上的数字PUSH AXMOV D X, OFFSET INFOR3;INFOR3为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HPOP AXPUSH AXMOV DL, AHADD DL, 30HMOV AH, 02HINT 21HPOP AXMOV DL, ALADD DL, 30HMOV AH, 02HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START2、从“2.2.4 实验习题”中任选一道题目,画出流程图,编写源程序,并说明在调试过程中遇到了哪些问题,是如何处理的。
2. 从键盘输入两个一位十进制数,计算这两个数之积,并将结果在屏幕上显示出来。
调试中遇到的问题:开始没有用的AAM指令,即非压缩型BCD乘法调整指令,而是沿用了上例中的AAA指令,结果中有些可以正常显示,如1*2,3*2,3*4,而像5*6,5*5,4*4就不能正常显示。
后查书找到了乘法调整指令,修正后正常运行。
STACK SEGMENTSTL DB 100H DUP(?)STACK ENDSDATA S EGMENTINFOR1 DB "Please Input the First Data(<10):$"INFOR2 DB 0AH,0DH,"Please Input the Second Data(<10):$"INFOR3 DB 0AH,0DH,"The Result is:$"DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA,SS:STACKSTART: MOV AX, DATAMOV D S, AXMOV D X, OFFSET INFOR1;INFOR1为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HMOV AH, 01HINT 21H;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值MOV BL, ALMOV D X, OFFSET INFOR2;INFOR2为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HMOV AH, 01HINT 21H;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值MUL BL ;AL BL相乘AAM ;非压缩型BCD码乘法调整指令PUSH A XMOV D X, OFFSET INFOR3;INFOR3为在数据段中定义的要显示的字符串MOV AH, 09HINT 21HPOP AXPUSH AXMOV DL, AH;执行完AAM指令后,只需分别将AH(十位上的数值)和AL(个位上的数值)加上30H,ADD DL, 30H;并依次调用功能号为2的DOS功能调用来显示字符。
MOV AH, 02HINT 21HPOP AXMOV DL, ALADD DL, 30HMOV AH, 02HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。