C语言期末考试编程题内含代码Word格式.docx
《C语言期末考试编程题内含代码Word格式.docx》由会员分享,可在线阅读,更多相关《C语言期末考试编程题内含代码Word格式.docx(15页珍藏版)》请在冰点文库上搜索。
#include<
string.h>
main()
{
inti,nLen,flag;
charnum[6];
gets(num);
nLen=strlen(num);
for(i=0;
nLen/2;
flag=0;
if(num[i]==num[nLen-i-1])
flag=1;
if(flag)puts("
回文数"
);
elseputs("
不是"
}
4.求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。
void
fun
(int
*a,
int
*n)
{
i;
*n=0;
=1000;
if((
i%7==0
||
i%11==0
)
&
(!
(
)))
a[*n]=i;
(*n)++;
{int
aa[1000],n,k;
fun(aa,&
n);
for
(k=0;
n;
k++)
if
((k+1)%10==0)
\n"
else
%5d"
aa[k]);
}
5.编程列出200以内所有的素数,按照一行8个的格式输出,并求出所有素数的平均值,
math.h>
intm,i,k,n=0;
for(m=2;
m<
=200;
m++)
k=sqrt(m);
for(i=2;
=k;
if(m%i==0)break;
if(i>
=k+1)
%4d"
m);
n++;
if(n%8==0)
}
6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1+1/3+1/5...+1/n
iostream.h>
doublefun1(doublen)
doublesum=0;
doublem=0;
for(inti=2;
i<
=n;
i+=2)
m=1/n;
sum+=m;
returnsum;
doublefun2(doublen)
for(inti=1;
voidmain()
{
intnum;
cin>
>
num;
if(num%2==0)
cout<
<
fun1(num)<
endl;
else
fun2(num)<
7、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有
组合。
stdlib.h>
inta,b,c;
for(a=1;
a<
a++)
for(b=0;
b<
b++)
for(c=1;
c<
c++)
if(a*100+b*10+c+c*100+b*10+a==1333)
%d,%d,%d\n"
&
a,&
b,&
c);
system("
pause"
8、用户输入12个0-100之间的整数,统计出小于60,60到79,80到100三个范围的整数各有多少个?
#include"
stdio.h"
typedefstructstr
intm;
intj;
intk;
}s;
intfun(sp);
inta[12];
inti;
sp;
p.j=0;
p.k=0;
p.m=0;
输入12个数:
"
for(i=0;
12;
scanf("
%d"
a[i]);
if(a[i]<
60)
p.m++;
elseif(a[i]>
=60&
a[i]<
=79)
p.j++;
else
p.k++;
fun(p);
return0;
fun(sp)
成绩小于60分的人数为:
%d\n"
p.m);
成绩在60~79分的人数为:
p.j);
成绩在80~100分的人数为:
p.k);
9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。
即:
abc=a!
+b!
+c!
intfun(intn)
intnum=1;
while(n>
0)
num*=n;
n--;
returnnum;
intmain(intargc,char*argv[])
inti,j,k;
intn;
for(n=100;
n<
1000;
n++)
if(n==fun(n%10)+fun(n/100)+fun(n%100/10))
printf("
n);
10.编写一个猜数的游戏程序。
(数字由机器随机产生,限制为1~100之间的整数,用户输入猜测,程序给出大小提示
staticvoidMain(string[]args)
stringi=null;
do
Console.Write("
请输入一个整数(范围为1~100)\n如果要退出,请输入0!
否则输入1!
i=Console.ReadLine();
if(i.Trim().Equals("
0"
))
return;
}while(!
i.Trim().Equals("
1"
));
start:
Randomra=newRandom();
intrndInt=ra.Next(1,100);
intinput=0;
输入你猜的数值:
if(!
int.TryParse(i,outinput))
continue;
if(input>
rndInt)
猜大了\n\n"
elseif(input<
猜小了\n\n"
}while(input!
=rndInt);
恭喜你,猜对了!
\n\n"
若继续猜测输入Y,若退出则输入N!
\n请输入:
n"
StringComparison.OrdinalIgnoreCase))
y"
gotostart;
11、设N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),求N的值。
intmain()
for(i=1002;
1111;
i++)/*穷举四位数可能的值*/
if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9)
/*判断反序数是否是原整数的9倍*/
Thenumbersatisfiedstatsconditionis:
%d\n"
i);
/*若是则输出*/
12、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。
试编写程序计算大、中、小马的数目。
#include
main(void)
Lar
=
0,
Lit
Nor
0;
for(Lit
100;
+=
2)
for(
++
)
for(Lar
++)
(((Lar
+
Nor)
==
100)
((3
*
2
Nor
/
2)
100))
%d,
%d
Lar,
Nor,
Lit);
return
13、一位司机酒驾撞人逃跑。
现场三人目击事件,但都没记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;
乙说:
牌照的后两位数字是相同的;
丙是位数学家,他说:
四位的车号刚好是一个整数的平方。
请根据以上线索求出车号。
(车号为4位数)
inti,j,k,c;
for(j=0;
j++)
{
if(i!
=j)
{
k=i*1000+i*100+j*10+j;
for(c=20;
c*c<
k;
{
if(c*c==k)
printf("
k);
}
}
}
14、求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和并输出结果。
voidmain(void)
intnNum;
floatfResult=0.0;
printf("
inputthen:
"
);
scanf("
&
nNum);
printf("
Calculating...\n"
while(nNum>
0)
fResult=fResult+(1/(float(nNum)*float(nNum+1)));
nNum--;
printf("
Resultis%.3f"
fResult);
15、编程求出所有1000到3000之间能被7、11、17同时整除的整数,并求其平均值,并输出结果(结果保留两位小数)。
s[100]={0};
//数组s用来存放所有符合条件的数字
a=0,i=0;
//a用来记数,有几个,最后算平均数用的
i是数组角标
sum=0;
float
average;
j=1000;
=3000;
(j%7==0
j%11==0
j%17==0)
s[i]=j;
a++;
i++;
=a;
sum+=s[i];
average=sum/a;
平均数是%.2f\n\n"
average);
能整除的数字只有%d个\n"
a);
a;
s[i]);
\n\n\n"
16、编程找出满足下列条件的所有四位数的和并输出:
该数第一、三位数字之和为10,第二、四位数字之积为12。
voidmain(){
inti,thus,hun,ten,data,sum=0;
for(i=1000;
10000;
i++){
thus=i/1000;
hun=i%1000/100;
ten=i%100/10;
data=i%10;
if(thus+ten==10&
hun*data==12)sum+=i;
17、求并输出所有满足如下条件的三位正整数:
它是某整数的平方,它的三位数码有两位是相同的。
(如100是10的平方,它有两个0,225是15的平方,它有两个2)。
voidmain()
inti,a,b,c,s;
for(i=10;
32;
s=i*i;
a=s/100;
b=(s-100*a)/10;
c=s%10;
if(a==b)
s);
if(b==c)
if(c==a)
18、输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同。
for(inti=1012;
i+=2){
intflag=1;
inta[10]={0};
intj=i;
while(j>
0){
if(a[j%10]!
=0){
flag=0;
break;
++a[j%10];
j/=10;
if(flag)printf("
%6d\t"
i);
19、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。
inta,b;
inputtwonumber:
scanf("
%d%d"
b);
if((a*a+b*b)>
=100)
\n%d"
(a*a+b*b)/100);
a+b);
getch();
20、编写一个程序实现如下功能:
计算1~100之间所有包含4或者包含5的数字,并显示其累加之和
intcalc(intx)
intsum=0;
i++){
j<
j++){
if(i==x||j==x){
sum+=10*i+j;
if(x==0||x==1){
sum+=100;
returnsum;
intsum;
sum=calc
(2);
sum=%d\n"
sum);
21.求平均成绩
floatscore=0,average=0;
intn=0;
%f"
score);
if(score>
=0)
average+=score;
}while(score>
=0);
if(n!
=0)average/=n;
%6.2f"