作业一
2.2 完成流程图
本流程图用来计算一个英文句子中最长单词的长度(字母个数)MAX的。假设该英文句子中只包含字母和空格,在空格之间连续的字母串称为单词,句子以“.”为结尾。
2.5 算法设计题
求1!+2!+3!+ (10)
要求:简述算法原理并用流程图表示。
int i,j;
int sum=0;
for(i=1;i<=10;i++)
{
int n=1;
for(j=1;j<=I;j++)
n=n*j;
sum+=n;
}
2.9用流程图表示算法:已知一个圆球的半径,求该圆球的体积。
double r,V;
scanf(“请输入球的半径%f”,&r);
V=4/3*3.14*r*r*r;
printf(“体积为%f\n”,V);
2.13 写出下列程序的运行结果。
(1)main()
{
int x=2000;
printf(“*%-06d*\n”,x);
}
*2000 *
(2)main()
{
int x=10,y=20;
printf(“x=%%d,b=%%d\n”,x,y);
}
x=%d,b=%d
(3)main()
{
double a=2.2,b=-3.0;
printf(“%6.2f, %6.2f, %6.2f\n”,fabs(a),fabs(b),fabs(a)*fabs(b));
}
2.20,
3.00, 6.60
3.1选择题
(1) 若x,i,j和k都是型变量,则计算下面的表达式后,x的值为(C )。x=(i=4,j=16,k=32)
A.4 B.16
C.32 D.52
(2)下面四组选项中,均不是C语言关键字的选项是(A)。
A. define IF type
B. switch char printf
C. include scanf case
D. while go pow
(3)已知字母A的ASCII码值为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后,c2中的值为(A)。
A.D
B.68
C.不确定的值
D.C
3.2 填空题
(1)在C语言中,一个char型数据在内存中所占的字节数为1;一个int型数据在内存中所占的字节数为2。
(2)如果a,b和c均是int型变量,则计算表达式后,a的值为 6 ,b的值为4,c的值为2。
a=(b=4)+(c=2)
(3)如果a是int型变量,则计算表达式后a的值为2。
a=25/3%3
3.3 程序题
(1)写出程序运行结果。
main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
9,11,9,10
(2)请编程计算圆柱体的体积,其中半径和圆柱高由键盘输入。
#define PI 3.1415926
main()
{
float r,h,V;
scanf(“请输入圆柱体的半径:%f”,&r);
scanf(“请输入圆柱体的高:%f”,&h);
V=PI*r*r*h;
printf(“圆柱体的体积为%f\n”,V);
}
(3)写出下列程序的输出结果。
#include “stdio.h”
main()
{
int a=3,b,c;
b=(a++)+(a++)+(a++);
printf(“%d,%d\n”,a,b);
c=(++a)+(++a)+(++a);
printf(“%d,%d\n”,a,c);
}
6,9
9,27
(4)写出下面程序的运行结果。
#include “stdio.h”
main()
{
int i,j;
i=3;
printf(“%d,\n”,i);
i*=2+5;
printf(“%d\n”,i);
i/=j=4;
printf(“%d,%d\n”,i,j);
}
3,
21
5,4
(5)写出下面程序的运行结果。
#include “stdio.h”
main()
{
float a=2.3,b=4.7;
int c,d;
c=(a>b);
printf(“%d “,c);
d=(c==0);
printf(“%d “,c);
}
0 0
作业二
4.1 选择题
(1)在下列运算符中,优先级最低的是 A 。
A.||
B.!=
C.<=
D.+
(2)表达式10!=9的值是 D 。
A.true
B.非零值
C.0
D.1
(3)设x,y,z,t均为int型变量,则执行以下语句后,y的值是C。
x=y=z=1;
t=++x||++y&&++z;
A.不定值
B.2
C.1
D.0
(4)下面的程序片段执行后,n的值是 C 。
int a=5,b=6,c=7,d=8,m=2,n=2;
if((m=a>b)&&(n=c>d))
printf(“*****\n”);
A.0
B.1
C.2
D.3
4.3 编程题
(1)给三角形的三个边长a,b,c输入数据,判断是否能够成三角形,若能构成三角形,则输出此三角形的面积。求三角形面积公式是:area=,其中
s=(a+b+c)/2。
#include
#include
#include
void main(void)
{
float a,b,c;
printf("请输入三角形的边长(用‘,’隔开)\n");;
scanf("%f,%f,%f",&a,&b,&c);
if((a+b)>c&&(a+c)>b&&(b+c)>a)
{
float s;
float avg;
avg=(a+b+c)/2;
s=sqrt(avg*(avg-a)*(avg-b)*
(avg-c));
printf("以%.2f,%.2f,%.2f为边的三角形的面积为:%.2f\n",a,b,c,s);
}
else
{
printf("以%.2f,%.2f,%.2f做为三角形的边长不能构成一个三角形!\n",a,b,c);
}
}
(2)输入年、月,输出该月有几天。
#include "stdio.h"
void main(void)
{
int mon_p[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int mon_r[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int year,month;
scanf("%d %d",&year,&month);
if((year%4==0&&year%100!=0)||year%400==0)
printf("%d年%d月有%d天!",year,month,mon_r[month-1]);
else
printf("%d年%d月有%d天!",year,month,mon_p[month-1]);
}
(3)输入一个正整数x,若x满足0 void main(void) { long num; int place=0; printf("请输入一个正整数:"); scanf("%ld",&num); if(num>=32768||num=<0) { printf("\n输入有误,请重新输入:"); scanf("%ld",&num); } else { while (num>10) { num=num%10; ++place; } printf("位数为:%d,个数位为:%d",place,num); } } (4)某商场给予顾客购物的折扣率如下: 购物金额<200 不打折 200<=购物金额<=500 9折 500<=购物金额<=1000 8折 1000<购物金额7.5折 输入一个购物金额,输出打折率、购物实际付款金额。 #include "stdio.h" void main(void) { long price; printf("请输入购物金额:"); scanf("%ld",&price); if(price<200) { printf("不打折,应付金额为%ld:",price); } else if(price>=200&&price<=500) { printf("打9折,应付金额为%ld:",price*0.9); } else if(price>=500&&price<=1000) { printf("打8折,应付金额为%ld:",price*0.8); } else if(price>1000) { printf("打7.5折,应付金额为%ld:",price*0.75); } } (5)对一批货物征收税金,价格在1万元以上的货物征税5%,在5000元以上、1万元以下的货物征税3%,在1000元以上、5000以下的货物征税3%,1000以下的货物征税1%。编写程序,输入货物价格,输出税金。 #include "stdio.h" void main(void) { long price; printf("请输入货物价格:"); scanf("%ld",&price); if(price<1000) { printf("税金为%ld:",price*0.01); } else if(price>=1000&&price<=5000) { printf("税金为%ld:",price*0.02); } else if(price>=5000&&price<=10000) { printf("税金为%ld:",price*0.03); } else if(price>10000) { printf("税金为%ld:",price*0.05); } } (6)编写程序,输入3个字母,按字母表顺序从小到大输出这3个字母。#incldue void main() { char a,b,c,t; scanf("%c%c%c",&a,&b,&c); if (a>b) {t=a;a=b;b=t;} if (a>c) {t=a;a=c;c=t;} if (b>c) {t=c;c=b;b=t;} printf("%c %c %c\n",a,b,c); } (7)有3个整数a,b,c由键盘输入,输出其中最大数和最小数。 #incldue void main(){ int a,b,c,max,min; printf("input three numbers: "); scanf("%d%d%d",&a,&b,&c); if(a>b) {max=a;min=b;} else {max=b;min=a;}