c语言题目

2025-01-03 18:35:51
推荐回答(4个)
回答1:

根据题意:
题目1:函数参数是除数(这里传值8),返回满足条件的数字和。
题目2:函数参数是要找的项目数(这里传值10),返回对应项的值。

#include

#define MIN 50

#define MAX 1000

int fa(int a);//对应题目1的函数,参数:要除的数,返回可以被整除的数之和

int getByIndex(int n);//对应题目2,返回数列第n项,错误返回-1

int main()

{

printf("1、%d~%d之间能被%d整除的数字之和为:%d\n",MIN,MAX,8,fa(8));

printf("2、数列头三个数为4,5,6,以后的每个数为前三数和,求此数列第%d项:%d\n",10,getByIndex(10));

return 0;

}

int fa(int a)//对应题目1的函数,参数:要除的数,返回可以被整除的数之和

{

int i,sum=0;

for(i=MIN;i<=MAX;i++)

if(i%a==0)

sum+=i;

return sum;

}

int getByIndex(int n)//对应题目2,返回数列第n项,错误返回-1

{

if(n<1)

return -1;

int i,nums[n];

nums[0]=4,nums[1]=5,nums[2]=6;

for(i=3;i

nums[i]=nums[i-1]+nums[i-2]+nums[i-3];

return nums[n-1];

}

回答2:

对于A答案,预处理可以包含1.宏定义指令;2.条件编译指令;3.头文件包含指令;4.编译程序可以识别的特殊符号;对于B答案,先条件编译指令#ifdef,#ifndef这两组不一定要位于开始。对于C答案,预编译程序完成的实际上是对源程序中部分内容的“替代”,经过替代生成一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件。所以选C 希望对你有帮助!

回答3:

#include
#include
int main()
{
int rowCount; //测试数据的行数
int buf[12]; //第一个位置存放本行数据的个数,后边存放本行的数据,数据的末尾存放待查找的目标
int i, j;
int *findResult;
//读取测试数据的行数
scanf("%d", &rowCount);
if (rowCount < 1)
return -1;
//分配每行数据查找结果的存储空间
findResult = (int *)malloc(sizeof(int) * rowCount);
for (i = 0; i < rowCount; i++) {
setbuf(stdin, NULL);
//读取每行数据的个数
scanf("%d", &buf[0]);
if(buf[0] < 1 || buf[0] > 10)
return -2;
//读取测试数据及待查找的目标
for (j = 0; j <= buf[0]; j++)
scanf("%d", &buf[j + 1]);
//查找目标是否在测试数据中
findResult[i] = 0;
for (j = 0; j < buf[0]; j++)
if(buf[j + 1] == buf[buf[0] + 1]){
findResult[i] = 1;
break;
}
}
//输出结果
for (i = 0; i < rowCount; i++)
printf("%s\n", findResult[i] == 1 ? "find!" : "no find!");
//释放分配的空间,否则内存泄露了
free(findResult);
//让屏幕暂停,以便查看结果
system("PAUSE");
return 0;
}

回答4:

main()
{int a[100],t,n,s,i,j;
scanf("%d",&t);
for(i=0;i{scanf("%d",&n);
for(j=0;jscanf("%d",&s);
for(j=0;jif(s==a[j]){printf("find");break;}
if(j==n)printf("no find");