有目录-程序改错部分试题及答案(2015-2016-1)

合集下载

最新二级C语言考试题库及答案程序改错专项练习 精华版

最新二级C语言考试题库及答案程序改错专项练习  精华版
程序改错题(共15题)
1、在考生文件夹下,给定程序MODI.C的功能是:
求一维数组a中所有元素的平均值,结果保留两位小数。
例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9
程序的输出应为:The aver is: 9.10。
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
int score,t;
printf("Please enter a score:");
do
{scanf("%d",&score);}
while(score<0||score>100);
t=score/10;
/*************found**************/
#include <stdio.h>
void main()
{
int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;
max = a[0];
pos = 0;
for ( i=1; i<10; i++)
/************found************/
if (max > a[i])
4 2 34
7 3 12
5 6 5
程序的输出应为:The min is: 2。
#include <conio.h>
#include <stdio.h>
void main()
{

计算机二级上机程序改错题1-50

计算机二级上机程序改错题1-50

1、给定程序MODI1.C 中函数 fun 的功能是:计算n!。

例如,给n 输入5,则输出120.000000。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include <stdio.h> double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。

第二处:语句后缺少分号。

2、给定程序MODI1.C 中函数fun 的功能是: 依次取出字符串中所有数字字符, 形 成新的字符串, 并取代原字符串。

请改正函数fun 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; /**********found**********/ s[j]="\0"; } main() { char item[80]; printf("\nEnter a string : ");gets(item); printf("\n\nThe string is : \"%s\"\n",item); fun(item); printf("\n\nThe string of changing is : \"%s\"\n",item ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。

C语言程序改错题及答案

C语言程序改错题及答案
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str
scanf("%d\n",&n); str=(char*)malloc(n); gets(str);
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /*输出数组元素*/
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++ห้องสมุดไป่ตู้ /*排序操作*/
{
min = i;
for (j=i+1; j<N; j++)
/****** 2 *****/
putchar(\n);//‘\n’
}
}
12、在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,
请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。
该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
}
11、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)

计算机程序改错题,及答案

计算机程序改错题,及答案

11*程序名:TEST.prg*检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的*学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中.*以下程序有三处错误,请改正OPEN DA TABASE SDBSELECT 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 ALL9*程序名:dbtest3.prg*定义一个视图VS1,*检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,*并按平均成绩降序排序.*以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFopen DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行CREATE VIEW VS1SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号;FROM STUDENT2, sc; &&*************Error*************WHERE STUDENT2.学号= SC.学号;GROUP BY SC.学号HA VING COUNT(课程号) > 3;ORDER BY 平均成绩desc &&*************Error*************CLOSE DATABASERETURNi=2create table four(结果I)do while i<=1000if i%3=0insert into four values(i) &&错误语句请修改endifi=i+1 && 请增加一条语句enddocreate database 学习情况create table 学生(姓名C(20),学号C(10) primary key) &&有错误alter table 学生add总分I &&有错误alter table 学生alter总分set check 总分<=800 and 总分>=0 &&有错误insert into 学生values ("林红","20100808",788) &&有错误update 学生set 总分=786 where 学号="20100808"&&有错误alter table employee alter 性别set check 性别="男" or 性别="女"SELECT Department.部门名, count(*) as 总人数;FROM employee_m!department INNER JOIN employee_m!employee ;ON Department.部门号= Employee.部门;group by 部门号;INTO TABLE tone.dbfSELECT Department.部门名, count(*) as 人数_男;FROM employee_m!department INNER JOIN employee_m!employee ;ON Department.部门号= Employee.部门;where 性别="男";group by 部门号;INTO TABLE ttwo.dbfSELECT tone.部门名, ttwo.人数_男, 总人数-人数_男as 人数_女, tone.总人数;FROM tone INNER JOIN ttwo ;on tone.部门名=ttwo.部门名;order by tone.部门名desc;INTO TABLE tableone12*程序名:dbtest61.prg*检索同时选修课程号c1和c2的学生的学号*以下程序有三处错误,请改正SELECT 学号;FROM SC ;WHERE 课程号= 'c1' AND 学号in ; &&************Error************ ( SELECT 学号FROM SC ; &&************Error************WHERE 课程号= 'c2' ) &&************Error************CLOSE DATABASE*程序名:dbtest4.prg*检索选课门数大于或等于3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,*并按平均成绩降序排序,将结果存储到表TEST1中.*以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFSELECT STUDENT.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数,院系院系;FROM STUDENT, SCORE;WHERE STUDENT.学号= SCORE.学号;GROUP BY STUDENT.学号HA VING count(课程编号) >= 3; &&*********Error************ ORDER BY 平均成绩desc; &&*********Error************INTO table TEST1 &&*********Error************RETURN18 $$75所有器件的单价增加5元UPDATE order_detail1 SET 单价=单价+ 5计算每种器件的平均单价SELECT 器件号,A VG(单价) AS 平均价FROM order_detail1 group BY 器件号INTO CURSOR lsb&&查询平均价小于500的记录SELECT * FROM lsb where平均价< 50019&&功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单;&&否则重新输入用户名和口令。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1

程序编程题目1、第一大类(交换类)共7道心之所向,所向披靡2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。

例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。

例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。

2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。

例如n=5,则应输出:8.391667。

/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。

从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。

省等级考试C程序改错,程序填空(修正版、附答案)

省等级考试C程序改错,程序填空(修正版、附答案)

说明:在程序中用/* */包围的部分是题目的答案,表示用相应的语句修改程序或完成程序。

共有31套试题。

0.⒈已知 f(n)=f(n-1)+2f(n-2)-5f(n-3), f(0)=1,f(1)=2,f(2)=3,求 f(0)+f(1)+……+f(30)。

程序中有一处错误。

(1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的①。

(程序名由考生自定)(2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的②。

#include <stdio.h>main(){long f0=1,f1=2,f2=3,f,s,i;s=f0+f1+f2;for (i=1; i<=30; i++) /*for (i=3; i<=30; i++)*/{ f=f2+2*f1-5*f0;s+=f;f0=f1;f1=f2;f2=f; }printf("%ld\n",s);}⒉已知24有8个因子,而24正好能被8整除,求[1,100]之间有多少个整数能被其因子的个数整除?在下列程序中填上缺少的语句或另外编写具有同样功能的程序,运行程序,将结果填入答题窗口的①。

#include "stdio.h"#include "math.h"main(){ int i,j,k,n=0;for(i=1;i<=100;i++){ k=0;for(j=1;j<=i;j++)if(fmod((float)i,(float)j)==0.0)k++;if( ________ ) /*i%k==0*/n++;}printf("%d\n",n);}1.⒈求解方程 x^2- 7912x +12976 = 0 的最大实根。

程序中有一处错误。

(1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的①。

(程序名由考生自定)(2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的②。

c语言题库改错题及详解答案

c语言题库改错题及详解答案

c语言题库改错题及详解答案C语言是一种广泛使用的计算机编程语言,它以其强大的功能和灵活性而闻名。

在学习和掌握C语言的过程中,练习题库中的改错题是提高编程技能的有效方式。

以下是一些常见的C语言改错题及其详解答案。

1. 题目:编写一个程序,计算并输出1到10的累加和。

错误代码:```cint main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum = sum + i;}print("Sum is %d", sum);return 0;}```错误点: `print` 函数应为 `printf`。

正确代码:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum += i; // 可以简化为 sum += i;}printf("Sum is %d\n", sum);return 0;}```2. 题目:编写一个程序,判断输入的年份是否为闰年。

错误代码:```cint main() {int year;printf("Enter a year: ");scanf("%d", &year);if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```错误点:逻辑判断的括号使用不正确。

正确代码:```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```3. 题目:编写一个程序,实现字符串的反转。

C++改错和填空题题库

C++改错和填空题题库

━━━━━━━━━━━━━━━━━一、程序改错━━━━━━━━━━━━━━━━━第1题/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:用顺序交换法将12个整数中处于奇数位的数从大到小排序。

--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/#include <iostream.h>void main()/***********FOUND***********/{ int m[12],i,j;/***********FOUND***********/for(i=1;i<=12;i++)cin>>m[i];for(i=0;i<11;i+=2)/***********FOUND***********/for(j=i+1;i<11;i++)/***********FOUND***********/if(m[i]>m[j]){ k=m[i];m[i]=m[j];m[j]=k;}for(i=0;i<12;i++)cout<<m[i];}答案:1). {int m[12],i,j,k;2). for(i=0;i<12;i++) 或for(i=0;i<=11;i++)3). for(j=i+2;j<11;j+=2) 或for(j=i+2;j<11;j=j+2)4). if(m[j]>m[i]) 或if(m[i]<m[j])第2题/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:在一个具有n个数的数组中查找并删除一个数K。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

(1)功能:求如下表达式: (2)功能:判断m是否为素数,若是返回1,否则返回0。

(4)功能:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

(5)功能:求1到20的阶乘的和。

(6)功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

(7)功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

(8)功能:找出大于m的最小素数,并将其作为函数值返回。

(9)功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置. (10)功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中. (11)第1题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------*/#include <stdio.h>#define N 11main(){int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("please enter an integer to insert in the array:\n");/**********FOUND**********/scanf("%d",&number)printf("The original array:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n");/**********FOUND**********/for(i=N-1;i>=0;i--)if(number<=a[i])/**********FOUND**********/a[i]=a[i-1];else{a[i+1]=number;/**********FOUND**********/exit;}if(number<a[0]) a[0]=number;printf("The result array:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}第2题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/#include <stdio.h>main(){int n;double fun(int n); //原题中无形参,错误printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********FOUND**********/while(i=1;i<=n; i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}第3题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/void fun( int n){int i,k=1;if(m<=1) k=0;/**********FOUND**********/for(i=1;i<m;i++)/**********FOUND**********/if(m%i=0) k=0;/**********FOUND**********/return m;}int main(){int m,k=0;for(m=1;m<100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0) printf("\n");}}第4题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

π 1 1 1— = 1 - — + — - — + ...4 35 7------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/#include <stdlib.h>fun(){int i=1;/**********FOUND**********/int s=0,t=1,p=1;/**********FOUND**********/while(fabs(t)<=1e-4){s=s+t;p=-p;i=i+2;t=p/i;}/**********FOUND**********/printf("pi=%d\n",s*4);}main(){fun();}第5题/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:求1到20的阶乘的和。

------------------------------------------------------*/#include <stdio.h>fun(){int n,j;float s=0.0,t=1.0;for(n=1;n<=20;n++){/**********FOUND**********/s=1;for(j=1;j<=n;j++)/**********FOUND**********/t=t*n;/**********FOUND**********/s+t=s;}/**********FOUND**********/printf("jiecheng=%d\n",s);main(){fun();}第6题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

------------------------------------------------------*/#include <stdio.h>fun(){int i;float f1=1,f2=1,f3;/**********FOUND**********/printf("%8d",f1);/**********FOUND**********/for(i=1;i<=20;i++){f3=f1+f2;/**********FOUND**********/f2=f1;/**********FOUND**********/f3=f2;printf("%8.0f",f1);}printf("\n");}main(){fun();}第7题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

------------------------------------------------------*/#include <stdio.h>void fun(){int a[3][3],sum;int i,j;/**********FOUND**********/a=0;for(i=0;i<3;i++)for(j=0;j<3;j++)/**********FOUND**********/scanf("%d",a[i][j]);for(i=0;i<3;i++)/**********FOUND**********/sum=sum+a[i][j];/**********FOUND**********/printf("sum=%f\n",sum);}main(){fun();第8题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:找出大于m的最小素数,并将其作为函数值返回。

相关文档
最新文档