《计算机硬件技术基础》实验答案程序

《计算机硬件技术基础》实验答案程序
《计算机硬件技术基础》实验答案程序

实验一:简单程序设计实验

(1)编写一个32 位无符号数除法的程序,要求将存放在NUM1 中的32 位无符号数与存放在NUM2 中的16 位无符号数相除,结果存放在NUM3 和NUM4 中。

程序流程图略。

参考源程序:

DATA SEGMENT

NUM1 DD 2A8B7654H

NUM2 DW 5ABCH NUM3

DW ?

NUM4 DW ?

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA, CS:CODE

START: MOV AX,DATA ;数据段寄存器初始化

MOV DS,AX

MOV AX, WORD PTR NUM1

MOV DX, WORD PTR NUM1+2

DIV NUM2

MOV NUM3,AX

MOV NUM4,DX

MOV AH,4CH ;正常返回DOS系统

INT 21H

CODE ENDS

END START

(2)编写一个拆字程序。要求将存放在ARY 单元的 2 位十六进制数X1X2 拆为X1 和X2 两部分,并以0X1 和0X2 的形式分别存入ARY+1 和ARY+2 单元中。

程序流程图略。

参考源程序:

DATA SEGMENT ARY

DB 2AH,?,?

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA, CS:CODE

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET ARY ;取ARY的偏移地址MOV AL,[SI] ;取16进制数至AL

MOV BL,AL

AND AL,0F0H ;取16进制数的高四位,即X1

SHR AL,4

MOV [SI+1],AL ;存0X1

MOV AL,BL

AND AL,0FH ;取16进制数的低四位,即X2

MOV [SI+2],AL ;存0X2

MOV AH,4CH

INT 21H

CODE ENDS

END START

实验二:分支程序设计实验

(1)编写一个字符比较程序,比较 3 个无符号字节数A,B,C 的大小,并根据比较结果对变量K 赋值:

如果3 个数不相等,则K=0;

如果3 个数中有两个相等,则

K=1;如果3 个数都相等,则

K=2。

程序流程图略。

参考源程序:

DATA SEGMENT ;定义待比较数A、B、C,比较结果K

A D

B 20H

B DB 20H

C DB 20H

K DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,A

CMP AL,B ;对A、B进行比较,不相等则转到COMP2

JNE COMP2 ;相等则比较A、C

CMP AL,C

JNE K1 ;A、C不相等则K=1

JMP K2 ;A、C相等则K=2

COMP2: MOV BL,B

CMP BL,C

JE K1 ;对B、C进行比较,相等则K=1

CMP AL,C

JE K1 ;对A、C进行比较,相等则K=1

K0: MOV K,0

JMP EXIT

K1: MOV K,1

JMP EXIT

EXIT: MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)编写一个能实现下列表达式的程序:

?N = ?A + B A ≤

B设A,B,C 为小于128 的正整数。

?A ?B +

C

程序流程图略。

参考源程序:

DATA SEGMENT

A > B

A D

B 22H ;定义 A、B、C、N

B DB 10H

C DB 01H

N DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL, A

CMP AL, B

JG CALCUL ;A 小于或等于 B 则 N=A+B

ADD AL,B

JMP EXIT

CALCUL: SUB AL, B

ADC AL, C

EXIT: MOV N, AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

实验三循环程序设计实验

(1)将字符串STRN(以“$”结尾)中的每一个字符均加上偶校验位,并统计有多少个字符因含有奇数个“1”而加上了校验位。统计结果存于N单元中。

程序流程图略。

参考源程序:

DATA SEGMENT

STRN DB 'What$' ;任意定义一个字串,以“$”结尾

COUNT EQU $-STRN N

DB ?

BUF DB COUNT DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DA TA

START: MOV AX, DATA

MOV DS, AX MOV

AX, DATA MOV

ES, AX

LEA SI, STRN

LEA DI, BUF

MOV CX, COUNT

MOV AL, 0

LP1: MOV BL, [SI] ;逐个取字符进行判断

AND BL, BL ;自己和自己做与运算

JP NEXT

;根据 PF 标志位的变化进行跳转INC AL

OR BL, 80H

NEXT: MOV [DI], BL

INC SI

INC DI

LOOP LP1

MOV N, AL MOV

AH, 4CH

INT 21H

CODE ENDS

END START

(2)在FIRST 开始的一片连续的数据区中存放着100 个数据,编写一个程序,统计第1

个数据‘0’之前的数据个

数。程序流程图略。参考

源程序:

DATA SEGMENT

FIRST DB 10H,24H,34H, 73H,20H,44H,03H,36H,41H ;任取 9 个数做演示

COUNT EQU $-FIRST

NUM DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DA TA

START: MOV AX,DATA

MOV DS,AX

MOV DL, 0 ;计数值初始为 0

MOV CX,COUNT

MOV BX, OFFSET FIRST

LP1: MOV AL, [BX] ;每次取一个数,与 0 比较CMP AL, 00H

JNE NEXT

JMP EXIT ;找到 0 则退出

NEXT: INC DL ;没找到 0 则计数值加 1 INC BX

LOOP LP1

EXIT: MOV NUM, DL

MOV AH, 4CH

INT 21H

CODE ENDS

END START

实验四:子程序设计实验

将BUF开始的10个单元中两位十六进制数转换成ASCII码,并在屏幕上显示出来。要求码型转换通过子程序HEXASC实现,参数传送采用寄存器传送方式。

程序流程图略。参考源程

序: (1)实现方法一:远过

程调用 DATA SEGMENT

BUF DB 10H,2FH,0D0H,0FEH,33H,0F0H,20H,10H,3DH,0A2H

COUNT EQU $-BUF ;定义任意长度的一段 BUF

DATA ENDS

STACK1 SEGMENT STACK

DB 100 DUP(?) ;设置足够深度的栈区

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUF

MOV CX,COUNT

AGAIN: MOV AL,[SI] ;逐个取数

MOV BL,AL

SHR AL,4

AND AL,0FH ;先对高字节部分转换(寄存器 AL 传参)

CALL FAR PTR HEXASC ;调用子程序

MOV DL,AL

MOV AH,02H ;显示高字节部分对应的字符

INT 21H

MOV AL,BL

AND AL,0FH ;再对低字节部分转换(寄存器 AL 传参)

CALL FAR PTR HEXASC ;调用子程序

MOV DL,AL

MOV AH,02H ;显示低字节部分对应的字符

INT 21H

MOV DL,20H

MOV AH,02H ;显示空格

INC SI

LOOP AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

CODEB SEGMENT ASSUME

CS:CODEB

HEXASC PROC FAR

CMP AL,09H ;判断是不是数字

JA HEXA TOF ;是字母则转到 HEXA TOF

ADD AL,30H ;是数字则对应到数字的 ASCII 码

JMP ENDHEX

HEXATOF:ADD AL,37H ;是字母则对应到字母的 ASCII 码ENDHEX: RET

HEXASC ENDP

CODEB ENDS

END START

(2)实现方法二:近过程调用

DATA SEGMENT

BUF DB 10H,2FH,0D0H,0FEH,33H,0F0H,20H,10H,3DH,0A2H

COUNT EQU $-BUF ;定义任意长度的一段 BUF DATA ENDS

STACK1 SEGMENT STACK

DB 100 DUP(?) ;设置足够深度的栈区

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUF

MOV CX,COUNT

AGAIN: MOV AL,[SI] ;逐个取数

MOV BL,AL

SHR AL,4

AND AL,0FH ;先对高字节部分做转换CALL HEXASC

MOV DL,AL ;显示高字节部分对应的字符

MOV AH,02H

INT 21H

MOV AL,BL

AND AL,0FH ;再对低字节部分做转换

CALL HEXASC

MOV DL,AL ;显示低字节部分对应的字符

MOV AH,02H

INT 21H

MOV DL,20H ;显示空格

MOV AH,02H

INT 21H

INC SI ;继续循环或退出

LOOP AGAIN

MOV AH,4CH

INT 21H

HEXASC PROC NEAR

CMP AL,09H

JA HEXATOF

ADD AL,30H

JMP ENDHEX

HEXATOF:ADD AL,37H

ENDHEX: RET

HEXASC ENDP

CODE ENDS

END START

实验五:DOS 中断调用实验

(1)如果从键盘上依次输入的是一个数字和一个字母,则输出“RIGHT”标记后结束程序,否则输出标记“ERROR”后转向原出错处重做。试编程实现该功能。

程序流程图略。

参考源程序:

DATA SEGMENT

MSG DB 0AH,0DH,'RIGHT',0AH,0DH,'$'

WRN DB 0AH,0DH,'ERROR',0AH,0DH,'$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DA TA

START: MOV AX,DATA

MOV DS,AX

AGAIN: MOV AH,01H ;等待用户输入 1 个字符并显示INT 21H

CMP AL,39H

JA EMSG CMP

AL,30H

JB EMSG ;判断输入是否是数字,不是则报错

MOV AH,01H ;等待用户输入 1 个字符并显示

INT 21H

CMP AL,'A'

JB EMSG

CMP AL,'Z' ;判断输入是否是大写字母,不是则继续

JB EXIT ;判断是不是小写字母

CMP

AL,'a' JB

EMSG CMP

AL,'z'

JB EXIT ;不是字母则报错,是字母则转到 EXIT

EMSG: LEA DX,WRN

MOV AH,09H INT

21H

JMP AGAIN

EXIT: MOV DX,OFFSET MSG

MOV AH,09H ;显示“RIGHT”并退出INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)编写一程序分类统计字符个数:即接收键入的一串字符(字符个数不超过50个,该字符串用回车作为结束),并按数字、字母和其它字符分类计数,然后将结果存入digit、letter 和other 3个存储单元中,并显示结果。

程序流程图略。

参考源程序:

DATA SEGMENT

MSG1 DB 0AH, 0DH, 'Number of

digit:',20H,'$' MSG2 DB 0AH, 0DH, 'Number

of letters:', 20H,'$'

MSG3 DB 0AH, 0DH, 'Number of other characters:',

20H, '$' BUF DB 50

DB 0

DB 50 DUP(?) ;设置足够深的栈区

DIGIT DB ?

LETTER DB ?

OTHER DB ?

DATA ENDS

STACK1 SEGMENT STACK DB

100 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1

START: MOV AX,DATA

MOV DS,AX

MOV AH,0AH ;等待用户输入字符串并显示

MOV DX,OFFSET BUF

INT 21H

MOV SI, OFFSET BUF

MOV CL,[SI+1]

MOV CH,00H

MOV AL,00H

MOV AH,00H

MOV BH,00H

AGAIN: MOV BL,[SI+2]

CMP BL,30H

JB OTH ;ASCII 码小于 30H 则归类为“其它”

CMP BL,3AH

MOV LETTER, BH MOV OTHER, AL

MOV DX, OFFSET MSG1 MOV AH,09H INT 21H

MOV AL, DIGIT CALL DISP

;显示“数字”有多少个

MOV DX, OFFSET MSG2 MOV AH,09H INT 21H

MOV AL, LETTER CALL DISP

;显示“字母”有多少个

MOV DX, OFFSET MSG3 MOV AH,09H INT 21H

MOV AL, OTHER CALL DISP

;显示“其它”有多少个

MOV AH,4CH INT 21H

DISP

PROC NEAR

;显示子程序

JB DIG

;ASCII 码大于等于 30H 小于 3AH 则归类为“数字” CMP BL,41H JB OTH

;ASCII 码大于等于 3AH 小于 41H 则归类为“其它” CMP BL,5BH JB LET

;ASCII 码大于等于 41H 小于 5BH 则归类为“字母” CMP BL,61H JB OTH

;ASCII 码大于等于 5BH 小于 61H 则归类为“其它” CMP BL,7BH JB LET

;ASCII 码大于等于 61H 小于 7BH 则归类为“字母”

OTH:

INC AL ;“其它”计数器加

DIG:

JMP ENDLP INC AH ;“数字”计数器加 1

LET: JMP ENDLP

INC BH

;“字母”计数器加 1 ENDLP: INC SI

LOOP AGAIN

;继续循环

MOV DIGIT, AH

;统计各类个数

MOV AH,00H

MOV DH,0AH

DIV DH

MOV CH,AH

ADD AL, 30H

MOV DL, AL

MOV AH, 02H

INT 21H

ADD CH,30H

MOV DL, CH

MOV AH, 02H

INT 21H

RET

DISP ENDP

CODE ENDS

END START

实验六:扩展定时器/计数器接口实验

(1)计数器0工作于方式3,编写初始化程序,观察其输出OUT0信号的波形。修改计数初值,观察OUT0信号的变化情况。硬件连接方法:8254计数器0的CLK0端接规则的脉冲输入(频率自选),OUT0接示波器的正极;示波器负极接地。

程序流程图略。

参考源程序:

DATA SEGMENT

DB 100 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,20FH ;写入计数器0的控制字

MOV AL,00010110B

OUT DX,AL

MOV DX,20CH ;写入计数器0的计数初值

MOV AL,05H

OUT DX,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)将计数器1和计数器0级联起来,二者均工作于方式3,编写初始化程序,观察OUT1 和OUT0信号的波形,说明二者的关系。修改计数初值,观察OUT0和OUT1输出波形的变化情况。硬件连接方法:8254计数器1的CLK1端接规则的脉冲输入(频率自选),OUT1接8254计数器0的CLK0,计数器0的输出OUT0接示波器正极;示波器负极接地。

程序流程图略。

参考源程序:

DATA SEGMENT DB

100 DUP(?)

DATA ENDS CODE

SEGMENT

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

c程序设计实验参考答案

《C程序设计上机指导》答案 实验一参考答案 四.1、Hello, world ! Welcome to the C language world! Everyone has been waiting for. 2、a+b=579 579 五.1、b=2; 2、int a; 3、area 六.x=5,y=8, 改为x=5,y=8; 七.写程序 1、编写程序输出用6颗星构成的等边三角形。 main() { printf(" * \n"); printf(" * * \n"); printf("* * *\n"); } 2、编写程序求25和5两个整数的和与差。 main() { int a,b,c,d; a=10; b=20; c=35; d=(a+b+c)/3; printf("%d\n",d); } 实验二参考答案: 一.1、A , 65 B, 66 2、x=1,y=1,z=5 3、a=%d,b=%d 二.1、char a;int b; 2、a,a,a 3、a=865 a,h,m 4、u=2*sqrt(a)+b-10; “%f\n” 三.1、第1行ch1=’a’; 改为char ch1=’a’; 第2行ch2=98; 改为char ch2=98; 2、第7行w=x%y; 改为w=x/y; 3、int u=v=89; 改为int u,v; u=v=89; 4、第3行改为scanf(“%d,%d”,&x,&y); //格式字符串有错。 第5行改为printf("The average is %d:"a); //格式字符串有错。四.写程序 1、编程求111 234 ++ 的和(精确到小数点后两位)。 main( ) { float i; i=1.0/2+1.0/3+1.0/4;

《计算机硬件技术基础》实验答案程序

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

C语言程序设计实验指导(课后习题)参考答案

《实验指导》课后练习题参考答案实验1: 1.主函数 2-4:DDC 5.stdio.h 6-9:CCCC 实验2: 1.double 2-4:ABB 5.2 6-12:CDDDADC 13.! 14.8 15-17:ACC 18.G 19-20:CA 21.5 4 22.x=6c 23-25:DCA 26.0x 27.2.000000 28-29:AB 30.a=3 31.D 32.3.15 33.B 34.double 实验3: 1-3:CCD 4.B 5.2,0 6-8:CAC 9. (1)pass, (2)中 及格 不及格 10-12:ADD 13.2 14.B 15.10 16.6 17.x>=1 && x<=sqrt(10)

实验4: 1.B 2.1 3.A 4.3/5,5/8 5.30 实验5: 1.D 2.(1)9 (2)1 3-5:CDB 6.(1)10 (2)7 7.C 8.(1)x=16 (2)y=8 9.return 实验6: 1-5:CCADA 6.10,20 7.13 11 12 8.7 9.2 10.B 11.(1)3 (2) 1 12-13:CB 14.-31 15.221 16.main函数 17.22 18.(1)return (2)void 实验7: 1.C 2.auto 3.9 4.(1) 4 (2) 0 5.10 6.(1)5 (2) 7 (3) 8 7.C 8.110 9-12:DDBC 13.(1) 1 (2) 3

15.6 720 16.auto 17.48 18.(1)1 (2)2 19.D 20.D 21.5,25 22.6 实验8: 1-2. DD 3. 16 4. (1)0 2 3 (2)2 3 5 (3)7 11 13 5. (1)i<9 (2)j<9-i (3)a[j]=a[j+1] (4)a[j+1]=temp 实验9: 1. D 2. (1)-1 (2)2 3. (1)1 (2)a[i-1][j-1]+a[i-1][j] (3)j<=i 4. (1)1 3 4 5 6 7 (2)3 4 5 6 (3)End of main()! 实验10: 1. 0或NULL 2-5. CACA 6. (1)10 (2)15 (3)19 7. (1)ia[j] (3)”%d”,p+i (4)”%d”, *(p+i) 8. (1)2 6 (2)2 2 (3)4 6 实验11: 1. A 2. C 3. 7 4. (1)strlen(s) (2)s[i]>=’a’ && s[i]<=’z’(3)s[i]+32 (4)’\0’(5)s2[j]!=s2[n2-j-1] (6)j

C++程序设计实验七_参考答案

广东金融学院实验报告 课程名称:C++程序设计 实验编号 实验7数组与指针练习系别参考答案及实验名称 姓名学号班级 实验地点新电403实验日期2011-11-24实验时数4 指导教师曲政同组其他成员无成绩 一、实验目的及要求 1.学习C/C++数组和指针的概念和使用方法。 2.练习C++/CLI托管数组的创建方法和元素访问方法。 二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等) 硬件设备:联网的个人计算机 操作系统:Windows XP 编译系统:Visual Studio2005

三、实验内容及步骤(包含简要的实验步骤流程) 1.内容和步骤 ⑴仔细阅读本课件的知识点和例题,努力理解其中的文字阐述和源代码,必要时可将源代码拷入Visual Studio2005生成的C++/CLR框架编译和运行,将运行结果与源代码对照,加深对C/C++数组和指针的理解。 ⑵在理解本课件内容的基础上,编写C/C++程序实现下列文字描述: a.声明一个int型变量x,并赋初值3; b.打印x的值; c.打印x的地址; d.声明一个指向int的指针p,并让其指向变量x; e.打印p所指变量的值 f.打印p的值; g.声明一个有10个元素的一维本地整型数组A,并为其赋初值0~9; h.在一个循环中打印A的所有元素的值; i.打印A的值; j.打印A的第一个元素的地址; k.声明一个指向int的指针q,并让其指向A的第一个元素; l.在一个循环中通过q后跟下标,打印出A的所有元素的值; m.在一个循环中通过q加上循环变量和取值运算,打印出A的所有元素的值; n.在一个循环中通过q的增量和取值运算,打印出A的所有元素的值; o.在一个循环中通过q的负增量,反序打印出A的所有元素的值; p.声明一个int型指针r,在堆中创建一个int型变量,为该变量赋初值3,并将该变量的地址赋给该指针,打印出该变量的值,然后删除该变量。 q.声明一个本地类Point(可以用包含2个int型变量和一个有参数构造函数的结构体表示)的指针s,在堆中创建一个Point类的对象,调用构造函数为该对象的两个数据成员赋初值3和4,并将该对象的地址赋给该指针,打印两个数据成员的值,然后删除该对象。 r.声明一个int型指针t,在堆中创建一个3个元素的int类型数组并将该数组的首地址赋给该指针,为三个数组元素分别赋值3、4、5,在一个循环中打印出所有元素的值,然后删除该数组。 s.声明一个本地类Point类的指针u,在堆中创建一个3个元素的Point类的对象数组(需在Point 中添加无参数构造函数)并将数组的首地址赋给该指针,为三个数组元素分别赋值(1,2)、(3,4)、(5,6),在一个循环中打印该数组所有元素分量的值,然后删除该数组。 t.用基本语法声明并创建一个10个元素的一维托管整型数组B,并在一个循环中为元素赋值0~9; u.在另一个循环中打印B所有元素的值。 v.用初值表方式声明并创建一个10个元素的一维托管整型数组C,并为其元素赋初值10~19; w.在一个循环中打印C所有元素的值。 x.用数组C为数组B赋值。 y.在一个循环中打印B和C所有元素的值。 2.提示和要求 ⑴首先将上面的文字描述拷入Visual Studio2005生成的C++/CLR框架,在每条文字描述之前加“//”将其变为注释,并在其下留一个空行准备编写对应的程序。 ⑵对应于逐条文字描述,在其下编写程序(可能是一个或一组语句),每编写一条文字描述对应的程序,就编译(运行)一次,以保证语法和算法的正确性。 ⑶当全部文字描述所对应的程序编写完成,并编译、运行正确,将文字描述和源代码拷入实验报告。 ⑷对C/C++的数组和指针做简要总结。

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

c程序设计实验报告参考答案

实验要求: 对大纲中列出的四个实验要求: 1.以面向对象的程序设计思想编程。 2.熟悉面向对象程序设计语言VC++编程环境。 3.在计算机上快速完成程序编写、调试、运行。 分别写出实验报告(三页以上),要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。完成实验报告和上交源程序。 备注: 1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校; 2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校; 3. 论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求A4 打印、复印; 4.试点院校按百分制录入成绩,录入后打印学生成绩单; 5.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆; 6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报; 7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。 交实验报告时间: 10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误! 实验一:简单类与对象 一、实验目的 1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。 2、掌握简单的类与对象的定义。 二、实验内容 用类定义,输入半径和高,输出圆柱体的底面积和体积。 三、实验要求

C语言程序设计实验指导书参考标准答案

上级实验参考答案#include"stdio.h" #include"math.h" int main() {int i; double a, b; for(i=0;i<=100000;++i) {a=sqrt(i+100); b=sqrt(i+168); if((int)a==ceil(a)&&(int)b==ceil(b)) printf("%d\n",i);} } 实验2基本数据类型、运算和表达式 一、实验目的 1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。 2)掌握不同的类型数据之间赋值的规。 3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++)和自减--)运 算符的使用。 4 )进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容 1.变量的定义 [题目1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 void main() {

int a, b; /*定义整型变量a和b*/ inti, j;/*定义实型变量i 和j*/ a=5; b=6; i=3.14;j=i*a*b; printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j); } [具体操作步骤] 1)将代码补充完整; 2)在TC或VC++上运行通过; 3)在JudgeOnline 实验系统上提交; 2. 赋值表达式与赋值语句 [题目1118:赋值表达式与赋值语句,写出程序运行结果] 阅读下面程序,写出运行结果: void main() {float a; int b, c; char d,e; a=3.5; b=a; c=330; d=c; e='\\'; printf("%f,%d,%d,%c,%c",a,b,c,d,e); } 运行结果为: 3.500000,3,330,J,\ [提示]赋值语句具有类型转换的功能,但可能会改变数据。 3. 基本运算 [题目1119:基本运算,写出程序运行结果] 阅读下面程序,写出运行结果:

实验中的程序参考答案

. 实验三:顺序结构程序设计 1.编写一个程序,输入一个字符,输出它的前后邻居 #include void main() { char c1; printf(“Input a character: ”); c1=getchar(); putchar(c1-1); putchar(‘\t’); putchar(c1+1); putchar(‘\n’); } 2.编写一个程序,求三角形的面积。其中,a、b、c为三角形的三条边,s=(a+b+c)/2,面积为area= #include #include void main(){ float a,b,c,s,area; printf(“Input a,b,c: ”); scanf(“%f,%f,%f”,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%f\n”,area); } 3.编写一个程序,求摄氏温度。公式:c=5*(f-32)/9 #include void main() { float f,c; printf(“Input f: ”); scanf(“%f”,&f); c=5*(f-32)/9; printf(“c=%f\n”,c);} 4.设计一个程序,输入正五边形的边长的长度a,按公式5 5 2 10 2 1+ =a R ) )( )( (c s b s a s s- - -

计算该五边形外接圆的半径。 #include #include void main() { float r,a; printf(“Input a: ”); scanf(“%f”,&a); r=a*sqrt((10+2*sqrt(5))/5)/2; printf(“r=%0.2f\n”,r); } 5.设计程序,输入空间中两点的坐标x1,y1,z1和x2,y2,z2计算两点之间的距离。 #include #include void main() { float x1,x2,y1,y2,z1,z2,d; printf(“Input x1,y1,z1,x2,y2,z2: ”); scanf(“%f,%f,%f,%f,%f,%f”,&x1,&y1,&z1,&x2,&y2,&z2); d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); printf(“d=%f\n”,z); } 6.编写一个C程序,输入一个3位整数,分别输出百位数、十位数和个位数。#include void main() { int x, a, b, c; printf(“Input a integer: ”); scanf(“%3d”,&x); a=x/100;b=x/10%10;c=x%10; printf(“a=%d, b=%d, c=%d\n”,a,b,c); } 实验四选择结构程序设计

《C++程序设计1》实验5-2参考答案、程序

《C++程序设计1》实验5-2参考程序与答案 (1)填空题 1. 存储字符’a’和字符串”a”分别需要占用__1__和__2__个字节。 2. 空串的长度为__0__,存储它需要占用__1__个字节。 3. 对于一个长度为n的字符串,需要占用_n+1___个字节,用于存储该字符串的字符数组的长度至少为_n+1___。 4. 一个二维字符数组a[10][20]能够存储10 字符串,每个字符串的长度至多为__19__。 (2)读程题,写出程序的运行结果及功能,并说明各函数、变量、数组所起的作用。 #include using namespace std; int main() { int sum_day(int,int); int leap(int year); int year,month,day,days; cout<<"请输入年月日:"<>year>>month>>day; cout<=3)days=days+1; cout<<"是本年的第"<

华南农业大学C语言程序设计实验指导书参考答案

华南农业大学C语言程序设计实验指导书参考答案

华南农业大学c语言程序设计上机指导书参考答案 上级实验参考答案#include "stdio.h" #include"math.h" int main() { int i; double a, b; for(i=0;i<=100000;++i) {a=sqrt(i+100); b=sqrt(i+168); if((int)a==ceil(a)&&(int)b==ceil(b)) printf("%d\n",i);} } 实验2 基本数据类型、运算和表示式 一、实验目的 1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。 2)掌握不同的类型数据之间赋值的规。 3)学会使用C 的有关算术运算符,以及包含这些运算符的表示式,特别是自加 ++ )和自减 --)运

算符的使用。 4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目1117:变量定义,按要求完成程序] 下面给出一个能够运行的程序,可是缺少部分语句,请按右边的提示补充完整缺少的语句。 void main() { int a, b; /*定义整型变量a 和b*/ int i, j; /*定义实型变量i 和j */ a=5; b=6; i=3.14;j=i*a*b; printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j); } [具体操作步骤] 1)将代码补充完整; 2)在TC 或VC++上运行经过;

3)在JudgeOnline 实验系统上提交; 2. 赋值表示式与赋值语句 [题目1118:赋值表示式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果: void main() { float a; int b, c; char d, e; a=3.5; b=a; c=330; d=c; e='\\'; printf("%f,%d,%d,%c,%c", a,b,c,d,e); } 运行结果为: 3.500000,3,330,J,\ [提示]赋值语句具有类型转换的功能,但可能会改变数据。 3. 基本运算

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案

实验一Visual C++集成环境实验内容 (一)程序改错 1. (1)无法运行 (2)将第二个C程序重新存放到另一个工程文件中 (3)同一个工程文件只能有一个main函数 2. (1)/*一个简单的程序*/ (2)void main() (3)} 3. (1)int a,b,c; (2)a=2; (3)c=a*b; (二)完善程序 1. (1)year (2)month (3)day 2. (1)c (2)a*a+b*b (3)c 3. (1)4 (2)4*a (3)s 课后练习 1.D

2.D 3.A 4.C 5.C 6.C 7.stdio.h 8.main函数 实验二数据类型、运算符和表达式课前练习 1. 20 8 70 0 2. Abs3 Class _else sum my_class 、 3block a+b for fun(4) a-b 3.B 4.D 5.A 6.C 7.D 8.B 实验内容 (一)程序改错 1. (1)int x1,x2,x3,x4; (2)scanf("%d,%d",&a,&b); (3)c=x4*1000+x2*100+x3*10+x1; 2. 程序1: ① 2 2 ②error C2065: 'a1' : undeclared identifier 变量a1没有定义 sum=a+b+c ③ 1 error C2146: syntax error : missing ';' before identifier 'printf' printf语句之前缺少分号

sum=a+b+c; ④0 error(s), 0 warning(s) ⑤a=1 b=3 c=2 sum=6 ⑥语句以分号结束;变量要先定义后使用。程序2: ① 2 2 ②error C2065: 'sum' : undeclared identifier 变量sum没有定义 int sum=a+b; 1 error C2086: 'c' : redefinition 变量c重复定义 c=a+b+sum; ③a=1 b=3 sum=8 ④在同一个函数体内,变量要先定义后使用,但不能重复定义 程序3: ① 1 error C2106: '=' : left operand must be l-value 赋值符号左边参数错误 c=a+b; ②c=4 ③赋值符号左边只能是变量,不能是常量或表达式 3. (1)t=a; (2)a=b;; (3)printf("a=%d\tb=%d\n",a,b); (二)完善程序 1. (1) int n (2)”%d”,&n (3)s 2. (1)float s (2)(float)a/b (3)%f 3. (1)#include (2)pow(x,y) (3)“%lf”,s

实验1参考答案

实验1:循环结构程序设计 实验目的: 1.熟悉VC++6.0的运行环境,掌握C程序的执行方法; 2.掌握三种基本数据类型、部分运算符号和常用函数; 3.掌握三种循环控制语句及break和continue语句的使用方法; 4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。 实验内容: 程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小孩各若干? /*#include main() { int men,women,children; men=0; while(men<=8) {women=0; while(women<=11) {children=36-men-women; if((men*4+women*3+children/2==36)&&children%2==0) printf("men=%d,women=%d,children=%d\n",men,women,children); women++;} men++;} } */ #include main() { int men,women,children; men=0; for(men=0;men<=9;men++) for(women=0;women<=12;women++) {children=36-men-women; if((men*4+women*3+children/2==36)&&children%2==0) printf("men=%d,women=%d,children=%d\n",men,women,children); } } 程序2 打印形状为直角三角形的乘法口诀。 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 …………………………

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 scanfquotddquotampaampb printfquotdquotab(1)在程序编辑窗口中输入程序。(2)保存程序,取名为 a2.c。(3)按照前二章中介绍的方法,编译、连接和运行程序。(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。 45(6)按照第三章中介绍的方法进入在线评判系统。(7)显示题目列表,点击题号为 1001,题名为“计算 ab”的题目。(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序 a2.c。(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。 3实验 2 基本数据类型、运算和表达式一、实验目的(1)掌握 C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。(3)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加()和自减(‐‐)运算符的使用。(4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。二、实验内容1. 变量的定义题目 1117:变量定义,按要求完成程序下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。includequotstdio.hquotmain int ab /定义整型变量 a 和 b/ int ij /定义实型变量 i 和 j/ a5 b6 i3.14jiab printfquotadbdifjfnquotabij 具体操作步骤(1)将代码补充完整;(2)在 codeblocks 或 VC上运行通过;(3)在在线评判系统上提交;题目 6568:在显示屏上显示指定字符要求编写一个程序,在显示屏上显示如下内容(全为半角字符,且不包括空格):C:ABC.TXT提示注意转义字符在程序中的使用。参考程序:includequotstdio.hquotintmain printfquotC:ABC.TXTquot2. 赋值表达式与赋值语句题目 1118:赋值表达式与赋值语句,写出程序运行结果阅读下面程序,写出运行结果:includequotstdio.hquotintmain floata intbc charde a3.5 ba c330 dc e141 printfquotfddccquotabcde运行结果为:3.5000003330Ja提示赋值语句具有类型转换的功能,但可能会改变数据。3. 基本运算题目 1119:基本运算,写出程序运行结果阅读下面程序,写出运行结果:includequotstd io.hquotmain intabc floatd15ef a357 b15/10 cb e15/10 fd/10 printfquotdddfffquotabcdef运行结果为:02115.0000001.0000001.500000提示除法分

C实验报告参考答案

C实验报告参考答案集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

《高级语言程序设计》实验报告班级:学号:姓名:成绩: 实验7 函数程序设计 一、实验目的 1.掌握函数定义的方法。 2.掌握函数实参与形参的传递方式。 3.掌握函数的嵌套调用和递归调用的方法。 4.了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 1 (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c存盘。 #include #include void sub( char s[], char t[] ) { int i, d;

d=strlen( s ); for( i=1; i< d ; i++ ) for( i=0; i< d ; i++ ) t[i]=s[d-1-i] ; for( i=0; i #include #define ARR_SIZE = 80; #define ARR_SIZE 80 void Inverse(char str[]) void Inverse(char str[]);

实验中的程序参考答案

实验三:顺序结构程序设计 1.编写一个程序,输入一个字符,输出它的前后邻居 #include void main() { char c1; printf(“Input a character: ”); c1=getchar(); putchar(c1-1); putchar(‘\t’); putchar(c1+1); putchar(‘\n’); } 2.编写一个程序,求三角形的面积。其中,a、b、c为三角形的三条边,s=(a+b+c)/2,面积为area= #include #include void main() { float a,b,c,s,area; printf(“Input a,b,c: ”); scanf(“%f,%f,%f”,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%f\n”,area); } 3.编写一个程序,求摄氏温度。公式:c=5*(f-32)/9 #include void main() { float f,c; printf(“Input f: ”); scanf(“%f”,&f); c=5*(f-32)/9; printf(“c=%f\n”,c);} 4.设计一个程序,输入正五边形的边长的长度a,按公式 计算该五边形外接圆的半径。 #include #include void main() { float r,a; printf(“Input a: ”); scanf(“%f”,&a); r=a*sqrt((10+2*sqrt(5))/5)/2; printf(“r=%0.2f\n”,r); } 5.设计程序,输入空间中两点的坐标x1,y1,z1和x2,y2,z2计算两点之间的距离。 #include #include void main() { float x1,x2,y1,y2,z1,z2,d; printf(“Input x1,y1,z1,x2,y2,z2: ”); scanf(“%f,%f,%f,%f,%f,%f”,&x1,&y1,&z1,&x2,&y2,&z2); d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); printf(“d=%f\n”,z); } 6.编写一个C程序,输入一个3位整数,分别输出百位数、十位数和个位数。#include void main() { int x, a, b, c; printf(“Input a integer: ”); scanf(“%3d”,&x); a=x/100;b=x/10%10;c=x%10; printf(“a=%d, b=%d, c=%d\n”,a,b,c); } 5 5 2 10 2 1+ =a R ) )( )( (c s b s a s s- - -

C语言程序设计实验指导书参考答案

C语言程序设计实验指导书参考答案

上级实验参考答案#include "stdio.h" #include"math.h" int main() { int i; double a, b; for(i=0;i<=100000;++i) {a=sqrt(i+100); b=sqrt(i+168); if((int)a==ceil(a)&&(int)b==ceil(b)) printf("%d\n",i);} } 实验2 基本数据类型、运算和表达式 一、实验目的 1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。2)掌握不同的类型数据之间赋值的规。3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运

算符的使用。 4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 void main() { int a, b; /*定义整型变量a 和b*/ int i, j; /*定义实型变量i 和j */ a=5; b=6; i=3.14;j=i*a*b; printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j); }

[具体操作步骤] 1)将代码补充完整; 2)在TC 或VC++上运行通过; 3)在JudgeOnline 实验系统上提交; 2. 赋值表达式与赋值语句 [题目1118:赋值表达式与赋值语句,写出程序运行结果] 阅读下面程序,写出运行结果: void main() { float a; int b, c; char d, e; a=3.5; b=a; c=330;

大学c程序设计(第四版谭洪强)实验9参考答案

实验九 参考答案(指针) 三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果) 1. 程序填空题 给定程序中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。 例如,输入一个数:,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 【解题思路】 第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。 第二处:判断是否是奇数,所以应填:0。 第三处:最后通形参n 来返回新数x ,所以应填:x 。 2. 程序改错题 给定程序中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。 例如,7的5次方是16807, 其低3位数的和值是15。 【解题思路】 第一处:变量d 的初始值应为1。 第二处:整除的符号是 /。 3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。 例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。 【解题思路】 本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。 【参考答案】 void fun ( int x, int pp[], int *n ) { int i; *n=0; for(i=1; i <= x; i++) if((x % i== 0) && (i % 2)) pp[(*n)++]=i; } 4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。 【参考答案】 第一处:把每列的第1值赋值给b[i],所以应填:a[0][i]。 第二处:如果b[i]值小于a[j][i]的值,则把a[j][i]重新赋值给b[i]中,保存最大的值,所以应填:<。 第三处:在主函数中,x 是存放矩阵数据,y 是存放每列的最大值,所以应填:x,y 。 5. 程序改错题 给定程序中函数fun 的功能是:根据形参m 的值(2≤m ≤9〕,在m 行m 列的二维数 组中存放如下所示规律的数据,由main 函数输出。例如,若输入2,则输出:??? ? ??4221,若输入4,则输出: ??????? ??161284129638642 43 21 【解题思路】 第一处:在函数体fun 中可知,a 是一个字符串数组型变量,所以应改为:fun(int a[][M], int m)。 第二处:根据输出的结果可知,应改为:a[j][k]=(k+1)*(j+1);。

相关文档
最新文档