1、C语言编程实验 C语言实验习题7-1?输出图形(10?分)编写程序输出图形。第一行输出12个$,第二行先输出3个空格,然后再输出hello!,第三行输出12个$输入样例:无输入输出样例:$ hello!$代码:#include int main() printf($n hello!n $n); return 0 ;7-5?计算华氏温度(5?分)本题要求编写程序,计算摄氏温度26C 对应的华氏温度。计算公式:F=9C/5+32,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。输入格式:本题目没有输入。输出格式:按照下列格式输出celsius = 26, fahr = 对应的华氏温度整数
2、值代码:#include int main() int f; int c; c=26; f=9*c/5+32; printf(celsius = 26, fahr = %d,f); return 0 ;7-9?逆序的三位数(10?分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321代码:#include int main() int n,a,b,c; scanf(%d,&n); a=n/100; b=n/10-
3、a*10; c=n-a*100-b*10; int d; d=a+b*10+c*100; printf(%d,d); return 0 ;7-10?整数四则运算(10?分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。输入格式:输入在一行中给出2个正整数A和B。输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。输入样例:3 2输出样例:3 + 2 = 53 - 2 = 13 * 2 = 63 / 2 = 1代码:#include int main() int A,B; scanf(%d %d,&A,&B); int c,
4、d,e,f; c=A+B; d=A-B; e=A*B; f=A/B; printf(%d + %d = %dn %d - %d = %dn %d * %d = %dn %d / %d = %dn,A,B,c,A,B,d,A,B,e,A,B,f); return 0 ; 7-11?求整数均值(10?分)本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。输入样例:1 2 3 4输出样例:Sum =
5、 10; Average = 2.5代码:#include int main() int a = 1, b = 1, c = 1, d = 1; double average = 1.0; scanf (%d %d %d %d, &a, &b,&c,&d); int Average; average = (double) (a + b + c + d) / 4; int sum; sum=a+b+c+d; printf (Sum = %d; Average = %.1lfn,sum, average); return 0;7-1?三天打鱼两天晒网(15?分)中国有句俗语叫“三天打鱼两天晒网”。
6、假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34代码:#include int main() int N,b; N=1000; scanf(%d,&N); b=N%5; if (b=4|b=0) printf(Drying in day
7、%d,N); else printf(Fishing in day %d,N); return 0;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 int main() int n; scanf(%d,&n); n0?(pr
8、intf(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 = 应付电费值”;若用电量
9、小于0,则输出Invalid Value!。输入样例1:10输出样例1:cost = 5.30输入样例2:100输出样例2:cost = 55.50代码:#include int main() int a; double b; scanf (%d,&a); if (a=0&a50.0) b=(0.58*(a-50)+26.5); printf(cost = %.2lfn,b);7-4?计算油费(15?分)现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。本题要求编写
10、程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。输入格式:输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。输出格式:在一行中输出应付款额,保留小数点后2位。输入样例:40 97 m输出样例:301.34代码:#include #include int main() int a,b; double m1,m2; char c; scanf(%d %d %c,&a,&b,&c); switch(b) case 90: m1=6.95*a;
11、break; case 93: m1=7.44*a; break; case 97: 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个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为
12、+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。输入样例1:-7 / 2输出样例1:-3输入样例2:3 & 6输出样例2:ERROR代码:#include #include int main() int a,b,d; char c; 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,
13、a*b);break; case /: printf(%d,a/b);break; case %: printf(%d,a%b);break; else printf(ERROR);7-1?生成3的乘方表(15?分)输入一个非负整数n,生成一张3的乘方表,输出3?0?3?n?的值。可调用幂函数计算3的乘方。输入格式:输入在一行中给出一个非负整数n。输出格式:按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。输入样例:3输出样例:pow(3,0) = 1pow(3,1) = 3pow(3,2) = 9pow(3,3) = 2
14、7代码:#include #include int main() int n,i,result; scanf(%d,&n); for(i=0;i=n;i+) result=pow(3,i); printf(pow(3,%d) = %dn,i,result); 7-2?奇偶分家(15?分)给定N个正整数,请统计奇数和偶数各有多少个?输入格式:输入第一行给出一个正整N(1000);第2行给出N个正整数,以空格分隔。输出格式:在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。输入样例:988 74 101 26 15 0 34 22 77输出样例:3 6代码:#include int ma
15、in() int n,i,g,k,a=0,b=0; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&g); if(n1000) continue; k=g%2; switch(k) case 1: a+;break; case 0: b+;break; printf(%d %d,a,b); return 0;7-3?找出最小值(15?分)本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。输入样例:4 -2 -123 1
16、00 0输出样例:min = -123代码:#include #include int main() int i,m,n; scanf(%d,&n); int an; if(n1) ; else for (i=0;in;i+) scanf(%d,&ai); m=a0; for (i=0;iai) m=ai; printf(min = %d,m);7-4?求平方根序列前N项和(15?分)本题要求编写程序,计算平方根序列?1?+?2?+?3?+?的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式
17、输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:10输出样例:sum = 22.47代码:#include #include int main() int i,n; double sum=0; scanf(%d,&n); for(i=1;i=n;i+) sum+=sqrt(i); printf(sum = %.2lf,sum);7-5?统计学生平均成绩与及格人数(15?分)本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。输入格式:输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即
18、这N位学生的成绩,其间以空格分隔。输出格式:按照以下格式输出:average = 成绩均值count = 及格人数其中平均值精确到小数点后一位。输入样例:577 54 92 73 60输出样例:average = 71.2count = 4代码:#include main() int n, i, a, count = 0, sum = 0; float d; scanf(%d, &n); if ( n = 0) printf(average = 0.0n); printf(count = 0); else for (i = 0; i = 60) count+; d = (float)sum /
19、(float) n; printf(average = %.1fn, d); printf(count = %d, count); 7-6?寻找250(15?分)对方不想和你说话,并向你扔了一串数 而你必须从这一串数字中找到“250”这个高大上的感人数字。输入格式:输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。输出格式:在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。输入样例:888 666 123 -233 250 13 250 -222输出样例:5代码: #include #include
20、 int main() int i,n,m; for (i=1;i+) scanf(%d,&n); if(n=250) break; m=i; printf(%d,m);7-7?猴子吃桃问题(15?分)一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1N10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3输出样例:10代码:#include #include int
21、main() int a,b,n; scanf(%d,&n); a=pow(2,n-1); printf(%d,3*a-2);7-8?大笨钟(15?分)微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲112下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间
22、包括在内),笨钟是不敲的。下面就请你写个程序,根据当前时间替大笨钟敲钟。输入格式:输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。输出格式:根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:Only hh:mm. Too early to Dang.其中hh:mm是输入的时间。输入样例1:19:05输出样例1:DangDangDangDangDangDangDangDang输入样例2:07:05输出样例2:Only 07:05. Too early to Dang.代码:#include #inclu
23、de int main() int a,b,n,i; char c; scanf(%2d%c%2d,&a,&c,&b); if(a=0&a=11)|(a=12&b=0) printf(Only %02d:%02d. Too early to Dang.,a,b); else if(b=0) for(i=0;ia-12;i+) printf(Dang); else if(b!=0) for(i=0;ia-11;i+) printf(Dang);7-9?输出三角形字符阵列(15?分)本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式:输入在一行中给出一个正整数n(1n7)。输
24、出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。输入样例:4输出样例:A B C D E F G H I J代码:#include #include int main() char a=A; int n,i,j,b; scanf(%d,&n); if(n=1&n7) 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 ; return 0;7-10?跟奥巴马一起画方块(15?分)美国总统奥巴马不仅呼吁所有人都
25、学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3N21)和组成正方形边的某种字符C,间隔一个空格。输出格式:输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。输入样例:10 a输出样例:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa代码:#include #include int main() int i,j,N; char c; scanf(%d %c,&N,&c); if(N=3&N=21) for(i=0;i(int)(N+1)/2;i+) for(j=0;jN;j+) printf(%c,c); printf(n); else ; return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1