C语言习题及解答(20131021修改)(10)

2019-08-26 18:00

char str1[100],str2[100],c; int i,s; printf(\ gets(str1); printf(\ gets(str2); i= ; while((str1[i]==str2[i])&&(str1[i]!= )) i++; s= ; printf(\ return 0; }

4.下面程序的功能是计算两个整数a和b相除的商及余数。请将程序补充完整。要求:所有操作必须通过指针变量pa和pb实现。

int main() { int a,b,*pa,*pb; pa=&a; pb=&b; scanf(\ ); printf(\

printf(\商是%d,余数是%d\ ); return 0; }

5.下面程序的功能是把一个随机产生的整数x按逆序输出(例如:对于整数123,则输出321)。请将程序补充完整。要求:必须使用指针p和q来分别引用数组x和数组num中的元素。

int main()

{ int x,i,num[5]={0},*p,*q,n=0; p=&x; q=num;

srand(time(0)); //随机时间函数,产生随机种子值 *p=rand();

printf(\随机产生的数据是%d\\n\ do { q[n++]=*p; }while(*p!=0); for(i=0;i

printf(\逆置后的整数是%d\ return 0;

46

}

6.下面程序的功能是从键盘输入字符串,在字符串中每两个字符之间插入一个?#?构成新字符串。如输入abc,则输出新字符串a#b#c#。请将程序补充完整。

#include int main() { char str[80],*p; int i; p=str; gets(p); puts(p); for(i=strlen(p);i>0;i--) { *(p+2*i)=*(p+i); } puts(p); return 0; }

7.已知stu数组中存放着3名学生的数学、语文和英语课程的成绩,下面程序的功能是输出每名学生的课程成绩及平均分。请将程序补充完整。要求:必须使用指针p来引用数组stu中的各元素。

int main() { float stu[3][4]={{98,76.5,77},{65,83.5,74},{82,61,90}}; float s,(*p)[4]; int i,j; p=stu; for(i=0;i<3;i++) { s=0; for(j=0;j<3;j++) ; ; } for(i=0;i<3;i++) {

printf(\第%d名同学的成绩是:\for(j=0;j<3;j++) printf(\

printf(\平均分是:%f \\n\

}

return 0; }

8.下面程序的功能是定义数组,说明结构体,同时初始化变量t,使t的a成员值为50,b

47

成员值为x数组的首地址,并输出t的值。请将程序补充完整。

int x[5]={1,2,3,4,5}; struct { int a; int *b; } ; int main() {

printf(\ return 0; }

9.下面程序的功能是输出结构体数组的内容,请将程序补充完整。

struct { char name[10]; char sex; int age;

}p[3]={\int main() {

int i; for (i=0;i<3;i++) ; return 0; } 四.程序改错

1.下面程序的功能是统计数组a中偶数的个数以及所有奇数的平均值,请判断下面程序的正误,如果错误请改正过来。

int main() { int a[10]={1,13,24,37,68,79,101,3,42,36}; int num=0,s=0,i; for(i=0;i<10;i++) if (a[i]%2! =0) num=num+1; else s+=a[i]; printf(\ printf(\ return 0; }

2.下面程序的功能是输出二维数组中每列元素的平均值,请判断下面程序的正误,如果错误请改正过来。

48

int main() { int s[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int i,j,sum; float ave[4]; for(i=0;i<4;i++) { sum=0; for(j=0;j<3;j++) sum=sum+s[i][j]; ave[i]=(float)sum/3; } for(i=0;i<4;i++) printf(\ return 0; }

3.下面程序的功能是统计一个字符串中数字字符和小写字符的个数,请判断下面程序的正误,如果错误请改正过来。

int main() { char ch[80]; int i,m,n; gets(ch); while(ch[i]!='\\0') { if (ch[i]>='0' || ch[i]<='9') m++; if (ch[i]>='a' || ch[i]<='z') n++; i++; } printf(\ return 0; }

4.下面程序的功能是交换变量a和b中的值,请判断下面程序的正误,如果错误请改正过来。

int main() { int a,b,*p,*q,*t; p=&a; q=&b;

printf(\请输入变量a和b的值:\\n\scanf(\t=*p; *p=*q;

49

*q=t;

printf(\交换后a和b的值:\\n %d %d\

return 0; }

5.下面程序的功能是在w数组中查找值为x的元素,若存在则输出该元素所在的位置,否则就将元素w[0]替换为x,请判断下面程序的正误,如果错误请改正过来。要求:必须通过指针p引用数组w中的各元素。

int main() { int w[10]={11,22,33,44,55,66,77,88,99,100}; int *p,x,i; p=w;

printf(\请输入要查找的数\scanf(\for(i=0;i<10;i++) if(p[i]==x) {

printf(\出现在数组中第%d个位置上\

break; } if(i==10) {

printf(\数组中不存在%d,将其放入w[0]中\

p=x; printf(\ }

return 0; }

6.下面程序的功能是将字符串ch逆置,请判断下面程序的正误,如果错误请改正过来。

int main() { char ch[]=\ p=ch;

printf(\原有字符串为%s\q=ch+strlen(ch); while(p

printf(\逆置后的字符串为%s\

return 0;

50


C语言习题及解答(20131021修改)(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铁路弹性轨枕工程 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: