阐述程设理论2
1.若用数组名作为函数调用的实参,则传递给形参的是(A)
A.数组首元素的地址
B.数组的第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
实参(fun(1)), 形参(fun(int a) )
参数里面int p[]可以写成*p
2.以下叙述中,正确的是(A)
A.实参与其对应的形参各占独立的存储单元
B.实参与其对应的形参共占存储单元
C.只有当实参和与其对应的形参同名时,才共占存储单元
D.形参是虚拟的,不占用存储单元
‘\0’=0
输出NULL也是0?
int fun(char *x){
char *y=x;
while(*y++);
return(y-x-1);//不懂为什么-1
}
int astr(char *s, char *t)
{
while((*s)&&(*t)&&(*t++ == *s++));
return (*s-*t);//这里是值相减,也就是比较两个字符串大小
}
几个函数
strcpy
strcat
int main(){
char *p1,*p2,str[50]="ABCDEFG";
p1="abcd";
p2="efgh";
strcpy(str+1,p2+1);//可以看成取str[0~1-1],就是从1这里开始拼与p2[1~end]拼接起来
strcpy(str+3,p1+3);//从3这里开始拼
printf("%s",str);
}
B.语句块 char *p = “hello” + 1; printf(“%s”, p); 输出结果是 ello
D.对于 char *p = “hello”; char *q = “hello”; ,p和q的值是一致的
(多选)下面关于指针的描述正确的是:( )
A.当使用free释放一个指针内容后,指针变量的值被置为null;
B.32位系统下任何类型指针的长度都是4个字节;
C.指针的数据类型声明的是指针实际指向内容的数据类型;
D.野指针是指向未分配或者已经释放的内存地址;
(多选)下列指针类型与描述相匹配的有:( )
A.int **p : 一个指向指针的指针;
B.int (*p)() :一个指向函数的指针;
C.int p(char *a):一个形参为指针的函数;
D.int *p(char *a):一个形参与返回值均为指针的函数;
char s1[5]="abcd";
char s2[]="abcd";
char s3[] = {'a', 'b', 'c', 'd'};
char *s4 = "abcd";
这样子定义的都是什么呢,什么时候会有\0
定义:char (*p)[5]; 表示的含义是:A
A.定义了一个指向一维数组的指针p,所指向的一维数组具有5个char元素;
int (*fun)( )表示的含义是:
C.一个用于指向函数的指针变量;
定义:int *fun( );表示的含义是:
D.一个返回值为指针的函数名;
关于定义const int p的说法正确的是:B
A.p的指向不可以改变;
B.不能通过p去修改p指向的变量的值;
C.以上两者均不能改变;
D.以上两者均可以改变;
下面程序段的输出是:
static char *s[] = {"black", "white", "pink", "violet"};
char **ptr[] = {s+3, s+2, s+1, s}, ***p;
p = ptr;
++p;
printf("%s", **p+1);
int a[] = {2, 4, 6, 8, 10};
int *p = a;
*p++;
//是p++先,*和++运算级:++先
printf("%d ", *p);
(*p)++;
printf("%d ", *p);
输出4 5
假设 s 是字符数组,下面哪条语句与其他3条不等价?
A.*s = 0;
B.s[0] = ‘\0’;
C.strcpy(s, “”);
D.strcat(s, “”);
下面说法正确的是 ( ACD)
A.32位系统下任何类型指针的长度都是4个字节;
B.当使用free释放一个指针内容后,指针变量的值被置为null;
C.int *p(char *a)表示一个形参与返回值均为指针的函数;
D.指针的数据类型声明的是指针实际指向内容的数据类型;
下列关于const char* p1,char const p2,const char const p3的说法中,正确的是:CD
A.p1不可以修改,可以通过p1修改变量
B.p2可以修改,不可以通过p2修改变量
C.p3不可以修改,也不可以通过*p3修改变量
D.p1可以指向不是常量的变量,p2可以指向常量
在32位平台上,变量p1, p2的声明如下:
int *p1[10];
int (*p2)[10];
A.p1是数组指针,p2是指针数组
B.p1是指针数组,p2是数组指针
C.p1占内存字节数为40,p2占内存字节数为4
已知函数int fun(int N), 函数指针 p, 及变量 x,y,则下列描述中正确的有:AD
A.p=fun;表示将指针p指向函数fun;
B.p=fun(x);表示将指针p指向函数fun;
C.y= *p(x); 表示调用指针p指向的函数;
D.y= (*p)(x); 表示调用指针p指向的函数;
一些传参:
void sortByLength(char *strArray[], int numStrings);
二维数组
#define COL 3
#define ROW 3
void matrixInput(int (*mat)[COL]);
void matrixPrint(int *mat[ROW]);
void matrixAddT(int *mat);
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!