回顾大一·C语言编程10.1(1)(2)+10.2+10.3+10.4(1)(2)
2017-09-30 23:33
302 查看
以下两个程序的功能是输入三个整数,按由小到大的顺序输出。
#include <stdio.h> //程序A
main()
{ int a,b,c,*p1,*p2,*p3,*t;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(*p1>*p2) {t=p1;p1=p2;p2=t;}
if(*p1>*p3) {t=p1;p1=p3;p3=t;}
if(*p2>*p3) {t=p2;p2=p3;p3=t;}
printf("%d,%d,%d\n",*p1,*p2,*p3);
}
以下两个程序的功能是通过指针变量的操作输出数组元素的值。
#include <stdio.h>
void main()
{ int a[5];
int *p,i;
printf("enter 5 integer numbers:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(p=a;p<(a+5);p++)
printf("%d ",*p);
printf("\n");
}
下列程序的功能为:通过调用函数实现对所输入的任意两个整数,交换它们的值。
#include<stdio.h>
swap(int *p1,int *p2) //1
{ int p; //2
p=*p1; //3
*p1=*p2; //4
*p2=p; //5
}
main() //6
{ int a,b; //7
scanf("%d%d",&a,&b); //8
printf("a=%d\tb=%d\n",a,b); //9
swap(&a,&b); //10
printf("a=%d\tb=%d\n",a,b); //11
}
下列程序的功能为:通过指针变量的自增运算,扫描一维数组中全部元素的地址,并引用它们各自的值,同时对数组中的正整数求和。
#include "stdio.h"
#define N 10
main()
{ int i,k,a
,sum,count,*p; //所有变量和数组a的基类型都是int
count=sum=0;
do
{ printf(" input k: \n");
scanf("%d",&k); // 总共要求输入k个数
} while (k<=0||k>N); // 直到型循环确保0≤k≤N
printf(" input a[0]~a[%d]:\n",k-1);
for (p=a;p<a+k;p++) // 指针p指向数组a的首地址,p依次求出后继值
{ scanf("%d",&a[p]); // 此处的p等价于&a[i]
if (a[p]>0) // 引用指针变量p所指变量的值
{ sum+=*p; // 指针p所指变量*p的值>0者相加
count++; // 正整数个数统计
}
}
p=a; // 指针复位,重新指向数组a 的首地址
while (p<a+k)
printf("%-5d",p); // 先执行*p,取出所指变量的值,再指向数组的下一元素
printf("\n Numberof above >0 is : %d\n",count);
printf(" Sum of >0 is : %d\n",sum);
}
先分析程序运行结果,然后通过单步执行方式,观察每一步执行情况及运行结果。
#include<stdio.h>
main()
{ int a[]={1,3,5,7,9},*p=a;
printf("%d",(*p++));
printf("%d",(*++p));
printf("%d\n",(*++p)++);
}
理解指针变量自加的作用,指针变量的值与指针变量所指向变量的值的区别
#include<stdio.h>
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
for(p=a;p<a+10;p++)
{ printf("address=%x\t",p);
printf("value=%d\n",*p);
}
printf("%d\t",p);
printf("%d\t",*p);
}
#include <stdio.h> //程序A
main()
{ int a,b,c,*p1,*p2,*p3,*t;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(*p1>*p2) {t=p1;p1=p2;p2=t;}
if(*p1>*p3) {t=p1;p1=p3;p3=t;}
if(*p2>*p3) {t=p2;p2=p3;p3=t;}
printf("%d,%d,%d\n",*p1,*p2,*p3);
}
#include <stdio.h> //程序B main() { int a,b,c,*p1,*p2,*p3,t; scanf("%d,%d,%d",&a,&b,&c); p1=&a;p2=&b;p3=&c; if(a>b) {t=*p1;*p1=*p2;*p2=t;} if(a>c) {t=*p1;*p1=*p3;*p3=t;} if(b>c) {t=*p2;*p2=*p3;*p3=t;} printf("%d,%d,%d\n",a,b,c); }
以下两个程序的功能是通过指针变量的操作输出数组元素的值。
#include <stdio.h>
void main()
{ int a[5];
int *p,i;
printf("enter 5 integer numbers:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(p=a;p<(a+5);p++)
printf("%d ",*p);
printf("\n");
}
#include <stdio.h> void main() { int i,a[5] ,*p=a; printf("please enter 5 numbers:"); for(i=0;i<5;i++) scanf("%d",p++); p=a; for(i=0;i<5;i++,p++) printf("%d ",*p); printf("\n"); }
下列程序的功能为:通过调用函数实现对所输入的任意两个整数,交换它们的值。
#include<stdio.h>
swap(int *p1,int *p2) //1
{ int p; //2
p=*p1; //3
*p1=*p2; //4
*p2=p; //5
}
main() //6
{ int a,b; //7
scanf("%d%d",&a,&b); //8
printf("a=%d\tb=%d\n",a,b); //9
swap(&a,&b); //10
printf("a=%d\tb=%d\n",a,b); //11
}
下列程序的功能为:通过指针变量的自增运算,扫描一维数组中全部元素的地址,并引用它们各自的值,同时对数组中的正整数求和。
#include "stdio.h"
#define N 10
main()
{ int i,k,a
,sum,count,*p; //所有变量和数组a的基类型都是int
count=sum=0;
do
{ printf(" input k: \n");
scanf("%d",&k); // 总共要求输入k个数
} while (k<=0||k>N); // 直到型循环确保0≤k≤N
printf(" input a[0]~a[%d]:\n",k-1);
for (p=a;p<a+k;p++) // 指针p指向数组a的首地址,p依次求出后继值
{ scanf("%d",&a[p]); // 此处的p等价于&a[i]
if (a[p]>0) // 引用指针变量p所指变量的值
{ sum+=*p; // 指针p所指变量*p的值>0者相加
count++; // 正整数个数统计
}
}
p=a; // 指针复位,重新指向数组a 的首地址
while (p<a+k)
printf("%-5d",p); // 先执行*p,取出所指变量的值,再指向数组的下一元素
printf("\n Numberof above >0 is : %d\n",count);
printf(" Sum of >0 is : %d\n",sum);
}
先分析程序运行结果,然后通过单步执行方式,观察每一步执行情况及运行结果。
#include<stdio.h>
main()
{ int a[]={1,3,5,7,9},*p=a;
printf("%d",(*p++));
printf("%d",(*++p));
printf("%d\n",(*++p)++);
}
理解指针变量自加的作用,指针变量的值与指针变量所指向变量的值的区别
#include<stdio.h>
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
for(p=a;p<a+10;p++)
{ printf("address=%x\t",p);
printf("value=%d\n",*p);
}
printf("%d\t",p);
printf("%d\t",*p);
}
相关文章推荐
- 回顾大一·C语言编程2.3(3)
- 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令
- 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令
- 回顾大一·C语言编程2.3(5)
- 回顾大一·C语言编程6.1(1)
- 回顾大一·C语言编程6.1(2)+6.2(1)(2)(3)
- 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令
- 回顾大一·C语言编程12.4(1)(2)(3)+13.1(1)(2)+13.2
- 七周一次课(11月27日) 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令
- 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令
- 回顾大一·C语言编程1.3
- 回顾大一·C语言编程14.1+14.2(1)(2)+14.3
- C++ Primer 课后练习10.1,10.2,10.3,10.4,10.5,10.7,10.9
- 回顾大一·C语言编程3.3(1)
- java 10.1/10.2/10.3 总结
- 回顾大一·C语言编程3.3(2)
- 回顾大一·C语言编程4.3(3)
- 回顾大一·C语言编程5.2(2)
- 检测点10.2,10.3,10.4
- Xcode不升级一样各个手机系统版本(9.2 9.3 10.0 10.1 10.2 10.3 11.0 11.1)真机调试