标签:character return 问题 操作 偶数 amp pre png 指针
本实验旨在加强学生对指针类型作为函数参数传递的理解,通常将实参传递给形参时,有两种方式,即按值传递和按地址传递,其中指针类型参数即是按地址传递。
本实验旨在加强学生对字符指针以及将指针作为函数的返回类型的理解,并通过指针对字符串进行操作,通常来说,一个字符串的内存中是连续存放的,其开始地址为指向该字符串的指针值,字符串均为‘\0‘作为结束字符。
本实验旨在加强学生对使用指针对数组进行操作的理解,通常数组的名称即整个数组的起始存储地址,可以定义一个指针指向它,然后通过指针移动访问各个数组成员。
1、问题描述
1 #include <stdio.h> 2 int main() 3 { 4 int *p,a,c=3; 5 float *q,b; 6 p=&a; 7 q=&b; 8 printf("请输入a,b的值:"); 9 scanf("%d%f",&a,&b);//**使用指针p和q输入a,b的值**// 10 printf("result:\n"); 11 printf(" %d,%f\n",a,b); 12 printf(" %d,%f\n",*p,*q);//**使用指针p和q间接输入a,b的值**// 13 printf("The Address of a,b:%p,%p\n",&a,&b);//**输出p和q的值并和上行输出结果进行比较**// 14 printf("The Address of a,b:%p,%p\n",p,q);//**输出p的值和c的地址**// 15 printf("c=%d\n",*p); 16 printf("The Address of c:%x,%x\n",p,&c); 17 return 0; 18 }
1 #include <stdio.h> 2 void swap1(int x,int y); 3 void swap2(int *x,int *y); 4 int main() 5 { 6 int a,b; 7 printf("please input a=:"); 8 scanf("%d",&a); 9 printf("\n b=:"); 10 scanf("%d",&b); 11 swap1(a,b); 12 printf("\n After call swap1: a=%d b=%d\n",a,b); 13 swap2(&a,&b);//**实参传递**// 14 printf("\n After call swap1: a=%d b=%d\n",a,b); 15 return 0; 16 } 17 void swap1(int x,int y) 18 { 19 int temp; 20 temp=x; 21 x=y; 22 y=temp; 23 } 24 void swap2(int *x,int *y) 25 { 26 int temp; 27 temp=*x;//**交换x,y地址上的值**// 28 *x=*y; 29 *y=temp; 30 }
1 #include <stdio.h> 2 #include <conio.h> 3 char *reverse(char *str); 4 char *link(char *str1,char *str2); 5 int main() 6 { 7 char str[30],str1[30],*str2; 8 printf("Input Reversing Character String:"); 9 gets(str); 10 str2=reverse(str); 11 printf("\n Output Reversed Character String:"); 12 puts(str2); 13 printf("Input String1:"); 14 gets(str); 15 printf("\n Input String2:"); 16 gets(str1); 17 str2=link(str,str1); 18 puts(str2); 19 return 0; 20 } 21 char *reverse(char *str) 22 { 23 char *p,*q,temp; 24 p=str,q=str; 25 while(*p!=‘\0‘)//**判断是否到达最后一个字符**// 26 p++; 27 p--; 28 while(q<p) 29 { 30 temp=*q; 31 *q=*p; 32 *p=temp; 33 q++; 34 p--;//**指针相向移动处理**// 35 } 36 return str;//返回结果**// 37 } 38 char *link(char *str1,char *str2) 39 { 40 char *p=str1,*q=str2; 41 while(*p!=‘\0‘) 42 p++; 43 while(*q!=‘\0‘) 44 { 45 *p=*q;//**q指向的元素赋值到p所指向的元素**// 46 q++; 47 p++;//指针移动处理**// 48 } 49 // putch(‘\0‘); 50 *p=*q;//**令结束字符为空字符**// 51 return str1; 52 }
1 #include <stdio.h> 2 #define N 10 3 void arrsort(int a[],int n); 4 int main() 5 { 6 int a[N],i; 7 printf("输入:"); 8 for(i=0;i<N;i++) 9 scanf("%d",&a[i]); 10 arrsort(a,N); 11 printf("输出:"); 12 for(i=0;i<N;i++) 13 printf(" %d",a[i]); 14 } 15 void arrsort(int a[],int n) 16 { 17 int *p,*q,temp; 18 p=a; 19 q=a+n-1; 20 while(p<q) 21 { 22 while(*p%2!=0)//**判断*p是否为奇数**// 23 { 24 p++;//指针后移动// 25 } 26 while(*q%2==0)//**判断*p是否为偶数**// 27 q--;//指针前移动// 28 if(p>q) 29 break; 30 else 31 { 32 temp=*p; 33 *p=*q; 34 *q=temp; 35 p++; 36 q--;//指针相向移动// 37 } 38 } 39 }
标签:character return 问题 操作 偶数 amp pre png 指针
原文地址:https://www.cnblogs.com/zsflhm/p/11029342.html