历届阅读程序题汇编2
汇编语言习题2
选择1、设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是()A. 0C290HB.0A40HC. 4290HD.0C260H2、下列中指令执行后,能影响标志位的指令是()A.PUSHFB.POPFC.JNLE OPRD.LOOPZ LOP3、循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是()A.CX≠0且ZF=1B.CX≠0且ZF=0C.CX≠0或ZF=1D.CX≠0或ZF=04、下面两个传送指令语句中源操作数寻址方式是()V AR1 DW 32HV AR2 EQU32H┇MOV AX,V AR1MOV BX,V AR2A.都是立即数寻址B.前一条指令是立即数寻址,后一条指令是直接寻址C.前一条指令是直接寻址,后一条指令是立即寻址D.都是直接寻址5、ARRAY DW 6,9,$+4,10H,1,$+4┇MOV AX,ARRAY+4设变量ARRAY的偏移量是0084H,上述指令执行后AX中的内容是()A.008CHB. 0009C.0090HD.0001H6、指令语句中标号的错误定义是()A.在代码段中的名字项定义,后面紧跟冒号B.用EQU伪指令定义C.用LABEL伪指令定义D.由“JMP标号”指令定义7、为在一连续的存储单元中依次存放数据41H,42H,…48H,下面的数据定义语句中有语法错误的是()A.DB 41H,42H,43H,44H,45H,46H,47H,48HB.DW 4142H,4344H,4546H,4748HC.DB …ABCDEFGH‟D.DW …BA‟,…DC‟,…FE‟,…HG‟8、设NUM=11011011B,指令“MOV AX,NUM SHL 3”执行后AX中的值是()A.11011011000BB.11011000BC.00011011BD.00011011011B9、用REPE SCASB指令对字符串进行扫描,如CX≠0时,扫描结束,那么表示()A.在字符串中遇上第一个AL中指定的字符B.在字符串中有一个AL中指定的字符C.在字符串中有一个不是AL中指定的字符D.在字符串中遇上第一个不是AL中指令的字符10、设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是()A.0036HB.0022HC.0030HD.0020H11. 当执行完下列指令序列后,标志位CF和OF的值为( )MOV AH,85HSUB AH,32HA. 0,0B. 0,1C. 1,0D. 1,112. 已知RET是属性为NEAR子程序中的返回指令,执行RET前SP=100,执行后,SP的内容为( )A. 102HB. 104HC. 104D. 10213. 指令MOV AX,-10[SI]的源操作数的寻址方式为( )A. 基址寻址B. 基址变址寻址C. 变址寻址D. 寄存器间接寻址14. 确定下列哪些数据在汇编语言中的表示是正确的( )A.19B+25D B. 25 AND 0D3HC.108Q-102 D. 101B MUL 0ABH15. 已知AL,BL中为无符号数, 若使AL≤BL时转到标号OK, 哪个程序段不能实现此功能( )A. CMP AL,BLB. CMP AL,BLJC OK JBE OKC. CMP BL,ALD. CMP BL,ALJNB OK JNC OK16. NEXT是程序中标号,下述哪个程序段不能实现转移到NEXT语句执行()A. JMP NEXTB. MOV BX,OFFSET NEXTJMP WORD PTR[BX]C. DA TA DW NEXTD. LEA AX,NEXTJMP DA TA JMP AX17. DA TA的定义如下:DATA DW 1234H现想把12H取入到AL寄存器,可以实现该功能的是()A. MOV AL,BYTE PRT DATAB. MOV AL,BYTE PTR DATA+1C. MOV AL,HIGH DATAD. MOV AX,DATA18、若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX= ? ( )A. 1400HB. 77F8HC. 0000HD. 0FFFFHA.185A2HB. 0AB568HC.01004HD. 00020H19、DW 10 DUP (2 DUP(3),300H)上述定义的数据单元中,能构成0303H字存储单元的个数是()A.10HB.20HC.1EHD.9H20、用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是()A.ADD AX,[BX][ST]B.MOV AX,[BX][ST]C. LEA AX, [BX][SI]D. AND AX, [BX][SI]1、A2、B3、B4、C5、A6、D7、B8、A9、D 10、A 11、C 12、B 13、A 14、C 15、B 16、D 17、C 18、B 19、A 20、D程序分析1.某数据段的起始定义如下:ORG 0030HDA1 DB 0,'0',30HDW DA1数据为3000H字存储单元的偏移地址是____30H ______2.若有如下指令和伪指令序列:DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是____55CDH _______4. 阅读程序回答问题STRING DB …ABCDEFGHIJ''MOV AH,01 ;从键盘输入字符1~9之间的一个数字INT 21HAND AL,0FHDEC ALXOR AH,AHMOV BX,OFFSET STRINGADD BX,AXMOV BL,[BX]MOV AH,02H ;显示输出INT 21H试回答:(1)上述程序段的功能是什么?根据从键盘输入的字符…1‟~…9‟,确定在显示器上显示STRING中第几个字符。
二、 阅读程序题
二、阅读程序题导读:学会阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。
读者通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。
如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。
程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。
习题基本上是按照教材的章节来安排的,读者可以根据学习的进度选择部分习题。
【2.1】以下程序的输出结果是。
main( ){ float a;a=1/100000000;printf("%g",a);}A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0【2.2】下面程序的输出结果是____。
#include <stdio.h> main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}A) 10,20 B) 20,10 C) 10,10 D) 20,20【2.3】以下程序的输出结果是____。
main(){ unsigned int n;int i=-521;n=i;printf("n=%u\n",n);}A) n=-521 B) n=521 C) n=65015 D) n=102170103【2.4】以下程序的输出结果是。
main( ){ int x=10, y=10; printf("%d %d\n", x――, ――y);}A) 10 10 B) 9 9 C) 9 10 D) 10 9【2.5】以下程序的输出结果是____。
C语言专升本2阅读程序题(3月10日终版)
一、基本输入输出1.#include <stdio.h>main(){printf("a_bc\td\re\t_f\n"); printf("gh_\tij_\b\b__k"); }注:“_”代表一个空格。
运行结果为:e_ _ _ _ _ _ _ _fgh_ _ _ _ _ _ i_ _k3.#include <stdio.h>main(){int z, x=6,y=5;char w=’c’;z=x+y+w;printf("%d,%d,%d",x,y,z); }运行结果为:6,5,110 2.#include <stdio.h>main(){char c1=’a’,c2=’b’,c3=’c’;printf("a%cb%cc%c ",c1,c2,c3); }运行结果为:aabbcc4.#include <stdio.h>main(){ int i=128;float x=234.89;printf(“\n”);printf("%5d,%8.2f\n",i,x); printf("%2d,%4.1f\n",i,x);}运行结果为:128, 234.89128,234.95.#include <stdio.h>void main(void){int x=15,y=5;float f=1234.567f,b=12345;printf("%f %10f %10.2f %.2f%-10.2f\n",f,f,f,f,f); printf("x+y=%d\n",x+y);printf("b=%8f",b);}运行结果为:1234.567000 1234.567000 1234.57 1234.571234.57 x+y=20b=12345.0000006.#include <stdio.h> main( ) { int i=8, j=9;int x, y, z , w; x=i-- ; y=i ;z=++j; w=j;printf(“%d,%d,%d,%d”,x,y,z,w); }运行结果为:8,7,10,108.#include <stdio.h>main(){ int x=10;int y=79;printf("%5d,%5d,%5d",!x,x||y,x&&y); }注:“_”代表一个空格运行结果为:0, 1, 17.#include <stdio.h>main() { int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%d\n”,a,b);}运行结果为:a=2,b=19.#include <stdio.h>main(){ int z, x=2,y=4;char w=’c’;z=x+y;printf("%d,%d,%d,%c",x,y,z,w); }运行结果为:2,4,6,c10.#include <stdio.h>main(){char c='a';printf("%c,%d\n",c,c); }运行结果为:a,97 11.#include <stdio.h>main ( ){ char c1, c2;c1=getchar ( );printf (“%c, %d\n”, c1,c1 ); c2=c1+32;printf (“%c,%d\n”, c2,c2 ); }若敲进A,则运行结果为A,65a,9712.#include <stdio.h> main(){ int z,x=7,y=4; char w=’c’;z=x>y&&y+3<7||w; printf("\n%d,%d,%d",x,y,z); }运行结果为:7,4,113.#include <stdio.h> main(){ int i=10,j=10; int x,y,z,w;x=i--; y=i;z=++j;w=j;printf("%d,%d,%d,%d",x,y,z,w); }运行结果为:10,9,11,1114.#include <stdio.h>main(){int i=8,j=10,m=0,n=0;m+=i++;n- =--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}运行结果为:i=9,j=9,m=8,n=-915.#include <stdio.h>main(){ int x, b0, b1, b2;printf("Please enter an integer x:");scanf("%d", &x);b2 = x / 100;b1 = (x - b2 * 100) / 10;b0 = x % 10;printf("bit0=%d, bit1=%d, bit2=%d\n", b0, b1, b2); }若输入352,运行结果为:bit0=2, bit1=5, bit2=3二、程序控制结构(顺序,分支,循环)1.#include <stdio.h> main(){ int a=1,b=3,c=5; if (c==a+b)printf("yes\n"); elseprintf("no\n");}运行结果为:no 2.#include <stdio.h>main(){ int a=12, b= -34, c=56, min; min=a;if(min>b) min=b;if(min>c) min=c;printf("min=%d", min);}运行结果为:min=-343.#include <stdio.h> main(){ int x=2,y= -1,z=5; if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z); }运行结果为:54.#include <stdio.h>main(){int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c); }运行结果为:a=10 b=30 c=105.#include <stdio.h>main(){ float a,b,c,t;a=3;b=7;c=1;if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c); }运行结果为:1.00,3.00,7.00 6.#include <stdio.h>main(){int a=2;float num=3.12,x;if(num<4)x=2*num*a;printf("result is %f\n",x); }运行结果为:result is 12.4800007.#include<stdio.h> main( ) { char c=’A’;if ((‘0’<=c ) &&(c<=’9’))printf(“YES”);elseprint f(“NO”);}运行结果为:NO8.#include <stdio.h> main ( ) { float c=3.0 , d=4.0; if ( c>d )c=5.0;elseif ( c==d )c=6.0;elsec=7.0;printf ( “%.1f\n”,c ) ; }运行结果为:7.09.#include <stdio.h> main(){ int a=0,b=1,c=0,d=20; if(a)d=d-10;elseif(!b)if(!c)d=15;else d=25;printf("d=%d\n",d);}运行结果为:d=20 10.#include <stdio.h> main(){ int a=2,b=3,c=1; if (a>b)if (a>c)printf (“%d\n”,a); elseprintf (“%d\n”,c); printf (“over!\n”); }运行结果为:over!11.#include <stdio.h>main(){ int m;scanf("%d", &m);if (m >= 0){ if (m%2 == 0)printf("%d is a positive even\n", m);elseprintf("%d is a positive odd\n", m);}else{ if (m % 2 == 0)printf("%d is a negative even\n", m);elseprintf("%d is a negative odd\n", m);}}若键入-9,则运行结果为:-9 is a negative odd12.#include<stdio.h>main( ){ char ch;ch=getchar( );switch(ch){ case ‘A’ : printf(“%c”,’A’);case ‘B’ : printf(“%c”,’B’);break;default:prin tf(“%s\n”,”other”);}}当从键盘输入字母A时,运行结果为:AB 13.#include <stdio.h> main( ){ int a=1,b=0;scanf(“%d”,&a); switch(a){ case 1: b=1;break; case 2: b=2;break; default : b=10;}printf("%d", b);}若键盘输入5,运行结果为:1014.#include <stdio.h>main ( ){ int i=0,j=0,k=6;if((++i>0)||(++j>0))k++;printf("%d,%d,%d\n",i,j,k); } 运行的结果为: 1,0,715.#include <stdio.h> main( ){ int x , y , z;x=20, y=40, z=60; while(x<y)x+=4, y-=4;z/=2;printf(“%d,%d,%d”,x,y,z); }运行结果为:32,28,3016.#include <stdio.h> main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);} }运行结果为:123 17.#include <stdio.h> main(){ int n=9;while(n>6){n--;printf(“%d,”,n); }}运行结果为:8,7,6,18.#include <stdio.h> main( ){ int sum=10,n=1; while(n<3){sum=sum-n;n++;}printf(“%d,%d”,n,sum); }运行结果为:3,7 19.#include <stdio.h>main(){ int num,c;scanf("%d",&num);do{c=num%10;printf("%d",c);}while((num/=10)>0);printf("\n");}从键盘输入23,则运行结果为:3220#include <stdio.h> main(){ int s=0,a=5,n; scanf("%d",&n);do{ s+=1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a); } 若输入的值1,运行结果为:2,121.#include <stdio.h> main(){ int n1,n2;scanf(“%d”,&n2);while(n2!=0){ n1=n2%10;n2=n2/10;printf(“%d”,n1); }} 若在运行时输入1298,运行结果为:892122.#include <stdio.h> main(){ int i;for (i=0;i<6;i++)printf (“%d”,++i); printf (“%d”,i++);}运行结果为:1356 23.#include "stdio.h"main() {char c;c=getchar(); while(c!='?') {putchar(c);c=getchar();} }如果从键盘输入abcde?fgh(回车)运行结果为:abcde24.#include <stdio.h>main(){ char c;while((c=getchar())!=’$’){ if(‘A’<=c&&c<=‘Z’)putchar(c);else if(‘a’<=c&&c<=‘z’)putchar(c-32); }}当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD 25.#include <stdio.h> main(){int i=0,s=0;do{ if(i%2){ i++; continue; } i++; s +=i;}while(i<7);printf("%d\n",s);}运行结果为:1626.#include <stdio.h> main(){int x=1, y =0; while(x<=10){ y+=x*x;if (y>=10)break;x++;}printf(“%d %d”,y,x); }运行结果为:327.#include <stdio.h> main(){ int x, y =0;for(x=1;x<=10;x++) { if(y>=10)break;y=y+x;}printf(“%d %d”,y,x); }运行结果为:10 528.#include <stdio.h>main( ){ int n=0;while(n<=3)switch(n){ case 0 : ;case 1 : printf(“%d,”,n);case 2 : printf(“%d,”,n);n=n+3;break;default: printf(“**”);n=n+1;}}运行结果为:0,0,** 29.#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch(y){case 0: a++;break; case 1: b++;break; }case 2: a++;b++;break;}printf(“a=%d, b=%d”,a,b);}运行结果为:a=2,b=130.#include <stdio.h>main(){ char grade=’C’;switch(grade){ case ‘A’: printf(“90-100\n”);case ‘B’: printf(“80-90\n”);case ‘C’: printf(“70-80\n”);case ‘D’: printf(“60-70\n”);break;case ‘E’: printf(“<60\n”);default : printf(“error!\n”); }}运行结果为:70-80 60-7031.#include <stdio.h>main(){ int k=0;char c='A';do{ switch(c++){ case 'A': k++;break; case 'B': k--;case 'C': k+=2;break; case 'D': k=k%2;continue; case 'E': k=k+10;break;default: k=k/3; }k++;}while(c<'C') ; printf("k=%d\n",k); }运行结果为:k=432.#include <stdio.h> main(){ int i=10;switch ( i ){ case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; }printf(“i=%d\n”,i);}运行结果为:i=13 33.#include <stdio.h> main( ){ int sum=0;i=0; while(i<=100)sum=sum+i;printf(“i=%d\n”,i); printf(“sum=%d\n”,sum); }运行结果为:死循环,无结果34.#include <stdio.h> main(){ int i,sum=0;i=1;do{sum=sum+i;i++;}while(i<=10); printf(“%d”,sum); }运行结果为:55 35.#include <stdio.h> main ( ){ int i=0, sum=1 ;do{sum+=i++ ;}while ( i<6 );printf ( “%d\n”, sum ); }运行结果为:1636.#include <stdio.h> main(){ int i;printf("\n"); for(i=0;i<6;i++) { printf("%d",i); if (i%2==0) printf("\n"); }}运行结果为:1234537.#include <stdio.h> main( ){ int i;for(i=0;i<8;i++) printf("%d,",++i); printf("%d,", i++); printf("%d", i);}运行结果为:1,3,5,7,8,938.#include<stdio.h> main( ){ int i=0, j=0; while( i<10) i++; while(j++<10) ; printf(“%d,%d”, i, j); }运行结果为:10,1139.#include<stdio.h>main( ){char i, j;for(i=’0’, j=’9’; i<j ; i++, j--) printf(“%c%c”, i, j);}运行结果为:091827364540.#include <stdio.h>main(){ int i, n, sum = 0, counter = 0; printf("Input 4 Numbers:\n"); for (i = 0; i < 4; i++){ scanf("%d", &n);if (n >= 0){ sum += n;counter++;}}printf("sum=%d,counter=%d\n", sum,counter);}若键入3 -5 7 -9运行结果为:sum=10,counter=2 41.#include <stdio.h>main(){ int i=5;do { switch (i%2){ case 4: i- -; break;case 6: i- -; continue;}i- -;i- -;printf(“i=%d\n”,i);} while(i>0);}运行结果为:i=3i=1i=-142.#include <stdio.h> main() { int y=9;for(;y>0;y- -) if(y%3==0){ printf(%d”,- -y); continue;}}运行结果为:852*43.#include <stdio.h> #define N 4 main(){ int i;int x1=1,x2=2;for(i=1;i<=N;i++){ printf("%4d%4d",x1,x2); if(i%2==0)printf("\n");x1=x1+x2;x2=x2+x1;}}运行结果为:1 2 3 513 21 3444.#include <stdio.h> main(){ int i, j;for(i=0;i<5;i++) {printf("\n");for (j=i++;j<6;j++) printf(“** “);}}运行结果为:** ** ** ** ** ** ** ** ** ** ** **45#include <stdio.h>main( ){int x, y;for(x=30,y=0;x>=10,y<10; x--,y++) x/=2, y+=2;printf(“x=%d,y=%d\n”,x,y);}运行结果为:x=0,y=12*46.#include <stdio.h> #define N 4main( ){ int i,j;for(i=1;i<=N;i++) { for(j=1;j<i;j++) printf(" "); printf("*");printf("\n");}}运行结果为:****三、函数1.#include <stdio.h>int Sub(int a, int b) {return (a -b);}main(){int x, y, result = 0; scanf("%d,%d", &x,&y ); result = Sub(x,y ) ;printf("result=%d\n",result); }当从键盘输入:6,3运行结果为:result=3 2.#include <stdio.h>int min( int x, int y ) { int m;if ( x> y )m = x;elsem = y;return(m);}main(){ int a=3,b=5,abmin ; abmin = min(a,b);printf(“min is %d”,abmin); }运行结果为:min is 53.#include<stdio.h>main( ){ int x=10;{ int x=20;printf(“%d, ”, x); }printf(“%d”, x); }运行结果为:20,10 4.#include<stdio.h>int fun(int m,int n) {static s=1;s++;return(s*(m+n));}main( ){ int a=0,b=1;printf("%d,",fun(a,b)); printf("%d,",fun(a,b)); }运行结果为:2,3,5.#include<stdio.h> func(int x) {x=10;printf(“%d, ”,x);}main( ){ int x=20;func(x);printf(“%d”, x); }运行结果为:10,206.#include <stdio.h> int m=4; int func(int x,int y){int m=1;return(x*y-m);}main(){int a=2,b=3;printf("%d\n",m);printf("%d\n",func(a,b)/m); }运行结果为:417.#include <stdio.h> int fun(int a, int b) { if(a>b)return(a);elsereturn(b);}main(){ int x=15, y=8, r; r= fun(x,y);printf("r=%d\n", r); }运行结果为:r=15 8.#include <stdio.h>int fac(int n){ int f=1,i;for(i=1;i<=n;i++)f=f * i;return(f);}main(){ int j,s;scanf(“%d”,&j);s=fac(j);printf("%d!=%d\n",j,s);}如果从键盘输入3,运行结果为:3!=69.#include <stdio.h> int b=1;void fun(){ int c=2;static int a=0; a=a+b+c;printf(“%d ”,a);}main(){ int cc;for(cc=1;cc<4;cc++)fun();}运行结果为:3 6 910.#include <stdio.h> int f(int a){ auto int b=0; static c=4;b=b+1; c=c+1; return(a+b+c); }main(){ int a=3,i;for(i=0;i<3;i++) printf(“\n%d”,f(a)); }运行结果为:9101111.#include <stdio.h> unsigned fun6(unsigned num) { unsigned k=1;do{ k*=num%10;num/=10;}while(num);return k;}main(){ unsigned n=26;printf(“%d\n”,fun6(n)); }运行结果为:12 12.#include <stdio.h>float f1(float x,float y) { float f2(float m,float n); float z;z=(x+y)/f2(x,y);return(z);}float f2(float m,float n) { float k;k=m-n;return(k);}main(){ float a=2,b=3,c;c=f1(a,b);printf(“\nc=%f”,c);}运行结果为:c=-513#include <stdio.h> int max(int x, int y); main(){ int a,b,c;a=7;b=8;c=max(a,b);printf("Max is %d",c); } max(int x, int y) { int z;z=x>y? x : y; return(z) ;}运行结果为:Max is 8*14.#include <stdio.h> int fac1(int n){ int f;if (n= =1) f=1; else f=fac1(n-1)*n; printf(“f=%d,”,f); return(f);} main(){ int y,n=4;y=fac1(n);printf(“y=%d\n”,y);}运行结果为:f=1,f=2,f=6,f=24,y=24四、数组1.#include <stdio.h>main(){ int i, a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]); }运行结果为:852 2.#include <stdio.h> main(){ int i,a[6];for (i=0; i<6; i++) a[i]=i;for (i=5; i>=0 ; i--) printf("%3d",a[i]);}运行结果为:5 4 3 2 1 03.#include <stdio.h> main( ){ int i,k,a[10],p[3]; k=5;for(i=0;i<10;i++) a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k); }运行结果为:21 4.#include <stdio.h> main( ){ int n[3][3], i, j;for(i=0;i<3;i++ ) {for(j=0;j<3;j++ ) {n[i][j]=i+j;printf(“%d ”, n[i][j]); }printf(“\n”);}}运行结果为:1 22 33 45.#include <stdio.h>int m[3][3]={{1},{2},{3}};int n[3][3]={1,2 ,3};main( ){ printf(“%d,”, m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]); }运行结果为:3,0 6.#include <stdio.h>main(){ int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=1; i<3; i++)printf("%d ",x[i][3-i]);}运行结果为:6 87.#include <stdio.h>main() {int j;char str[10]; scanf(“%s”, str);printf(“%s\n”,str); }键盘输入:howare(空格) you(回车)运行结果为:howare8.#include “stdio.h”func(int b[ ]) { int j;for(j=0;j<4;j++)b[j]=j;}main( ){ int a[4], i;func(a);for(i=0; i<4; i++)printf(“%2d”,a[i]); }运行结果为:0 1 2 39.#include <stdio.h>main(){char diamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}}; int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一个空格。
汇编语言练习题2
一、单项选择题(共20题)1.对于有符号的数来说,下列哪个值最大( D)A:0F8H B:11010011B C:82 D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D )A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符C:?和$不能单独作为标号 D:.号不可位于标号首3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是(C )。
A.C+D=B B.A+D=BC.B=D D.A>C>D4.下列四个寄存器中,可作为十六位寄存器的是(C )A.DL B.CLC.BP D.EBX5.8088/8086存储器分段,每个段不超过( D)A.64K个字B. 32K个字节C.1兆个字节D.64K个字节6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式( B)A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( B)。
A..OBJ文件B..EXE文件C..LST文件D..CRF文件8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( A)。
A. (CS)×16+(IP)B. (DS)×16+(DI)C. (SS)×16+(SP) D.(ES)×16+(SI)9.若AX= - 15要得到AX=15应执行的指令是(A )A.NEG AXB.NOT AXC.INC AXD.DEC AX10.8086/8088系统执行传送指令MOV时(A )A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志11.执行下列程序后,(AL)=(D )H。
DATA SEGMENTTAB DB ‘0123456789’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX, DATAMOV DS, AXMOV BX, OFFSET TABMOV AL, 04XLAT TAB…A.04 B.0400C.33 D.3412.下列指令中操作数在代码段中的是(A )。
汇编语言程序设计复习2(带答案)1
汇编语言程序设计练习题2一、单项选择题(答案BDDBA BDADC CCAC CBBDA BDADA BCCB )1、使计算机执行某种操作的命令是( )A.宏指令B.指令C.伪指令D.语句2、某存储单元的物理地址是12345H,可以作为它的段地址有()。
A.2345H B.12345HC.12340H D.1234H3、8088/8086存储器分段,每个段不超过()A.64K个字B.32K个字节C.1兆个字节D.64K个字节4、计算机能直接识别并执行的语言是( )A.汇编语言B.机器语言C.高级语言D.低级语言5. 8086/8088系统执行传送指令MOV时()A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志6、以下各个指令中正确的是()。
A. MOV CS, DXB. MOV DS, BPC. IN 20H,ALD. MOV AH, BX7、下列对OUT指令的叙述正确的是()。
A. 实现从端口中读出数据B. 能直接访问的端口范围是0~1KBC. 能访问的端口为64KBitD. 只能用DX做为间接寻址的寄存器8、已有汇编语句“V AR EQU 1220H”,则语句“mov AX, V AR”中源操作数的寻址方式为()。
A. 立即寻址B. 直接寻址C. 寄存器间接寻址D. 基址寻址9、与MOV BX,OFFSET DATA1指令完全等效的指令是()。
A.MOV BX,DATA1B.LDS BX,DATA1C.LES BX,DATA1D.LEA BX,DATA110、下列指令中段默认为堆栈段的是()A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]C.SUB BX,[BP][DI]D. MOV DX,[1000H]11、已知DS=2000H,ES=1000H, SI = 0800H,内存10880H开始的两个单元中存放5678H,内存20880H开始的两个单元中存放8765H,则语句“LEA BX,[SI+80H]”执行后BX 的值为()。
信息学竞赛提升训练试题总编之二——阅读程序
信息学竞赛训练提升试题总编之二——阅读程序第1题(6分)program yd;var d, p: integer;beginp:=1;d:=11;while d>1 dobeginp:=2*(p+1);d:=d-1end;writeln (p)end.输出:________________第2题(6分)program yd;varg,m: integer;k,t: real;begink:=0; g:=0;for m:=1 to 49 dobeging:=g+1;k:=k+1/(g*(g+1))end;writeln ( k: 10: 2 )end.输出:__________________第3题(6分)program yd;varn, i, t: longint;tem: integer;s: string;beginwrite('Input n: '); readln(n);s:='1';repeati:= length(s);while s[i] ='1' dobegins[i]:= '0' ;dec(i);end;if i>0 then s[i]:='1'else s:= '1' +s;val(s,t,tem);until t mod n = 0;writeln(n,'*',t div n,'=',s);end.输入:6输出:_________________第4题(6分)program yd;const n = 5;vari,j,m,s:integer;beginm:=0;for i:=1 to n dobeginm:=m+i;s:=m;for j:=1 to 2*i do write(''); {''中间是一个空格}for j:=1 to n dobeginwrite(s mod 10:2);s:=s+j;end;writeln;end;end.输出:1第5题(7分)program yd;vara:array[0..8] of char;i: integer;beginfor i:= 1 to 8 do a[i]:=char(i * 2 +ord('A')); for i:= 1 to 4 do begina[0]:=a[i];a[i]:=a[9-i];a[9-i]:=a[0];end;for i:= 1 to 8 do write(a[i]);writeln;end.输出:_________________________第6题(7分)Program yd;varn, i, x: integer;d:array[0..10] of integer;beginreadln(n);fori:=1 to n dobeginread(x);d[x]:=d[x] +1;end;d[0]:=0;for i:=1 to 10 do d[i]:=d[i-1]+d[i];for i:=1 to 10 doif d[i] < > d[i-1] thenwriteln(i:3,d[i-1]+1:4);end.输入:203 4 6 1 7 6 9 4 10 76 6 3 3 87 9 10 6 7输出:第7题(7分)program yd;vara,b:array[1..32] of integer;i: integer;procedure ssort( i ,j: integer);varm, k, x: integer;beginif j-i>1 thenbeginm:=(i+j) div 2;ssort(i,m);ssort(m+1,j);k:=i;for x:=i to m dobeginb[k]:=a[x]; b[k+1]:=a[m+x-i+1];k:=k+2;end;for x:=i to j do a[x]:=b[x];end;end;beginfor i:=1 to 16 do a[i]:=i;ssort(1,16);for i:= 1 to 16 do write(a[i]:3);writeln;end.输出:第8题(6分)program yd;vara,d:array[1..100] of integer;n ,i ,j ,k,x ,s :integer;2beginn:=5;a[1]:=1;d[1]:=1;for i:=1 to n dobegins:=i+1;x:=0;for j:=1 to n+1-i dobegink:=s+x;x:=x+1;a[j+1]:=a[j]+k;write(a[j],' ');end;writeln('...');d[i+1]:=d[i]+i;a[1]:=d[i+1]; end;end.输出:_____________________第9题(7分)program yd;constd: array [0..3,1..4] of integer=((4,7,10,13),(1,8,11,14),(2,5,12,15),(3,6,9,1 6));vari ,j ,a,x,k ,bj :integer;y,u,v:real;beginfor i:=1 to 4 dobegina:=3-i;bj:=0;for j:=0 to 3 dofor k:=1 to 4 dobeginx:=d[j,k];u:=(x+a)/4;v:=(x+trunc(u))/4;y:=4*(v-trunc(v));if y< >j then begink:=4;j:=3;bj:=1;end;end;if bj=0 thenbeginwrite('U = (X');if a>0 then write('+');writeln(a,')/4');end;end;end.输出:_____________________第10题(7分)program yd;consta:array[1..10] of integer= (8 ,2,7,4,6,9,3,5,3,8);type point = ^nod;nod = recordw: integer; right,left: pointend;var first,head :point;j,i,k:integer;procedure hyt ( d: integer; var p: point);beginif p = nil thenbeginnew(p);if k = 1 then begin first:=p;k:=2;end;with p^ dobegin w:=d; right:=nil; left:=nilend;endelse with p^ doif d >= w then hyt(d,right) elsehyt(d,left);end;procedure hyt1(p: point);beginwith p^ dobeginif left <> nil then hyt1(left);write(w:4);if right <> nil then hyt1(right);end;end;begini:=10;first:=nil;k:=1;for j:=1 to i do hyt(a[j] ,first);hyt1(first);writelnend.输出:_____________________3第11题(7分)program yd;var m,n,i,p,k:integer;r:array[1..200] of integer;b: boolean;beginm:=6;n:=2;for i:=1 to m-1 do r[i]:=i+1;r[m]:=1;i:=0;p:=1;b:=true;while b dobegini:=i+1;k:=p;p:=r[p];if k=p then begin writeln(p) ;b:=false endelse if i=n+1 thenbeginwrite(p,'');i:=0;p:=r[p];r[k]:=p;endendend.输出:____________________第12题(7分)program yd;var n,k,s:longint;beginn:=1000000000;k:=0;s:=1;while s <= n dobegink:=k+1;n:=n-s;s:=s+6*kend;writeln (k)end.输出:_________________________第13题(7分)program yd;consta: array[1..14] of longint=(94,32,40,90,99,80,46,21,69,28,64,73,85,54);vari, j, k, m,left, right, temp: longint;beginm:=8;left:= 1;right:= 14;while left < right dobegink:=a[m];i:=left;j:=right;repeatwhile k < a[j] do j:=j-1;while k > a[i] do i:=i+1;if i <= j thenbegintemp:=a[i];a[i]:=a[j];a[j]:=temp;i:=i+1;j:=j -1enduntil i > j;if j < m then left:=i;if i > m then right:=jend;writeln(a[m])end.输出:___________________4第14题(7分) program yd;varm ,n,s: longint;procedure pl(n: longint);beginif n< >0 thenbeginpl(n div 2);s:=(s*2+n mod 2 *m) mod 1023endend;beginm:=2002;n:=5871;s:=0;pl(n);writeln(s);end.输出:_______第15题(7分) program yd;constmaxn =10000;vari,j,k ,n,r,p,g:longint;a:array [1..maxn] of longint;function gcd(m, n: longint): longint;var r: longint;beginwhile n< >0 dobeginr:=m mod n;m:=n;n:=rend;gcd:=mend;beginn:= 1000;r:=202;for i:=1 to n-r do a[i]:=n-i+1;for i:=2 to r dobegink:=i;for j:=1 to n-r doif gcd(k,a[j]) > 1 thenbeging:= gcd(k,a[j]);k:=k div g;a[j]:=a[j] div g;if k = 1 then breakendend;p:= 1 ;g:=0;for i:=1 to n-r dobeginp:=p*a[i];while p mod 5 = 0 dobeginp:=p div 5;g:=g+1end;p:= p mod 5end;writeln(g)end.输出:____________________5。
四川省计算机二级C语言历年考题之读程序回答问题汇总
二、读程序回答问题( 每个选择3分,共45分)1.# include <stdio.h>int f(int m){static int x[3]={2,3,4};int i;for(i=0;i<3;i++)x[i]+=x[i]-m;for(i=0;i<3;i++)printf("%d,",x[i]);printf("\n");return(x[m]);}void main(){ int y=1;f(f(y));}(1)第一次调用f函数的结果是( D 3,5,7, )。
(2)第二次调用f函数的结果是( B 1,5,9, )。
2. 读下列程序,运行时输入:This is a book!# include <stdio.h>int change(char *c,int fg){ if( *c==' ' )L1: return 1;elseif ( fg && *c<='z' && *c>='a')*c+='A'-'a';return 0;}void main(){int flag=1;char ch;do{ ch=getchar();flag=change(&ch,flag);putchar(ch);}while(ch!='\n');}(1) 程序的运行结果是( C This Is A Book! )。
(2) 与L1:return 1等效描述的为( D return !(-1) )。
读下列程序,回答问题。
( )。
# include "iostream.h"int sb(int *s,int y){ static int i=3;y=s[i--];return y;}void main(){ int s[ ]={1,2,3,4};int i,x=0;for(i=0;i<4;i++){ x=sb(s,x);cout<<x<<',';}cout<<endl;}(1) 程序结束后i的值为( A 4 )。
历届阅读程序题汇编1
历届阅读程序题汇编(第一题)第一题:送分题,一定不能放过,基本在于考察通读程序的能力,例如简单的函数递归调用、数组元素的使用、基本算术逻辑运算等,通常采用列表模拟法得出结果,需要非常细心。
2009年普:vara, b: integer;function work(a, b: integer): integer;beginif a mod b <> 0 thenwork := work(b, a mod b)elsework := b;end;beginread(a, b);writeln(work(a, b));end.输入:20 12输出:_______分析:考察函数的递归调用,用表格模拟,注意参数的传递,细心计算mod。
2008年普:V AR i,a,b,c,d:integer;f:array[0..3] of integer;BEGINfor i:=0 to 3 doread(f[i]);a:=f[0]+f[1]+f[2]+f[3];a:=a div f[0];b:=f[0]+f[2]+f[3];b:=b div a;c:=(b*f[1]+a) div f[2];d:=f[(b div c) mod 4];if (f[(a+b+c+d) mod 4]>f[2]) thenbegina:=a+b;writeln(a);end elsebeginc:=c+d;writeln(c);end;END.输入:9 19 29 39输出:__________________________分析:纯模拟,用表格的方式列出所有变量值的变化,注意数组中f[0]与f[1],要细心对待!考察mod和div运行。
2007年普:var i,a,b,c,x,y:integer;p:array[0..4] of integer;beginy:=20;for i:=0 to 4 do read(p[i]);readln;a:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7;b:=p[0]+p[1] div ((p[2]+p[3]) div p[4]);c:=p[0]*p[1] div p[2];x:=a+b-p[(p[3]+3) mod 4];if (x>10)then y:=y+(b*100-a) div (p[p[4] mod 3]*5)elsey:=y+20+(b*100-c) div (p[p[4] mod 3]*5);writeln(x,',',y);end.{注:本例中,给定的输入数据可以避免分母为0或数组元素下表越界。
程序阅读及填空(答案)
一.程序阅读题1。
若运行时输入100↙,写出以下程序的运行结果。
main (){int a ;scanf(“%d”,&a);printf(“%s",(a%2!=0)?”No”:"Yes”);}答案:Yes2。
写出以下程序的运行结果。
main (){ int a=2,b=7,c=5;switch (a>0){case 1:switch (b〈0) {case 1: printf(“@”);break ;case 2:printf(“!”);break ;}case 0: switch (c==5){case 1: pritnf(“*");break ;case 2: printf(“#”); break ;default : printf(“#”) ;break ;}default :printf(“&”);}printf(“\n");}答案: *&3。
写出下面程序运行的结果.main (){int i,b,k=0 ;for (i=1; i〈=5 ;i++){b=i%2;while (b-—==0) k++ ;}printf(“%d,%d”,k,b);}答案:2 04.写出下面程序运行的结果。
main ( ){ int k=1,n=263 ;do {k*= n%10 ; n/=10 ;}while (n) ;printf(“%d\n”,k);}答案:365。
写出下面程序运行的结果。
main (){int a=10,y=0 ;do {a+=2 ; y+=a ;if (y>50) break ;} while (a=14);printf(“a=%d y=%d\n”,a,y) ;}答案:a=16 y=60数组部分:1。
写出下面程序的运行结果。
main ( )答案:{ int a[6][6],i,j ;for (i=1;i<6 ; i++)for (j=1 ; j<6 ; j++)a[i][j]=(i/j)*(j/i);for (i=1;i<6 ;i++){for (j=1 ; j<6 ; j++)printf(“%2d",a[i][j]);printf(“\n");}}2。
阅读程序题(有答案)
阅读程序1.main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n ",x);}----------答案:-2-------------- 2. main(){int a=3,b=4,c=5,d=2;if(a>b)if(b>c)printf(“%d”,d++ +1);elseprintf(“%d”,++d +1);printf(“%d\n”,d);}---------答案:2-------------3.main(){ int a=5,b=4,c=3,d=2;if(a>b>c)if(a-1!=b)d++;elsed--;printf(“%d\n”,d);}---------答案:2-------------4.main(){ int x,y,z;x=y=z=-1; ++x&&++y||++z;printf("%d %d %d\n",x,y,z);}---------答案:0 -1 0 ------------- 5.main(){ int a=0,i=0;switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}printf("%d\n",a);}---------答案:10------------- 6.main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf("n=%d\n",n);}---------答案:n=4-------------7.main( ){ int a[3][3];int i,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=3*i+j+1;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i>j)s+=a[i][j];printf("%d\n",s);}---------答案:19-------------8.main( ){ int a[4][4]={{1,2,3,4},{4,5},{3,6,9,12},{3,2,1}}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j)s+=a[i][j];printf("%d\n",s);}---------答案:15------------9. void f(int n){ if(n>0){ printf("%d",n%10);f(n/10);}}main(){ int x=123; f(x);} 答案:32110.void f(int a,int *b,int c){ *b=a*10+c; }main(){ int a=1,b=2,c=3;f(a,&b,c);f(b,&a,c);f(a,&c,b);printf("%d %d %d\n",a,b,c);}------------------------------11.main(){ int a=7,b=8,*p,*q,*r;p=&a;q=&b; r=p; p=q;q=r;printf(“%d,%d,%d,%d\n”,*p,*q,a,b);}------------------------------12.void fun(char *s){ while(*s){ if(*s=='a')*s+=1;s++;}}main(){ char s[]="abcabc";fun(s);printf("%s\n",s);}------------------------------13.#include<string.h>main(){ char s[]="abcde";int len=strlen(s);int i;for(i=0;i<len/2;i++){ char t=s[i];s[i]=s[len-i-1];s[len-i-1]=t;}printf("%s\n",s);}------------------------------ 14.void fun(int *m,int n){ int i;for(i=0;i<n;i++)(*(m+i))++;}main(){ int a[]={1,2,3,4,5},i;fun(a,5);for(i=0;i<5;i++)printf("%5d",*(a+i));}------------------------------15.int fun(char *a,char *b){ while(*a&&*b&&(*a==*b)){ a++; b++; }return (*a-*b);}main(){char s1[]="abf",s2[]="abd12";printf("%d\n",fun(s1,s2));}------------------------------16.#include<malloc.h>struct NODE{ int num;struct NODE *next;};main( ){ struct NODE *p,*q;int size=sizeof(struct NODE);p=(struct NODE *)malloc(size);q=(struct NODE *)malloc(size);p->num=1;q->num=2;p->next=q;q->next=p;printf("%d %d\n",p->next->num,p->next->next->num); }------------------------------。
阅读程序题10分
1.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果MOV A,10H (A)= 0FFH,ANL A,#01H (A)= 01H ,MOV A,11H (A)= 00H ,ORL A,#01H (A)= 01H ,MOV A,12H (A)= 0FFH ,XRL A,#01H (A)= 01H ,MOV A,13H (A)= 00H ,XRL A,#0AA (A)= 0A ,(10H)= FFH , (11H)= 00H , (12H)= FFH , (13H)= 00H 2.MOV 30H,#60HMOV R0,#60HMOV A,30HMOV B,AMOV @R0,B(A)= 60H ,(R0)= ,(B)= ,3.MOV SP,#60HMOV A,#01H (A)= ,MOV B,#02H (B)= ,PUSH A (SP)= ,PUSH B (SP)= ,POP APOP B (60H)= ,4.改正下列指令MOV A,DPTRMOV DPTR,10HMOV DPTR,40HMOVX 40H,#30HADD 20H,#10H2.MOV A,#10H (A)=MOV B,A (B)=MOV A,B (A)=ADD A,B (A)=MOV 20H,A (20H)=INC A (A)=MOV 21H,A (21H)=INC A (A)=MOV 22H,A (22H)=2.MOV DPTR,#2000H (DPTR)=MOV A,#80H (A)=MOVX @DPTR,A (2000H)=INC DPTR (DPTR)=MOV A,#90H (A)=MOVX @DPTR,A (2001H)=MOV DPTR,#2000H (DPTR)=MOVX A,@DPTR (A)=MOV B,A (B)=INC DPTR (DPTR)=MOVX A,@DPTR (A)=3、改正下列指令MOV @R3,AMOV DPTR,AINC @R3 IDEC DPTRADDC #30H,A1、设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6 FH,(27H)=76H,下列程序执行程序后,结果如何?CLR CMOV R2,#3LOOP: MOV A,@R0ADDC A,@R1MOV @R0,AINC R0INC R1DJNZ R2,LOOPJNC NEXT1MOV @R0,#01HSJMP $NEXT: DEC R0SJMP $(20H)=( )、(21H)= 、(22H)= 、(23H)= 、 CY=A= 、R0= 、R1= 。
汇编复习题2
汇编复习题21.填空题(1)汇编语言指令由两部分组成:表示指令的操作内容;表示指令在执行过程中所用到的数据信息。
(2)在16位CPU的寄存器间接寻址方式中,若用;;作为间接寻址的寄存器,则操作数在段中;若用作为间接寻址的寄存器,则操作数在段中。
(3)在16位CPU的基址变址寻址方式中,基址寄存器可以为或;变址寄存器可以为或;若用作为基址寄存器,则操作数在段中,若用作为基址寄存器,则操作数在段中。
(4)设AX=2000H,BX=2300H,则在执行了指令CMP AX,BX后,标志CF= ;ZF= 。
(5)当执行指令DIV BL后,被除数在中,所得商在中,余数在中。
(6)当执行指令MUL BX后,被乘数在中,所得积高16位在中,所得积的低16位在中。
2.选择题(1)若栈顶的物理地址为12000H,当执行完指令PUSH BX后,栈顶物理地址是。
A.12001HB.12002HC.11FFFHD.11FFEH(2)在程序运行过程中,确定下一条指令的物理地址的计算表达式是。
A.DS*16+SIB.CS*16+IPC.SS*16+SPD.ES*1++DI (3)下面指令执行后,将改变寄存器AX内容的指令是。
A.OR AX,AXB.AND AX,BXC.TEST AX,01HD.CMP AX,1 (4)设AH=79H,当执行指令ADD AH,98H后,标志位CF和OF的值分别是。
A.0,0B.0,1C.1,0D.1,1(5)要使寄存器AL的最低位置1,应该使用的指令是。
A.AND AL,01HB.XOR AL,01HC.OR AL,01HD.NOT AL(6)将寄存器AX的内容乘以2的正确指令是。
A.SHL AX,1B.SHR AX,1C.ROL AX,1D.RCR AX,1 (7)下列指令中操作数在代码段中的是:。
A、MOV AL,25HB、ADD AH,BLC、INC BYTE PTR DS:[25H]D、CMP AL,BL (8)用MOV指令将十进制数86以组合型BCD码格式送入AX正确的指令是:。
语文四年级下册期末现代文阅读真题汇编(二)(含解析)_1
语文四年级下册期末现代文阅读真题汇编(二)(含解析)期末现代文阅读真题汇编(二)-小学语文四年级下册部编版一.现代文阅读(共8小题)1.(2022春潮阳区期末)阅读短文,回答问题。
眼镜的“进化史”早在公元1世纪,世界上就有了单片镜。
那时,制作眼镜的原料加工不易且价格昂贵。
到了13世纪,才有真正的眼镜出现,它是用玻璃水晶制作而成的。
有了眼镜,人们却不知道怎样佩戴它,有人把它缝在布帽子上,有人把它装在铁圈里,还有人把它镶在皮带上。
又过了两三百年的时间,这个问题总算解决了。
16世纪,出现了长柄眼镜和夹鼻眼镜。
那时,人们购买眼镜是到眼镜铺子里去挑选,并没有经过眼科大夫的检查,眼镜度数不太精准。
现在有一种隐形眼镜,它是紧贴着眼球的一种镜片,方便美观,但这种眼镜佩戴时间过长容易引发干眼现象。
科技日新月异,未来的眼镜将逐渐变为多功能的高科技产品,如现在已推出的“谷歌眼镜”,它可以通过声音控制拍照、进行视频通话等。
未来还可能出现“食品识别眼镜”“坐姿监督眼镜”……智能眼镜的发展,我们拭目以待!(1)根据下面的意思,从文中找出对应的词语。
①擦亮眼睛等待着,形容殷切期望或密切关注事态的动向及结果。
②每天每月都有新的变化,形容进步、发展很快。
(2)文中画“____”的句子运用了的说明方法。
(3)眼镜是这样演变的:单片镜—→—→—→—→智能眼镜。
(4)隐形眼镜有什么优缺点?___(5)下面是一个问题清单,选一选这些问题的提问角度。
A.联系生活经验B.针对文章内容C.针对文章写法①文中画“”部分“这个问题总算解决了”中的“这个问题”指的是什么?②这篇文章是按照什么顺序写的?③“食品识别眼镜”“坐姿监督眼镜”可能会解决生活中的哪些问题?(6)读了这篇短文,请提出一个你认为值得思考的问题。
___2.(2022春楚雄州期末)阅读短文,完成练习。
神奇的克隆《西游记》里的孙大圣,紧急关头常常拔下一把毫毛,再吹一口气,毫毛立刻变成了一群和自己一模一样的孙悟空。
初赛_阅读程序2
writeln(a,’ ‘,b);
输入:10
1 8 12 19 13 49 32 45 22 41
输出:
4.阅读下列程序段,写出程序段运行结果。
Readln( n );
t :=‘’;
while n > 0 do begin
t := chr( 48 + n mod 9 ) + t;
n := n div 9;
a[1]:=1;
a[2]:=1;k:=1;
repeat
a[k+2]:=1;
for i:=k downto 2 do
a[i]:=a[i] +a[i-1 ];
k:=k+1;
until k>=10;
7.阅读下列程序段,写出程序段运行结果。
Var i,s,max: integer;
a : array [1..10] of integer;
输入:-2ห้องสมุดไป่ตู้13 -1 4 7 8 -1 -18 24 6
输出:max=
1.阅读下列程序段,写出程序段运行结果。
a := 1;
b := 1;
for i :=1 to 5 do begin
c := a + b;
a := b;
b := c;
end;
writeln(c);
2.阅读下列程序段,写出程序段运行结果。
x1 := 3;
x2 := 8;
for i :=1 to 5 do begin
begin
for i :=1 to 10 do read (a[i]);
max:=a[1];s:=a[1];
for i:=2 to 10 do begin
C语言程序设计---阅读程序题库及答案
C语言程序设计---阅读程序题库及答案程序设计是计算机科学的基础领域之一,而C语言作为一种广泛应用于程序设计的高级语言,被广泛运用于软件开发、嵌入式系统及算法实现等领域。
阅读程序题库是提供给学习者进行练习和理解C语言编程知识的重要资源。
本文将介绍一些常见的C语言程序设计题库,并提供相应的题目及答案,帮助读者更好地掌握C语言程序设计。
一、数据类型和表达式1. 编写一个程序,接受用户输入的两个整数,并交换它们的值。
程序代码如下:```c#include <stdio.h>int main() {int num1, num2, temp;printf("输入两个整数:\n");scanf("%d %d", &num1, &num2);temp = num1;num1 = num2;num2 = temp;printf("交换后的值为:%d %d", num1, num2);return 0;}```2. 编写一个程序,计算并输出圆的面积和周长。
用户输入圆的半径。
程序代码如下:```c#include <stdio.h>#define PI 3.14159int main() {float radius, area, circumference;printf("输入圆的半径:\n");scanf("%f", &radius);area = PI * radius * radius;circumference = 2 * PI * radius;printf("圆的面积为:%f\n", area);printf("圆的周长为:%f\n", circumference);return 0;}```二、条件语句和循环1. 编写一个程序,判断一个整数是否为偶数。
阅读程序写结果专项练习
阅读程序写结果专项练习1. NOIP2012普及组var a,b,c,d,e,ans: integer;beginreadln(a,b,c);d:=a+b;e:=b+c;ans:=d+e;writeln(ans);end.输入:1 2 5输出:______________2.NOIP2009vara, b: integer;function work(a, b: integer): integer;beginif a mod b <> 0 thenwork := work(b, a mod b)elsework := b;end;beginread(a, b);writeln(work(a, b));end.输入:20 12输出:_____________3.NOIP2008普及组procedure foo(a,b,c:integer);beginif a>b then foo(c,a,b)else writeln(a,',',b,',',c);end;vara,b,c:integer;beginread(a,b,c);foo(a,b,c);end.输入:3 1 2输出:_________________________4.NOIP2013提高组vara, b, u, v, i, num : integer;beginreadln(a, b, u, v);num := 0;for i := a to b do beginif (i mod u = 0) or (i mod v = 0) then inc(num); end;writeln(num);end.输入:1 1000 10 15输出:_____________________5.NOIP2012提高组varn,i,temp,sum:integer;a :array[1..100] of integer;beginreadln(n);for i:=1 to n doread(a[i]);for i:=1 to n-1 doif a[i]>a[i+1] thenbegintemp := a[i];a[i] := a[i+1];a[i+1] := temp;end;for i:=n downto 2 doif a[i]<a[i-1] thenbegintemp := a[i];a[i] := a[i-1];a[i-1] := temp;end;sum := 0;for i:=2 to n-1 doinc(sum,a[i]);writeln(sum div (n-2));end.输入:840 70 50 70 20 40 10 30输出:______________6.NOIP2009普及组vara: string;n: integer;procedure getnext(var str: string);varl, i, j, k: integer;temp: char;beginl := length(str);k := l - 1;while (k >= 1) and (str[k] > str[k + 1]) do dec(k);i := k + 1;while (i <= l) and (str[i] > str[k]) doinc(i);temp := str[k];str[k] := str[i - 1];str[i - 1] := temp;for i := l downto k + 1 dofor j := k + 1 to i - 1 doif str[j] > str[j + 1] thenbegintemp := str[j];str[j] := str[j + 1];str[j + 1] := temp;end;end;beginread(a);read(n);while n > 0 dobegingetnext(a);dec(n);end;write(a);end.输入:NOIP 3输出:_______7.NOIP2012普及组varn,ans,i,j: integer;s: string;Function get(i: integer) : char;beginif i<= n then get:= s[i]else get:=s[i-n];end;beginreadln(s);n:= length (s);ans:= 1;for i:= 2 to n dobeginfor j:=0 to n-1 doif get(i+j) < get(ans+j) thenbeginans:=i;break;endelse if get(i+j)> get(ans+j) then break;end;for j:=0 to n-1 do write(get(ans+j));writeln;end.输入:CBBADADA输出:____________8.NOIP2011提高组Var n:ineger;procedure f2(x,y:integer);forward;procedure f1(x,y:integer);beginif x<n then f2(y,x+y);end;procedure f2(x,y:integer);beginwrite(x,’ ’); f1(y,x+y);end;beginreadln(n);f1(0,1);end.输入:30输出:__________9.NOIP2008普及组proceduresolve(first:string;spos_f,epos_f:integer;mid:string;spos_m,epos_m:int eger);var i,root_m:integer;beginif spos_f > epos_f then exit;for i:=spos_m to epos_m doif first[spos_f]=mid[i] then beginroot_m:=i;break;end;solve(first,spos_f+1,spos_f+(root_m-spos_m),mid,spos_m,root_m-1); solve(first,spos_f+(root_m-spos_m)+1,epos_f,mid,root_m+1,epos_m); write(first[spos_f]);end;var first,mid:string;len:integer;beginreadln(len);readln(first);readln(mid);solve(first,1,len,mid,1,len);writeln;end.输入:7ABDCEGFBDAGECF输出:________________________________10.NOIP2013提高组const SIZE = 100;varn, m, p, count, ans, x, y, i, j : integer;a : array[1..SIZE, 1..SIZE] of integer;procedure colour(x, y : integer);begin inc(count); a[x][y] := 1;if (x > 1) and (a[x-1][y] = 0) then colour(x-1, y); if (y > 1) and (a[x][y-1] = 0) thencolour(x, y-1);if (x < n) and (a[x+1][y] = 0) then colour(x+1, y); if (y < m) and (a[x][y+1] = 0) thencolour(x, y+1);end;beginfillchar(a, sizeof(a), 0);readln(n, m, p); for i := 1 to p do beginread(x, y);a[x][y] := 1;end;ans := 0;for i := 1 to n dofor j := 1 to m doif a[i][j] = 0 then begincount := 0;colour(i, j);if (ans < count) then ans := count;end;writeln(ans);end.输入:6 5 91 42 32 43 24 14 34 55 46 4输出:__________________。
阅读程序题
五、阅读程序(10分)1.数据库表xs.dbf有如下记录,阅读以下程序,写出运行结果:记录号# 学号姓名性别专业1 0001 李林男信息管理系2 0002 高辛男计算机系3 0003 陆海涛男信息管理系4 0004 柳宝女信息管理系5 0005 李枫女电子系6 0006 任民男电子系7 0007 林一风男计算机系SET TALK OFFUSE xsDELE FROM xs WHERE 专业="信息管理系"RECALL ALL FOR 性别="男"PACKLIST ALL FOR 性别="男"2.写出下列程序的运行结果:set talk offcleari=1do while i<=5?? space(i)j=1do while j<=6?? ‘*’j=j+1enddo j?i=i+1enddo Iset talk onreturn五、阅读程序(10分)1. 现数据库表gz.dbf有如下记录:记录号编号姓名年龄职称工资1 B0004 武刚43 讲师4902 B0005 黄宏庆41 副教授17003 D0004 焦洁37 讲师6104 A0004 谢涛43 教授14605 G0005 徐全明56 教授11506 B0006 王耀辉47 助教4107 A0005 柏松33 讲师5408 C0001 汪杨37 教授1500SELECT 姓名,年龄,工资 FROM gz INTO CURSOR temp1 WHERE 职称="教授" ORDER BY 年龄,工资SELECT temp1LISTSELECT gzCOUNT ALL FOR 职称="教授" TO a?a显示的结果是:2.运行下列程序,给出输出结果。
SET TALK OFFNUM="12345"SUMB=0FOR I=1 TO LEN(NUM)A=SUBSTR(NUM,I,1)A=VAL(A)IF A%2=0LOOPENDIFSUMB=SUMB+AENDFOR? "SUMB="?? SUMB显示输出结果为:五、阅读程序(10分)1.数据库表xs.dbf有如下记录,阅读以下程序,写出运行结果:记录号# 学号姓名性别专业1 0001 李林男信息管理系2 0002 高辛男计算机系3 0003 陆海涛女信息管理系4 0004 柳宝男信息管理系5 0005 李枫女电子系6 0006 任民男电子系7 0007 林一风男计算机系SET TALK OFFCLEARCLOSE ALLUSE xsSCAN WHILE XB=”男”? RECNO(),XMENDSCANUSE2.写出下列程序的运行结果:set talk offclearfor i=1 to 5? space(5-i)For j=1 to 2*i+2?? ‘*’endforendforset talk onreturn五、阅读程序(10分)1. 阅读下列程序,给出运行结果:S=1I=0DO WHILE I<10IF I%2=0S=S+IENDIFI=I+1ENDDO? SRETURN2.写出下列程序的运行结果:clearfor i=1 to 5? space(i)For j=1 to 11-2*i?? ‘*’endforendforreturn五、阅读程序(10分)1. 阅读下列程序,给出运行结果:CLEARFOR I=12.36 TO 48.79 STEP 3.41?? II=I+1.48ENDFOR? IRETURN2. 现表文件gz.dbf有如下记录:记录号工号姓名工龄职称工资1 E0002 李刚20 副教授10502 H0001 程东萍29 教授16603 E0006 赵龙19 教授14004 G0002 张彬10 副教授8605 G0001 刘海军8 助教4206 B0001 方媛12 讲师5107 E0004 王大龙27 副教授12008 B0003 高山17 讲师610阅读下列程序,给出运行结果。
阅读程序题
苏州市职业大学2010─2011学年第二学期试卷《计算机语言C》答案与评分标准一、阅读程序题 (每空1分,共106分)1. 以下程序的输出结果是_______________。
#define MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)+mmain(){ int i=2,j=3;printf("%d\n",MCRB(j,MCRA(i)));}【答案】162. 以下程序用以删除字符串所有的空格,请填空。
#includemain(){ char s[100]={"Our teacher teach C language!"};int i,j;for(i=j=0;s[i]!=‟\0‟;i++)if(s[i]!= ' ') {s[j]=s[i];j++;}s[j]= 【】printf(“%s\n”,s);}【答案】'\0'3. 下列程序的输出结果是main( ){ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i+ +) s+ =a[i][i]+a[i][3-i-1];printf("%d\n",s);}【答案】304. 有一下程序#include <stdio.h>main(){ int f,f1,f2,i;f1=0;f2=1;printf("%d %d ",f1,f2);for(i=3;i<=5;i++){ f=f1+f2; printf("%d",f);f1=f2; f2=f;}printf("\n");}程序运行后的输出结果是【答案】0 1 1235. 设有以下程序: 程序运行后,如果从键盘上输入1298;则输出结果为_______________。
[新教材]统编版高中语文必修上册期末复习:文言文阅读 试题精选汇编 2套(Word版,含答案)
A. 冠,读guàn时,可以指的是戴帽子;古代男子到成年则举行加冠礼,一般在二十岁。
B. 礼部,隋唐为六部之一,掌管祭祀、学校、科举等事,历代相沿,长官为礼部尚书。
C. 苏轼,字子瞻,与父苏洵,弟苏辙并称“三苏”,位列唐宋八大家。
D. 《春秋》是我国第一部叙事详细完备的编年体史书。对《春秋》所记载的历史进行补充、解释、阐发的书,被称为“传”。代表作品为“春秋三传”《左传》《公羊传》《谷梁传》。
B. 斗牛,星宿名,我国古代天文学家把天空可见的星分成二十八组,叫二十八宿。“斗”“牛”是其中二宿。
C. 既望,指过了望日之后。“望”指农历每月十五,“朔”指农历每月初一,“晦”则是指农历每月三十。
D. 盏,在文中指酒杯。我国古代用作盛酒、温酒、饮酒的酒器还有很多,如:尊、壶、角、卮、觥、杯等。
12. 下列对原文有关内容的概括和分析,不正确的一项是( )
故选D。
【13题详解】
本题考查学生翻译文言文句子的能力。
得分点:
(1)“是”,这;“造物者”,自然界;“藏”,宝藏;“适”,享受。
(2)“反”,通“返”,返回;“中流”,江心;“听”,听凭;“休”,停止。
参考译文:
一
壬戌年秋天,七月十六日,我与友人在赤壁下泛舟游玩。清风阵阵拂来,水面波澜不起。举起酒杯向同伴劝酒,吟诵《明月》中“窈窕”这一章。不一会儿,明月从东山后升起,在斗宿与牛宿之间来回移动。白茫茫的水汽横贯江面,水光连着天际。放纵一片苇叶似的小船随意漂浮,越过浩瀚无垠的茫茫江面。浩浩渺渺好像乘风凌空而行,并不知道到哪里才会停栖,飘飘摇摇好像要离开尘世飘飞而起,羽化成仙进入仙境。
我就撩起衣襟上岸,踏着险峻的山岩,拨开纷乱的野草,蹲在虎豹形状的怪石上,又不时拉住形如虬龙的树枝,攀上猛禽做窝的悬崖,下望水神冯夷的深宫。两位客人都不能跟着我到这个极高处。我大声地长啸,草木被震动,高山与我共鸣,大风刮起,波浪汹涌。我也觉得忧愁悲哀,感到恐惧而静默屏息,觉得这里令人畏惧,不可久留。回到船上,把船划到江心,任凭它漂流到哪里就在那里停泊。这时快到半夜,望望四周,觉得冷清寂寞得很。正好有一只鹤,横穿江面从东边飞来,翅膀像车轮一样大小,身上的白羽如同洁白的衣衫,它戛戛地拉长声音叫着,擦过我们的船向西飞去。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
历届阅读程序题汇编(第二题)2009年普vara, b: array[0..2] of integer;i, j, tmp: integer;beginfor i := 0 to 2 doread(b[i]);for i := 0 to 2 dobegina[i] := 0;for j := 0 to i dobegininc(a[i], b[j]);inc(b[a[i] mod 3], a[j]);end;end;tmp := 1;for i := 0 to 2 dobegina[i] := a[i] mod 10;b[i] := b[i] mod 10;tmp := tmp * (a[i] + b[i]);end;writeln(tmp);end.输入:2 3 5输出:_______分析:考察标准函数:inc(x,y)即x:=x+y,表格模拟法。
2008年普procedure foo(a,b,c:integer);beginif a>b then foo(c,a,b)else writeln(a,',',b,',',c);end;vara,b,c:integer;beginread(a,b,c);foo(a,b,c);end.输入:3 1 2输出:_________________________分析:考察过程的递归调用。
2007年普2、program j302;var a,b:integer;var x,y:^integer;procedure fun(a,b:integer);var k:integer;begin k:=a; a:=b; b:=k; end;begina:=3; b:=6;x:=@a; y:=@b;fun(x^,y^);writeln(a,',',b);end.输出:_______________________________分析:考察指针类型的运用,@a代表a 地址,x^引用的是数值2006年普constm:array[0..4] of integer=(2,3,5,7,13);vari,j:integer;t: longint;beginfor i:=0 to 4 dobegint:=1;for j:=1 to m[i]-1 dot:=t*2;t:=(t*2-1)*t;write (t,' ');end;writeln;end.输出:____________________分析:考察双重循环结构,注意内循环终止值的变化。
2005年普varstr : string;i : integer;beginstr := 'Today-is-terrible!';for i := 7 to 11 doif str[i] = '-' then str[i-1] := 'x';for i := 13 downto 1 doif str[i] = 't' then str[i+1] := 'e';writeln(str);end.输出:_____分析:考察字符串数组2004年普program program2;vari, j: integer;str1, str2: string;beginstr1 := 'pig-is-stupid';str2 := 'clever';str1[1] := 'd'; str1[2] := 'o';i := 8;for j := 1 to 6 do beginstr1[i] := str2[j]; inc(i);end;writeln(str1);end.输出:。
分析:考察字符串数组2003年普vara,t:string;i,j:integer;begina:=`morning`;j:= l;for i:=2 to 7 doif (a[j]<a[i])thenj:= i;j:= j-1;for i:=1 to j dowrite (a[i]);end.输出:分析:考察字符串数组2002年普var n,jr,jw,jb:integer;ch1:char;ch:array[1..20]d char;beginreadln(n);for i:=1 to n do read(ch[i]):jr:=1;jwz=n;jb:=n;:while (jr<=jw)dobeginif(ch[jw]='R')then beginch1:=Ch[jr];Ch[jr]:=ch[jw];ch[jw]:=ch1:jr:=jr+13endelse if ch[jw]='W'then jw:=jw-1else beginch1:=ch[jw];ch[jw]:=ch[jb];ch[jb]:=ch1;jw:=jw-1;jb:=jb-1;endend;for i:=1 to n do write(ch[i]);writeln;end.输入:10RBRBWWRBBR输出:分析:考察字符数组2001年普var i,j,f:integer;a:array[1..8]of integer;beginfor i:=1 to 8 dobeginf:=i mod 2;if f=0 then a[i]:=0else a[i]:=1;for j:=1 to i doif f=0 then a[i]:=a[i]+jelse a[i]:=a[i]*jend;for i:=1 to 8 dowrite(a[i]:5);end.输出分析:考察一维数组2000年普var i,j,j1,j2,p,q: integer;p1: boolean;b,c: array[1..100] of integer;beginreadln(q,p);j:=1;p1:=true;b[j]:=q;j1:=0;while(q>0) and p1 dobeginj1:=j1+1;c[j1]:=q*10div p;q:=q*10-c[j1]*p;if q>q then beginj2:=1;while (b[j2]<>q) and (j2<=j) do j2:=j2+1;if b[j2]=q thenbeginp1:=false;write('0.');for i:=1 to j2-1 do write(c[i]:1);write('{');for i:=j2 to j1 do write(c[i]:1);writeln('}')endelse begin j:=j+1;b[j]:=q endendend;if q=0 then beginwrite('0.');for i:=1 to j1 do write(c[i]:1);writelnend;readlnend.输入①18输出输入②27输出1999年普vari,j:integer;;a :array[1..14] of integer;procedure sw(i1,j1:Integer);var k1:Integer;beginfor k1:= 1 to(j1- i1+1)div 2 dobegina[i1+k1-1]:=a[i1+k1-1]+a[j1-k1+1];a[j1-k1+1]:=a[i1+k1-1]-a[j1-k1+1];a[i1+k1-1]:=a[i1-k1+1]-a[J1-k1+1];end;end;beginj:=211;for i:=1 to 14 dobegina[i]:=i; J:=j-iend;sw(1,4);sw(5,10);Sw(11,14);sw(1,14);For i:=1 to 14 dobeginIf j mod I=1 then write (a[i]:3);j:=j-a[i];end;WRITElNend.程序运行结果是:________________________________________ 1998年普Const n=5;V ar i,j,k : integer;a : array[1..2*n, 1..2*n] of integer;BeginK:=1;For I:=1 to 2*n-1 doIf i<=n thenif odd(i) thenfor j:= I downto 1 dobegina [I-j+1,j]:=k; k:=k+1endelse for j: =1 to i dobegina[i-j+1,j]:=k; k:=k+1;endelse if odd(i) then for j:=n downto I-n+1 dobegina[I-j+1,j]:=k; k:=k+1;endelse for j:=I-n+1 to n dobegina[I-j+1,j]:=k; k:=k+1;end;for I:=1 to n dobeginfor j:=1 to n dowrite(a[I,j]:3);writelnend;end.。