@所有人,二级C语言上机考试改错题总结!
计算机等级考试(NCRE)二级c语言改错题

计算机等级考试(NCRE)二级c语言搞错题1、给定程序MODI1.C中,函数fun的功能是求矩阵(二维数组)a[N][N]中每行的最小值,结果存放到数组b中。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>#define N 4void fun(int a[][N], int b[]){ int i, j;for (i=0; i<N; i++){/**********found**********/b[i] = a[i][0];/**********found**********/for (j=1; j<=N-1; j++)/**********found**********/if ( b[i] > a[i][j] )b[i] = a[i][j];}}main(){ int a[N][N]={{1,4,3,2},{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N]; int i;fun(a,b);for (i=0; i<N; i++) printf("%d,", b[i]);printf("\n");}2、给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。
例如对于字符串:dadbcdbabdb,对应的输出应为:b或d。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>#include <stdio.h>#include <string.h>void fun(char a[]){ int b[26], i, n,max;for (i=0; i<26; i++)/**********found**********/b[i] = 0;n= strlen(a);for (i=0; i<n; i++)if (a[i] >='a' && a[i]<='z')/**********found**********/b[a[i] - 'a']++;else if (a[i] >='A' && a[i]<='Z')b[a[i] -'A']++;max = 0;for (i=1; i<26; i++)/**********found**********/if (b[max] < b[i])max=i;printf("出现次数最多的字符是 : %c\n", max + 'a');}main( ){ char a[200];printf("请输入一个待统计的字符串 : "); scanf("%s", a);fun(a);}3、给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。
最新二级C语言考试题库及答案程序改错专项练习 精华版

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()
{
全国计算机等级考试_二级C语言上机考试题库及答案-改错

6.2给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba.
答案:第一处fun(char a)改为fun(char*a) 第二处printf(“%c“*a)改为 printf(“%”,*a)
13.2给定程序MODI1。C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800请改正程序中的错误。
第一处:if k>0改为if(k>0)第二处:if(k=0)改为if(k==0)
14.2给定程序MODI1。C中函数fun的功能是:将m(1<=m<=10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
答案:1 将t=1改为t=0 2 将t=t%10改为t=t/10
26.2给定函数功能是:用下面的公式求 的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
例如,输入0.0001,则程序输出3.1414
答案:1将(t>=num)改为((fabs(t))>=num) 2 将t=s%n改为t=s/n
28.2给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为100,则函数的值为732
答案: 第一处:while((high>=2)&&(n<10)改为 while((high>=2)&&(n<10))
第二处:yes=0;break 改为yes=0;break;
C语言上机考试改错题分析总结

C语言上机考试改错题分析总结1、若错误行是函数首部,可分为以下几种情况:A、该行最后若有分号则删除,中间若有分号则改成逗号B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则第二维的长度必须与main中对应数组的第二维长度相同C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return 语句则函数的类型必须与return后变量的类型一致。
2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。
3、若错误行中有if、while、for则要特别注意条件表达式的错误问题:A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一般是进行逆转或加一个等于号C、for中要用分号分隔表达式,而不是用逗号4、语法错误A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。
B、大小写不对,若错误行中有大写字母则一般都改成小写字母。
5、指针变量的运用,若错误行中有指针变量,并且该变量名前没有指针运算符则一般都是加上指针运算符6若错误行为return语句,则首先看是否是缺少分号若是则加上分号即可;否则就是return后的变量或表达式错误(此时可通过看题意,来分析该返回哪一变量或表达式)7、若错误行中见到整型1除以某个表达式时,一概改成1.0。
但若是整型变量或表达式则只能用强制转换8、复合运算符写错9、字符串结束符写错,若有字符串结束符则要特别注意有没有写错10、若错误行是定义语句,则首先看类型是否符合;再看所赋初值是否正确;若以上均不是,则看是否少定义了某个变量或少了花括号。
11、表达式错误(占的份量最多,并且没有统一的改法,我们只能通过题目要求来分析并修改)12、若错误行中有一条横线,则必须将横线删除再填空。
2级C语言机考-改错题试题(描述)

第一部分改错题★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★1.下列给定程序的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include "conio.h"#include "stdio.h"/********found********/IsPrime ( int n ) ;{int i, m;m=1;/********found********/for(i=2;i<n;i++)if !(n%i){m=0;break;}return(m);}main(){int j, k;clrscr();printf("\nplease enter an integer number between 2 and 10000:");scanf("%d",&k);printf("\n\nThe prime factor(s) of %d is(are):",k);for(j=2;j<k;j++)if((!(k%j))&&(IsPrime(j)))printf(" %4d,",j);printf("\n");}主要算法:涉及知识点:试题难度:★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★2.下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。
例如,若a中的字符串为:aBCDeFgH,b中的字符串为:ABcd,则C中的字符串应为:aBcdeFgH。
计算机二级C语言上机改错题题库

南开二级C语言上机100题(从搜狐网整理) (3)1、改错3 (3)2、改错4 (3)3、改错5 (4)4、改错6 (5)5、改错8(2004.7.27) (5)6、改错9(2004.7.27) (6)7、改错13(8.4) (7)8、改错14(8.4) (8)9、改错15(8.5) (8)10、改错17(8.5) (9)11、改错19(8.5) (10)12、改错20(8.5) (10)13、改错21 (11)14、改错22 (13)15、改错23 (13)16、改错24 (14)17、改错25 (15)18、改错26 (16)19、改错27 (16)20、改错28 (17)21、改错29 (18)22、改错30 (19)56 改错 (43)57 改错 (44)58 改错 (44)59 改错 (45)60 改错 (46)61 改错 (47)62 改错 (47)63 改错 (48)64 改错 (49)65 改错 (50)66 改错 (50)67 改错 (51)68 改错 (52)69 改错 (52)70 改错 (53)71 改错 (54)72 改错 (54)73 改错 (55)74 改错 (56)75改错 (56)76改错 (57)77改错 (58)78改错 (58)79改错 (59)精品文库81改错 (60)82改错 (61)83改错 (61)84改错 (62)85改错 (63)86改错 (63)87改错 (64)88改错 (65)89改错 (65)90改错 (66)91改错 (67)92改错 (67)93改错 (68)94改错 (68)95改错 (69)96改错 (70)97改错 (71)南开二级C语言上机100题1、改错下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
请改正程序中的错误,使程序能得出正确的结果。
注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include <stdio.h>#include <conio.h>void fun (char *s){ int i,j;for (i=0,j=0;s[i]!='\0';i++)****************************************if (s[i]>='0' && s[i]<='9')s[j]=s[i]; ——————j改为j++***************************************s[j]="\0"; ——————s[j]='\0'}main(){char item[80];clrscr();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);}2、改错下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。
国家计算机等级考试上二级C-改错题

1 下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
例如,当s中的数为4576235时,t中的数为4725。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include#include/**********************found***********************/int fun(long s,long *t){long s1=10;*t=s ;while(s>0){/**********************found***********************/s=s 0;*t=s *s1+*t;s1=s1*10;}}main(){long s, t;clrscr();printf("\nPlease enter s: ");scanf("%ld",&s);fun(s,&t);printf("The result is: %ld\n ",t);}答案及评析:(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s 0;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。
错误2:此处要注意特殊运算符号"%"--取余和"/"--整除的区别。
将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。
2下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。
K的值由主函数传入,若k的值为500,则函数的值为2925。
江苏省计算机二级C语言上机题总结

一、改错题(18分)
常见的错误:
1、缺少头文件;
2、函数定义和函数参数;
3、函数的正确引用;
4、数组的初始化;
5、scanf函数中的地址符号&;
6、赋值语句和判断语句;
7、单引号和双引号的使用;
8、字符串的比较须用strcmp函数,字符串的复制须用strcpy函数;
9、结构体变量中的成员的引用;
10、逻辑关系。
二、编程题(22分)
(1).分析总结出题规律
题目组成部分:程序功能、编程要求、测试数据与运行结果、要求
编程要求:
1、编写自定义函数
2、编写main函数,在main函数中调用自定义函数,并将运行结果保存到结果文件myf2.out 中
要求:
1、源程序文件名必须取为myf2.c,输出结果文件名必须取为myf2.out
2、数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现
3、源程序文件和运行结果文件均须保存在考试盘的根目录下,供阅卷用
4、不要复制扩展名为OBJ和EXE的文件到考盘上
(2).编程套路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
@所有人,二级C语言上机考试改错题总结!
1、if或while语句
若错误行是if或者while语句,则要注意以下点:
(1)首先判断是否正确书写if或while关键字;
(2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号;
(3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符;
(4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(= =)。
2.for语句
若错误行是for语句,则要注意以下几点:
(1)首先判断for有没有书写正确;
(2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号。
记住是分号(;),不是逗号(,)!
(3)再者,分析for中的三个表达式,是否符合题意。
3. return语句
若错误行为return语句,则要注意以下几点:
(1)首先看是不是正确书写return关键字;
(2)然后看是不是缺少分号,若是则加上分号即可;
(3)再者判断return后的变量或表达式是否正确;
这种错误需要根据题意来分析,分析返回变量或表达式的值和类型。
4. 赋值语句
若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确。
5. 定义语句
若错误行是定义语句,则要注意:
(1)首先分析变量类型名是否写对;
(2)然后分析给变量赋初值是否正确;
(3)若以上均不是,则看是不是少定义了某个变量或少了花括号。
6. 表达式错误问题
若错误行中有整数1除以某个表达式或变量时,必须把整数1改为1.0;若变量或表达式是整型时,则只能进行强制类型转换。
7. 字符串类问题
若错误行中有字符串结束符,则特别要要注意结束符有没有写错。
但是要区分清楚字符‘o’和数字’0’。
以及字符串结束标记‘\0’。
8. 指针类问题
若错误行中有指针变量,并且该变量名之前没有指针运算符,则一般都是加上指针运算符。
9. 函数首部类问题
若错误行是函数首部,则要注意:
(1)首先看该行最后有没有分号,若有则删掉分号;若中间有分号则要改为逗号;
(2)形参和实参类型不一致问题:
① 若实参是个地址或数组名或指针变量名,则对应的形参肯定是指针或数组;
②若实参是二维数组名,则对应的形参应该是指针数组或是二维数组;
③若后面用到某形参的时候有指针运算符,则该形参比为指针类型;
④若形参是二维数组或指向M 个元素的指针变量,则该二维的长度必须与main中对于数组的第二维的长度相同。
(3)函数类型不一致问题:
①若函数中没有return语句,则函数类型为void;
②若函数中有return语句,则函数的类型必须与rerun后的变量类型一致。
10. 语法错误问题
(1)语句缺少分号。
若错误号中语句没有以分号结束则加上分号;
(2)变量名不一致。
C语言是区分大小写的,若错误行中有大写字母一般都改为小写字母。
11. 逻辑错误问题
这种题型主要是表达式错误,占的题量比较多而且我们没有统一的做题方法,需要我们具体问题具体分析。