C语言改错

更新时间:2023-10-08 06:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.题目:定义一个5×5的二维数组a,请编写程序使辅对角线元素值为1, 其它元素值为0。

-------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 5

void fun(int a[N][N]) {int i,j;

/**********ERROR**********/ for(i=0;i<=N;i++) for(j=0;j

/**********ERROR**********/ if(i+j!=N-1) a[i][j]=1;

/**********ERROR**********/ a[i][j]=0; }

main()

{/**********ERROR**********/ int a[N][N];i,j; fun(a);

for(i=0;i

for(j=0;j

printf(\ printf(\ } }

【改错1】 错误 【学生答案】

for(i=0;i<=N;i++); 【参考答案】

for(i=0;i

【改错2】 错误 【学生答案】 if(i+j!=N-1) 【参考答案】 if(i+j==N-1)

【改错3】 错误

【学生答案】 a[i][j]=0; 【参考答案】 else

a[i][j]=0;

【改错4】 错误 【学生答案】 int a[N][N];i,j; 【参考答案】 int a[N][N],i,j;

2.题目:输入一个字符串,将其第一个字符和最后一个字符互换。 若输入abcdef则输出fbcdea。

-------------------------------------------------------*/ #include #include main()

{char s1[100]; int i; char ch;

printf(\/***********ERROR***********/ scanf(\i=0;

while(s1[i]) i++;

ch=s1[0];

/***********ERROR***********/ s1[0]=s1[i];

/***********ERROR***********/ s1[i]=ch; puts(s1); }

【改错1】 错误 【学生答案】

scanf(\

【参考答案】 scanf(\gets(s1);

============================================================

【改错2】 错误 【学生答案】 s1[0]=s1[i];

【参考答案】 s1[0]=s1[i-1];

============================================================

【改错3】 错误 【学生答案】 s1[i]=ch;

【参考答案】 s1[i-1]=ch;

3.功能:先将在字符串s中的字符按正序存放到t串中,然后把s中的 字符按逆序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “ABCDEEDCBA”。

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

#include #include #include

void fun(char s[],char t[]) {

int i,k; k=strlen(s);

/**********ERROR**********/ for(i=1;i

/**********ERROR**********/ t[k+i]=s[k-i];

/**********ERROR**********/

t[k]='\\0'; }

main() {

char s[100],t[100];

printf(\ fun(s,t);

printf(\}

【改错1】

for(i=1;i

【参考答案】 for(i=0;i

【改错2】

t[k+i]=s[k-i];

【参考答案】 t[k+i]=s[k-i-1];

【改错3】 t[k]='\\0';

【参考答案】 t[2k]='\\0';

4.题目:比较两个字符串的长度,输出长度大的字符串。

-------------------------------------------------------*/ #include \main() {

char a[80],b[80]; int i,j;

printf(\给字符串a赋值:\\n\ gets(a);

printf(\给字符串b赋值:\\n\ gets(b);

printf(\输出原字符串a:\\n\

puts(a);

printf(\输出原字符串b:\\n\ puts(b);

/***********ERROR***********/ for(i=0;a[i]!='\\0';i++)

/***********ERROR***********/ for(j=0;b[j]!='\\0';j++) printf(\

/***********ERROR***********/ if(i

【改错1】 错误 【学生答案】

for(i=0;a[i]!='\\0';i++)

【参考答案】

for(i=0;a[i]!='\\0';i++);

============================================================

【改错2】 错误 【学生答案】

for(j=0;b[j]!='\\0';j++)

【参考答案】

for(j=0;b[j]!='\\0';j++);

============================================================

【改错3】 错误 【学生答案】 if(i

【参考答案】 if(i>j) if(j

/*------------------------------------------------

本文来源:https://www.bwwdw.com/article/kaud.html

Top