C语言上机模拟试题Word文档格式.docx
《C语言上机模拟试题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言上机模拟试题Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
s=s+b[i];
{inta[12]={10,4,2,7,3,12,5,34,5,9,21,19},n;
n=sum(a,2);
n=sum(a,12);
Theresultis:
%d\n"
n);
3、求二维数组a中的最大值和最小值。
{inta[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;
//clrscr();
max=min=a[0][0];
3;
for(j=1;
j<
j++)改为:
for(j=0;
j++)
{if(max<
a[i][j])
max=a[i][j];
if(min<
a[i][j])改为:
if(min>
a[i][j])
min=a[i][j];
Themaxis:
max);
Theminis:
min);
4、求一维数组a中的最大元素及其下标。
{inta[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;
max=a[0];
pos=0;
for(i=1;
10;
if(max>
a[i])改为:
if(max<
a[i])
{
max=a[i];
i=pos;
pos=i;
%d,posis:
max,pos);
5、猴子吃桃的问题,求第一天的桃子数。
stdlib.h>
math.h>
{inti,j,x,p;
x=1;
j=12;
j=11;
while(j>
=1)
{p=(x+1)*2;
p=x;
x=p;
j--;
totalis%d\n"
p);
6、求一维数组a中的值为奇数的元素的平均值。
doubleaverage(intarr[],intn)
{intk=0,i;
doubles;
for(i=0;
i<
if(arr[i]%2=1)改为:
if(arr[i]%2==1)
{s=s+arr[i];
k++;
return(s/k);
inta[12]={10,4,2,7,3,12,5,34,5,9,21,18};
//clrscr();
s=average(a[12],12);
s=average(a,12);
%.2f\n"
二、填空题:
1、求一维数组a中的素数的个数:
2、程序的功能是:
在第一个循环中从键盘上给a数组的前M(M<
100)个数组元素依次赋值,在第二个循环中使a数组前M个元素中的值对称折叠,在最后一个循环中输出折叠后的
a数组的前M个元素。
程序如下:
#defineM5
voidmain()
{inti,a[100],t;
for(i=0;
M;
i++)
/**************found************/
___
(1)___-填写的语句为:
scanf(“%d”:
&
a[i]);
___
(2)___;
i++)-填写的语句为:
M/2
a[M-i-1]=a[i];
%5d"
a[i]);
\n"
);
3、计算正整数num的各位上的数字之和。
{intnum,k;
//clrscr();
___
(1)___;
填写的语句为:
k=0;
Pleaseenteranumber:
"
);
scanf("
%d"
num);
do
k=___
(2)___;
k=k+num%10;
num/=10;
}while(num);
\n%d\n"
k);
4、求cman=m!
/n!
*(m-n)!
之值,例如:
m=12,n=2时,cmanis66
longintfun(intx)
{longints=1;
inti;
for(i=1;
=x;
i++)
s*=i;
____
(1)____;
returns;
{longintm=12,n=2,s1,s2,s3;
s1=fun(m);
s2=fun(n);
s3=fun(m-n);
Cmnis:
%ld"
____
(2)____);
s1/(s2*s3)
5、输出Fabonacci数列1,1,2,3,5……前20项,要求每位输出5个数。
#include"
stdio.h"
{longintf[20]={1,1};
填写的语句:
intj=0;
for(i=2;
20;
f[i]=f[i-1]+f[i-2];
if(___
(2)___)printf("
j++%5==0
%8ld"
f[i]);
6、求两个正整数[m,n]之间所有既能被3整除也能被7整除的整数之和。
main()
{intm,n,i,t;
longints=0;
%d,%d"
m,&
n);
if(m>
n)
{t=m;
m=n;
n=t;
}
for(____
(1)____;
i++)填写的语句:
i=m;
=n;
if(i%3==0&
&
i%7==0)
s+=i;
Sumis:
____
(2)____\n"
s);
填写的语句:
%ld
7、从键盘输入一个由数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。
例如:
从键盘输入12345,则程序运行的结果应当为:
n=12345
string.h"
{chars[10];
longintn;
n=0
%s"
s);
strlen(s);
n=n*10+___
(2)___;
i+1
n=%ld\n"
n);
8、从键盘输入一个正整数n,计算并输出n的阶乘。
longfac(intn)
{inti;
longt=1;
for(i=2;
t=t*i;
return(t);
{intn;
longints;
Enteranintegernumber:
scanf("
%ld"
s=fac(n);
三、编程题:
(40分)
1、按下面的公式求s的近似值,直到最后一项值的绝对值小于x为止,x的值由键盘输入,结果保留4位小数。
S=1-1/3+1/5-1/9+…..+(-1)^(n-1)1/2n-1
#include"
math.h"
stdlib.h"
doublefun(doublex)
/***********begin***********/
inty,i=1;
doublea,sum=0.0;
do{
if(i%2==0)
y=-1;
elsey=1;
a=y*1.0/(2*i-1);
sum=sum+a;
i++;
}while(fabs(a)>
=x);
returnsum;
/***********end***********/
{
doublex,sum;
Enterx:
%lf"
x);
sum=fun(x);
sum=%.4f\n"
sum);
NONO();
NONO()
{FILE*fr,*fw;
doublex;
fr=fopen("
D:
\\exam\\03200310\\PROGIN.DAT"
"
r"
fw=fopen("
\\exam\\03200310\\PROGOUT.DAT"
w"
for(i=1;
=5;
{fscanf(fr,"
fprintf(fw,"
s=%.4f\n"
fun(x));
fclose(fr);
fclose(fw);
2、将一个4位的整数m拆开,然后按相反的顺序输出,每输出一位数其后留2个空格。
如m=1234,输出的结果应为m=1234,4321.程序如下:
{intm=1234,a,b,c,d;
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("
\\exam\\03200302\\PROGOUT.DAT"
fprintf(f,"
x=%d:
%3d%3d%3d%3d####\n"
x,a,b,c,d);
fclose(f);
3、按下面的公式,求S的近似值。
S=1+1/2*2+1/3*3+…+1/n*n
doublefun(intn)
inti;
doublep,sum=0.0;
for(i=1;
{p=i*i;
sum=sum+1.0/p;
{doubles;
intn;
Enters:
s=fun(n);
s=%.3f\n"
inti,m;
\\exam\\03200306\\PROGIN.DAT"
\\exam\\03200306\\PROGOUT.DAT"
m);
s=%.3f####\n"
fun(m));
a)求一个三数m的各位上的数字之和。
m由键盘输入。
intfun(intm)
ints=0;
while(m!
=0)
{s=s+m%10;
m=m/10;
{intm,s;
Enterm:
s=fun(m);
Resultis:
inti,j,k,m;
\\exam\\03200308\\PROGIN.DAT"
\\exam\\03200308\\PROGOUT.DAT"
Sum=%d\n"
b)求两个正整数m和n的最大公约数,将求出的最大公数存入变量t中。
{intm=76,n=40,t,i;
while(n!
{i=m%n;
m=n;
n=i;
t=m;
TheHighestCommonDivisorof%dand%dis%d\n"
m,n,t);
NONO(m,n,t);
NONO(intm,intn,intt)
\\exam\\03200309\\PROGOUT.DAT"
MaximalCommonDivisorOf%dand%dis%d\n"
c)求两个正整数m和n的最小公倍数,将求出的最小公倍存入变量t中。
{intm=6,n=45,t,i,temp;
temp=n*m;
while(m!
{i=n%m;
n=m;
m=i;
t=temp/n;
TheLowestCommonMultipleof%dand%dis%d\n"
NONO(intm,intn,ints)
\\exam\\03200339\\PROGOUT.DAT"
MinimalCommonMultipleOf%dand%dis%d\n"
m,n,s);