for(i = 0; c[i]; i++) { if(c[i] !=x[0] ) { c[bit] = c[i]; bit++; } }
c[bit]='\\0'; }
void main()
{char c[80];char a[1]; printf(\请输入一串字符:\scanf(\
printf(\请输入要删除的数:\scanf(\fun(c,a);
printf(\}
实验十五 C的指针
1. 用指针方法,编写一个函数,求矩阵主对角线所有偶数元素之和Sum。
2. 编程:用字符指针实现函数strcat(s,t),将字符串t复制到字符串s的未端,并且返回字符串s的首地址。
3. 用指针编程:输入一个字符串,计算该字符串的长度,并统计该串中所含小写字母、大写字母和其他字符的个数。
4. 用指针编程: 将字符串a赋给一个字符数组,然后从第一个字母开始间隔地输出该串。例如,输入的是abcdefghijkl,则输出为acegik。
5. 用指针编程:有一个数列,含有20个整数,编写函数,要求能够对从指定位置开始的n个数按相反顺序重新排列,并在main中输出新的数列。 例如,原数列为:
1,2,3,4,5,6,7,8,9,10
若要求对从3个数开始的5个数进行逆序处理,则处理后的新数列为: 1,2,7,6,5,4,3,8,9,10
6. 用指针编程:输入一个4×5的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标。
7. 用指针编程:从键盘输入15个整数存入一维数组,按逆序存放后再输出。 1.
#include
main()
{int a[4][4]={1,2,3,4,2,3,4,5,3,4,6,6,4,5,6,8},*p[4],i,j,sum=0; for(i=0;i<4;i++) p[i]=&a[i]; for(i=0;i<4;i++) {if (*(p[i]+i)%2==0) sum+=*(p[i]+i); }
printf(\} 2.
#include
#include
{char a[100],*p=a; int x=0,y=0,z=0,n=0; gets(a); while(*p!='\\0') { } 4.
#include
if(*p>='a'&&*p<='z')
x++; y++; z++;
else if(*p>='A'&&*p<='Z') else p++; n++;}
printf(\小写=%d,大写=%d,其他=%d,长度=%d\\n\
#include
{char a[100],b[100],*p=a,*q=b; int i=0; gets(a); i=strlen(a); while(p #include void invert(int *A, int pos, int n) { int i; int *p,t; p=A+pos; for(i=0;i *(p+i)=*(p+n-1-i); } void main() { int i,x,y; int a[20]; printf(\请输入20个数:\\n\for(i=0;i<20;i++) { } printf(\从第x个数开始,对后面的y个数进行从小到大排序,输入x、y:\\n\scanf(\printf(\原始数列是:\\n\for(i=0;i<20;i++) { } invert(a,x,y); printf(\排序后的数列为:\\n\for(i=0;i<20;i++) { } } printf(\printf(\ scanf(\ *(p+n-1-i)=t; } 6. #include {int i,j,a[4][5],*p=*a,min,max,e,b,c,d; for(i=0;i<4;i++) } } } 7. #include {int a[15],*p[15],t,i; for(i=0;i<15;i++) scanf(\ for (i=0;i<15;i++) p[i]=&a[i]; for (i=0;i<15/2;i++) {t=*p[i];*p[i]=*p[14-i];*p[14-i]=t;} for(i=0;i<15;i++) printf(\ } printf(\最大值为:%d,行标:%d,列标:%d\\n\ printf(\最小值为:%d,行标:%d,列标:%d\\n\ p++; if(min>*p) { min=*p; b=j; for(j=0;j<5;j++) {scanf(\ if(i==0&&j==0) {max=*p; min=*p; e=0; b=0; c=0; d=0; if(max<*p) { max=*p; c=i; d=j; } e=i; }