c语言习题第六章下全解_第1页
c语言习题第六章下全解_第2页
c语言习题第六章下全解_第3页
c语言习题第六章下全解_第4页
c语言习题第六章下全解_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*下列给定程序中函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s 中的字符按正序连接到 t 串的后面。例如,当s中的字符串为 ABCD时,贝吐中的字符串应为 EDCBAABCDE 请改正程序中的错误 , 使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序 : */#include #include #include void fun (char *s, char *t )int i,s1;s1=strlen(s);for (i=0;is1;i+)ERROR*ti=ss1-1;for (i=0;is1;i+)ts1+i=si

2、;ERROR*t2*s1=0;void main()char s100, t100; printf(nPlease enter string s: ); scanf(%s,s);fun(s,t);printf (The result is: %sn,t);【改错 1】错误【学生答案】ti=ss1-1;【参考答案】 ti=ss1-1-i; ti=ss1-i-1;【改错 2】错误【学生答案】t2*s1=0;【参考答案】t2*s1=0;t2*s1=0;/*下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在 第一个位置上 ,并将该字符前的原字符向后顺序移动。例如

3、,调用fun函数之前给字符串输入 ABCDeFGHJ用后字符串中的内容为eABCDFGH请改正程序中的错误 , 使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序 : */#include ERROR*fun(char *p) char max, *q;int i=0;max=pi;while (pi!=0)if (maxpi)ERROR*p = q +i;max=pi; i+;ERROR*while(qp)*q=*(q-1);q-;p0=max;void main()char str80;printf(Enter a string: ); ge

4、ts(str); printf(nThe original string: ); puts(str);fun(str);printf(nThe string after moving: ); puts(str); printf(nn);改错 1】 错误 学生答案】fun(char *p)【参考答案】void fun(char *p)【改错 2】 错误 【学生答案】 p = q +i;max=pi;【参考答案】 q=p+i; q=i+p;【改错 3】 错误 【学生答案】 while(qp)while(pq)/*下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为

5、函数值返回。请改正函数 fun 中的错误或在横线处填上适当的内容并把横线删除 , 使它能得出正确的结 果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序 :*/#include #include #include #include #define N 80int fun(char *s,char *t) int n;char *p, *r;n=0;p=&s0;ERROR*r=t;while(*p)if(*r=*p)r+;if(*r=0)n+;ERROR*1】p+; return n;void main()char aN,bN; int m; system(CLS)

6、; printf(nPlease enter string a: ); gets(a);printf(nPlease enter substring b: ); gets(b);m=fun(a,b);m=printf(nThe result is :m=%dn,m); 【改错 1】 正确 【学生答案】*r=t;【参考答案】r=t;改错 2】 错误 学生答案】1】;【参考答案】r=t;r=&t0;/*下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人 数, 此人数由函数值返回 ,平均分存放在形参 aver 所指的存储单元中。例如输入8名学生的成绩 :80.5 60 7

7、2 90.5 98 51.5 88 64则低于平均分的学生人数为 4( 平均分为 75.5625) 。 请改正程序中的错误 , 使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序 : */#include #include #define N 20int fun(float *s, int n,float *aver) float ave ,t=0.0;int count=0,k,i; for(k=0;kn;k+)ERROR*t=sk; ave=t/n;for(i=0;in;i+)if(siave) count+;ERROR*aver=&ave;

8、 return count;void main() float s30,aver;int m,i; printf(nPlease enter m: ); scanf(%d,&m);printf(nPlease enter %d mark :n,m); for(i=0;im;i+) scanf(%f,s+i);printf(nThe number of students :%dn,fun(s,m,&aver); printf(Ave=%fn,aver);【改错 1】 错误 【学生答案】 t=sk;参考答案】t+=sk; t=t+sk;【改错2】错误【学生答案】*aver=&ave;【参考答案】*

9、aver=ave;/*下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65, 输出为:a=65 b=60请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/#inelude #in elude ERROR*void fun (i nt a,b) int t;ERROR*t=b;b=a;a=t;void mai n()int a,b;prin tf(E nter a, b:);scan f(%d%d, &a,&b); fun(&a, & b);printf(a=%d b=%dn , a,b)

10、;【改错1】 错误【学生答案】void fun (i nt a,b)【参考答案】void fun (i nt *a,i nt *b)【改错2】 错误【学生答案】t=b;b=a;a=t;【参考答案】t=*b;*b=*a;*a=t; t=*b,*b=*a,*a=t; t=*a;*a=*b;*b=t; t=*a,*a=*b,*b=t;/*给定程序中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在 c中,中间的放在b中。例如,输入的数为:55 12 34,输出结果应当是:a=55.0 , b=34.0 , c=12.0。请改正程序中的错误,使它能得出正确结果。给定源程序:*/#i

11、n elude void fun (float *a,float *b,float *c)ERROR*float *k;if( *a*c )k=*c; *c=*a; *a=k; if( *b*c )【参考答案】*a*a/*下列给定的程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进 行排序。请改正程序中的错误 , 使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序 : */#include #define N 20void fun(int a,int n)int i,j,t,p;for(j=0;jn-1;j+)ERROR*p

12、=j for(i=j;in;i+) if(aiap)ERROR*p=j;t=ap; ap=aj; aj=t;void main()int aN=9,6,8,3,-1,i,m=5; printf( 排序前的数据: ); for(i=0;im;i+) printf(%d,ai); printf(n);fun(a,m);printf( 排序后的顺序: ); for(i=0;im;i+) printf(%d,ai); printf(n);【改错1】 错误【学生答案】p=j【参考答案】p=j;【改错2】错误【学生答案】P=j;【参考答案】P=i;/*给定程序中,函数fun的功能是:在形参s所指字符串中的

13、每个数字字符之后插入一个*号例如,形参s所指的字符串为:def35adh3kjsdf7 。执行结果为:def3*5*adh3*kjsdf7*。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达 式或语句。试题程序:*/#in elude void fun( char *s )int i,j,n;for(i=0;si!=0;i+)FILL*if(si=0 1 siv=9) n=0;FILL*while(si+1+ n!= 2 Jn+;for(j=i+n+1;ji;j-)FILL*sj+1= 3sj+1=*; i=i+1;void ma

14、in()char s60=ba3a54cd23a;printf(n the original string is: %sn,s); fun(s);printf(nthe result is: %sn,s);【空 1 】 错误【学生答案】if(si=01si=9)【参考答案】&【空 2 】 错误 【学生答案】 while(si+1+n!=2)【参考答案】00【空 3 】 错误 【学生答案】 sj+1=3;【参考答案】sj*(s+j)/* 请补充 main 函数 , 该函数的功能是 : 从键盘输入两个字符串并分别保存在字符数组 str1 和 str2 中 ,用字符串 str2 替换字符串 str1

15、 前面的所有字符。注意 :str2 的长度不大于 str1, 否则需要重 新输入。例如,如果输入 str1=abced,str2=fk, 则输出 fkced 。 注意 :部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序:*/#in elude #in elude void mai n()char str181,str281; char *p 1= str1,*p2=str2; doprin tf( I nput str1 n ”); gets(str1);prin tf( I nput str2 n);gets(s

16、tr2);FILL*while( 【1】);FILL*while( 【2】) *p1+=*p2+;prin tf( Display str1 n);FILL*puts( 【3 】);【空1】 错误【学生答案】while(【1】);【参考答案】strle n( str1)strle n( str1)【空2】 错误【学生答案】while(【2】)【参考答案】*p2*p2!=0【空3】 错误【学生答案】puts(【3】);【参考答案】strl/*给定程序的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串ss输入:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lo

17、wer=9 。 注意:部分源程序给出如下。请勿改动函数中的其他内容,仅在横线上填入所编写的若干表达式或语句。试题程序:*/#in clude #in clude void fun( char *s,i nt *a,i nt *b) while(*s)if(*s=A & *sv=Z)FILL*1;if(*s=a & *s=z)FILL*【2】s+;void mai n()char s100;int upper=0,lower=0;prin tf(nPlease a stri ng:); gets(s);fun(s,&upper,&l ower);FILL*【3】);prin tf(n upper

18、=%d lower=%dn, 【空1】 错误【学生答案】1;【参考答案】(*a)+(*a)*a+=1【空 2 】 错误 【学生答案】 【2】;【参考答案】(*b)+(*b)*b+=1*b=*b+1【空 3 】 错误【学生答案】printf(nupper=%dlower=%dn,【 3】);【参考答案】upper,lower/*请补充main函数,该函数的功能是:从键盘输入若干字符放到一个字符数组中,当按回车键时结束输入 ,最后输出这个字符数组中的所有字符。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。试题程序 :*/#include #include void main()int i=0;char s81;char *p=s;printf( Input a string n);for(i=0;i80;i+)si=getchar();if(si=n)FILL*【1】FILL*si=【2】printf(” display the stri ng n); while(*p)FILL*putchar(【3】 );【空1】 错误【学生答案】【1】;【参考答案】break【空2】 错误【学生答案】si=【2 】;【参考答案】00【空3】 错误【学生答案】putc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论