本论文是一篇错误类论文查重,关于计算机自考题库全国,全国计算机技术与软件技术资格相关学年毕业论文范文。免费优秀的关于错误及程序及函数方面论文范文资料,适合错误论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
2016年计算机等级考试二级C语言上机习题(1)一,改错题
【分析】:改错题的错误一般可分为两类,一类是语法错误,这类错误可通过调试程序改正,较容易,另一类是逻辑错误,这类错误程序能运行,但结果不正确,这类错误相对较难,修改前必须要看懂和理解程序.
#include"stdio.h"
#definen4#definem3/*语法错,#definem3需另起一行*/
inta[n][m],s[m],
p(intj)/*此函数的功能为:找出a数组中第j列的最小元素的值及行号,函数成功运行后,i中即为j列的最小元素的行号,s[j]中即为j列的最小元素的值*/
{intk,i,x,
x等于a[0][j],i等于0,/*逻辑错,从函数的功能可知,a[0][j]也应赋值给s[j],所以x等于a[0][j]应改为s[j]等于x等于a[0][j]*/
for(k等于1,k<,N,K++)<,p>,
if(a[k][j]<,X)<,p>,
{i等于k,s[j]等于x等于a[k][j],}
returni,
}
main()
{intindex[m],i,j,k,
for(i等于0,i<,N,I++)<,p>,
for(j等于0,j<,M,J++)<,p>,
scanf("%d",a[i][j]),/*语法错,但编译时不会报错,scanf语句的一般形式为scanf(格式控制,地址表列),所以a[i][j]应改为&,a[i][j])*/
for(j等于0,j<,M,J++)<,p>,
{index[j]等于p[j],
printf("a[%d,%d]等于%d\n",index[j],j,s[j]),
}
i等于s[1],k等于0,/*逻辑错,数组s中存放的是a数组中每一列的最小值,比较时应从数组的第0个元素开始,而下面的for循环是从第1个元素开始的,所以i等于s[1]应改为i等于s[0]*/
for(j等于1,j<,>,
if(s[j]<,I)<,p>,
{i等于s[j],k等于j,}
printf("min等于a[%d,%d]等于%d",index[k],k,i),}
二,编程题
【分析】:本题的主要功能是建立一个3行8列的二维数组,并给其元素赋值,其中第1,2行的值可通过递推公式xi+1等于(25*xi+357)%1024得到,第三行的值取前两行同列元素的最大公约数,所以编程时可用一个函数来实现求公约数的算法.
#include
#include
#definen8
/*函数gcd实现求最大公约数的算法*/
gcd(inta,intb)
{intc,
while(b!等于0)
{c等于a%b,a等于b,b等于c,}
returna,
}
main()
{inti,j,x,a[3][n],
FILE*f,
if((f等于fopen("d:\\temp\\1\\myf2.out","w"))等于等于NULL)
{printf("CreateFilemyf2.outFailed!\n"),exit(0),}
x等于26,
/*下面二重for循环实现给第1,2行数组元素赋值的功能*/
for(i等于0,i<,2,i++)
for(j等于0,j<,N,J++)<,p>,
{a[i][j]等于x,x等于(25*x+357)%1024,}
/*下面for循环通过调用gcd函数实现给第3行数组元素赋值的功能*/
for(j等于0,j<,N,J++)<,p>,
a[2][j]等于gcd(a[0][j],a[1][j]),
/*下面for循环实现按题目所给格式输出二维数组的功能*/
for(i等于0,i<,3,i++)
{for(j等于0,j<,>,
fprintf(f,"\n"),
}
fclose(f),}
2016年计算机等级考试二级C语言上机习题(2)一,改错题
【知识点】整数数位处理,数字字符与相应数字的转换,程序调式
【解析】程序中的错误一般可以分为两类,一类是语法错误,即程序中有拼写错误,书写不符合C语言的规定等,此类错误可通过调试(按F9键),根据提示进行改正.另一类是逻辑错误,程序调试已通过(报success),但运行结果不正确,此类错误的修改必须要理解程序后方能改正.
使用putchar函数必须在程序开头加上文件包含#include"stdio.h",scanf语句中必须是地址序列,故scanf("num等于%d",num),应改为scanf("num等于%d",&,num),,且调式时注意将"num等于"原样输入,某数字若转换为相应数字字符,应加上字符'0'或48(字符'0'的ASCII码值),故digit[n++]等于m%10,应改为digit[n++]等于m%10+'0',,最后输出时,n已在前面多加了一次,故而输出时应先减1,故for(,n>,等于0,n--)中第一个表达式应加上n--或--n或n等于n-1.
这篇论文转载于:http://www.sxsky.net/xie/070120993.html
【答案】在程序开头加上#include"stdio.h"
将原第五行的scanf("num等于%d",num),改为scanf("num等于%d",&,num),
将原第十一行的digit[n++]等于m%10,改为digit[n++]等于m%10+'0',
将原第十六行的for(,n>,等于0,n--)改为for(n--,n>,等于0,n--)
二,编程题
【知识点】字符串应用,数据文件的使用
【解析】注意,按要求必须调用函数,且使用数据文件完成输出.使用数据文件有5大步骤:#include,用FILE*定义指针,用fopen("A:\\myf2.out","w")打开文件并赋值给指针,用fprintf输出结果,用fclose关闭文件.
【注意】fopen("A:\\myf2.out","w")中盘符A:后要加双斜杠表示根目录,因为C语言用转义字符'\\'才能表达字符\,另外,文件的命名一定要严格按照规定处理,千万不要随便命名.
【参考答案】
#include"stdio.h"
intpress(chars[])
{intn,k等于0,count等于0,
if(s[0]!等于NULL)n等于k+1,
while(s[n]!等于NULL)
{if(s[k]等于等于s[n]){n++,count++,}
else{s[++k]等于s[n],n++,}
}
s[++k]等于'\0',
returncount,
}
main()
{charnum[100],
intcount等于0,
FILE*fp,
fp等于fopen("A:\\myf2.out","w"),
gets(num),
count等于press(num),
fprintf(fp,"%s",num),
printf("%d",count),
fclose(fp),}
运行结果如下:
@Iwilsucesful&,andyouto!#
2016年计算机等级考试二级C语言上机习题(3)一,改错题
【知识点】选择法排序,指针与字符串,程序的调试
【解析】程序中的错误一般可以分为两类,一类是语法错误,即程序中有拼写错误,书写不符合C语言的规定等,此类错误可通过调试(按F9键),根据提示进行改正.另一类是逻辑错误,程序调试已通过(报success),但运行结果不正确,此类错误的修改必
错误类论文范文例文,与计算机自考题库全国,全国计算机技术与软件技术资格相关论文查重参考文献资料: