湖南工业大学C语言上机模拟试题1Word下载.docx
《湖南工业大学C语言上机模拟试题1Word下载.docx》由会员分享,可在线阅读,更多相关《湖南工业大学C语言上机模拟试题1Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
/************found************/
s=s+i;
return(s);
}
voidmain()
{inta[10]={10,4,2,7,3,12,5,34,5,9},i,s;
s=sum(a,2);
printf("
%d\n"
s);
二、程序填空题(30分)
在考生文件夹下,给定程序FILL.C的功能是:
求一维数组a中素数的个数。
例如:
如果数组a的元素为:
2,3,5,7,8,9,10,11,12,13,
则程序的输出应为:
primenumber(s)is(are):
6。
请填空,并运行该程序,然后将源程序文件FILL.C提交。
程序有两个空
(1)、
(2)需要补充完整。
并将程序调试出
所需的结果。
不要随意改动程序,不得增行或删行,也不得更
改程序的结构!
math.h>
{inta[10]={2,3,5,7,8,9,10,11,12,13},i,j,k,count;
//clrscr();
count=0;
10;
{
k=sqrt(a[i]);
for(j=2;
j<
=k;
j++)
if(a[i]%j==0)
break;
if(____
(1)____)count++;
%d"
____
(2)____);
}
输出Fabonacci数列:
1,1,2,3,5,8,……的前20项的
项值,要求每行输出5个数。
并将程序调试出所需的结果。
不要随意改动程序,不得增行或删行,也不得更改程序的结构!
未提交#include"
stdio.h"
{longintf[20]={1,1};
inti;
/**************found************/
___
(1)___;
for(i=2;
20;
f[i]=f[i-1]+f[i-2];
if(___
(2)___)printf("
\n"
);
printf("
%8ld"
f[i]);
三、程序编程题(40分)
在考生文件夹下,要求程序PROG.C的功能是:
将一个4位的整数m拆开,然后按相反顺序输出,每输出一位数其后留
2个空格。
例如,如果m=1234,则程序的输出结果应为:
m=1234,4321。
部分源程序存在文件PROG.C中。
请在main()函数中的/*******begin********/与/********end*********/
之间填入你编写的若干语句,存盘并运行,直到得出正确结果。
请勿改动其它位置的任何内容。
main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。
运行并调试程序,然后将源程序文件PROG.C提交。
特别提示:
必须将计算结果存入变量sum中。
#include"
math.h"
conio.h"
stdlib.h"
intm=1234,a,b,c,d;
/***********begin***********/
a=m%10;
b=m/10%10;
c=m/100%10;
d=m/1000;
;
’************end************/
m=%d,%d%d%d%d\n"
m,a,b,c,d);
NONO(m,a,b,c,d);
NONO(x,a,b,c,d)
Intx,a,b,c,d;
FILE*f;
f=fopen("
D:
\\exam\\01700329\\PROGOUT.DAT"
"
w"
fprintf(f,"
x=%d:
%3d%3d%3d%3d####\n"
x,a,b,c,d);
fclose(f);
在第一个循环中从键盘上给a数组的前M(M<
100)个数组元素依次赋值;
在
第二个循环中使a数组前M个元素中的值对称折叠;
在最后一个循环中输出
折叠以后的a数组的前M个元素。
当M为5时,如果从键盘上输入的5个数分别为:
1、2、3、4、5时,
输出应为:
12321。
当M为10时,如果从键盘上输入的10个数分别为:
1、2、3、4、5、6、7、8、9、10时,
1234554321。
#defineM5
{inti,a[100],t;
M;
___scanf(“%d”,&
a[i])___/**************found************/
_____;
i++)a[M-i-1]=a[i];
=m/2
%5d"
a[i]);
在考生目录下,要求程序PROG.C的功能是:
求一个三位整数m的每位数之和,m的值由键盘输入。
例如,当m=256时,程序的输出结果应为:
Resultis:
13。
请在fun()函数中的/*******begin********/与/********end*********/
Intfun(intm)
Inta,b,c,t;
c=m/100;
t=a+b+c;
return(t);
/************end************/
{intm,s;
Enterm:
scanf("
&
m);
s=fun(m);
NONO();
NONO()
{FILE*fr,*fw;
inti,j,k,m;
fr=fopen("
\\exam\\01700335\\PROGIN.DAT"
r"
fw=fopen("
\\exam\\01700335\\PROGOUT.DAT"
for(i=1;
=5;
{fscanf(fr,"
fprintf(fw,"
Sum=%d\n"
fun(m));
fclose(fr);
fclose(fw);
求二维数组a中的最大值和最小值。
例如,当二维数组a中的元素为:
4434
37312
565
Themaxis:
37
Theminis:
3。
Voidmain()
{inta[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;
max=min=a[0][0];
3;
for(j=0;
j++)
if(max<
a[i][j])
max=a[i][j];
if(min>
a[i][j])
min=a[i][j];
max);
min);
从键盘上输入一个正整数n,计算并输出n的阶乘。
例如,如果从键盘上输入8,
程序的运行结果应为:
40320。
longfac(intn)
Inti;
Longt=1;
=n;
t=t*i;
return(t);
{intn;
longints;
Enteranintegernumber:
"
____
(1)____;
s=fac(n);
scanf(“%ld”,&
n);
Theresultis:
____%ld____\n"
三、程序编程题(40分)
试题要求:
&
11111
s=1+——+——+——+——+……+———
2*23*34*45*5n*n
部分源程序存在文件PROG.C中,n的值由键盘输入。
请在fun()函数中的/*******begin********/与/********end*********/
之间填入你编写的若干语句,存盘并运行,直到得出正确结果。
注意:
运行并调试程序,然后将源程序文件PROG.C提交。
#include"
doublefun(intn)
{
/***********begin***********/
doublea,;
doublec=0.0;
inti
a=1.0/(i*i);
c=c+a;
return(c);
/************end************/
voidmain()
{doubles;
intn;
//clrscr();
printf("
Enters:
scanf("
s=fun(n);
s=%.3f\n"
NONO();
NONO()
{FILE*fr,*fw;
inti,m;
fr=fopen("
\\exam\\01700316\\PROGIN.DAT"
fw=fopen("
\\exam\\01700316\\PROGOUT.DAT"
for(i=1;
{fscanf(fr,"
fprintf(fw,"
s=%.3f####\n"
fclose(fr);
fclose(fw);