1,C语言程序的基本单位是,函数
2,%两侧必须是整形
3,while(k=0)k-=1; 一次也不执行,为假直接过
4,char arr[]="China"; arr所占空间是6字节,见到" "必有'\0'
5,二维数组,可以没有列但不能没有行,可以int arr[][5];
6,int arr[n]则数组最后一个元素是arr[n-1],不能对arr[n] 进行操作
7,C语言可以处理的文件类型是 文本文件和二进制文件
8,若有表达式(exp) ? a++ : b++ ,则下列表达式完全等价于表达式(exp)的是,(exp!=0),代数,exp=0,exp=1
9,字符数组不能赋值,char s[10],*p=s; s=p+s,错
10,void swap(int *x, int *y)
//指针变量交换两个数的值,函数内部要交换两个数的值要通过指针交换
{ int t = *x; *x = *y; *y = t; }对的
而改成{int *t;
t=p;
p=q;
q=t;不能交换值
}//分析,调用函数时,会复制参数的一个副本,函数内部是用这个副本运算,因此(a,b地址的副本交换了,地址指向的值没变)
11,int *p[4];则标识符 p是一个指针数组名
12,int (*ptr)(int a,int b);的含义是ptr 是指向函数的指针,该函数返回一个 int 型数据
13,
#include<stdio.h>
int main()
{
int max(int a,int b);
int min(int a,int b);
int sum(int a,int b);
int fun(int a,int b,int(*p)(int a,int b));
int a,b,n;
printf("请输入两个数字");
scanf_s("&d %d",&a,&b);
printf("输入1为求最大值,输入二为求最小值,输入3为求和");
scanf_s("%d",&n);
if(n==1){
fun(a,b,max);
}else if(n==2){
fun(a,b,min);
}else{
fun(a,b,sum);
}
while(1);
return 0;
}
int fun(int a,int b,int(*p)(int a,int b)){
int ret;
ret=(*p)(a,b);
printf("%d",ret);
return 0;
}
int max(int a,int b){
int ret=a>b?a:b;
return ret;
}
int min(int a,int b){
int ret=a<b?a:b;
return ret;
}
int sum(int a,int b){
return a+b;
}