void main()
{
float score[10],max,min,sum=0
int i
for(i=0i<10i++)
{
printf("请输入第%d个评委的分数",i+1)
scanf("%g",&score[i])
sum+=score[i]
}
max = score[0]
min = score[0]
for(i=0i<10i++)
{
if(max<score[i])
{
max=score[i]
}
if(min>score[i])
{
min = score[i]
}
}
sum = (sum-min-max)/8
printf("平均分是:%g",sum)
system("pause")
}
#include <stdio.h>
void main()
{
int shu[5][5],i,j,sum=0,sum1=0
for(i=0i<5i++)
{
for(j=0j<5j++)
{
printf("shu[%d][%d]",i,j)
scanf("%d",&shu[i][j])
}
}
for(i=0i<5i++)
{
for(j=0j<5j++)
{
if(i==j)
{
sum+=shu[i][j]
}
if(i+j==4)
{
sum1+=shu[i][j]
}
}
}
printf("对角元素之和是sum=%d\nsum1=%d",sum,sum1)
system("pause")
}
#include <stdio.h>
void main()
{
int i,score[15],nums[15],count=0
int shu[5]
for(i=0i<5i++)
{
shu[i]=0
}
for(i=0i<15i++)
{
printf("请输入第%d个同学的学号:",i+1)
scanf("%d",&nums[i])
printf("请输入第%d个同学的成绩:",i+1)
scanf("%d",&score[i])
while(score[i]>100&&score[i]<0)
{
printf("你输入的成绩有误,请重新输入")
printf("请输入第%d个同学的成绩:",i+1)
scanf("%d",&score[i])
}
}
for(i=0i<15i++)
{
if(score[i]<60)
{
count++
}
else if(score[i]>=60&&score[i]<70)
{
shu[0]++
}
else if(score[i]>=70&&score[i]<80)
{
shu[1]++
}
else if(score[i]>=80&&score[i]<89)
{
shu[2]++
}
else if(score[2]>=90&&score[i]<100)
{
shu[3]++
}
else if(score[i]==100)
{
shu[4]++
}
}
printf("\n60分以下的同学有%d人",count)
printf("\n60分--69的同学有%d人",shu[0])
printf("\n70分79的同学有%d人",shu[1])
printf("\n80分89的同学有%d人",shu[2])
printf("\n90分99的同学有%d人",shu[3])
printf("\n100分的同学有%d人",shu[4])
system("pause")
}
实验5 编写、调试具有多个段的程序-----------------------------------------
(1)
1.保持不变
2.<考虑不同机子环境不同,答案无法统一>
3.X-2,X-1
(2)
1.保持不变
2.<考虑不同机子环境不同,答案无法统一>
3.X-2,X-1
4.(N/16+1)*16 [说明:N/16只取整数部分]
(3)
1.保持不变
2.<考虑不同机子环境不同,答案无法统一>
3.X+3,X+4
(4)
答:第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动以'至上向下'的顺序进行编译执行源程序。
(5)完整程序如下:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:mov ax,a
mov es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s1:mov ax,es:[bx]
add [bx],ax
add bx,2
loop s1
mov ax,b
mov es,ax
mov ds,ax
mov bx,0
mov cx,8
s2:mov ax,es:[bx]
add [bx],ax
add bx,2
loop s2
mov ax,4c00h
int 21h
code ends
end start
(6)完整程序如下:
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start:
mov ax,b
mov ss,ax
mov sp,10h
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s: push [bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
实验6 实践课程中的程序
-------------------------------
(2)编程:完成问题中的程序。
问题7.9完整程序如下:
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,4
s: 外循环
push cx
mov si,3
mov cx,4
s0: 内循环
mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop s0
add bx,16
pop cx
loop s
mov ax,4c00h
int 21h
codesg ends
end start
1、#include "stdio.h"
void print(int array[],int length){
int i
clrscr()
for(i=0i<lengthi++)printf("%d ",array[i])
}
main(){
int array[5]={6,8,4,9,5}
print(array,5)
getchar()
}
2、
#include "stdio.h"
double average(int array[],int length){
int i
double total=0,average=0
for(i=0i<lengthi++)
total=total+array[i]
average=total/length
return average
}
main(){
int array[5]={6,8,5},i
clrscr()
printf("The average is %0.8f",average(array,3))
getchar()
}
3、
#include "stdio.h"
int getmax (int array[],int length){
int max=array[0],i
for(i=0i<lengthi++)if(max<array[i])max=array[i]
return max
}
main(){
int array[5]={6,8,4,9,5}
clrscr()
printf("The max is %d",getmax(array,5))
getchar()
}
4、
#include "stdio.h"
int retrieve(int array[],int length,int x){
int i
for(i=0i<lengthi++)if(array[i]==x)break
if(i<length)return i+1/*返回x在该数组中的位置*/
else return -1/*没查找到*/
}
main(){
int array[5]={6,8,4,9,5},x=5
int order = retrieve(array,5,x)
clrscr()
if(order==-1)printf("%d is not in this array!",x)
else printf("The order of %d in this array is %d",x,order)
getchar()
}
5、
#include "stdio.h"
void sort(int array[],int length){/*选择排序法*/
int i,j,max,k,x
for(i=0i<length-1i++){
max=i
for(j=ij<lengthj++)
if(array[max]<array[j])max=j
if(max!=i){k=array[i]array[i]=array[max]array[max]=k}
}
clrscr()
for(i=0i<lengthi++)printf("%d ",array[i])
}
main(){
int array[5]={6,8,4,9,5}
sort(array,5)
getchar()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)