观察fun函数。
创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为喀什企业提供专业的网站建设、成都网站设计,喀什网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
i和j分别为参数n1 和n2
而while循环第一句,就是交换s[i]和s[j]的值
然后i++ j-- 直到i=j为止。
于是,这个函数的功能就是把s上,以n1和n2为顶点的部分值,对称交换位置。效果就是这部分数据变为原本的逆序。
main中
数组a的初始值为1 2 3 4 5 6 7 8 9 0
首先执行p 0 3, 结果为
4 3 2 1 5 6 7 8 9 0
前四个逆序
然后p 4 9
即4 ~9 也就是 5 6 7 8 9 0逆序,结果为 0 9 8 7 6 5
执行后a为
4 3 2 1 0 9 8 7 6 5
然后执行p 0 9 即从0到9逆序
结果为
5 6 7 8 9 0 1 2 3 4
结果为C
37
由于p=a
所以 执行赋值的for循环,其实没意义,等效于a[i]=a[i]
于是,a[2]还是原本的值,6
选A
38
fun函数功能,如果*c是大写字母,转为小写。
当输入OPEN THE DOOR时,每个都会转为小写。
输出的也就是open the door
选B
#include stdio.h
#include string.h
void isPerfectNum(int a)
{
int i;
int iArr[1000]={0}; /*当我把数组的下标改小时,比如20,程序会出现错误*/
int *pi=iArr;
for(i=1;ia;i++)
{
if(a%i==0)
{
*pi=i;
pi++;//pi是指针你也可以认为他是数组iarr,他会一直向前n次,你大小为20的话前进到1000的位置就会报错
}
else
continue;
}
int sum=0;
for(;pi=iArr;pi--)
sum+=*pi;
if(sum==a)
printf("%d\n",a);
else
printf("\0");
}
int main()
{
int i;
for(i=1;i=1000;i++)//这里没改
isPerfectNum(i);
return 0;
}
#include stdio.h
#define TYPE int
// 下面是加减乘除 4 个函数
TYPE add(TYPE a, TYPE b){return a+b;}
TYPE sub(TYPE a, TYPE b){return a-b;}
TYPE muti(TYPE a, TYPE b){return a*b;}
TYPE div(TYPE a, TYPE b){return a/b;}
int main(int argc, char *argv[])
{
// 函数指针数组,一共有 4 四个元素,分别是:
// 加减乘除 4 个函数的函数指针
// 你可以自己再添加其他函数,而不用修改代码。
TYPE (*functions[])(TYPE, TYPE) = {add,sub,muti,div};
// 函数指针数组中的元素个数,这里是 4 个。
unsigned int n = sizeof(functions)/sizeof(functions[0]);
// 要进行运算的数字
TYPE a = 10, b = 5 , result;
int i=0;
for(i=0; in; i++)
{// 调用函数指针数组里面的所有函数。
result = functions[i](a,b);
printf("%d\n", result);
}
return 0;
}