|
回目录 回首页 |
(考试时间 14:00~16:00 共120分钟) 请按下表选答试题
请按下述要求正确填写答卷,若不按下述要求解答,将不给分数
例题 一九九六年度举行的计算机软件专业技术资格和水平考试的日期是 (1) 月 (2) 日。
试题一 阅读下列BASIC程序,将应填入(n)处的字句,写在答卷的对应栏内。 [程序1.1] G = -2 DEF FNA (X) = X * X – 4 DEF FNB (X) = 5 D = FNA (G) + FNB (G) * SGN (G) DEF FNC (X) = FNA (X) - FNC (D) PRINT FNA (D) PRINT FNB (D) + 3 * FNC (D) END
程序执行后,输出结果为 (1) 。
[程序1.2]
Y = 2 X = 20 DO X = X – Y LOOP WHILE X>= 16 PRINT “X=”; X END
程序执行后,输出结果为 (2) 。
[程序1.3]
A$ = “WINDOWS” B$ = “WORD” C$ = LEFT$(A$, 3) + UCASE$(B$) PFINT “LENGTH OF STRING –“ + C$ +”:”, LEN(C$) END
程序执行后,输出结果为 (3) 。
[程序1.4]
DECLARE SUB PP (Y) COMMON SHARED X, T, S READ X, S PP X S = S + T READ X RESTORE PP X S = S – T READ X PRINT “S=”; S PRINT “X=”; X END DATA 5, 4, 3, 2, 1
SUB PP (Y) T = 1 FOR I = 1 TO X T = T * I + 1 NEXT I EDN SUB
程序执行后,输出结果为 (4) 。
试题 二 阅读以下叙述,将应填入 (n) 处的字句,写在答卷的对应栏内。
下达表达式的值是 (1) 。 ( + + a = = b )? a : b - -
* p [ ] = { a + 3, a + 2, a + 1, a}, * * q = p ; 下列表达式的值是 (2) 。 * ( p [ 0 ] + 1 ) + * * ( q + 2 )
实现下达算式的C代码是 (3) 。 Z = sin(36°)/√x2 + y2 ( 设x ≠ 0, y ≠ 0 )
For ( ; n - - ; ) ;
试题 三 阅读以下 FoxBASE 程序,将应填入 (n) 处的字句,写在答卷的对应栏内。 [程序3.1]
SET TALK OFF STORE .T. TO X STORE O TO Y DO WHILE X STORE Y + 1 TO Y IF INT(Y/7) = Y/7 ?? Y ELSE LOOP ENDIF IF Y > 15 STORE .F. TO X ENDIF ENDDO SET TALK ON
程序执行后,输出结果为 (1) 。
[程序3.2]
SET TALK OFF * PM.PRG Q = 1 DO PM WITH Q PARAMETERS X ? “Q=”, Q X = X + 2 SET TALK ON IF X < 10 RETURN ?? X RETRY ELSE RETURN
程序执行后,输出结果为 (2) 。
[程序3.3]
SET TALK OFF STORE 1 TO P, M X1 = 20 Y2 = 31.3 Z3 = 41.4 N = ASC(“X”) DO WHILE P <= 3 STORE CHR(N+P-1) + STR (P, 1) TO Q ? “Q=”, Q M = M * &Q P = P+2 ENDDO ? “M=”, M ET TALK ON RETURN
程序执行后,输出结果为 (3) 。
[程序3.4]
SET TALK OFF USE ABC SKIP 8 DISPLAY LIST RETURN
设数据库 ABC.DBF 共有30条记录,顺序执行程序中每条语句后,记录指针值依次为 (4) 。
试题 四 阅读以下程序说明和 BASIC 程序,将应填入 (n) 处的字句,写在答卷的对应栏内。
[程序说明] 根据哥德巴赫猜想,任何一个偶数 ( > 4 ),都可以表示为两个素数(即只能被1和本身整除的自然数)之和,如6 = 3 + 3, 8 = 3 + 5,…。 本程序将 4 ~ 100 之间的偶数分解为两个素数,并以两个素数之和的形式打印输出。 [程序]
EDCLARE SUB PRIME (Y) COMMON SHARED T
FOR N = 4 TO 100 STEP 2 FOR X = 2 TO N – 1 P = X PRIME P IF T = 1 THEN (1) PRIME P IF T = 1 THEN PRINT N; “=”; (2) (3) END IF END IF NEXT X NEXT N END
SUB PRIME (Y) FOR I = 2 TO SQR(Y) T = 0 IF Y / I = (4) THEN EXIT FOR NEXT I IF (5) THEN T = 1 END SUB
试题 五 阅读以下程序说明和 C 程序,将应填入 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 本程序三位正整数中寻找符合下列条件的整数:它既是完全平方数,又有两位数学相同,例如144、676等,程序找出所有满足上述条件的三位数并输出。 [程序]
main ( ) { int n, k, a, b, c; for ( k = 1; ; k + + ) { (1) ; if ( n < 100) (2) ; if ( n > 999) (3) ; a = n / 100; b = (4) ; c = n % 10; if (flag(a, b, c)) printf(“N = %d = %d*%d\n”, n, k, k); } } flag( (5) ) { return ! (( x – y ) * ( x – z ) * ( y – z )); }
试题 六 阅读以下程序说明和 FoxBASE 程序,将应填入 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 某工厂有8个车间,分别设有数据库 CJ1, CJ2, … CJ8,它们具有相同的库结构:GH(C,5);XM(C,8);GZ(N,5);…(分别表示工号、姓名、工资…)。本程序计算(1)全厂工资在500元和550元之间的职工总人数S。 (2)全厂所有车间中工资大于本车间平均工资的职工数总和W。 [程序]
SET TALK OFF CLEAR I = 1 (1) DO WHILE I <= 8 DB = “CJ”+ (2) USE (3) COUNT FOR GZ >= 500 .AND. GZ <= 550 TO P (4) CONUT FOR GZ >AVGZ TO Q S = S+P W = W+Q (5) USE ENDDO ?“全厂工资在500元和550元之间的职工人数为:”,S ?“全厂大于车间平均工资的职工人数总和为:”,W SET TALK ON RETURN 试题 七 阅读以下程序说明和 BASIC 程序,将应填入程序中 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 对于十进制数成立如下一组等式: 9 5 1 + 2 = 11 9 5 12 + 3 = 111 9 5 123 + 4 = 1111 …… 9 5 12345678 + 9 = 111111111 本程序用来验证对于任何R进制(3 < R < 10)数,都成立类似于上列的一组等式。程序输入R(R进制的基)和任一正整数M(1 < M < R-2),对于形如1 2 3 4 … ( M – 1)M的R 进制数(记为P),验证成立如下等式: R1 5 P + M1 = Q1 其中R1为R-1的值,M1为M + 1的值,Q1为由M1个1并列构成的R进制数(111…1)。 为简单起见,输出结果均以十进制数表示。 [程序] DEFLNG P-Q DO WHILE (3) INPUT “R=”, R K = K + 1 IF R < 3 OR R > 10 THEN Q = (4) PRINT “R-错误!” IF Q < R THEN END IF Q = 1 AND (5) THEN END IF PRINT R1, P, M1, Q1 INPUT “M=”, M PRINT “正确!” IF M < 1 OR M > R –2 THEN ELSE PRINT “M-错误!” PRINT “错误!” END END IF END IF END R1 = R – 1 ELSE M1 = M + 1 C = Q MOD R P = 0 END IF FOR L = 1 TO M LOOP P = (1) PRINT “错误!” NEXT L END Q = R1 * P + M1 Q1 = (2) K = 0 C = Q MOD R 试题 八 阅读以下程序说明和 C 程序,将应填入程序中 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 本程序所列函数 replace ( char *s1, char *s2, char *str1, char *str2 )实现将已知字符串 s1 中所有与字符串 str1 相同的字符列时,就把该字符拷贝到字符数组 s2;当从某字符开始能构成一个与字符串 str1 相同的字符列时,就将字符串 str2 的各字符拷贝到字符数组s2,并继续访问字符串 s1 中那个字符列之后的字符,直至字符串 s1 被访问完,字符复制即告结束。 如程序中所列数据,程序运行输出为: ABCXYZdefg abABCXYZd abab [程序] replace (char *s1, char *s2, char *str1, char *str2) {
while ( (1) ) { for (t0=s1, t1=str1;*t1 != ’\0’ && (2) ; t0++, t1++); if (*t1 != ’\0’) *s2++ = (3) ; else { for(t1=str2;*t1 != ’\0’ ;) *S2++ = (4) ;
} *S2 = ’\0’; } main( ) { char s1[ ] = “abcdefg ababcd abab .”; char s2[80];
replace(s1, s2, “abc”, “ABCXYZ”); printf(“%s\n”, s2); } 试题 九 阅读以下程序说明和 FoxBASE 程序,将应填入 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 现在奥运会奖牌数据库(JPK.DBF)库结构如下: GJ (C,10) 表示国家名称 JP (N,2) 金牌数 YP (N,2) 银牌数 TP (N,2) 铜牌数 ZS (N,3) 总数 及某一时刻数据库的前五条记录如下: Record # GJ JP YP TP ZS
本程序用来计算各国获奖牌总数(ZS),并能按用户要求(通过键盘输入),分别显示按金牌、银牌、铜牌或总数排名的名次表。 [程序]
¬ 在打开数据库JPK后,欲显示金牌(JP)数在20块以上(含20块)的国家名字,要求只显示国名和金牌数,应使用 (4) 命令。 若需要显示前一个国家的金牌数总和,银牌数总和及铜牌数总和,可在打开数据库JPK后,使用 (5) 命令。 试题 十 阅读以下程序说明和 BASIC 程序,将应填入程序中 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 本程序对于键盘输入的M,按不同情况输出相应结果: 当 M < 0 时,输出:‘M为负数’ 当M为非整数时,输出‘M为非整数’ 当M为偶数时,输出‘M为偶数’ 当M为奇数时,输出表达式C1m+ C2m+……+Cmm的值。 其中 [程序]
(4) PRINT “W=”, W END SELECT END
试题 十一 阅读以下程序说明和 C 程序,将应填入程序中 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 本程序是寻找长整数A。A的个位数a [ 0 ]为指定的数p(取值分别为2、3、4、……、9)。若将A的个位数字移到其它各位数字之前,则其数值为原数值A的p倍。例如,p为4,则A为102564(各位数字分别存入a [ 5 ], a [ 4 ], ……,a [ 0 ]之中),有102564 5 4 = 410256。 寻找从a [ 0 ] = p出发,用p 乘已确定的位的数值可推出其前1位的数字,逐位进行,直到用p乘a [ n – 1 ]等于a [ 0 ],递推计算结束,A即为: a [ n – 1 ] a [n – 2 ] …… a [ 0 ] [程序]
试题 十二 阅读以下程序说明和 FoxBASE 程序,将应填入程序中 (n) 处的字句,写在答卷的对应栏内。 [程序说明] 设有一个人员数据库RXK.DBF,其库结构为: CH(C,6);XM(C,8);SFZH(C,15);XL(C,8); DW(C,20);CJGZ(D,8);GZ(N,4); 分别代表工号、姓名、身份证号、学历、单位、参加工作、工资。 及另一个考核成绩库CJK.DBF,其库结构为: CH(C,6);LR(N,5,1);CZ( N,5,1);ZF(N,5,1); 分别代表工号,理论成绩,操作成绩,总分。 本程序完成:
[程序]
|
回目录 回首页 |