[大一c语言上机考试题]#include <stdio.h> int fun(int n){ int i; if(n>2 & !(n&1) || n<2) return 0; for(i=3;i*i<=n;i+=2) if(!(n%i)) return 0; return 1; } int main(void){ int s[8],i; pr...+阅读
程序员没有这么贱。这么少的分,如此多的要求,加到200我就编给你。==================有人另开了帖子,不管怎么样,编出来了。专门编的,如下。下次再也不做这种题目了。 !二○○八年六月十四日14时,cvf6.6调试通过。 Program main Implicit none Integer,parameter::Marknum=3,Studentnum=5 !几门学科(成绩)、多少学生,常数 Type student !定义学生类型 Integer(kind=8)::ID !学号 Real::Mark(Marknum)=0 !各门成绩 real::SumMark=0 Real::EvenMark=0 !平均分 Integer::Place=0 !名次 End type type(student)::studentArr(Studentnum) !有5个学生 real::temparr(Studentnum) real::SearchMark integer::searchpos Integer::i,j integer::choice integer::sn(Studentnum) integer::BINARY_SEARCH write(*,*) "选择从文件中读取数据,并输出结果至文件,则输入整数1并回车!" write(*,*) "选择从键盘中输入数据,并输出结果至屏幕,则输入整数2并回车!" do read(*,*) choice if(choice==1.or.choice==2) then exit else write(*,*) "输入的选择数据不正确,重新输入!" write(*,*) "从文件读取数据,并输出结果至文件,则输入整数1并回车!" write(*,*) "从键盘输入数据,并输出结果至屏幕,则输入整数2并回车!" end if end do !------------------ if(choice==1) then !从文件读入数据 Open(1,file="学生学号及成绩数据文件.txt") Do i=1, Studentnum Read(1,*) studentArr(i).Id, (studentArr(i).Mark(j), j=1, Marknum) End do read(1,*) searchMark Close
(1) else !从键盘中输入数据 write(*,*) "一共有",Studentnum,"个学生,下面请按提示输入数据" do i=1,Studentnum write(*,*) "---------------------------------------" write(*,*) "第",i,"个学生的数据" write(*,*) "学号(整数),回车确认:" read(*,*) studentArr(i).ID do j=1,3 write(*,*) "第",j,"门成绩(实数),回车确认:" read(*,*) studentArr(i).Mark(j) end do end do write(*,*) "请输入要查询的总分(实数):" read(*,*) searchMark write(*,*) "数据输入完成" end if !----------------------------- !计算总分和均分 Do i=1, Studentnum studentArr(i).SumMark=studentArr(i).SumMark+sum(studentArr(i).Mark) studentArr(i).EvenMark=studentArr(i).SumMark/Marknum sn(i)=i End do temparr=studentArr.SumMark call sort(temparr,sn,Studentnum) !排序 SearchPos=BINARY_SEARCH(temparr,Studentnum,searchMark) !查分,得到名次 !write(*,*) searchmark,searchpos !求名次 loop1:do i=1,Studentnum loop2:do j=1,Studentnum if(studentArr(i).SumMark==temparr(j)) then studentArr(i).place=j cycle loop1 end if end do loop2 end do loop1 if(choice==1) then !输出结果至文件 Open(2,file="★结果文件.txt") write(2,"(a5,4x,a4,7x,3(a5,5x),a4,7x,a6)") "名次","学号","成绩1","成绩2","成绩3","总分","平均分" Do i=1, Studentnum write(2,"(1x,i3.3,2x,i10,5x,5(f6.2,4x))") studentArr(i).place,studentArr(i).Id, & &(studentArr(i).Mark(j), j=1, Marknum),studentArr(i).SumMark,studentArr(i).EvenMark End do write(2,*) "--------------------------------" write(2,*) "分数最高者各项为:" write(2,"(a5,4x,a4,7x,3(a5,5x),a4,7x,a6)") "名次","学号","成绩1","成绩2","成绩3","总分","平均分" do i=1,Studentnum if(studentArr(i).place==1) then write(2,"(1x,i3.3,2x,i10,5x,5(f6.2,4x))") studentArr(i).place,studentArr(i).Id, & &(studentArr(i).Mark(j), j=1, Marknum),studentArr(i).SumMark,studentArr(i).EvenMark end if end do write(2,*) "--------------------------------" if (Searchpos==0) then write(2,*) "找不到总分",SearchMark else write(2,*) "总分为",SearchMark,"的学生学号为:",studentArr(sn(Searchpos)).id end if Close
(2) write(*,*)"请打开 ★结果文件.txt 查看结果" else !输出结果至屏幕 write(*,"(a5,4x,a4,7x,3(a5,5x),a4,7x,a6)") "名次","学号","成绩1","成绩2","成绩3","总分","平均分" Do i=1, Studentnum write(*,"(1x,i3.3,2x,i10,5x,5(f6.2,4x))") studentArr(i).place,studentArr(i).Id, & &(studentArr(i).Mark(j), j=1, Marknum),studentArr(i).SumMark,studentArr(i).EvenMark End do write(*,*) "--------------------------------" write(*,*) "分数最高者各项为:" write(*,"(a5,4x,a4,7x,3(a5,5x),a4,7x,a6)") "名次","学号","成绩1","成绩2","成绩3","总分","平均分" do i=1,Studentnum if(studentArr(i).place==1) then write(*,"(1x,i3.3,2x,i10,5x,5(f6.2,4x))") studentArr(i).place,studentArr(i).Id, & &(studentArr(i).Mark(j), j=1, ...
求汇编语言期末复习题
汇编语言2005—2006学年第二学期期末考试复习题及参考答案
一、 填空1. 十进制数369转换成二进制数为()2,转换成十六进制数为()16.2. 计算机中的指令由( )和( 地址码 )两部分组成。3. 8086的地址总线有20根,寻址范围为( )字节。4. 下一条将要执行的指令的地址存放在寄存器( )中。5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。6. 汇编语言源程序需经过()程序汇编,( )程序连接才能生成可执行文件。7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=()8. REP指令前缀与()指令配合使用。9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( )和( )命令。10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( );如果要求第0,1位变反,可使用指令( )11. 宏汇编适合于(),()的子功能段使用;
二、 选择题1. 设字长N=16,有符号数7AE9H的补码表示为( )A. 9EA7H B. 76C4H C. 8417H D. 7AE9H 2. 比较有符号数3260H与0B425H的大小关系为( )A. 相等 B. 小于 C. 大于 D. 不能比较3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( )A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI) C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为( )A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址5. 中断矢量表中存放的是( )A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( )A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方C. 距该指令偏移地址为-128~+127的地方. D. 段外7. 能定义ASCII码字符串的数据定义语句有( )A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB;8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( )A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=19. 比较指令CMP( ) A. 专用于有符号数比较 B. 专用于无符号数比较 C. 专用于串比较 D. 不区分比较的对象是有符号数还是无符号数10. 数据传送指令对标志位的影响为( )A.都不影响; B.都影响;C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响
三、 判断题( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。 ( )32. PC机以位作最小寻址单位。 ( )33. 当SRC是立即数时,DST可以使用存储器寻址。 ( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。 ( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。( )36. POP IP ( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH
四、 程序分析题1. A DW 1234HB DW 5678HPUSH APUSH BPOP APOP B试回答:上述程序段执行后(A)= ,(B)= 2. 分析下面程序段,MOV AL,200SAR AL,1MOV BL,ALMOV CL,2SAR AL,CLADD AL,BL试问程序段执行后(BL)= (AL)= 3. STRING DB 'ABCDEFGHIJ'MOV AH,01 ;从键盘输入字符1~9INT 21HAND AL,0FHDEC ALXOR AH,AHMOV BX,OFFSET STRINGADD BX,AXMOV BL,[BX]MOV AH,02H ;显示输出INT 21H试回答:
(1)上述程序段的功能是什么?
(2)如从键盘输入字符‘4',程序段有什么结果? 4. 有如下程序:AND AL,ALJZ BRCH1RCR AL,1JZ BRCH2RCL AL,1INC ALJZ BRCH3上述程序运行后,试回答:
(1)当(AL)=时,程序转向BRCH1(2)当(AL)=时,程序转向BRCH2(3)当(AL)=时,程序转向BRCH35. 下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) ┇ MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0 NEXT:MOV AL,DAT1〔BX〕〔SI〕 MOV DAT2〔DI〕,AL INC SI INC DI LOOP NEXT6. 下面程序段执行完以后,AL的内容是什么? MOV BX,00FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH7. 执行下列指令后,AX寄存器中的内容是什么? START DW 10H,20H,30H,40H,50H EE1 DW 3 ┇ MOV BX,OFFSET START ADD BX,EE1 MOV AX,〔BX〕8. 试分析下面程序段的功能是什么? CMP AL,'A' JC OTHER CMP AL,'Z'+1 JNC OTHER JMP LETTER ┇ OTHER: ┇ LETTER: ┇
五、 程序填空题1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。TEST AX,8000H MOV PLW,BXJMP DONEK1: DONE:2. 现有下列数据段:DATA SEGMENTSTR1 DB'ABCDEFGHIJKL'COUNT EQU -STR1BUF DB COUNT DUP(0)DATA ENDS下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。MOV SI,OFFSET BUF-1MOV DI,OFFSET ...
以下为关联文档:
c语言中专考试题#include<stdio.h> void main() {int a; printf("请输入学生的成绩"); scanf("%d",&a); while (a>100||a<0) {printf("您输入有误,请重新输入"); scanf("%d",&a); } if(a>=80) printf("A"); e...
C语言编程考试题求解答这些都是一些很简单的题目。我现在没有事做,就帮你写写吧。等着,我在编。 这是第二题的程序: #includevoid main() { int year; printf("请输入年份:"); scanf("%d",&year); if( (year%...
Fortran赋值语言数组的输入输出INTEGER A(3,2) 声明A是 3列2行 的整型数组。 READ(*,*) 。。。 从键盘以自由格式 输入数据。 WRITE(*,100) 。。。 第一个参数是文件号/设备号,用 * 表示是 屏幕,第二个参数是...
关于德语语言学考试题有意思,收藏了。这里涉及的语言学,翻译学和国情概况相关的内容,有的能直接想起来例子,比如针对问题 A 1, freisprechen.A 2,Sicher, dass man die Kultur von anderen Ländern...
C语言编程考试题#include "stdio.h" #define NUM 10 void main() { int number[NUM]; int i; //输入 for(i=0;i<NUM;i++) { printf("请输入第%d个元素的值!\n",i+1); scanf("%d",&number[i]); } //输...
c语言的考试题拜托拜托经过多次调试之后才发上来的,肯定一个错都没有哈,保证能运行!! #include<stdio.h> #include<stdlib.h> void main() { int a[100],b[60],i=0,j=0; long sum=0; for(; i<100; i++...
c语言期末考试题1、 有 1、 2、 3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2、 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低...
C语言基础考试题第一题:1 (算数运算符优先级高于逻辑运算符) 此题优先级为 / + == & || 即 a & (b+c) || b == (c/2) 带入数据就是 3 & 9 || 4 == 2 再化简就是 3&9||0 结果为1 第二题:0,6 数组...
fortran语言中数组的初值一般是0但是我想把初值换成缺省该怎么办Fortran 并不规定未赋值的变量是什么值。 关于语法中没有规定的内容,编译器厂家可以按照自己的意愿去做。所以,有些编译器会设置为0,有些则不会(此种情况下,初始值会不确定,可能是...