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] );

}

 

 回目录      老顽童校对整理 2003年5月