c语言错题总结

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值