吉林省计算机二级考试程序改错题解析.DOC
*【程序改错】
*题目:在XSDB.DBF中查找学生徐秋实的记录, 如果找到则将该记录
* 的系别、姓名,两科科目名称和对应的成绩显示在屏幕上,否则
* 显示:"查无此人!"。
答案:
1). LOCATE FOR姓名="徐秋实"
2). ?系别,姓名,"计算机="+★STR★(计算机),"英语="+★STR★(英语) 或 ?系别,姓名,"... 〖第2题〗『程序改错』(5分)
*题目:求2!+4!+6!+…+10!的和
答案:
1). T=1
T★*★N 或 T=★N★*★T
3). S=★S★+★T 或 S=★T★+★S
〖第1题〗『程序改错』(5分)
*题目:有一个字符串"ABC",将其插入3个数字转换为:"A1B2C3"输出。
答案:
1). A=SUBS(C1,I★,1) 或 A=SUBSTR(C1,I★,1)
2). C2=★C2★+★A+★STR(I,1)
*【程序改错】
*题目:有学生数据库STD.DBF文件,其中学号字段的前两位是班号。
* 请编写程序MODI1.PRG:选择所有少数民族(非汉族)的学
* 生参加某项活动,按民族的拼音次序升序排列,同民族的按
* 照学号升序排列,并为之生成编号。编号的前两位是班号,
* 后两位是统一新编序号。并将学号、编号、姓名、性别和
* 民族添加到数据库文件BS中。
答案:
1). index★on★民族★+★学号★to★std.idx
2). <>
3). subs(学号,1,2) +★STR(NUM,1) 或 left(学号,2) +★STR(NUM,1)
〖第1题〗『程序改错』(5分)
*题目:从键盘上输入5个数,将其中奇数求和,偶数求积。
答案:
1). S2=1
2). IF MOD(M,2)<>0 或 IF MOD(M,2)#0 或 IF INT(M/2)★<>★M/2 或 IF INT(M/2)★#★...
*【程序改错】
*题目:求0-7这8个数字所能组成的奇数个数。
答案:
1). do★while★j<★=★8 或 do★while★j<★9
2). sum= sum +s
3). j=j+1 或 j=1+j
〖第1题〗『程序改错』(5分)
*题目:将一串ASCII码字符"ABC123",逆序输出为:321CBA"。
答案:
1). L=LEN(S)
2). L=L-1
〖第2题〗『程序改错』(5分)
*题目:ZHG.DBF是一个职工信息文件,其中包含编号(C 5)、姓名
* (C 8)、性别(C 2)、政治面目(C 4)、出生日期(D 8)等字
* 段。性别用字符串"男"或"女"表示,此文件已按出生日期
* 建立了索引,索引文件名是ZHG_SR.IDX。
* 程序MODI1.PRG功能是:按年龄由小到大的顺序显示输出所
* 有"男"职工的编号、姓名和出生日期;
答案:
1). USE★ZHG★INDEX★ZHG_SR 1). USE★ZHG★INDEX★ZHG_SR
2). DO★WHILE★.NOT.BOF() 或 DO★WHILE★!BOF()
3). SKIP★-1
〖第1题〗『程序改错』(5分)
*题目:将200到300之间的所有能被3整除或被5整除的数求和并统计个数。
答案:
1). IF INT(I/3)★=I/3★.OR.★INT(I/5)=★I/5 或 IF MOD(I,3)=0★.OR.★MOD(I,5)=0...
2). C=★1+C 或 C=★C+1
〖第2题〗『程序改错』(5分)
*题目:计算并显示输出数列1,-1/2, 1/4, -1/8, 1/16 …的
* 前10项之和
答案:
1). DO★WHILE★C<=10★或 DO★WHILE★C<11
2). I=I★*2 或 I=-I*★(-2)
3). ENDD★O
〖第1题〗『程序改错』(5分)
*题目:将200到300之间的所有能被3整除或被5整除的数求和并统计个数。
答案:
1). IF INT(I/3)★=I/3★.OR.★INT(I/5)=★I/5 或 IF MOD(I,3)=0★.OR.★MOD(I,5)=0...
2). C=★1+C 或 C=★C+1
〖第2题〗『程序改错』(5分)
*题目:请考生编写程序 MODI1.PRG,其功能是计算下列多值函数的值:
* ┌ABS(x) x<0
* ├ex 0<=x<1
* y=├x2 1<=x<3
* └INT(x) x>=3
* 计算的数据都存放在数据库shj.dbf中,该数据库只有两个字段:
* X(N,4.1)和Y(N,6.4)。在程序中读取字段X的数据,然后把计算
* 结果存放在字段Y中,最后把shj.dbf所有记录复制到shj1.dbf * 文件中。
答案:
1). CASE★X1>=0★.AND.★X<1
2). Y1=EX★P(X1)
3). REPLACE★YW★ITH★Y1
(1)计算s=1+3+5+…+99的程序。
答案:1)do while i<=99
2) I=2+i
最新二级C语言考试题库及答案程序改错专项练习 精华版
1 / 4 程序改错题(共15题) 1、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中所有元素的平均值,结果保留两位小数。 例如,当一维数组a 中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。 #include
程序改错题
程序改错题 (注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1. 输出计算结果。 main() { int a=b=10; a+=b+5; b*=a+=10; printf("%d%d\n",a,b); } 2. 输出计算结果。 #include
输出程序运行结果。 #include
程序改错2
【程序改错-1】 题目:在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。『错误答案』: 1 int fun(int *a,int *b,int n) 2 *b=c-a;} 3 scanf("%d",&a[i]); 4 max=fun(a,&p,N); 【程序改错-2】 题目:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。程序中共有4条错误语句,请改正错误。 『错误答案』: 1 scanf("%d",p++); 2 max=p; 3 if(★max★==★arr ★) 4 for(i=0;i
2012计算机国二C语言等级考试题库(内部资料)程序改错
1.给定程序MODI1.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。(1)“t=0;”改为“t=1;”。(2)改成“return(2*s);” 2.给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:7654321时,t中的数为:7531。(1)“void fun (long s, long *t)”(2)“sl = sl*10;” 3.给定程序MODI1.C中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出 3.1414。(1) “while(t>=num)”改为 “while(fabs(t)>=num) ”。(2)“t=s%n;”改为 “t=s/n;”。 4.给定程序MODI1.C中函 数fun的功能是:把主函 数中输入的三个数,最大 的放在a中,最小的放在 c中,中间的放在b中。 例如a=55.0 b=34.0 c=12.0。(1)“float k;”。 (2)“if(*a<*c)”。 5. 给定程序MODI1.C中 函数fun的功能是:为一 个偶数寻找两个素数,这 两个素数之和等于该偶 数,并将这两个素数通过 形参指针传回主函数。(1) “y=1;”。(2)“d=a-i;”。 6. 给定程序MODI1.C中 函数fun的功能是:由形 参给定n个实数,输出平 均值以上(含平均值)的 实数个数。所的平均值为: 195.838745,在平均值以 上的实数个数应为:5。(1) “int j, c=0; double xa=0.0;”。(2)“if (x[j]>=xa)”。 7.例如:当s中的数为: 7654321时,t中的数为: 7531。(1)“*t=0;”(2) “if(d%2!=0)” 8.函数功能是:求出 以下分数序列的前n项 和。 2/1,3/2,5/3,8/5/13/ 8,21/13,…...。和值 通过函数值返回到 main函数。例如,n=5, 则应输出:8.391667。 (1)“fun(int n)”改为 “double fun(int n)”。 (2)“b+=c;”改为“b=c;”。 9.函数fun的功能是: 判断一个整数是否是 素数,若是返回1,否 则返回0。(1)“k++” 改为“k++;”(2) “if(m=k)”改为 “if(m==k)” 10.给定程序MODI1.C 中函数fun的功能是: 从整数1到55之间,选 出能被3整除、且有一 位上的数是5的那些 事,并且把这些数放 在b所指的数组中,这 些数作为函数值返回。 规定,函数中a1放个 位数,a2放十位数。 (1)“a2=k/10;”。(2) “return i;”。 11.给定程序MODI1.C 中函数fun的功能是: 计算小于形参k的最大 的10个能被13或17整 除的自然数之和。K的 值由主函数传入,若K 的值为500.则主函数 为4622。(1) “if((k%13==0)||(k%17 ==0))”。(2)“______” 填“}”。 12.已知一个数列从第 0项开始的前三项分别 是0、0、1以后的各项 都是它相邻的前三项 之和。给定程序 MODI1.C中函数fun的 功能是:计算并输出该 数列前n项的平方根之 和。n的值通过形参传 入。(1)“double fun(int n)”。(2)“return sum;”。 13.函数fun的功能是: 根据整形形参m的值: 计算如下公式的 值……例如:若m中的 值为5,则应输出: 0.536389。(1) “for(i=2; i<=m; i++)”(2) “y-=1.0/(i*i);”。 14.函数的功能是:将 字符串中的字符按逆 序输出,但不改变字符 串中的内容。例如字符 串abcd,则应输出dcba。 (1)“void fun(char *a)”。(2)“printf("%c", *a);”。 15.函数fun的功能是:求 三个数的最小公倍数。 X1=15 x2=11 x3=2(1) 改成“int fun(int x, int y, int z )”。(2)return j 16.函数fun的功能是:根 据整型形参m计算如下 公式的值。若主函数中输 入5,则应输出-0.283333。 (1)“t=t-1.0/i;”。 (2)填空“return t;” 17. 例如,若输入:edcba, 则应输出:abcde。(1) “for( i=strlen( t )-1; i; i- - )” (2)“if(t[j]>t[j+1])” 18.函数fun的功能是: 根据形参m的值 (2<=m<=9),在m行m 列的二维数组中存放 如下所示规律的数据, 由main函数输出。(1) “void fun(int a[][M], int m)”。(2) “a[j][k]=(k+1)*(j+1);”。 19.函数fun的功能是: 先从键盘上输入一个3 行3列矩阵的各个元素
C语言程序改错题
第1题【程序改错】 欧阳学文 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。 */ #include /**********FOUND**********/ t[i] = s[sli]; for (i=0; i 第2题【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 */ #include 程序改错练习题 下面每个程序的划线处有语法或逻辑错误,请找出并改正,使程序符合题意。 1.求1?2?3?4? ?n main() { int sum; 正确:int sum=1; int n,i=1; scanf("%d",n); scanf(“%d”,&n); printf(“\n”); while(i main() { float a,b; int c; float c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); printf("\nSum is %f",c); } 4. x , y两个数中,让x中存较大的数,y存较小的数 #include C语言程序改错基本 题库 北京石油化工学院 12级复习题 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1234n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(i main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; } main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a 11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif '以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:")) ? 第1题(分)题号:400 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ 《 #define N 20 #include <> int fun(int m) { /**********FOUND**********/ int s=0,i; ; for(i=1;i s*=i; ) 第2题(分)题号:584 难度:中第1章/*-------------------------------------------------------【程序改错】 --------------------------------------------------------- 下列给定程序中函数fun()的功能是计算1/n!的值。 & 例如:给n输入5,则输出。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构。 , 试题程序: -------------------------------------------------------*/ #include <> #include <> /***********FOUND***********/ ~ int fun(int n) { double result =; if(n==0) return ; while(n>1 && n <170) /***********FOUND***********/ result *=n++ ; … result=1/result; return result; } void main() { 第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include 1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i程序改错练习题
C语言程序改错基本题库电子版本
计算机程序改错题,及答案
VB程序设计例题-程序改错程序填空程序设计
计算机基础C++程序改错复习题
C语言程序改错题
齐齐哈尔大学C语言题库 程序改错(部分)