1992年度初级程序员级下午试卷
流程图试题 略
BASIC试题
试题1
阅读下列BASIC程序,将程序运行结果写在答卷的对应栏中。
①[程序]
10 X$:“微机实用技术培训班”
20 FOR I=2 TO 8 STEP 2
30 A$=LEFT$(X$,4)
40 B$=RIGHT$(X$,I-2)
50 C$=A$+B$
60 A=LEN(C$+X$)
70 NEXT 1
80 D$=A$+”数据处理”+B$
90 PRINT A,
100 PRINT C$,
110 PRINT D$
120 END
②[程序]
10 DIM B(5)
20 FOR I=0 TO 4
30 B(I)=I+1
40 P=I+1
50 IF P=3 THEN PRINT B(I),:B(P-1)
=B(1-2)ELSE B(P)=B(I)
60 IF I=3 THEN B(I+1)=B(P-4)
70 B(4)=1:PRINT B(I);
80 NEXT I
90 END
③[程序]
10 DEF FNP(X)=SQR(X+1)
20 S=0
30 Q=200
40 FOR I=1 TO 6
50 GOSUB 100
60 NEXT I
70 PRINT “S=”;S,“Q=”;Q
80 END
100 IF I<=3 THEN 160
110 IF I<>4 THEN 130
120 RESTORE
130 READ Z
140 Q=Q-Z
150 GOTO 190
160 READ X,Y
170 S=S+(FNP(FNP(X))+FNP(Y))/2
180 DATA 63,15,-1,48,8,99,16,8,41
190 RETURN
④[程序]
10 INPUT “N=”;N
20 IF N<=0 OR N>9 OR N<>INT(N) THEN 10
30 DIM A(N+1)
40 A(1)=-1
50 FOR I=0 TO N-1
60 FOR J=1 TO I+1
70 X=I+2-J
80 A(X)=A(X)+A(X-1)
90 IF I<N-1 THEN 110
100 PRINT TAB(7-I*2+J*4);A(X);
110 NEXT J
120 NEXT I
130 END.
试题2
(1)阅读下列BASIC程序,回答问题,把解答填入答卷的对应栏中。
[程序]
10 INPUT X
20 G1=0
30 G2=1
40 FOR I=1 TO 16 STEP 2
50 IF I<8 THEN 80
60 G1=(G1+2)*X
70 GOTO 90
80 G2=2*G2*X+1
90 NEXT I
100 P=2*G1—G2
110 PRINT P,G1,G2
120 END
[问题1]用 anxn+an-1xn-1+ … +a0
形式回答:
(1)计算 Gl 就是计算多项式 __①__ 。
(2)计算 G2 就是计算多项式 __②__ 。
[问题2]若键盘输入一个数 2,程序执行后,G1 的值为 __③__ ,P
的值为 __④__ 。
(2)阅读下列程序说明和BASIC程序,将应该填入其中 处的字句,写在答卷的对应栏内。
{程序说明]
利用随机函数产生100个100~900之间( 包括 100 和
900 )的整数,输出这组数;然后,对其中的质数按从小到大的次序排序并输出。
[程序]
10 DIM A(99)
20 FOR I=0 TO 99
30 A(I)=INT( __⑤__ )
40 PRINT A(1);
50 NEXT I
60 PRINT ” ”
70 N=0
80 FOR I=0 TO 99
90 FOR X=2 TO INT(SQR(A(I)+1))
100 IF __⑥__ THEN __⑦__
110 NEXT X
120 A(N)=A(I)
130 __⑧__
140 NEXT I
150 PRINT
160 FOR I=1 TO N-1
170 FOR J=I+1 TO N
180 IF __⑨__ THEN 220
190 S=A(I)
200 __⑩__
210 A(J)=S
220 NEXT J
230 PRINT A(I);
240 NEXT I
250 PRINT __⑾__
260 END
C语言试题
试题1
阅读以下
C 程序,将程序的全部输出逐行写在答卷的 ①~④ 对应栏内,并将函数
chen() 的功能叙述在答卷的第 ⑤ 栏内。
[程序]
#include <stdio.h>
#define MN 7
int num_list[]={3,4,5,6,7,8,9};
main()
{ intk,j,b,u,w;
U=0;
w=MN-1;
while ( u<=w )
{ j’num-list[u];
k=2;
b=1;
while ( k<=j/2 && b )
b=j % k++;
if (b)
printf("%d\n",num_list[u++]);
else
{ num_list[u]=num_list[w];
num_list[w--]=j;
}
}
for ( k=0;k<u;k++ )
printf( "%5d",num_list[k));
printf( "\n" );
}
}
试题2
阅读以下程序说明和 C 程序,将应填入__(n)__处的字句,写在答卷的对应栏内。
[程序说明]
本程序从存有产品名称和数量的文件读入数据,按产品的类别符(产品名的第一个英文字母)所属分段范围累计属同一大类的产品的数量,输出各大类产品的数量清单。
程序约定产品类别符的大类分段范围如下:
A—E,F—I,J—M,N—Q,R—U,V—Z
[程序]
#include<stdio.h>
char class_list[]="EIMQUZ";
int q_list[26],q;
FILE *fopen(),*fp;
main()
{
char file name[120],pname[20];
int i,sp;
char sch;
printf( "Input data file_name. " );
scanf( "%s",file_name );
if ( ( fp=fopen( file_name,"r" ) )==NULL )
{ printf( "Cannot open file%s\n",file_name );
exit(1);
}
for ( i=0;i<26;i++ )
q_list[i]=0;
fscanf( fp,"%20s%d",pname,&q);
while ( !feof(fp) )
{ sp= __①__ ;
while (class_list[sp]!=,\0,)
if ( ( pname[0] >= 'a' && pname[0] <= 'z' && __②__ ) || __③__ )
break;
else __④__ ;
q_list[ __⑤__ ] += q;
fscanf( fp,"%20s%"pname,&q );
}
close(fp);
sch='A';
for ( i=0;i<strlen(class_list);i++ )
{ if ( q_list[i]>0 )
printf( "%c--%c:%d\n",sch,class_list[i],q_list[i] );
sch=class_list[i]+1;
}
}
试题3
阅读下列程序说明和 C 程序,把应填入其中__(n)__处的字句,写在答卷的对应栏内。
[程序说明]
本程序每次输入一个用户编码及其欠款金额后,就累计同一用户的欠款金额,并按用户编码由大到小的顺序排列已输入的所有欠款,最后输出排序后的全体用户的欠款总额清单。
[程序]
#include <stdio。h)
#define MN 500
long code[MN];
float money[MN];
main() ·
{ int u,v,n;
long t_code;
float t_money;
n=0;
printf( "Enter first code and money( -l to quit )" );
scanf( "%1d",&t_code );
while ( t_code>0 )
{ scanf( "%f" &t_money );
u=0;
while ( __①__ )
u++;
if ( __②__ )
money[u] += t_money;
else
{ for( __③__ )
{ code[v]=code[v-1];
money[v]=money[v-1];
}
code[u]=t code;
money[u]=t_money;
__④__ ;
}
printf( "\n Enter next code and money( -1 to quit )" );
scanf( "%1d",&t_code );
}
for ( u=0;u<n;u++ )
printf( "%51d %f\n",code[u],money[u] );
}