安徽大学C语言实验平台作业答案 下载本文

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 int main() { char stra[20]; char strb[20]; char *str1=stra; char *str2=strb; gets(str1); gets(str2); strcat(str1,str2); puts(str1); return 0; } 3.

#include main()

{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 main()

{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 main()

{int i,j,a[4][5],*p=*a,min,max,e,b,c,d; for(i=0;i<4;i++) } } } 7.

#include main()

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

}