1
C/C ++程序设计
1.2.4.5 4.5 练习题

4.5 练习题

一、简答题

(1)C语言中有哪几种语句类型?

(2)C语言中的输入和输出如何实现?

(3)指出下列代码中的错误。

①int m,n;

scanf("%d%d",m,n);

②double a;

float b;

scanf("%f%f",&a,&b);

③float f=6.78;

printf("%d",f);

④float a=25.891;

printf("%5.2f",&a);

⑤int x,y;

scanf(&x,&y,"%d%d");

(4)为下列声明语句编写正确的scanf()函数调用语句。

①char ch;

②double num;

③int n1,n2,n3;

④float f1,f2;

⑤char c;

int number;

(5)写出下列语句的运行结果。

①int a=8,b=3;

printf("%3d,%3d,%3d\n",a,b,a/b);

②char ch1=ˊEˊ,ch2=ˊTˊ;

printf("e%ct%c",ch1,ch2);

③printf("%d,%d",2,4);

printf("%4d%4d",2,4);

④printf("%5.2f",1.2345);

printf("%5.2f",12.345);

⑤printf("The output is%6.2f\n",581.332);

(6)自己命名变量并写出下列问题所对应的C表达式。

①一个人的身高位于170cm和180cm之间。

②一个人是男性且年龄大于50岁。

③成绩高于70但低于90。

④输入的字符为w。

⑤a与b的和大于c。

(7)为下列每种情况编写合适的if语句。

①如果成绩高于或等于90分,输出提示信息“成绩优秀!”。

②如果一个整数为负整数则提示出错。

③如果输入字符为123,提示登录成功,否则提示密码错误。

(8)写出运行结果。

img152

img153

img154

img155

(9)C程序中循环语句有几种?可以分成哪两类?这两类循环的区别是什么?

(10)break语句和continue语句的作用是什么?有什么区别?

二、程序题

(1)编写一个C程序,要求用户输入华氏温度后转换为对应的摄氏温度输出。转换公式为C=(F-32)/1.8,其中C为摄氏温度,F代表华氏温度。

(2)已知三角形的三边长分别为a、b、c,利用海伦公式计算其面积。要求从键盘输入三角形的三边长。海伦公式为:三角形面积=img156

(3)编写一个C程序,在用户输入半径之后计算并显示这个圆的面积和周长。

(4)从键盘输入一个整数m,判断它是不是素数。

(5)编程将200以内能被3整除但不能被5整除的整数全部输出,要求输出的整数每4个整数占一行。

(6)在屏幕上显示一张日期表如下所示:

img157

用户根据提示进行选择,程序输出对应的提示信息。例如,用户输入的是3,则输出“Wednesday”。

(7)用户输入某个年份和月份,输出该年的该月份有多少天。(提示:需要判断该年是否为闰年。)

(8)编程求所有的水仙花数。注:水仙花数为3位数,且各位数字的立方和等于这个数本身。例如,153为一个水仙花数,因为153=13+53+33

(9)编程求300以内的完数。注:完数即该数恰好等于它的各个因子之和。例如,6=1+ 2+3为一个完数。

(10)编程求1~8的阶乘的和。

(11)对于下列函数:

img158

编写C程序,要求输入x的值后输出对应的y的值。

①使用if语句(不带嵌套)。

②使用if语句(带嵌套)。

③使用switch语句。

(12)求数列

img159

前10项的和。

(13)鸡兔同笼问题:已知笼子中共有98个头,386只脚。计算笼子中鸡的数量和兔子的数量。

(14)已知数组int a[8]={23,45,2,67,1,90,36,87},利用循环编写程序查找90是否存在于这个数组中。

(15)分别利用冒泡排序算法和选择排序算法对10个数据进行排序。