您的位置:首页 > 编程语言 > C语言/C++

回顾大一·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>  //程序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语言 编程