程序填空.docx
- 文档编号:23908985
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:24
- 大小:18.81KB
程序填空.docx
《程序填空.docx》由会员分享,可在线阅读,更多相关《程序填空.docx(24页珍藏版)》请在冰豆网上搜索。
程序填空
1题目:
文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数intfun(intx,inty)定义,函数的功能是求x~y之间所有整数的和,此两个文件都存放在/home/kk目录下。
已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。
请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。
注意:
文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录kk。
//mainp.c
#include"my.h"
intmain()
{
intx,y,z;
inti;
scanf("%d%d",&x,&y);
z=fun(x,y);
printf("z=%d\n",z);
}
解析:
(1)my.h完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。
(2)proc.c题目要求计算数据之和,因此fun函数完成实参a和b之间的数据的加法运算。
(3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。
因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。
答案:
my.h
#include"stdio.h"
#include"proc.c"
proc.c
intfun(inta,intb)
{
inti,sum=0;
for(i=a;i<=b;i++)
sum=sum+i;
returnsum;
}
2题目:
doublefun(inta,intn),函数的功能是计算并返回a+aa+aaa+aa…a(n个a)之和。
此两个文件都存放在/home/aa目录下。
已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。
请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,写出编译命令编译程序,在command.txt中写出编译命令编译程序。
注意:
文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。
#include"my.h"
intmain()
{
longints;
intn,a;
scanf("%d%d",&a,&n);
s=fun(a,n);
printf("s=%ld\n",s);
}
解析:
//my.h
#include"stdio.h"
#include"proc.c"
本文件完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。
(2)
//proc.c
intfun(inta,intn)
{
inti,sn=0,tn=0;
for(i=1;i<=n;i++){
tn=tn+a;
sn=sn+tn;
a=a*10;
}
returnsn;
}
解析:
根据题目要求,利用fun函数完成a+aa+aaa+aa…a(n个a)的前n项之和的计算。
因此在for循环里从1到n逐个进行每一项的构造,然后累加。
注意a在每一项上的位置变化,需要作乘10处理。
(3)
gcc-omainpmainp.c-I/home/aa
针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。
因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录
3题目:
文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(doublex,intn)定义,函数的功能是计算并返回1-1/x+1/x/x-….+1/xn的n(n<=50)次幂。
此两个文件都存放在/home/aa目录下。
已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。
请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,写出编译命令编译程序,在command.txt中写出编译命令编译程序。
注意:
文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。
#include"my.h"
intmain()
{
doublex,s;
intn;
scanf("%d%lf",&n,&x);
s=fun(x,n);
printf("s=%ld\n",s);
}
解析:
(1)my.h完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。
(2)proc.c根据题目要求,主要计算该表达式的结果,其中x和n由用户输入。
本函数fun实现表达式的运算过程,由于第一个数是1,之后才是按照规律计算,因此fun函数里把sum初始化为1,for循环时,i从1开始。
(3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。
因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。
答案:
my.h
#include"stdio.h"
#include"proc.c"
proc.c
doublefun(doublex,intn)
{
inti,flag=1;
doubesum=1,temp=1.0;
for(i=1;i<=n;i++){
flag=-flag;
temp=temp/x;
sum=sum+flag*temp;
}
returnsum;
}
4题目:
文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中定义函数voidsort(inta[],intn,intflag),函数的功能是根据flag值为1时按升序排列,flag值为-1时按降序排列,此两个文件都存放在/home/aa目录下。
已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。
请建立文件proc.c完成sort函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。
注意:
文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。
#include"my.h"
intmain()
{
inti,n,a[10],flag;
voidsort(inta[],intn,intflag);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&flag);
sort(a,10,flag);
for(i=0;i printf("%-3d",a[i]); printf("\n"); return0; } 解析: (1)my.h完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 同时涉及数学函数的调用,因此需要把math.h也include进来。 (2)proc.csort函数是根据flag值为1时按升序排列,flag值为-1时按降序排列。 本源码已将两种排序集成为一体,而通过flag的正负数值来决定大于号和小于号的选择。 (3)gcc-omainpmainp.c-I/home/aa 答案my.h #include"stdio.h" #include"proc.c" #include"math.h" proc.c voidsort(inta[],intn,intflag) { inti,j,temp; for(i=0;i for(j=0;j if(flag*a[j]>flag*a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } 5题目: intfun(intx,inty)定义,函数的功能是求x~y之间所有奇数的和,此两个文件都存放在/home/cc目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,写出编译命令编译程序,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录cc。 #include"my.h" intmain() { intx,y,z; inti; scanf("%d%d",&x,&y); z=fun(x,y); printf("z=%d\n",z); } 解析: (1) //my.h #include"stdio.h" #include"proc.c" 本文件完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 (2) //proc.c intfun(inta,intb) { inti,sum=0; for(i=a;i<=b;i++) if(i%2! =0) sum=sum+i; returnsum; } 利用fun函数计算a和b之间奇数之和。 因此利用for循环逐个判断是否为奇数,如是则累加。 (3) gcc-omainpmainp.c-I/home/cc 针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。 6题目描述: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数intfun(intx,inty)定义,函数的功能是求x~y之间所有整数的和,此两个文件都存放在/home/kk目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,写出编译命令编译程序,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录kk。 #include"my.h" intmain() { intx,y,z; inti; scanf("%d%d",&x,&y); z=fun(x,y); printf("z=%d\n",z); } 解析: 1)proc.c: #include"stdio.h" #include"proc.c" 本文件完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 2)my.h: intfun(inta,intb) { inti,sum=0; for(i=a;i<=b;i++) sum=sum+i; returnsum; } 题目要求对用指定的x和y之间的整数进行累加。 因此fun函数得到该范围的最小值和最大值,然后利用for循环累加得到结果sum。 3)command.txt: gcc-omainpmainp.c-I/home/kk 针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。 7题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中定义函数intfun(intnumber),函数的功能是判断整数number是否是素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数),如是把1返回到main函数,否则把0返回到main函数。 此两个文件都存放在/home/aa目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。 //mainp.c #include"my.h" intmain() { intn,d; scanf("%d",&n); d=fun(n); if(d==1) printf("%d是素数\n",n); else printf("%d不是素数\n",n); } (1)my.h完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 同时涉及数学函数的调用,因此需要把math.h也include进来。 (2)proc.c根据题目对素数的解释,利用循环对该数进行除法运算,除数是从2到被除数之间的所有数,如果被整除,则不是素数,立刻返回0。 否则最后返回1。 (3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。 同时包含对math.h的引用,因此lib里增加m,用-lm表示。 答案 my.h #include"stdio.h" #include"proc.c" #include"math.h" proc.c intprime(intm) {inti,n; if(m==1)return0; n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0)return0; return1; } gcc-omainpmainp.c-I/home/aa-lm 8题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(intn)定义,函数的功能是计算并返回2/1-3/2+5/3-8/5+...的前n项之和(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)。 此两个文件都存放在/home/aa目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,写出编译命令编译程序,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。 #include"my.h" intmain() { doubles; intn; scanf("%d",&n); s=fun(n); printf("s=%lf\n",s); } 解析: 1)proc.c doublefun(intn) { inti,flag=1; doublea=2;b=1;s=0; for(i=1;i<=n;i++){ s=s+flag*a/b; t=a; a=a+b; b=t; flag=-flag; } returns; } 根据题目要求,利用fun函数完成2/1-3/2+5/3-8/5+...的前n项之和的计算。 该表达式具体是从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 因此在for循环里从1到n逐个进行分数的构造,然后累加。 2)my.h #include"stdio.h" #include"proc.c" 本文件完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 3)command.txt gcc-omainpmainp.c-I/home/aa 针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录 //mainp.c #include"my.h" intmain() { intn; doublesum; scanf("%d",&n); sum=fun(n); printf("sum=%lf\n",sum); } 9题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(intn)定义,函数的功能是计算并返回1+1/2*2+1/3*3+……+1/n*n表达式的值。 此两个文件都存放在/home/aa目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。 //mainp.c #include"my.h" intmain() { intn; doublesum; scanf("%d",&n); sum=fun(n); printf("sum=%lf\n",sum); } 解析: (1)my.h完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 (2)proc.c题目要求计算1+1/2*2+1/3*3+……+1/n*n的结果,因此fun函数得到n值,然后利用for循环构造每项的结果,期间定义double类型变量sum并初始化为零,用于累加结果。 (3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录 答案 my.h #include"stdio.h" #include"proc.c" proc.c doublefun(intn) { inti; doubesum=0; for(i=1;i<=n;i++) sum=sum+1.0/i/i; returnsum; } gcc-omainpmainp.c-I/home/aa 10题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(intn)定义,函数的功能是计算并返回1+1/2! +1/3! +….+1/n! 。 此两个文件都存放在/home/aa目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。 //mainp.c #include"my.h" intmain() { intn; longintsum; scanf("%d",&n); sum=fun(n); printf("sum=%ld\n",sum); } 解析: (1)proc.c完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 (2)my.h中的fun函数完成题目要求的表达式计算。 因为temp存在小数点,因此定义的时候防止取整处理,应该定义为temp=1.0 (3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。 答案: my.h doublefun(intn) { inti; doubesum=0,temp=1.0; for(i=1;i<=n;i++){ temp=temp/i; sum=sum+temp; } returnsum; } proc.c #include"stdio.h" #include"proc.c" gcc-omainpmainp.c-I/home/aa 11题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(intn)定义,函数的功能是计算并返回1-1/2+1/3-1/4+……+1/n表达式的值。 此两个文件都存放在/home/aa目录下。 已知main函数定义在mainp.c文件中,mainp.c文件存放在/root目录下。 请建立文件proc.c完成fun函数的定义,写出文件my.h中的预处理命令,在command.txt中写出编译命令编译程序。 注意: 文件proc.c中没有任何预处理命令,不能改变mainp.c的文件内容,考生可自行建立目录aa。 //mainp.c #include"my.h" intmain() { intn; doublesum; scanf("%d",&n); sum=fun(n); printf("sum=%lf\n",sum); } 解析: (1)proc.c完成对proc.c的引用,利用include命令指定位于同一目录下的proc.c文件。 (2)my.h中的fun函数完成题目要求的表达式,分析表达式可知,各个分数的分母是n,而加减算法则逐个交替,因此用flag变量定义运算符。 最终返回sum。 (3)针对mainp.c进行编译,由于涉及proc.c文件的fun函数调用。 因此头文件my.h里包含proc.c文件,而头文件my.h位于/home/aa目录,因此在gcc里用-I参数自定义指定包含头文件的目录。 答案: proc.c #include"stdio.h" #include"proc.c" my.h doublefun(intn) { inti,flag=1; doubesum=0; for(i=1;i<=n;i++){ sum=sum+1.0/i/i*flag; flag=-flag; } returnsum; } gcc-omainpmainp.c-I/home/aa 12题目: 文本文件my.h中的内容有若于行预处理命令,文件名为proc.c中有一函数doublefun(intn)定义,函数的功能是计算并返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 填空