CL-2CL-程序设计
- 格式:doc
- 大小:174.50 KB
- 文档页数:29
C语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include<stdio.h>main(){floatr,h,C1,Sa,Sb,Va,Vb;scanf(__”%f”__,&r);scanf(”%d”,__&h_);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,C l,Sa,Sb,Va,Vb);}2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。
#include<stdio.h>main(){floatF,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x xy 写一程序,输入x 值,输出y值。
#include<stdio.h>main(){intx,y;printf("输入x :");scanf("%d",&x);if(x<1){/*x<1*/y=x;printf("x=%3d,y=x=%d\n",x,y);}elseif(____x<10_______){/*1≤x -10*/_____y=2*x-1_______;printf("x=%3d,y=2*x-1=%d\n",x,y);}else{/*x≥10*/y=3*x-11;printf("x=%3d,y=3*x-11=%d\n",x#include"st dio.h"main(){intx,y;scanf("%d",&x);if(x<1){y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else{y=3*x-11;}printf("%d",y);}#include"stdio.h" main(){intx,y;scanf("%d",&x);if(x<1){y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else{y=3*x-11;}printf("%d\n",y);}#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<1){y=x;}elseif(x>=1&&x<10){y=2*x-1;}else{y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){y=x;}elseif(x>=1&&x<10){y=2*x-1;}else{y=3*x-11;}#include"stdio.h" main(){intx,y;scanf("%d",&x);if(x<1)y=x;elseif(x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。
C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案1.假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。
#include <stdio.h>#include <math.h>/*** @brief* 假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
* 计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。
** @return int*/int main(){float r, p, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);system("pause");return 0;}2、存款利息的计算。
有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: P=1000* (1+r)^n;活期存款本息和: P= 1000 *(1+r/4) ^{4n};说明: 1000 *(1+r/4)是⼀个季度的本息和。
cl什么意思CL是“Cross-Language”的简称,通常用于指代一种通过跨语言的计算机系统进行的人工智能研究,可以提供一种有效的方式来解决极端复杂的计算任务。
跨语言学习技术可以帮助计算机从另一种语言中学习,就像人类一样,不必等到完全掌握另一种语言。
种学习技术利用机器学习和深度学习算法来理解另一种语言的语义。
它可以被用来自动翻译,对话机器人,机器翻译,智能机器人等等计算任务。
跨语言学习是一种研究人工智能(AI),语言处理和自然语言处理(NLP)的重要分支。
它可以基于深度学习算法,通过训练解决跨语言任务。
跨语言学习技术可以通过建立模型来理解不同语言之间的区别,并能够以自然的方式来处理来自不同语言的信息。
跨语言学习技术可以改善机器翻译的准确度,并让多语言的NLP 计算机程序更加准确,从而更容易理解跨语言文本。
跨语言学习也可以让计算机程序更有效地分析语言的结构,从而简化句子中的错误或拼写错误,并帮助提高多语言语料库的准确性。
跨语言学习也可以帮助机器人设计更加智能语言处理系统,让机器人能够以不同语言交流。
机器人可以根据人类语言自动分析和理解语言,然后进行免费的通用对话。
跨语言学习也可以用于全球范围内的数据挖掘和分析活动,以更好地挖掘和挖掘大量的多语言数据。
这种技术可以帮助企业更好地分析多语言的数据,提高营销效果,提高客户满意度,从而帮助他们提升销售额。
总之,跨语言学习是人工智能领域最前沿的研究领域之一,它为不同语言翻译和NLP领域提供了一个有效的解决方案,可以极大地改善AI系统的效果,提高智能交互的准确性和效率,并帮助企业挖掘大量的多语言数据。
跨语言学习的前景一直很广阔,越来越多的企业正在投入大量的资源来改善跨语言AI技术,以获得更实惠的收益。
C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************V ery good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“V ery good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。
解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf(“最大数为: %d”,max);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。
计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。
解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
例如,字母“A”后面第4个字母是“E”,“E”代替“A”。
因此,“China”应译为“Glmre”。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为‟C‟、‟h‟、‟i‟、‟n‟、‟a‟,经过运算,使c1、c2、c3、c4、c5分别变为‟G‟、‟l‟、‟m‟、‟r‟、‟e‟,并输出。
汇编语言程序设计第四版【课后习题答案】--囮裑為檤第2章8086的指令系统〔习题2.1〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1)mov ax,1200h(2)mov ax,bx(3)mov ax,[1200h](4)mov ax,[bx](5)mov ax,[bx+1100h](6)mov ax,[bx+si](7)mov ax,[bx][si+1100h]〔解答〕(1)AX=1200H(2)AX=0100H(3)AX=4C2AH ;偏移地址=bx=0100h(4)AX=3412H ;偏移地址=bx=0100h(5)AX=4C2AH ;偏移地址=bx+1100h=1200h(6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h(7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h〔习题2.2〕指出下列指令的错误(1)mov cx,dl(2)mov ip,ax(3)mov es,1234h(4)mov es,ds(5)mov al,300(6)mov [sp],ax(7)mov ax,bx+di(8)mov 20h,ah〔解答〕(1)两操作数类型不匹配(2)IP指令指针禁止用户访问(3)立即数不允许传给段寄存器(4)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为[ SI ](7)源操作数应为[BX+DI](8)立即数不能作目的操作数〔习题2.3〕已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。
第二章 CL 程序设计这章的重点是ILE 而不是OPM 。
因此,在这章中用‘过程’来代替‘程序’。
但在讨论一般的CL 命令时,仍用程序这个术语。
一个CL 过程是一组CL 命令,它告诉系统从哪得到输入,怎样处理,结果放在哪儿。
过程要有一个名字,其它过程用此名来调用它,也用这个名字联编到程序中。
与其它类型过程一样,CL 过程也要先输入源语句、编译、联编后才能运行。
在进入单个CL 命令时,每个命令是分开处理的。
当进入做为过程源语句的CL 命令时,源语句可保留做以后修改用。
命令编译形成模块,这个模块保留做永久的系统目标能连编到其它程序及运行。
这样,CL 就相当于一个系统功能的高级程序设计语言。
CL 过程保证一组命令处理的一致性,能用CL 过程完成单个命令实现不了的功能,且能提供比单个命令运行好得多的运行性能。
CL 过程在交互和批处理中都可使用,某些命令或过程只能在交互或批作业中处理。
CL 源语句由CL 命令组成,不是所有CL 命令都能做为源语句,有些只能用在CL 过程或OPM 程序中,可在CL 参考手册中每个命令语法图右上角的标识来确定使用限制。
如下图:注:(I) 最多反复40次。
(P) 这点前以所有参数都可以按位置参数格式规定。
右上角的‘PGM :B ,I ’表示这个命令可用在交互和批作业中,但仅能用在CL 程序或过程。
如果此处没有PGM 字样,说明此命令不能用做CL 程序或过程的源语句。
源语句可从工作站交互地输入到源成员中,也可从设备上做为批作业的输入流。
要用CL 源语句生成一个程序,必须把源语句输入到数据库的源成员中,然后编译这些源语句生成ILE 模块,再连编这个模块形成程序。
CL 过程可以做: 控制操作顺序及调用其它程序或过程 根据菜单选项的选择显示菜单及运行命令 读数据库文件 处理命令、程序或过程发布的错误条件,管理特定信息 为了控制应用程序的操作建立一些变量,例如日期、时间及外部指针。
为程序员提供预先定义的功能,例如启动子系统、备份文件,这样能减少经常 使用的命令数,保证系统操作的性能一致。
CL 过程不可以做: 增加或修改数据库文件中的记录 使用打印机和ICF 文件 在显示文件中使用子文件PGM :B ,I(P)PGM使用程序描述的显示文件2.1 生成CL程序所有程序都按下列步骤来生成:1.输入源码,在大多情况下,源语句按应用程序设计要求的逻辑顺序输入到数据库文件中。
2.生成模块,用CRTCLMOD命令和源语句生成系统目标,生成的CL模块可连编到程序中,一个CL模块由一个CL过程组成,其它的HLL语言的每个模块可包括多个过程。
3.生成程序,用CRTPGM命令,这个模块(以及其它模块或服务程序)用于生成一个程序。
注:如果生成的程序仅有一个模块,那么可用CRTBNDCL命令,把第2步和第3步合成一步。
2.1.1 交互式输入AS/400提供许多菜单和显示来帮助程序员,象程序员菜单、命令入口显示、命令提示和PDM菜单,也能由用户配置文件来控制使用这些显示和菜单的权限。
用户配置文件是由系统安全管理人员建立和维护的。
经常使用的源语句录入工具是SEU。
2.1.2 批方式输入可从软盘上用一个批输入流来建立CL源语句。
下面给出它的基本部分,它用SBMDKTJOB命令提交给作业队列,输入流使用下面的格式:// BCHJOBCRTBNDCL PGM(QGPL/EDUPGM) SRCFILE(PERLIST)// DATA FILE(PERLIST) FILETYPE(*SRC).. (CL Procedure Source).///*// ENDINP用这个输入流从联机源语句生成程序。
如果要保留这些源语句,用CPYF命令把软盘上的内容复制到数据库文件中,然后用此文件生成程序,也可用外部介质上的CL源语句用IBM 支持的设备文件直接生成CL模块。
IBM的软盘源文件为QDKTSRC,带文件为QTAPSRC。
假定软盘上的源文件名为PGMA,第一步用下面命令标识软盘上源文件的位置:OVRDKTF FILE(QDKTSRC) LABEL(PGMA)第二步用CRTCLMOD命令生成模块:CRTCLMOD MODULE(QGPL/PGMA) SRCFILE(QDKTSRC)在命令处理时,它把QDKTSRC当做数据库文件源文件。
由于第一条命令,它到软盘上去找源文件,PGMA生成在QGPL中,源语句仍留在软盘上。
2.1.3 CL过程的组成部分做为CL过程,每部分的源语句实际上都是一个CL命令,在典型的CL过程中它可以分成下列几个基本部分:PGM命令PGM PARM(&A)这是一个可选值,表示过程的开始及可接收的参数说明命令(DCL,DCLF)在使用变量时,说明命令要放在除PGM命令之外的所有命令前面CL处理命令CHGV AR,SNDPGMIUSR,OVRDBF,DLTF……用来管理常量及变量逻辑控制命令IF,THEN,ELSE,DO,ENDDO,GOTO用来控制过程内部的处理内部函数%SUB,%SWICH,%BIN用于计算、关系或逻辑表达式程序控制命令CALL,RETURN用来把控制传递给其它程序过程控制命令CALLPRC,RETURN用来把控制传递给其它过程ENDPGM命令ENDPGM这是可选的,表示程序的结束以上命令使用的顺序、组合及扩展都依据应用程序的逻辑和设计。
在生成过程、处理命令时,引用的目标必须已经存在。
在大多数情况下,要成功地运行一个过程,必须有:一个显示文件:用来给出设备显示信息。
如果过程使用显示,在生成过程前必须先生成显示文件,且在过程中用DCLF说明它,详细内容看本书5.12及数据管理一书。
一个数据库文件:CL过程可以读数据库中的记录。
如果用数据库文件,必须在生成过程前生成物理文件或逻辑文件,可用DDS、SQL或IDDU来定义文件中的记录格式。
在过程中,要用DCLF命令来说明它。
详细内容,请看本书5.2及DB2数据库程序设计一书。
其它程序:如果用CALL命令,那么在CALL运行前,调用的程序必须存在,但在编译使用CALL命令的程序时,它可以不存在。
其它过程:如果用CALLPRC命令,在过程运行时被调用的过程必须存在,但编译时可以不存在。
2.1.4 简单的CL程序例子一个CL程序可简单、可繁杂,这要看你设计的想法。
下面的例子给出在一天开始时操作员正常要做的几件事情(调用程序A、B、C),可用下列编码生成一个名为STARTUP的CL过程:PGM /* STARTUP */CALL PGM(A)CALL PGM(B)CALL PGM(C)ENDPGM在此例中,用程序员菜单生成程序,也可用PDM。
下图给出输入、生成及使用程序的步骤:要输入CL源语句:在程序员菜单选8,在PARM字段写STARTUP,在TYPE字段规定CLLE,按执行键,在SEU显示中,用I行命令进入CL语句。
Columns........: 1 71 Edit QGPL/QCLSRCFind......: _____________________________________________ STARTUPFMT A* .....A*. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+ (7)************** Beginning of data ***********************************..........................................在输入完后,用F3键结束SEU,用结束屏的缺省值,按执行键回到程序员菜单,选3(生成目标),不用修改此显示中的任何信息。
注:此时引用的程序(A、B、C)不必须已存在。
在程序生成后,用程序员菜单中的选项4调用它,如果要运行它,则程序A、B、C必须都存在。
2.2 CL过程中使用的命令一个CL过程仅包括CL命令。
它包括IBM支持的及自己定义的命令。
某些CL命令,象TFRJOB和SBMJOB都有RQSDTA或CMD参数,它用另外的CL命令做参数值。
仅能用在CL过程中的命令不能用做RQSDTA或CMD参数的值。
下表给出在CL过程中经常使用的命令,从中你可选择这方面命令来满足需要。
这些命令以功能分组,帮助你理解这章的其余部分内容。
图中的(1)指出这些命令仅能用在CL 过程中。
2.3 使用CL过程CL程序设计是一个很灵活的工具,能完成不同的功能。
一般的,用CL过程能:使用变量、逻辑控制、表达式和内部函数来维护和处理CL过程中的数据:PGMDCL &C *LGLDCL &A *DEC VALUE(22)DCL &B *CHAR VALUE(ABCDE)...CHGVAR &A (&A + 30)...IF (&A < 50) THEN(CHGVAR &C '1').DSPLIB ('Q' || &B).IF (%SST(&B 5 1)=E) THEN(CHGVAR &A 12)...ENDPGM在过程中使用系统值做变量:PGMDCL &TIME *CHAR 6.系统值 ..QTIME RTVSYSVAL QTIME &TIME QDATE .. .. .. ENDPGM在过程中用作业属性做变量:PGMDCL &USER *CHAR 10作业属性 ..Job Name .User Name RTVJOBA USER(&USER)Job Number .. .. .. ENDPGM用显示文件传输数据:DDSPGMDCL FILE(DISPLAY)Display DCL &OPTION *CHAR 2...RCVF ...Option IF (&OPTION *EQ 1) THEN(CALL PGMA)...ENDPGM用CL过程监控作业的错误信息,如需要,采取相应的动作:PGMMONMSG MSGID(CPF0001) EXEC(GOTO ERROR)CALL PROGACALL PROGBRETURNERROR: SNDPGMMSG MSG('A CALL command failed') MSGTYPE(*ESCAPE) ENDPGM控制过程和程序间的操作且在之间传递参数和替换文件:PROCA PROCBPGM PGMDCL ... DCL .... .. ..CALL PROCB CALL PROCC PARM(&FILEX). .. .. .ENDPGM RETURNENDPGMPROCCPGM (&FILEX)DCL ......OVRDBF FILE(INPUT) TOFILE(&FILEX)..CALL PROCD...RETURNENDPGM作为一个控制过程,CL过程也能调用用其它语言写的过程,下面解释如何在程序里的CL过程和RPG IV及ILE COBOL过程中传递控制。