C语言程序设计Word文件下载.docx
《C语言程序设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
charc,sum=0,number=0,other=0;
c=getchar();
while(c!
='
\n'
)
if((c<
z'
&
c>
a'
)||(c<
Z'
A'
))
sum++;
elseif(c>
0'
c<
9'
)
number++;
else
other++;
}
printf("
%d,%d,%d"
sum,number,other);
2、编写程序。
要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
#include<
stdio.h>
intprime(intm)
inti,k=0;
for(i=2;
i<
m;
i++)
if(m%i==0)
break;
if(i>
=m)
k=1;
returnk;
voidmain()
intm,k,n=0;
for(m=2;
m<
=100;
m++)
k=prime(m);
if(k)
%-4d"
m);
n++;
if(n%5==0)
\n"
);
二、程序填空。
在程序中的序号处填上正确的内容。
(每空4分,共48分)
1、按照公式e=1++++…+求e的近似值,至n=10为止。
stdio.n>
voidmain()
{float_____①_____;
intn=1,i;
for(_____②_____)
{n=_____③_____;
e=_____④_____;
}
printf(“e=%f\n”,e);
e=1.0
i=1;
11;
i++
n*i
e+1.0/n
2、将文件file1.dat中的内容复制到file2.dat中。
#include<
#defineNull0
{FILE_____①_____;
charch;
if((p1=fopen(“file1.dat”,”r”)==Null)||(p2=fopen(“file2.dat”,”w”)==Null))
{printf(“Can’topenfile\n”);
_____②_____;
}
while(_____③_____)
{ch=_____④_____;
fputc(ch,p2);
fclose(p1);
fclose(p2);
解答:
*p1,*p2
exit(0)
!
eof(p1)
fgetc(p1)
3、求二维数组a[5][4]中所有元素的平均值。
_____①_____
{inta[5][4],i,j,pa;
for(i=0;
5;
for(j=0;
j<
4;
j++)
scanf(“%d”,&
a[i][j]);
pa=_____②_____;
printf(“average=%d\n”,pa);
intaverage(ints[][4])
{inti,j,aver=0;
j++)aver=aver+s[i][j];
aver=_____③_____;
_____④_____;
intaverage(ints[][4]);
average(a)
aver/20
returnaver
三、写出程序的执行结果(每题4分,共12分)
1、
#include<
{inti,j,k=4;
for(inti=1;
=k;
%c"
’*’);
printf("
for(inti=1;
=k-2;
i++)
{printf("
for(j=1;
=k-2;
"
*\n"
for(i=1;
printf("
}
****
**
****
2、
voidfun(ints[]);
{inta[]={1,2,3,4,5,6},k;
fun(a);
for(k=0;
k<
=5;
k++)printf(“%d”,a[k]);
printf(“\n”);
voidfun(ints[])
{inti=0;
while(i<
3){s[i]=s[i]+5;
i++;
678456
3、
{intj,a[]={1,2,3,4,10,12,13,15};
for(j=3;
j>
0;
j--)
switch(j)
{case1:
case2:
printf(“%d,”,a[j+4]);
break;
case3:
printf(“%d,”,a[j-1]);
printf(“\n”);
3,13,12,
第二组:
定义数组存放任意输入的10个实数,求出其中的最大值以及第一个最
大值的下标并输出。
#inclue<
inti,max_i=0;
doublea[10];
for(i=0;
10;
scanf('
'
%lf'
&
a[i]);
for(i=1;
if(a[i]>
a[max_i)
a[max_i]=a[i];
printf(最大值=%6.2f,位置是%d/n'
a[max_i],max_i);
要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、b求它们的最大公约数并输出。
intfun(inta,intb)
inttemp=0;
if(a<
b)
{
temp=a;
a=b;
b=temp;
while(a%b!
=0)
temp=a%b;
returnb;
1、程序用于输出如下图形。
123456789
1
24
369
481216
510152025
61218243036
7142128354249
816243240485664
91827364554637281
voidmain()
{inti,j;
for(i=1;
i<
i++)
printf(“%4d”,_____①_____);
{for(j=1;
printf(“%4d”,_____③_____);
i
j<
=i
i*j
printf(“\n”);
2、输入50个实数,统计其中正数、负数和零的个数。
#include
<
voidfun(int*zs,int*fs,int*l,_____①_____)
{inti;
50;
{if(aa[i]>
0)(*zs)++;
if(aa[i]<
0)
(*fs)++;
if(aa[i]==0)
(*l)++;
{floatnum[50];
inti,czs,cfs,cl;
czs=cfs=cl=0;
\nPleaseenter50floatnumbers:
scanf(“%f”,_____②_____);
fun(_____③_____,_____④_____);
\n正数:
%d,负数:
%d,零:
%d\n"
czs,cfs,cl);
①float*aa
②&
num[i]
③&
czs,&
cfs
④&
cl,num
3、输入正整数m和n,求出[m,n]区间的所有素数。
_____①_____
{intm,n,i,j,k;
scanf("
%d%d"
m,&
n);
for(i=m;
n;
{k=sqrt(i);
for(j=2;
if(_____③_____)break;
if(_____④_____)
%d"
i);
1#include<
stdlib.h>
2j<
=k
3i%j==0
4j>
k
{chars