C语言编程实验.docx
- 文档编号:29876857
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:25
- 大小:21.95KB
C语言编程实验.docx
《C语言编程实验.docx》由会员分享,可在线阅读,更多相关《C语言编程实验.docx(25页珍藏版)》请在冰豆网上搜索。
C语言编程实验
C语言实验习题
7-1?
输出图形(10?
分)
编写程序输出图形。
第一行输出12个$,第二行先输出3个空格,然后再输出hello!
,第三行输出12个$
输入样例:
无输入
输出样例:
$$$$$$$$$$$$
hello!
$$$$$$$$$$$$
代码:
#include
intmain()
{
printf("$$$$$$$$$$$$\n"
"hello!
\n"
"$$$$$$$$$$$$\n");
return0;
}
7-5?
计算华氏温度(5?
分)
本题要求编写程序,计算摄氏温度26°C对应的华氏温度。
计算公式:
F=9×C/5+32,式中:
C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
celsius=26,fahr=对应的华氏温度整数值
代码:
#include
intmain()
{
intf;
intc;
c=26;
f=9*c/5+32;
printf("celsius=26,fahr=%d",f);
return0;
}
7-9?
逆序的三位数(10?
分)
程序每次读入一个正3位数,然后输出按位逆序的数字。
注意:
当输入的数字含有结尾的0时,输出不应带有前导的0。
比如输入700,输出应该是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
输入样例:
123
输出样例:
321
代码:
#include
intmain()
{
intn,a,b,c;
scanf("%d",&n);
a=n/100;
b=n/10-a*10;
c=n-a*100-b*10;
intd;
d=a+b*10+c*100;
printf("%d",d);
return0;
}
7-10?
整数四则运算(10?
分)
本题要求编写程序,计算2个正整数的和、差、积、商并输出。
题目保证输入和输出全部在整型范围内。
输入格式:
输入在一行中给出2个正整数A和B。
输出格式:
在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。
输入样例:
32
输出样例:
3+2=5
3-2=1
3*2=6
3/2=1
代码:
#include
intmain()
{
intA,B;
scanf("%d%d",&A,&B);
intc,d,e,f;
c=A+B;
d=A-B;
e=A*B;
f=A/B;
printf("%d+%d=%d\n"
"%d-%d=%d\n"
"%d*%d=%d\n"
"%d/%d=%d\n",A,B,c,A,B,d,A,B,e,A,B,f);
return0;
}
7-11?
求整数均值(10?
分)
本题要求编写程序,计算4个整数的和与平均值。
题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum=和;Average=平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
1234
输出样例:
Sum=10;Average=2.5
代码:
#include
intmain()
{
inta=1,b=1,c=1,d=1;
doubleaverage=1.0;
scanf("%d%d%d%d",&a,&b,&c,&d);
intAverage;
average=(double)(a+b+c+d)/4;
intsum;
sum=a+b+c+d;
printf("Sum=%d;Average=%.1lf\n",sum,average);
return0;
}
7-1?
三天打鱼两天晒网(15?
分)
中国有句俗语叫“三天打鱼两天晒网”。
假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“indayN”。
输入样例1:
103
输出样例1:
Fishinginday103
输入样例2:
34
输出样例2:
Dryinginday34
代码:
#include
intmain()
{
intN,b;
N<=1000;
scanf("%d",&N);
b=N%5;
if(b==4||b==0)
printf("Dryinginday%d",N);
else
printf("Fishinginday%d",N);
return0;
}
7-2?
计算符号函数的值(15?
分)
对于任一整数n,符号函数sign(n)的定义如下:
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n)=函数值”输出该整数n对应的函数值。
输入样例1:
10
输出样例1:
sign(10)=1
输入样例2:
0
输出样例2:
sign(0)=0
输入样例3:
-98
输出样例3:
sign(-98)=-1
代码:
#include
intmain()
{
intn;
scanf("%d",&n);
n<0?
(printf("sign(%d)=-1",n)):
n==0?
(printf("sign(%d)=0",n)):
printf("sign(%d)=1",n);
}
7-3?
阶梯电价(15?
分)
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:
月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。
请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:
千瓦时)。
输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:
“cost=应付电费值”;若用电量小于0,则输出"InvalidValue!
"。
输入样例1:
10
输出样例1:
cost=5.30
输入样例2:
100
输出样例2:
cost=55.50
代码:
#include
intmain()
{
inta;
doubleb;
scanf("%d",&a);
if(a<0)
printf("InvalidValue!
\n");
elseif(a>=0&&a<=50.0)
{b=(0.53*a);
printf("cost=%.2lf\n",b);}
elseif(a>50.0)
{b=(0.58*(a-50)+26.5);
printf("cost=%.2lf\n",b);}
}
7-4?
计算油费(15?
分)
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。
为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m-自助,e-协助),计算并输出应付款。
输入格式:
输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m-自助,e-协助)。
输出格式:
在一行中输出应付款额,保留小数点后2位。
输入样例:
4097m
输出样例:
301.34
代码:
#include
#include
intmain()
{
inta,b;
doublem1,m2;
charc;
scanf("%d%d%c",&a,&b,&c);
switch(b)
{
case90:
m1=6.95*a;break;
case93:
m1=7.44*a;break;
case97:
m1=7.93*a;break;
}
switch(c)
{
case('m'):
m2=0.95*m1;break;
case('e'):
m2=0.97*m1;break;
}
printf("%.2lf",m2);
}
7-5?
两个数的简单计算器(15?
分)
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。
题目保证输入和输出均不超过整型范围。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。
操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。
若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。
输入样例1:
-7/2
输出样例1:
-3
输入样例2:
3&6
输出样例2:
ERROR
代码:
#include
#include
intmain()
{
inta,b,d;
charc;
scanf("%d%c%d",&a,&c,&b);
if(c=='+'||c=='-'||c=='*'||c=='/'||c=='%')
switch(c)
{
case'+':
printf("%d",a+b);break;
case'-':
printf("%d",a-b);break;
case'*':
printf("%d",a*b);break;
case'/':
printf("%d",a/b);break;
case'%':
printf("%d",a%b);break;
}
else
printf("ERROR");
}
7-1?
生成3的乘方表(15?
分)
输入一个非负整数n,生成一张3的乘方表,输出30?
~3n?
的值。
可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i)=3的i次幂的值”。
题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0)=1
pow(3,1)=3
pow(3,2)=9
pow(3,3)=27
代码:
#include
#include
intmain()
{
intn,i,result;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
result=pow(3,i);
printf("pow(3,%d)=%d\n",i,result);
}
}
7-2?
奇偶分家(15?
分)
给定N个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N(≤1000);第2行给出N个正整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。
中间以1个空格分隔。
输入样例:
9
887410126150342277
输出样例:
36
代码:
#include
intmain()
{
intn,i,g,k,a=0,b=0;
scanf("%d",&n);
for(i=0;i { scanf("%d",&g); if(n<0||n>1000)continue; k=g%2; switch(k) { case1: a++;break; case0: b++;break; } } printf("%d%d",a,b); return0; } 7-3? 找出最小值(15? 分) 本题要求编写程序,找出给定一系列整数中的最小值。 输入格式: 输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。 输出格式: 在一行中按照“min=最小值”的格式输出n个整数中的最小值。 输入样例: 4-2-1231000 输出样例: min=-123 代码: #include #include intmain() { inti,m,n; scanf("%d",&n); inta[n]; if(n<1); else for(i=0;i scanf("%d",&a[i]); m=a[0]; for(i=0;i { if(m>a[i]) m=a[i]; } printf("min=%d",m); } 7-4? 求平方根序列前N项和(15? 分) 本题要求编写程序,计算平方根序列√? 1? ? ? +√? 2? ? ? +√? 3? ? ? +? 的前N项之和。 可包含头文件math.h,并调用sqrt函数求平方根。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum=S”的格式输出部分和的值S,精确到小数点后两位。 题目保证计算结果不超过双精度范围。 输入样例: 10 输出样例: sum=22.47 代码: #include #include intmain() { inti,n; doublesum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum+=sqrt(i); } printf("sum=%.2lf",sum); } 7-5? 统计学生平均成绩与及格人数(15? 分) 本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。 题目保证输入与输出均在整型范围内。 输入格式: 输入在第一行中给出非负整数N,即学生人数。 第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。 输出格式: 按照以下格式输出: average=成绩均值 count=及格人数 其中平均值精确到小数点后一位。 输入样例: 5 7754927360 输出样例: average=71.2 count=4 代码: #include main() { intn,i,a,count=0,sum=0; floatd; scanf("%d",&n); if(n==0) { printf("average=0.0\n"); printf("count=0"); } else { for(i=0;i { scanf("%d",&a); sum=sum+a; if(a>=60) count++; } d=(float)sum/(float)n; printf("average=%.1f\n",d); printf("count=%d",count); } } 7-6? 寻找250(15? 分) 对方不想和你说话,并向你扔了一串数……而你必须从这一串数字中找到“250”这个高大上的感人数字。 输入格式: 输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。 输出格式: 在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。 题目保证输出的数字在整型范围内。 输入样例: 888666123-23325013250-222 输出样例: 5 代码: #include #include intmain() { inti,n,m; for(i=1;;i++) { scanf("%d",&n); if(n==250) break; } m=i; printf("%d",m); } 7-7? 猴子吃桃问题(15? 分) 一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半加一个。 到第N天早上想再吃时,见只剩下一个桃子了。 问: 第一天共摘了多少个桃子? 输入格式: 输入在一行中给出正整数N(1 输出格式: 在一行中输出第一天共摘了多少个桃子。 输入样例: 3 输出样例: 10 代码: #include #include intmain() { inta,b,n; scanf("%d",&n); a=pow(2,n-1); printf("%d",3*a-2); } 7-8? 大笨钟(15? 分) 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。 不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。 一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。 另外,虽然一天有24小时,钟却是只在后半天敲1~12下。 例如在23: 00敲钟,就是“当当当当当当当当当当当”,而到了23: 01就会是“当当当当当当当当当当当当”。 在午夜00: 00到中午12: 00期间(端点时间包括在内),笨钟是不敲的。 下面就请你写个程序,根据当前时间替大笨钟敲钟。 输入格式: 输入第一行按照hh: mm的格式给出当前时间。 其中hh是小时,在00到23之间;mm是分钟,在00到59之间。 输出格式: 根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。 如果不是敲钟期,则输出: Onlyhh: mm.TooearlytoDang. 其中hh: mm是输入的时间。 输入样例1: 19: 05 输出样例1: DangDangDangDangDangDangDangDang 输入样例2: 07: 05 输出样例2: Only07: 05.TooearlytoDang. 代码: #include #include intmain() { inta,b,n,i; charc; scanf("%2d%c%2d",&a,&c,&b); if((a>=0&&a<=11)||(a==12&&b==0)) printf("Only%02d: %02d.TooearlytoDang.",a,b); elseif(b==0) for(i=0;i printf("Dang"); elseif(b! =0) for(i=0;i printf("Dang"); } 7-9? 输出三角形字符阵列(15? 分) 本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。 输入格式: 输入在一行中给出一个正整数n(1≤n<7)。 输出格式: 输出n行由大写字母A开始构成的三角形字符阵列。 格式见输出样例,其中每个字母后面都有一个空格。 输入样例: 4 输出样例: ABCD EFG HI J 代码: #include #include intmain() { chara='A'; intn,i,j,b; scanf("%d",&n); if(n>=1&&n<7) { for(i=1;i<=n;i++) { for(j=1;j<=n+1-i;j++) {b=(2*n+2-i)*(i-1)/2+j; printf("%c",a+b-1);} printf("\n"); } } else; return0; } 7-10? 跟奥巴马一起画方块(15? 分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。 2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码: 在屏幕上画一个正方形。 现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。 输出格式: 输出由给定字符C画出的正方形。 但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。 输入样例: 10a 输出样例: aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa 代码: #include #include intmain() { inti,j,N; charc; scanf("%d%c",&N,&c); if(N>=3&&N<=21) { for(i=0;i<(int)(N+1)/2;i++) { for(j=0;j printf("%c",c); printf("\n"); } } else; return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 实验