第二次作业
一,笔记
二,代码列表
三,问题
1,null是什么意思,有何用?
解答:NULL用于指针,NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址(0地址)是一个预定定义的符号。
方法:视频,百度搜索。
2 [Error] 'printf' was not declared in this scope的意思?
“was not declared in this scope”是一个错误信息,在编译的时候会遇到。其含义为标识符在其出现的地方是未被定义的。
方法:翻译器
3,find的作用?
答,c语言中的find函数提供了一种对数组、STL容器进行查找的方法。函数功能是查找一定范围内元素的个数。
pta问题
4,对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的吗?
答,不合法,a是常量,是数组的首地址。
5,下面程序段的运行结果是 6 6 7
int i,j,k=5, *p; p= &k; i= ++(*p); j=(*p)++; printf("%d %d %d",i,j,k) ;
答;++(*P)相当于++K到最后k=*P=7
6,
以下程序的输出结果是(3分)
void swap(int *a, int *b)
{
int *t;
t=a; a=b; b=t; }
int main() {
int i=2,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d %d\n",*p,*q);
答;swap函数是用于数值交换的,其中p,q是实参,p是i的地址,q是j的·地址,那*a *b是与p q一至,swap交换后输出 5 2
7
#include <stdio.h> void find(int *, int, int *, int *); int main(void) { int max, min, a[]={5,3,7,9,2,0,4,1,6,8}; find(a,sizeof(a),&max,&min); printf("%d,%d\n", max, min); return 0; } void find(int *a, int n, int *max, int *min) { int i; *max=*min=0; <---表示的是i吗? for (i = 1; i < n; i++) { if (a[i] > a [*max]) *max = i; if (a[i] < a [*min]) &min = i; }
n为数组a的大小,表示数组的大小用sizeof(a)。注意:形参与实参一定要一一对应。