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 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