教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

C语言笔试--程序改错题(3)

来源:网络收集 时间:2026-09-02
导读: 12345678987654321 1234567890987654321 12345678987654321 123456787654321 1234567654321 12345654321 123454321 1234321 12321 121 1 #include #include main() { int i,j,n; char s[20]=\printf(\ /* .........

12345678987654321 1234567890987654321 12345678987654321 123456787654321 1234567654321 12345654321 123454321 1234321 12321 121 1

#include #include main() {

int i,j,n;

char s[20]=\printf(\

/* ...........comment 1................*/

n=10; //////////////////////n=19; for(i=-n/2; i<=n/2; i++) {

for(j=0;j<=15+abs(i); j++)printf(\

/* ...........comment 2................*/

for(j=0;j<=n/2-abs(i);j++)printf(\

for(j=n/2-abs(i); j<19;j++)printf(\ ///////////j=n/2+abs(i)+1 printf(\ } }

gc279.c的功能:函数prn_star(m,left)输出正菱形图案,其中参数m 代表图案的行数(为一奇数),left代表图案距屏幕左边的列数。

函数prt_str(m,left)中有两处错误代码,请指出并改正之。

#include void prn_star(m,left) int m,left; { int i,j,p;

for(i=1;i

11

else p=m+1-i;

for (j=1;j<=left+(m-(2*p-1))/2;j++) printf(\

for (j=1;j<=2*p-1;j++) printf(\ printf(\ } }

main()

{ int m,left;

printf(\请输入正菱形图案的行数:\ scanf(\

printf(\请输入正菱形图案距屏幕左边的列数:\ scanf(\ prn_star(m,left); }

gc280.c功能为:M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时,此人出圈,直到圈中只剩下一个人为止。请按退出次序输出出圈人原来的编号以及留在圈中的最后一个人原来的编号。程序中有两处错误代码,请指出并改正之。

#include

#define M 10 /*number of person*/

#define N 2 /*eliminate a person for N compartment*/

void main() { int i,j,k,n; static a[M]; int b[M];

/*eliminate persons from array a to array b */ for (n=0,j=k=M-1;n

for (i=0;ik) j=0; if (!a[j]) continue; /////////continue;改成break; }

b[n]=j+1; /*record No. of eliminated person*/ a[j]=-1; }

12

/*output*/

for (i=0;i

printf(\ \ for (i=0;i

printf(\}

gc304.c中的函数fun()的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:\时,则t中的字符串应为:\。

现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。

#include #include

void fun (char *s, char *t) {

int i, st;

st = strlen(s);

/* .............. comment one .............. */ for(i=0; i < st; i++)

t[st] = s[i]; //////////////t[i]=s[i]; for (i=0; i < st; i++) t[st+i] = s[st-i-1];

/* .............. comment two .............. */

t[st] = '\\0'; /////////////t[2*st]='\\0'; }

void main( ) {

char s[100], t[100];

printf(\ gets(s); fun(s, t);

printf(\}

gc305.c程序的功能是:对由n个一位数数字组成的数字串,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

main() {

int number[20],n,m,i;

13

printf(\ scanf(\ printf(\ scanf(\ for(i=0;i

scanf(\ scanf(\ move(number,n,m); for(i=0;i

printf(\ printf(\ }

move(array,n,m) int n,m,array[20]; {

int *p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p+1); ////////*p=*(p-1); array=array_end; ///////*array=array_end; m--;

if(m>0) move(array,n,m); }

gc306.c输出如下图案。 AAAAAAA #BBBBBB ##CCCCC ###DDDD ####EEE

程序中有2处错误,请指出改正之。

#include main() { int i,j;

char ch='A';

for (i=0; i<7;i++) //////for(i=0;i<5;i++) { for (j=1;j<=i;j++) printf(\

for ( j=1;j<7;j++) //////for(j=0;j<7-i;j++) printf(\ printf(\ ch++; }

14

}

gc307.c功能为:使用指针将数组中元素按升序排序。程序中有两处错误代码,请指出并改正之。

#include main() {

int k,m,change,a[10]; int *p1;

int **p2=p1; p1=a;

printf(\ for (k=0;k<10;k++) scanf(\ for (k=0;k<9;k++) {

for (m=0;m<9+k;m++) //////m<9+k改成m<9-k { if ((*p2)[m]>(*p2)[m+1]) { change=(*p2)[m]; (*p2)[m]=(*p2)[m+1]; (*p2)[m+1]=change; } } }

for (k=0;k<10;k++)

printf(\ return(1); }

gc342.c的功能是:计算字符串中子串出现的次数

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include \ #include \ main()

{ char str1[20],str2[20],*p1,*p2; int sum=0;

printf(\ scanf(\

15

…… 此处隐藏:871字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言笔试--程序改错题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/414174.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)