大学最新C题库及答案Word文档下载推荐.docx
《大学最新C题库及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《大学最新C题库及答案Word文档下载推荐.docx(164页珍藏版)》请在冰点文库上搜索。
![大学最新C题库及答案Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/8c5ab14c-7671-4094-bea8-544a1386580b/8c5ab14c-7671-4094-bea8-544a1386580b1.gif)
iostream>
usingnamespacestd;
intmain()
{
doublemagnitude;
cin>
>
magnitude;
if(magnitude<
4.0)
}
elseif(magnitude<
5.0)
6.0)
7.0)
8.0)
else
return0;
Q6.(10分)写一个程序从键盘输入1到7中的某个数字,其中1代表星期天,2代表星期一,3代表星期二等。
根据用户输入的数字显示相应的星期几。
如果用户输入的数字超出了1到7的范围,显示输出一个错误提示信息。
整数,提示信息:
Pleaseinputasinglenumeral(1-7):
;
Monday"
(星期几的英文单词首字母大写加换行)
提示信息:
Invalid-pleaseinputasinglenumeral(1-7)."
(加换行)
#include<
inta;
a;
if(a<
1||a>
7)
switch(a)
case1:
Sunday"
break;
case2:
case3:
Tuesday"
case4:
Wednesday"
case5:
Thursday"
case6:
Friday"
case7:
Saturday"
Q7.(10分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:
“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱……。
你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。
请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。
**输入提示信息和数据格式:
无
**输出提示信息和数据格式:
百万富翁给陌生人:
toStranger<
元"
cout<
陌生人给百万富翁:
toRichman<
intj;
doubletoStranger=0;
/*富翁给陌生人的钱,以'
元'
为单位*/
doubletoRichman=0;
/*陌生人给富翁的钱,以'
doubleterm=0.01;
/*富翁第一天给陌生人0.01元*/
for(j=1;
j<
=30;
j++)
toRichman+=100000;
/*陌生人每天给富翁10万元*/
toStranger+=term;
term=term*2;
/*富翁每天给陌生人的钱是前一天的两倍*/
Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。
统计并输出实际累加的项数。
输出格式要求:
cout<
sum="
sum<
endl;
count="
i<
输出结果为:
sum=1071225
count=45
longi,sum=0;
for(i=1;
;
i++)
sum=sum+i*i*i;
if(sum>
=1000000)
break;
Q9.(10分)求多项式1!
+2!
+3!
+……+15!
的值。
s="
s<
intn=1,s=0;
for(inti=1;
=15;
n=n*i;
s+=n;
s<
}
Q10.(10分)求1至200之间的所有质数,将质数和存入变量sum中并输出。
质数(素数)的说明:
“质数是只能被1和其本身整除的数”。
输入提示要求:
输出结果格式要求:
质数之间以一个空格隔开
输出所有质数后换行输出:
sum=4227
cmath>
intN,m,sum=0;
for(m=2;
m<
=200;
m++)
inti,tmp=(int)sqrt(m);
for(i=2;
=tmp;
if(m%i==0)
if(i>
tmp)
sum+=m;
sum<
Q11.(10分)在一个已知的一维数组中分类统计正数和负数的个数。
正数的个数存入变量C1中,负数个数存入变量C2中.
c1="
c1<
c2="
c2<
inta[10]={1,-2,0,4,-5,0,7,8,-9,10};
intc1=0,c2=0;
inti;
for(i=0;
10;
if(a[i]>
0)
c1++;
elseif(a[i]<
c2++;
Q12.(10分)在包含10个数的一维整数数组a中查找最大元素max和最小元素min。
最大元素:
max<
最小元素:
min<
inta[10]={32,43,65,23,432,543,543,54,542,87};
intmax,min;
max=a[0],min=a[0];
max)max=a[i];
if(a[i]<
min)min=a[i];
Q13.(10分)用while循环编程,求自然数1至100之间各奇数平方和sum。
输出结果格式为:
sum=166650
inti=1,sum=0;
while(i<
=100)
sum+=i*i;
i+=2;
Q14.(10分)判断一个数23437是否是素数(要求程序中设置一个参数flag,flag为1代表是素数,为0代表不是)
输出结果:
intm,n,flag=1;
m=23437;
for(n=2;
n<
=m/2&
&
flag;
n++)
if(m%n==0)flag=0;
flag<
Q15.(10分)已知一个数m(=252),用循环求各位数字之和。
输出结果格式:
s=9
intm=252,a,b,c,s;
a=m/100;
b=m/10%10;
c=m%10;
s=a+b+c;
Q16.(10分)已知一个数m(=252),用循环求各位数字之积。
f=20
intm,f=1,n;
m=252;
while(m!
=0)
n=m%10;
f*=n;
m=m/10;
f="
f<
Q17.(10分)已知10个四位数输出所有对称数及个数n。
例如1221,2332都是对称数。
设:
intm[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};
1221
2332
inti,n=0,m[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};
inta,b,c,d;
a=m[i]/1000;
b=m[i]%1000/100;
c=m[i]%100/10;
d=m[i]%10;
if(a==d&
c==b)
m[i]<
n++;
Q18.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。
n=225
intn=0,i=1;
while(n<
200)
n=n+i;
i++;
n="
Q19.(10分)从键盘上输入三个整数,编写程序求出三个数中的最大值。
输入格式要求:
请输入三个整数:
最大值是:
max<
intmain()
inta,b,c,t,max;
a>
b>
c;
b)
t=a;
a=b;
b=t;
c)
a=c;
c=t;
max=a;
Q20.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。
请输入年份和月份:
year<
年"
month<
月"
是"
day<
天。
intyear,month,day;
year>
month;
switch(month)
case8:
case10:
case12:
day=31;
case9:
case11:
day=30;
if(year%400==0||year%4==0&
year%100!
=0)
day=29;
day=28;
}
Q21.(10分)
编写程序,求解下面的分段函数:
cout
请输入x:
y="
y
doublex,y;
cin>
x;
if(x>
-10&
x<
0)y=x-8;
if(x==0)
y=x;
0&
10)y=x*x;
y<
Q22.(10分)用“辗转相除方法”计算两个数x,y的最大公约数。
无,直接输入
无,直接输出结果
intx,y,n;
x>
y;
n=x%y;
while(n!
x=y;
y=n;
y<
Q23.(10分)利用选择法将下面10个数按降序排列。
有如下定义:
intn[10]={5,6,4,2,3,7,8,5,6,7};
以逗号分隔降序数列
intn[10]={5,6,4,2,3,7,8,5,6,7},i,j,k,t;
9;
k=i;
for(j=i+1;
if(n[k]<
n[j])
k=j;
t=n[i];
n[i]=n[k];
n[k]=t;
for(j=0;
n[j]<
"
Q24.(10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的人数k,用-1做结束标志。
高于平均分的人数:
k<
doublecj[20],aver,sum=0;
intn=0,k=0,i;
cj[0];
while(cj[n]>
sum+=cj[n];