江苏省高校计算机等级考试二级上机改错题题型与总结应该用、而错用成、应该用、而错用成、类型一类型二类型三\n<0等→0(用于一个数中数字提取或者进制转换)(*特殊情况:被改成)n<0等→1(用于关于一个数的质因子分析)/”与整除号“\”结束条件(非n<0等→0)题目:本程序的功能是:查找四位整数,它的9倍正好等于n的反序数。
程序界面参见下图。
1()n , k1 = "结果是:" &n = 1000 2400k = 9 * n(n) = k= n & "" & k1 = 1 & &n(n )i ,ki = 1 此处原题有错,不应该有这句话k = n 10= & (k)n = n /10n > 0=题目:本程序的功能是:随机生成一个有n个元素的数组(n由函数输入),找出其中的最大元素并将它删除,再输出删除后的数组。
1a() , n1()in = ("请输入数组个数", , 10)a(n)i = 1 na(i) = ( * 100) + 11 = 1 & (a(i))i(a)i = 1 n2 = 2 & (a(i))i(a() ), , i= a(1): = 1i = 2 na(i) >= a(i): = ii(a, )(a() , k )ii = k + 1 (a)a(i) = a(i + 1)ia((a) - 1)题目:本程序的功能是查找80~150范围内的特殊十进制数据,其特点是该十进制数对应的8进制数为回文数(指从左向右读与从右向左读是一样的数)。
例如十进制数据105对应八进制数为151,151属于回文数,所以105就是符合要求的数。
1()i , ,i = 80 150=8(i, , )= (i) & ">" & & ""1i8( n , , f )k , () * 1, i= ""k = k + 1(k)(k) = n 8= (k) &n = n \ 8n < 0i = 1 () / 2(i) <> (() - i + 1)if =题目:本程序的功能是将密文解密。
密文中被非数字字符分隔的连续的数字是五进制数,每个五进制数对应一个明文字符的代码。
例如五进制数242对应的代码值是72,也就是字母“H”,密文末尾以非数字字符结束。
11(), , ip , t() , k= 1= ""i = 1 ()p = (, i, 1)p >= "0" p <= "4"= & p() <> 0k = k + 1t(k)t(k) =ii = 1 (t)k = (t(i))= & (k)i2 =(p )i , k , ni = (p) 1n = n + ((p, i, 1)) * 5 ^ kk = k + 1i= n题目:本程序的功能是:查找800~1200范围内的所有具有两个相同数字的素数。
例如811、877等都是符合要求的数。
1()ii = 800 1200(i) (i)1 ii(n )() , ki , jk = k + 1(k)(k) = n 10n = n \ 10n <= 0k = 0i = 1 () - 1j = i + 1 ()(i) = (j) k = k + 1jik = 1 =(n )ii = 2 (n)n i = 0I=题目:本程序的功能是:找出100以内的含有三个不同质因子的所有整数。
程序界面参见下图。
11()i , j , a() , si = 2 100(i, a)(a) = 3s = i & "的质因子:"j = 1 (a)s = s & (a(j))j1 si(x , a() )i , jj = 2x j = 0i = i + 1a(i)a(i) = jx = x \ jx j = 0x = x \ jLoopj = j + 1x = 0题目:本程序的功能是:在自然数序列中,依次找出指定个数的连续合数。
例如输入5,则可得到24、25、26、27、28。
所谓合数是指除了可被1和自身整除之外,还可被其他整数整除的数。
(函数的功能是判断一个数是否是合数)。
11()k , n , i()n = 1k = 2i = n(k)i = i + 1(i)(i) = ki <> ni = 0k = k + 1Loopi = 1 n2 = 2 & ((i))i(n )ii = 2 n - 1n i = 0i <= n - 1 =题目:本程序的功能是:把10到20范围内的数分别表示为若干质因子连乘的形式。
程序界面参见下图。
11()i , () , ji = 10 20(i, )= (i) & "=:"j = 1 ()= & ((j)) & "*"j= & ((j))1i(n , a() )i , ki = 2n i = 0k = k + 1a(k)a(k) = in = n \ ii = i + 1n <= 0题目:本程序的功能是,将24位真彩色图像的一个像素的颜色值,转换成用十进制表示的红、绿、蓝三基色的亮度值。
11(), c(3) * 8k , (3)(1) = "红色"(2) = "绿色"(3) = "蓝色"= 1k = k + 1c(k) = (, 8)= (, () - 8)k > 3k = 1 32 = 2 & (k) & ":"& b2d(c) &b2d(s )kb2d = b2d + ((s, 1)) * 2 ^ ks = (s, (s) - 1)k = k + 1k = (s)题目:本程序的功能是,找出所有两位整数中的“镜反平方数对”。
所谓“镜反平方数对”是指数对n与m,它们满足条件:①n与m不含有数字0,且n不等于m;②n的反序数是m,n的平方数的反序数等于m的平方。
例如12与21,12的平方是144,其反序数是441,而21的平方正好等于441;所以12与21是镜反平方数对。
1()n , ,n = 11 99((n), "0") <> 0= (n)(n, ) n <= n & "^2=" & n ^ 2 & "," & & "^2=" & ^ 21n1 = 0 1 "无镜反平方数"(n )ss = s & (n 10)n = n \ 10n = 0= s(p , q )(p ^ 2) = q ^ 2=题目:本程序的功能是:找出指定范围内的五位整数中,由不同数字组成的所有素数。
程序界面参见下图。
1()nn = 34567 40000(n) (n)1 = 1 & n &n1 = "" 1 = "无符合要求的数"(n )ii = 2 (n)n i = 0i=(n )(5) , i , ki = 1 5(i) = n 10n = n / 10ii = 1 4k = i + 1 5(i) = (k)ki=题目:本程序的功能是:随机生成n个两位整数。
存入一个数组。
先求出最后两个数组元素的最大公约数,用最大公约数对第1个元素进行约分,并删除第n个元素。
如此反复,直到数组只有一个元素为止。
程序界面参见下图。
1()a() , ni , j ,n = ("元素个数:", "数组处理", 10)a(n)i = 1 na(i) = ( * 90) + 101 = 1 & (a(i))i= ""i = n 2 -1a(i - 1) = a(i - 1) / (a(i), a(i - 1))a(i - 1)j = 1 (a)= & (a(j))j1i( a , b )cc = a ba = bb = cc = 0= b题目:本程序的功能是利用随机函数生成n个可被3整除、且至少包含一个8的三位整数。
1()n , a() , in = ("数据个数n:", "查找", 15)a(n)(a)i = 1 nn 3 <> 0= & (a(i))= & (a(i)) &i1 =(a() ), k , ps= (a)p = ( * 899) + 100s = (p)(s, "8") <> 0 p 3 = 0k = k + 1a(k) = pk >题目:本程序的功能是:找出指定数组范围内所有其平方数是升序数的数,所谓升序数是指从最高位到最低位的数字依次增加的整数。
例如,1369就是一个升序平方数。
程序界面参见下图。
1()n , kn = 20 180k = n ^ 2(k)1 n & "^2=" & kn1 <> 0 1 "无升序平方数"( n )() , k , pip = n 10k = k + 1(k)(k) = pn = n \ 10n < 0i = 2 ()(i) > (i - 1)i=题目:本程序的功能是将三种颜色的亮度值(0-255间的十进制数)分别转换为8位二进制数,再拼接成一个24位的二进制表示。
十进制亮度值以逗号分隔、以#号结尾。
1(), (3) , ip * 1, q , k= 1i = 1p = (, i, 1)p <> "," p <> "#"q = q & pk = k + 1(k)q = ""i = i + 1i > ()i = 1 32 = 2 & d2b()id2b(d )d2b = d 2 & d2bd = d \ 2d < 0d2b = ("00000000" & d2b, 8)题目:本程序的功能是,找出由1、2、3、4、5这五个数字组成的无重复数字,并且十位数与千位数字为偶数的五位整数。