计算机二级c语言上机试题库.docx
《计算机二级c语言上机试题库.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言上机试题库.docx(52页珍藏版)》请在冰点文库上搜索。
计算机二级c语言上机试题库
40003求x的n次幂
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个正实数x和1个正整数n(n<=50),计算并输出x的n次幂(保留2位小数)。
例:
括号内是说明
输入
2(repeat=2)
1.52
2.010
输出
2.25
1024.00
#include
intmain()
{
intri,repeat;
inti,n;
doublex,mypow;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%d",&x,&n);
/*---------*/
printf("%.2f\n",mypow);
}
}
40004求1-1/2+1/3-1/4+……
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+……的前n项和(保留3位小数)。
例:
括号内是说明
输入
2(repeat=2)
10
3
输出
0.646
0.833
#include
intmain()
{
intri,repeat;
inti,n,flag;
floatsum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%.3f\n",sum);
}
}
40005求1+1/3+1/5+1/7+……
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个正整数n(n<=100),计算并输出1+1/3+1/5+1/7+……的前n项和(保留3位小数)。
例:
括号内是说明
输入
2(repeat=2)
10
3
输出
2.133
1.533
#include
intmain()
{
intri,repeat;
inti,n,temp;
floatsum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%.3f\n",sum);
}
}
40006求1-1/3+1/5-1/7+……
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps(保留6位小数)。
例:
括号内是说明
输入
2(repeat=2)
1E-4
0.1
输出
0.785348
0.834921
#include
#include
intmain()
{
intri,repeat;
inttemp,flag;
doubleeps,item,sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%le",&eps);
/*---------*/
printf("%.6f\n",sum);
}
}
40007摄氏温度和华氏温度转换表
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。
F=32+C*9/5
输出语句:
printf("%d%10d\n",c,f);
例:
括号内是说明
输入
1(repeat=1)
57
输出
CelsiusFahrenheit
541
642
744
#include
intmain()
{
intri,repeat;
intbegin,c,end,f;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&begin,&end);
printf("CelsiusFahrenheit\n");
/*---------*/
}
}
40008求奇数和
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入一批正整数(以零或负数为结束标志),求其中的奇数和。
例:
括号内是说明
输入
2(repeat=2)
139070
87437056101-1
输出
11
116
#include
intmain()
{
intri,repeat;
intx,sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&x);
/*---------*/
printf("%d\n",sum);
}
}
40009求最大值
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个正整数n,再输入n个整数,输出最大值。
例:
括号内是说明
输入
3(repeat=3)
42123-1000
491-18
3135
输出
123
9
5
#include
intmain()
{
intri,repeat;
inti,max,n,x;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%d\n",max);
}
}
40010求整数的位数以及各位数之和
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个整数,输出它的位数以及各位数之和。
例:
括号内是说明
输入
4(repeat=4)
123456-100-199
输出
number=6,sum=21(123456的位数是6,各位数之和是21)
number=3,sum=1(-100的位数是3,各位数之和是1)
number=1,sum=1(-1的位数是1,各位数之和是1)
number=2,sum=18(99的位数是2,各位数之和是18)
#include
intmain()
{
intri,repeat;
intnumber,sum;
longin;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld",&in);
/*---------*/
printf("number=%d,sum=%d\n",number,sum);
}
}
40011求2/1+3/2+5/3+8/5+...
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个正整数n,输出2/1+3/2+5/3+8/5+...的前n项之和,保留2位小数。
(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
例:
括号内是说明
输入
3(repeat=3)
1520
输出
2.00(第1项是2.00)
8.39(前5项的和是8.39)
32.66(前20项的和是32.66)
#include
intmain()
{
intri,repeat;
inti,n;
floata,b,s,t;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%.2f\n",s);
}
}
40012求a+aa+aaa+aa…a
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。
例:
括号内是说明
输入
2(repeat=2)
23(a=2,n=3)
85(a=8,n=5)
输出
246(2+22+222)
98760(8+88+888+8888+88888)
#include
voidmain()
{
intri,repeat;
inti,n;
longinta,sn,tn;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld%d",&a,&n);
/*---------*/
printf("%ld\n",sn);
}
}
40013判断素数
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个正整数m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
例:
括号内是说明
输入
4(repeat=4)
12917
输出
NO(1不是素数)
YES(2是素数)
NO(9不是素数)
YES(17是素数)
#include
#include
intmain()
{
intri,repeat;
intflag,i,m,n;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&m);
/*---------*/
if(flag)printf("YES\n");
elseprintf("NO\n");
}
}
40014统计字符
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
例:
括号内是说明
输入
2(repeat=2)
Reoldbuildingroom123.
Programmingisfun
输出
letter=17,blank=3,digit=3,other=1
letter=16,blank=2,digit=0,other=0
#include
intmain()
{
intri,repeat;
intblank,digit,letter,other;
charc;
scanf("%d",&repeat);
getchar();
for(ri=1;ri<=repeat;ri++){
c=getchar();
/*---------*/
printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);
}
}
40021求1+1/2!
+....+1/n!
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入1个正整数n,计算s的前n项的和(保留4位小数)。
s=1+1/2!
+....+1/n!
例:
括号内是说明
输入:
2(repeat=2)
2(n=2)
10(n=10)
输出:
1.5000
1.7183
#include"stdio.h"
intmain()
{
intri,repeat;
inti,n;
floats,t;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%0.4f\n",s);
}
}
40022求各位数字的立方和等于它本身的数
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数。
输出语句:
printf("%d\n",i);
例:
括号内是说明
输入:
2(repeat=2)
100400(m=100,n=400)
1100(m=1,n=100)
输出:
153(1*1*1+5*5*5+3*3*3=153)
370(3*3*3+7*7*7=370)
371(3*3*3+7*7*7+1*1*1=371)
1
#include"stdio.h"
intmain()
{
intri,repeat;
inti,digit,m,n,number,sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
/*---------*/
}
}
40023统计素数并求和
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
例:
括号内是说明
输入:
3(repeat=3)
110(m=1,n=10)
2035(m=20,n=35)
1416(m=14,n=16)
输出:
count=4,sum=17(1到10之间有4个素数:
2,3,5,7)
count=3,sum=83(20到35之间有3个素数:
23,29,31)
count=0,sum=0(14到16之间没有素数)
#include"stdio.h"
#include"math.h"
intmain()
{
intri,repeat;
intcount,digit,i,j,k,m,n,sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
/*---------*/
printf("count=%d,sum=%d\n",count,sum);
}
}
40031统计单词(选作)
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一行字符,统计其中单词的个数。
各单词之间用空格分隔,空格数可以是多个。
例:
括号内是说明
输入
2(repeat=2)
Reoldbuildingroom123
Programmingisfun
输出
4
3
#include
intmain()
{
intri,repeat;
intcount,word;
charc;
scanf("%d",&repeat);
getchar();
for(ri=1;ri<=repeat;ri++){
c=getchar();
/*---------*/
printf("%d\n",count);
}
}
40032输出一个整数的各位数字(选作)
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个整数,从高位开始逐位输出它的各位数字。
输出语句:
printf("%-2d",digit);
例:
括号内是说明
输入
3(repeat=3)
123456
-600
8
输出
123456
600
8
#include
intmain()
{
intri,repeat;
intdigit;
longin,temp,pow;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld",&in);
/*---------*/
printf("\n");
}
}
40033简单计算器(选作)
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0程序模拟简单运算器的工作:
输入一个算式(没有空格),遇等号"="说明输入结束,输出结果。
假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
例:
括号内是说明
输入
2(repeat=2)
15+2/3=
1+2*10-10/2=
输出
5
10
#include
intmain()
{
intri,repeat;
intop1,op2,res;
charoperator;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&op1);
operator=getchar();
/*---------*/
printf("%d\n",res);
}
}
50001求1+1/2!
+....+1/n!
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入1个正整数n,计算s的前n项的和(保留4位小数)。
s=1+1/2!
+....+1/n!
要求定义并调用函数fact(n)计算n的阶乘。
例:
括号内是说明
输入:
2(repeat=2)
2(n=2)
10(n=10)
输出:
1.5000
1.7183
#include"stdio.h"
intmain()
{
intri,repeat;
inti,n;
doubles;
doublefact(intn);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%0.4f\n",s);
}
}
/*---------*/
50002求a+aa+aaa+aa…a
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。
要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。
例如,fn(3,2)的返回值是33。
例:
括号内是说明
输入
2(repeat=2)
23(a=2,n=3)
85(a=8,n=5)
输出
246(2+22+222)
98760(8+88+888+8888+88888)
#include
voidmain()
{
intri,repeat;
inti,n;
longa,sn;
longfn(longa,intn);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld%d",&a,&n);
/*---------*/
printf("%ld\n",sn);
}
}
/*---------*/
50003统计一个整数中数字的个数
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个整数,统计并输出该数中2的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。
例如,countdigit(10090,0)的返回值是3。
例:
括号内是说明
输入:
3(repeat=3)
-21902
2
345543
输出:
count=2(-21902中有2个2)
count=1(有1个2)
count=0(345543中没有2)
#include"stdio.h"
intmain()
{
intri,repeat;
intcount;
longin;
intcountdigit(longnumber,intdigit);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld",&in);
/*---------*/
printf("count=%d\n",count);
}
}
/*---------*/
5000