大连理工大学C语言机房模拟试题之程序设计题全Word文档下载推荐.doc
《大连理工大学C语言机房模拟试题之程序设计题全Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《大连理工大学C语言机房模拟试题之程序设计题全Word文档下载推荐.doc(19页珍藏版)》请在冰豆网上搜索。
printf("
请输入字符串str的值:
\n"
);
scanf("
%s"
str);
你输入的字符串str是:
%s\n"
请输入删除位置i和待删字符个数n的值:
%d%d"
&
i,&
n);
while(i+n-1>
strlen(str))
{
printf("
删除位置i和待删字符个数n的值错!
请重新输入i和n的值\n"
scanf("
}
fun(str,i,n);
删除后的字符串str是:
TestFunc();
}
voidfun(charstr[],inti,intn)
/*********Begin**********/
while(str[i+n-1])
{
str[i-1]=str[i+n-1];
i++;
}
str[i-1]='
\0'
;
/*或
intj=i-1,k=i+n-1;
while((str[j++]=str[k++])!
='
*/
/**********End**********/
voidTestFunc()
FILE*IN,*OUT;
chari[200];
/*charo[200];
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
fscanf(IN,"
i);
fun(i,2,8);
fprintf(OUT,"
fclose(IN);
fclose(OUT);
请编一个函数voidfun(inttt[M][N],intpp[N]),
tt指向一个M行N列的二维数组,求出二维数组每列
中最小元素,并依次放入pp所指一维数组中。
二维
数组中的数已在主函数中赋予。
conio.h"
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
inti,j;
for(j=0;
j<
N;
j++)
{
pp[j]=tt[0][j];
for(i=1;
i<
M;
i++)
if(tt[i][j]<
pp[j])
pp[j]=tt[i][j];
intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};
voidNONO();
intp[N],i,j,k;
Theoriginaldatais:
for(i=0;
for(j=0;
printf("
%6d"
t[i][j]);
fun(t,p);
\nTheresultis:
for(k=0;
k<
k++)printf("
%4d"
p[k]);
NONO();
【程序设计】1685
能计算从1开始到n的自然数的和,n由键盘输入,
并在main()函数中输出。
intfun(intn)
intsum=0,i;
for(i=1;
=n;
sum=sum+i;
return(sum);
main()
intm;
Enterm:
"
%d"
&
m);
\nTheresultis%d\n"
fun(m));
}
【程序设计】1599
调用函数fun判断一个三位数是否"
水仙花数"
。
在main函数中从键盘输入一个三位数,并输
出判断结果。
请编写fun函数。
说明:
所谓"
是指一3位数,其各位数字立方和
等于该数本身。
例如:
153是一个水仙花数,因为153=1+125+27。
intbw,sw,gw;
bw=n/100;
sw=(n-bw*100)/10;
gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;
elsereturn0;
intn,flag;
flag=fun(n);
if(flag)
%d是水仙花数\n"
n);
else
%d不是水仙花数\n"
/*--------------------------------------------------------------
----------------------------------------------------------------
编写函数sum(intm,intn),求出m~n之间(包括m和n,m<
n)能同时
被3和5整除的数的和,并将这些数的和作为返回值。
---------------------------------------------------------------*/
intsum(intm,intn)
inti,s=0;
for(i=m;
if(i%3==0&
&
i%5==0)
s+=i;
returns;
intm=15,n=300;
sum=%d\n"
sum(m,n));
求5行5列矩阵的主、副对角线上元素之和。
注意,
两条对角线相交的元素只加一次。
主函数中给出的矩阵的两条对角线的和为45。
#defineM5
intfun(inta[M][M])
s+=a[i][i]+a[i][M-i-1];
s-=a[(M-1)/2][(M-1)/2];
inta[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}};
inty;
y=fun(a);
s=%d\n"
y);
根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)
若m=9,则应输出:
1.168229
---------------------------------