版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IMBstandardizationoffice[IMB5AB-IMBK08-IMB2C]
试卷编号:9478
所属语言:C语言
试卷总分:1260分
共有题型:1种
一、程序设计共126题(共计1260分)
第1题(分)题号:507难度:易第1章
/*--------------------------------------------------
【程序设计】
功能:编写函数fun求一个字符串的长度,在main函数中
输入字符串,并输出其长度。
--------------------------------------------------*/
#include<>
voidwjt();
intfun(char*pl)
(
/**********Prc)grani**********/
/**********End**********/
)
main()
(
char*p,a[20];
intlen;
P=a;
printf(z/pleaseinputastring:\n,z);
gets(p);
len=fun(p);
printf(,zThestring*slengthis:%d\nz\len);
wwjt();
)
voidwwjt()
(
FILE*IN,*0UT;
char*pIN,sin[20];
intiOUT,i;
pIN=sin;
[N二fopen(〃〃,〃r〃);
if(IN=二NULL)
(
printfC'PleaseVerifyTheCurrerntDir..itMayBeChanged");
.1
OUT二fopen("〃,"w");
if(OUT==NULL)
(
printf(zzPleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(i=0;i<10;i++)
(
fscanf(IN,〃%s〃,pIN);
iOUT=fun(pIN);
fprintf(OUT,〃%d\n〃,iOUT);
)
fclose(IN);
fclose(OUT);
)
答案:-----------------------
char*p;
intn=0;
P二pl;
while(*p++)
n++;
returnn;
第2题(分)题号:386难度:中第2章
/*--------------------------------------------------
【程序设计】
功能:用函数求N个[10,60]上的整数中能被5整除的最大
的数,如存在则返回这个最大值,如果不存在则
返回0o
--------------------------------------------------*/
^defineN30
#include〃〃
#include<>
voidwwjt();
intfind(intarr[],intn)
(
intm=0;
/**********Prograrii**********/
/**********End**********/
return(m);
)
main()
inta[N],i,k;
for(i=0;i<N;i++)
a[i]=random(51)+10;
for(i=0;i<N;i++)
(
printf(〃%5d〃,a[i]);
if((i+l)%5==0)printf(〃\n〃);
)
k=find(a,N);
if(k==0)
printfCNOFOUND\n〃);
else
printf(zzthemaxis:%d\n〃,k);
wwjt();
}
voidwwjt()
(
FILE*IN,*OUT;
intn;
inti[5];
into;
IN=fopen(〃","/);
if(IN==NULL)
(
printf(z,ReadFILEError");
}
OUT二fopen(〃","w");
if(OUT==NULL)
(
printf("WriteFILEError");
}
for(n=0;n<5;n++)
(
fscanf(IN,〃%d〃,&i[n]);
}
o=find(i,5);
fprintf(OUT,"%d\n〃,o);
fclose(IN);
fclose(OUT);
)
答案:------------------------
inti;
for(i=0;i<n;i++)
if(arr[i]%5==0&&arr[i]>m)
m=arr[i];
第3题(分)题号:321难度:中第2章
/*--------------------------------------------------
【程序设计】
功能:编写函数fun其功能是:根据整型形参m,计算如下
公式的值:y=l/2!+l/4!+-+l/m!(m是偶数)
--------------------------------------------------*/
^include<>
voidwwjt();
doublefun(intm)
(
/**********Program**********/
/**********End**********/
}
main()
(
intn;
printf("Entern:〃);
scanf("%d",&n);
printf(〃\nTheresultis%lf\n〃,fun(n));
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
intt;
doubleo;
intc;
IN二fopen(〃”,〃r〃);
if(IN=二NULL)
(
printf("ReadFILEError");
)
OUT二fopen(〃",;
if(OUT二二NULL)
(
printf("WriteFILEError");
for(c=l;c<=5;c++)
fscanf(IN,"%d〃,&t);
o=fun(t);
fprintf(OUT,o);
)
fclose(IN);
fclose(OUT);
)
答案:doubley=;
inti,j;
doubles=l;
for(i=2;i<=m;i+=2)
(
for(j=i-l;j<=i;j++)
s=s*j;
y=y+s;
)
returny;
第4题(分)题号:54难度:易第1章
/*--------------------------------------------------
【程序设计】
功能:求1到100之间的偶数之积。
--------------------------------------------------*/
#include<>
voidwjt();
doublefun(intm)
(
/**********Program**********/
/**********End**********/
)
main()
(
printf(,/ji=%f\n//,fun(100));
wwjt();
}
voidwwjt()
(
FILE*IN,*0UT;
intilN,i;
doubledOUT;
IN二fopen(〃〃,〃r");
if(IN:二NULL)
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT=fopen"w");
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(i=0;i<10;i++)
(
fscanf(IN,"%d”,&iIN);
dOUT=fun(iIN);
fprintf(OUT,dOUT);
}
fclose(IN);
fclose(OUT);
)
答案:-------------------------
doubley=l;
inti;
for(i=l;i<=m;i++)
if(设2=0)y*=i;
returny;
第5题(分)题号:62难度:难第2章
【程序设计】
功能:求5行5列矩阵的主、副对角线上元素之和。注意,
两条对角线相交的元素只加一次。
例如:主函数中给出的矩阵的两条对角线的和为45。
--------------------------------------------------------*/
ttinclude<>
^defineM5
voidwwjt();
intfun(inta[M][M])
(
/**********Program**********/
/**********End**********/
)
main()
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);
printf("s=%d\n”,y);
wjt();
}
voidwwjt0
{
FILE*IN,*OUT;
intiIN[M][M],iOUT;
inti,j;
IN=fopen(","r"):
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("","w");
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
)
{for(i=0;i<M;i++)
for(j=0;j<M;j++)
fscanf(IN,"%d”,&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,iOUT);
}
fclose(IN);
fclose(OUT);
)
答案:---------------------
ints=0;
inti,j;
for(i=0;i<M;i++)
s=s+a[i][i]+a[i];
s=s-a[(M-l)/2][(M-l)/2]:
returns;
第6题(分)题号:37难度:较难第6章
/*
【程序设计】
功能:输入2个学生3门课的成绩,计算学生成绩平均分,
课程平均分和最高分.
例如:输入2名学生3门课的成绩分别为92,87,68,56,
92,84则
学生1平均分:
学生2平均分:
课程1平均分:
课程2平均分:
课程3平均分:
最高分为:92
--------------------------------------------------*/
[include<>
voidwwjt();
/*定义全局变量*/
/*学生成绩平均分*/
floatStuAgv[2];
/*课程平均分*/
floatCouAgv[3];
/*所有学生的所有课程最高分*/
floatMax=0;
/*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/
voidfun(floatscore[2][3])
{
/**********Program**********/
/**********End**********/
}
voidmain()
(
inti,j;
floatscore[2][3];
printf("输入学生的成绩:“);
for(i=0;i<2;i++)
for(j=0:j<3;j++)
scanf&score[i][j]);
printf("\n输出学生的成绩:“);
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
printf(/z%.2f",scoreti][j]);
printf("\n");
}
fun(score);
for(i=0;i<2;i++)
printf("第猊个学生的平均成绩是:%\n”,i+1,StuAgv[i]);
for(j=0;j<3;j++)
printf("第%d门课的平均成绩是:%\n”,j+1,CouAgv[j]);
printf("所有分数中的最高分为:%.2f\n/?,Max);
wwjt();
}
voidwwjt()
(
FILE*IN,*OUT;
floatiIN[2][3];
inti,j;
IN=fopen("","r");
if(IN==NULL)
(
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
0UT=fopen("","w");
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(i=0;i<2;i++)
for(j=0;j<3;j++)
fscanf(IN,&iIN[i][j]);
fun(iIN);
for(i=0;i<2;i++)
fprintf(OUT,"%.2f\n”,StuAgv[i]);
for(j=0;j<3;j++)
fprintf(OUT,z,%.2f\n”,CouAgv[j]);
fprintf(OUT,"%.2f\n”,Max);
fclose(IN);
fclose(OUT);
return;
}
答案:inti,j;
floatsum;
for(i=0;i<2;i++)/*计算第i个学生平均分*/
(
sum=0;
for(j=0;j<3;j++)
sum=sum+score[i][j];
StuAgv[i]=sum/3;
)
for(j=0;j<3;j++)/*计算第j门课的平均分*/
sum=0;
for(i=0;i<2;i++)
sum=sum+score[i][j];
CouAgv[j]=sum/2;
)
Max=score[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
if(Max<=score[i][j])
(
Max=score[i][j];
)
return;
第7题(分)题号:322难度:中第2章
/*--------------------------------------------------
【程序设计】
功能:判断一个整数w的各位数字平方之和能否被5整除,
可以被5整除则返回1,否则返回0。
--------------------------------------------------*/
#include<>
#include””
voidwjt();
intfun(intw)
(
/**********P]、ograni**********/
/**********End**********/
}
main()
(
intm;
printf("Enterm:〃);
scanf(〃%d〃,&m);
,,
printf(〃\nTheresultis%d\n)fun(m));
wwjt();
}
voidwwjt()
(
FILE*IN,*OUT;
intc;
intt;
into;
IN=fopen(“〃,〃r〃);
if(IN=二NULL)
printf(/zReadFILEError");
}
OUT二fopen(〃〃,〃w〃);
if(OUT==NULL)
(
printf(Z/WriteFILEError");
}for(c=l;c<=5;c++)
(
fscanf(IN,zz%d,z,&t);
o=fun(t);
fprintf(OUT,"%d\n〃,o);
)
fclose(IN);
fclose(OUT);
)
答案:-
intk,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!=0);
if(s%5==0)k=l;
elsek=0;
return(k);
第8题(分)题号53难度:中第95章
/*---------------------------------------------------------
【程序设计】
题目:编程序,输入两个字符串a,b(<40个字符),将两者连接后输出c(不能用strcat库函数)。
#include<>
#include<>
voidmain()
/**********Pr()grani**********/
/**********End**********/
答案:chara[40],b[40],c[80];
inti,j;
printf(〃分二行输入两个字符串:\n〃)
gets(a);gets(b);
for(i=0;a[i]!=>\0*;i++)c[i]=a[i];
for(j=0;b[j]!=,\0J;j++)c[i+j]=b[j]:
c[i+j]='\0';
puts(c);
第9题(分)题号:594难度:中第1章
/*------------------------------------------------------------
【程序设计】
请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向
一个M行N列的二维数组,求出二维数组每列中最大元素,并依次
放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数
fun的花括号中填入所编写的若干语句。
试题程序:
------------------------------------------------------------*/
^include<>
#include<>
#include<>
#defineM3
^defineN4
voidfun(inttt[M][N],intpp[N])
(
inti,j,max;
/**********Program**********/
/**********End**********/
}
voidmain()
(
FILE*wf;
intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};
intp[N],i,j,k;
system("CLS");
printf(zzTheriginaldatais:\n〃);
for(i=0;i<M;i++)
(
for(j=0;j<N;j++)
printf(〃%6d〃,t[i][j]);
printf(〃\n〃);
)
fun(t,p);
printf(/z\nTheresultis:\n");
for(k=0;k<N;k++)
printfC%4d",p[k]);
printf(〃\n〃);
wr=fopen(,w);
for(k=0;k<N;k++)
fprintf(wf,〃%4d〃,p[k]);
fclose(wf);
)
答案:for(j=0;j<N;j++)
(
max=tt[O][j];
for(i=0;i<M;i++)
if(tt[i][j]>max)
max=tt[i][j];
pp[j]=max;
}
第10题(分)题号:319难度:中第2章
/*--------------------------------------------------
【程序设计】
功能:判断m是否为素数。
--------------------------------------------------*/
^include〃〃
voidwjt();
intfun(intm)
(
/**********Prc)grani**********/
/**********End**********/
)
main()
(
intm,k=0;
for(m=100;m<200;m++)
if(fun(m))
(
printf("%4d”,m);
k++;
if(k%5==0)
printf(〃\n〃);
)
printf("k=%d\n”,k);
wwjt();
}
voidwwjt()
FILE*IN,*OUT;
intilN,iOUT,i;
IN=fopen("","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
0UT=fopen("","w");
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<10;i++)
(
fscanf(IN,W;&ilN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n”,iOUT);
)
fclose(IN);
fclose(OUT);
)
答案:-----------------------
inti,k=l;
if(m<=l)k=0;
for(i=2;i<m;i++)
if(m%i==0)k=0;
returnk;
第11题(分)题号:366难度:易第2章
/*------------------------------------------------------------------------
【程序设计】
功能:求一组数中大于平均值的数的个数。
例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
------------------------------------------------------------------------*/
♦tinclude<>
voidwjt();
intfun(inta[],intn)
/**********Program**********/
/**********End**********/
}
main()
inta[10]={l,3,6,9,4,23,35,67,12,88};
inty;
y=fun(a,10);
printfCy=%d\n',y);
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
intiIN[10],i0UT,i,j;
IN二fopen(〃〃,〃r");
if(IN==NULL)
(
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃","w〃);
if(OUT==NULL)
(
printf(''PleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(j=0;j<10;j++)
(
for(i=0;i<10;i++)
fscanf(IN,"%dz,,&iIN[i]);
iOUT=fun(iIN,10);
)
fprintf(OUT/z%d\nz,,iOUT);
fclose(IN);
fclose(OUT);
)
答案:------------------------
inti,k=0;
floats=0,ave:
for(i=0;i<n;i++)
s+=a[i];
ave=s/n;
printf(/z%f”,ave);
for(i=0;i<n;i++)
if(a[i]>ave)k++;
returnk;
第12题(分)题号:589难度:中第1章
/*---------------------------------------------------------
【程序设计】
题目:请编写程序,输入一个华氏温度,要求输出摄氏温度。
公式为C=5/9*(F-32)
要求:输入为整型,输出为实型,保留两位小数。
^include<>
voidwjt();
doublefun(intf)
(
/**********Progrtini**********/
/**********End**********/
)
voidmain()
(
intf;
scanf("%d",&f);
printf("%.2f〃,fun(f));
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
inti;
intilN;
doubleiOUT;
IN=fopen(〃〃,"r");
if(IN==NULL)
(
printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
)
OUT二fopen(〃〃,〃w〃);
if(OUT二二NULL)
(
printf(,zPleaseVerifyTheCurrentDir..ItMayBeChanged");
)
for(i=0;i<5;i++)
fscanf(IN,,z%d",&iIN);
iOUT=fun(ilN);
fprintf(OUT,"%.2f\n〃,iOUT);
)
fclose(IN);
fclose(OUT);
)
答案:doublec;
c=/*(f-32);
returnc;
第13题(分)题号:586难度:中第1章
/*------------------------------------------------------------
【程序设计】
题目:对从键盘输入的10个整数进行降序排序;
排序后输出第2大的数,请编fun函数。
------------------------------------------------------------*/
#include〃〃
voidwwjt();
intfun(inta[])
(
/**********Program**********/
/**********End**********/
)
voidmain()
(
inta[10],i,m;
for(i=0;i<10;i++)
scanf;
m=fun(a);
printfCz%d”,m);
wwjt();
)
voidwwjt()
(
FILE*IN,*0UT;
intiIN[10],i;
intiOUT,iCOUNT;
IN=fopen(〃〃,〃r");
if(IN==NULL)
(
printf(Z/PleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃〃,〃w〃);
if(OUT二二NULL)
printfC'PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
(
for(iC0UNT=0;iC0UNT<10;iCOUNT++)
fscanf(IN,〃%d〃,&iIN[iCOUNT]);
iOUT=fun(iIN);
fprintf(OUT,〃%d\n〃,iOUT);
)
fclose(IN);
fclose(OUT);
}
答案:inti,j,t;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]<a[j+l])
t=a[j];
a[j]=a[j+l];
returna[l];
第14题(分)题号:338难度:中第2章
【程序设计】
功能:编写程序,实现矩阵(3行3歹IJ)的转置(即行列互换)
例如:输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
#include<>
voidwjt();
intfun(intarray[3][3])
/**********Program**********/
/**********End**********/
}
main()
(
inti,j;
intarray[3][3]={{100,200,300},
{400,500,600),
{700,800,900)};
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
printf("%7d”,array[i][j]);
printf(zz\nz/);
)
fun(array);
printf(""Convertedarray:\n'z);
for(i=0;i<3;i++)
(
for(产0;j<3;j++)
printf(,,%7d,/,array[i][j]);
printf(〃\n〃);
)
wwjt();
)
voidwwjt()
(
inti,j,array[3][3];
FILE*rf,*wf;
rfc=cfope/n〃(〃,〃,r,、);
wr=fopent,w);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
fscanf(rf,〃%d〃,&array[i][j]);
fun(array);
for(i=0;i<3;i++)
(
for(j=0;j<3;j++)
fprintf(wf,"%7d〃,array[i][j]);
fprintf(wf,〃\n〃);
)
fclose(rf);
fclose(wf);
}
答案:---------------------
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{t=array[i][j];
arrayti][j]=array[j][i];
array[j][i]=t;}
第15题(分)题号:53难度:中第1章
【程序设计】
功能:求一个四位数的各位数字的立方和
--------------------------------------------------*/
#include<>
voidwjt();
intfun(intn)
(
/**********Prc)gran)**********/
/**********End**********/
}
main()
(
intk;
k=fun(1234);
printf(,/k=%d\n//,k);
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
intilN,iOUT,i;
IN二fopen(〃”,〃r〃);
if(IN=二NULL)
(
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃",;
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
for(i=0;i<10;i++)
fscanf(IN,W,&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
)
fclose(IN);
fclose(OUT);
}
答案:-------------------------
intd,k,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
)
returns;
第16题(分)题号:318难度:中第2章
【程序设计】
功能:输入一个字符串,过滤此串,只保留串中的字母字
符,并统计新生成串中包含的字母个数。
例如:输入的字符串为ab234$df4,新生成的串为abdf。
-----------------------------------------------------*/
4include<>
^include<>
ttdefineN80
voidwwjt();
fun(char*ptr)
(
/**********Program**********/
/**********End**********/
}
main()
(
charstr[N];
ints;
printf("inputastring:^);gets(str);
printf(Z/TheorigINalstringis:〃);puts(str);
s=fun(str);
printfC'Thenewstringis:〃);puts(str);
printf("Thereare%dcharTNthenewstring.”,s);
wwjt();
}
voidwwjt()
(
FILE*IN,*OUT;
charsin[N];
intiOUT;
IN二fopen(〃〃,〃/);
if(IN=二NULL)
(
printf(,zPleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃〃,〃w〃);
if(OUT==NULL)
(
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
)
fscanf(IN,〃%s",sin);
iOUT=fun(sin);
fprintf(OUT,z,%d%s\n,z,iOUT,sin);
fclose(IN);
fclose(OUT);
)
答案:-----------------------
inti,j;
for(i=0,j=O;*(ptr+i)!=\0';i++)
if(*(ptr+i)<=,z*&&*(ptr+i)>=,a*||*(ptr+i)<=,Z*&&*(ptr+i)>=,A1)
{*(ptr+j)=*(ptr+i);
j++;}
*(ptr+j)=,\0*;
return(j);
第17题(分)题号:587难度:中第1章
/*---------------------------------------------------------
【程序设计】
题目:假设m是一个三位数,编写程序输出由m的个位、十位、百
位反序而成的三位数(例如:123反序为321)。请编fun函数。
---------------------------------------------------------*/
#include”〃
voidwwjt();
intfun(inta)
/**********Program**********/
/**********End**********/
)
voidmain()
{
inta,k;
scanf(,z%dzz,&a);
k=fun(a);
printf(〃k=%d〃,k);
wjt();
}
voidwwjt()
(
FILE*IN,*OUT;
intilN,i;
intdOUT;
IN二fopen(“〃,〃r");
if(IN==NULL)
(
printf(/zPleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃",〃w〃);
if(OUT二二NULL)
(
printf(z,PleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(i=0;i<5;i++)
(
fscanf(IN,zz%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,〃%d\n〃,dOUT);
)
fclose(IN);
fclose(OUT);
)
答案:intm,k,n,b;
m=a/l00;
n=(a-m*100)/10;
b=a%10;
k=b*100+n*10+m;
returnk;
第18题(分)题号:365难度:易第2章
/*
【程序设计】
功能:求I到100之间的偶数之积。
*/
#include<>
voidwwjt();
doublefun(intm)
(
/**********Program**********/
/**********End**********/
}
main()
(
printf(z/ji=%f\n/,,fun(100));
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
intilN,i;
doubledOUT;
IN二fopen(〃",〃r");
if(IN==NULL)
(
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
)
OUT二fopen(〃”,〃w〃);
if(OUT二二NULL)
(
printf(z,PleaseVerifyTheCurrentDir..itMayBeChanged");
)
for(i=0;i<5;i++)
(
fscanf(IN,z/%dz/,&iIN);
dOUT=fun(iIN);
fprintf(OUT,dOUT);
)
fclose(IN);
fclose(OUT);
)
答案:-----------------------
doubley=l;
inti;
for(i=l;i<=m;i++)
if(i%2==0)y*=i;
returny;
第19题(分)题号:593难度:中第1章
【程序设计】
编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整
除的所有自然数之和的平方根s,并作为函数值返回。
例如:n为1000时,函数值应为s=。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数
fun的花括号中填入所编写的若干语句。
试题程序:
ttinclude<>
[include<>
^include<>
#include<>
doublefun(intn)
(
doubles=;
inti;
/**********Program**********/
/**********End**********/
)
voidmainO
(
FILE*wf;
system(〃CLS〃);
printf(z,s=%f\n/z,fun(1000));
wi=fopen(,w);
fprintf(wf,fun(1000));
fclose(wf);
答案:for(i=0;i<n;i++)
if(i%5==0&&i%11==0)
s=s+i;
s=sqrt(s);
returns;
第20题(分)题号:391难度:易第2章
【程序设计】
功能:将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
^include””
^include<>
voidwjt();
voidchange(charstr[])
(
/**********Prc)grani**********/
/**********End**********/
)
main()
(
voidchange();
charstr[40];
gets(str);
change(str);
puts(str);
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
chari[200];
IN二fopen(〃〃,〃r〃);
if(IN==NULL)
(
printf(z,ReadFILEError");
)
OUT二fopen(〃〃,“w〃);
if(OUT==NULL)
(
printf("WriteFILEError");
}
fscanf(IN,,,%sz/,i);
change(i);
fprintf(OUT,〃%s\n〃,i);
fclose(IN);
fclose(OUT);
)
答案:--
inti;
for(i=0;str[i]!=\0';i++)
if(str[i]>=,a*&&str[i]<=,z*)
str[i]=str[i]-32;
第21题(分)题号:384难度:易第2章
【程序设计】
功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]
中,求每行元素的和。
--------------------------------------------------------*/
ttinclude〃〃
^include<>
voidwjt();
voidrow_sum(inta[5][4],intb[5])
(
/**********Program**********/
/**********End**********/
}
main()
(
voidrow_sum();
inta[5][4],b[5],i,j;
for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=random(120-30+1)+30;
for(i=0;i<5;i++)
(
for(j=0;j<4;j++)
printf(〃%5d〃,a[i][j]);
printfCW);
)
row_sum(a,b);
for(i=0;i<5;i++)
printf(,z%6d,z,b[i]);
printf("\n〃);
wwjt();
)
voidwwjt()
(
FILE*IN,*0UT;
intm,n;
inti[5][4];
into[5];
IN二fopen(〃〃,〃r〃);
if(IN==NULL)
printf(zzReadFILEError");
)
OUT二fopen(〃〃,〃w〃);
if(OUT==NULL)
(
printf("WriteFILEError");
}
for(m=0;m〈5;m++)
for(n=0;n<4;n++)
fscanf(IN,〃%d〃,&i[m][n]);
row_sum(i,o);
for(n=0;n<5;n++)
fprintf(OUT,z,%d\n,z,o[n]);
fclose(IN);
fclose(OUT);
)
答案:-----------------------
inti,j;
for(i=0;i<5;i++)
{b[i]=0;
for(j=0;j<4;j++)
b[i]=b[i]+a[i][j];
)
第22题(分)题号:329难度:中第2章
/*--------------------------------------------------------
【程序设计】
功能:对某一正数的值保留2位小数,并对第三位进行四舍
五入。
--------------------------------------------------------*/
#include<>
#include”〃
voidwjt();
doublefun(floath)
(
/**********Program**********/
/**********End**********/
main()
floatm;
printf("Enterm:〃);
scanf&m);
printf(,z\nTheresultis%\n〃,fun(m));
wwjt();
)
voidwwjt()
(
FILE*IN,*OUT;
ints;
floatt;
doubleo;
IN二fopen(〃〃,〃r〃);
if(IN==NULL)
(
printf("ReadFILEError");
}
OUT=fopen(〃〃,〃w〃);
if(OUT==NULL)
(
printf(Z/WriteFILEError");
)
for(s=l;s<=5;s++)
(
fscanf(IN,"%f",&t);
o=fun(t);
fprintf(OUT,o);
)
fclose(IN);
fclose(OUT);
}
答案:------------------------
inti;
i=(int)(h*1000)%10:
if(i>=5)
return(int)(h*100+l)/;
else
return(int)(h*100)/;
第23题(分)题号:591难度:中第1章
/*------------
【程序设计】
题目:从键盘上输入一个字符串,放在数组中,要求将字符串中
的大写字母转换成小写字母,小写字母转换成大写字母,
非字母字符不变,并输出
^include<>
#include<>
4include<>
^defineN80
voidwjt();
charfun(chara[])
(
/**********Program**********/
/**********End**********/
)
voidmain()
(
chara[80];
chars;
gets(a);
s=fun(a);
puts(a);
wwjt();
)
voidwwjt()
(
FILE*IN,*0UT;
charsin[N];
chariOUT;
IN二fopen(〃〃,;
if(IN==NULL)
(
printf(''PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT二fopen(〃”,〃w〃);
if(OUT==NULL)
(
printf(,zPleaseVerifyTheCurrentDir..itMayBeChanged");
)
fscanf(IN,〃%s〃,sin);
iOUT=fun(sin);
fprintf(OUT,sin);
fclose(IN);
fclose(OUT);
}
答案:inti;
for(i=0;i<(strlen(a));i++)
if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
elseif(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
returna[i];
第24题(分)题号:353难度:中第2章
/*--------------------------------------------------
【程序设计】
功能:对长度为7个字符的字符串,除首、尾字符外,将其
余5个字符按降序排列。
例如:原来的字符串为CEAedca,排序后输出为CedcEAao
--------------------------------------------------*/
#include<>
#include<>
#include<>
voidwjt();
voidfun(char*s,intnum)
(
/**********P]、ograni**********/
/**********End**********/
}
main()
(
chars[10];
printf(〃输入7个字符的字符串:〃);
gets(s);
fun(s,7);
printf(〃\n%s〃,s);
wjt0;
)
voidwwjt()
(
inti;
chara[100];
FILE*rf,*wf;
rf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《疫耐受与免疫调节》课件
- 土木工程中的防风设计与施工考核试卷
- 春节期间的防火防盗安全培训考核试卷
- 化学矿的市场调研与市场分析报告编写方法研究考核试卷
- 数字金融中的智能投资与财富管理考核试卷
- 广告创意与品牌塑造考核试卷
- 2021年中医助理医师考试题库及答案解析(多选题)
- 工程合同范例有目录
- 灯饰订货合同范例
- 汽车加工服务合同范例
- 连续刚构桥挂篮悬浇施工技术管理
- 幼儿如厕睡眠行为的观察记录与分析
- 老年人口腔保健知识PPT课件
- 主动脉内球囊反搏泵(IABP)详解
- 荒芜土地恢复与重建的生态工程汇总
- 新版《义务教育英语课程标准(2022年版)》PPT课件
- (完整版)食堂检查表
- 教育研究方法知识点重点实用
- 近视防控主题班会PPT课件
- 三通道视景及三维态势仿真系统中端方案
- 内镜中心进修护士培训计划
评论
0/150
提交评论