C语言作业Word文档格式.docx
- 文档编号:16650851
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:42
- 大小:111.82KB
C语言作业Word文档格式.docx
《C语言作业Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言作业Word文档格式.docx(42页珍藏版)》请在冰豆网上搜索。
15.购物优惠活动
(一)
若顾客购物不足100元,则不优惠;
购物达100元,按九折优惠。
输入购物款总额,输出付款金额(保留2位小数)。
16.解一元一次方程:
ax+b=0
输入系数a和常数b,输出方程的解。
要求:
讨论所有可能的情况,测试数据如下:
2x-1=0x=0.5
0x+2=0无解
0x+0=0无穷多解
17.求和
(一)
输入正整数n,计算并输出:
S=1+2+3+4+…+n
18.求和
(二)
作业3简单函数
19.求最大值和最小值
(一)
求两个整数x和y的最大值和最小值。
最大值函数:
intMax(intx,inty);
//例:
Max(3,5)=5
最小值函数:
intMin(intx,inty);
Min(3,5)=3
20.仔细观察ASCII码表,编写将小写字母转换为大写,和将大写字母转换为小写的函数。
转换为大写:
charToUpper(charx);
ToUpper('
P'
)='
ToUpper('
p'
+'
转换为小写:
charToLower(charx);
ToLower('
ToLower('
注:
这里只是练习。
C系统库中有toupper和tolower函数,需要使用头文件ctype.h。
21.正整数中的某位数字
求正整数x的最低位、最高位和第n位(由低位到高位从0开始计数)。
最低位函数:
intLowDigit(intx);
LowDigit(25173)=3
最高位函数:
intTopDigit(intx);
TopDigit(25173)=2
任意位函数:
intDigit(intx,intn);
Digit(25173,0)=3,Digit(25173,1)=7,Digit(25173,5)=0
提示:
25173mod10=3,C/C++的取模运算符为%,即25173%10=3。
22.正整数的位数
求正整数x的位数。
intLen(intx);
Len(25173)=5,Len(450)=3,Len(0)=1
23.玻璃彩球
从10个不同色彩的玻璃球中取出4个摆成一行,一共有多少种不同的摆法?
(答案:
5040)
intArrange(intm,intn);
Arrange(5,2)=20
24.阶乘和
输入正整数n,计算阶乘和:
1!
+2!
+3!
+…+n!
intSumOfFac(intn);
//SumOfFac(3)=9,SumOfFac(9)=153
作业4表达式
25.下列标识符的命名是否正确?
如果不正确,请说明原因。
short
high
single
double
integer
int
_int_
_001
Isaac_Newton
AlbertEinstein
Tom&
Jerry
Tom-and-Jerry
2x
x2
26.请用驼峰式命名法重命名下列标识符。
common_denominator
detail_estimate
greatest_common_divisor
is_leap_year
least_common_multiple
imaginary_part
real_part
total_cost
27.下列常量的写法是否正确?
如果正确,请写出其类型及占用内存字节数(按VC++6.0编译器计算),如果不正确,请指出错误原因并改正。
38
c:
\windows"
38.
'
\a'
38U
E3
3800E-2.0
ab'
No!
hesaid."
038
38.0
.38E2
.38
0x38
3E
\x7a'
\6A"
38F
Mary'
scar"
-38UL
\38'
3E8
28.按照作者的原意,下面的程序应该显示结果2。
请改正程序中的错误,使其得到正确的结果。
#include<
stdio.h>
#definea3+4;
#defineb2*a;
intmain()
{
printf("
%d\n"
28/b);
return0;
}
29.阅读下面的程序,分析程序中的错误并改正,然后写出程序的运行结果。
enumMYENUM
zero,one,two,three,first=1,second,third
};
MYENUMa=two,b=second;
%d%d\n"
a,b);
a=a+1;
b=b+1;
30.编写程序,输入一行字符(以换行结束),统计字母、数字和其它字符出现的频率。
作业5综合练习
31.已知:
inta=5,b=8;
试分析下列表达式的值,并上机验证:
a/b*10
a*10/b
32.已知:
doublea=1.0,b=196.0,c=98.0,d=2.0;
a/c*b-d
a*b/c-d
33.已知:
inta=1,b=2,x=3;
分析执行下面的语句后各变量的值,并上机验证:
x+=a++*b;
x+=++a*b;
34.书写C/C++表达式:
|x-a|
(a+b)3x
cos351832
2sincos
arctan2x
35.在你的计算机上找出最小的正实数,使你的计算机系统能区别1和1+。
36.求级数
创建头文件,用int定义整数类型INTEGER,用double定义实数类型REAL;
编写程序文件求下列级数:
REALPrg(INTEGERn);
Prg(4)=0.8
37.四舍五入
第一版:
将实数四舍五入为只有整数部分的实数。
doubleRound0(doublex);
Round(4.6)=5.0,Round0(4.1)=4.0;
Round0(-2.6)=-3.0
x值加/减0.5,后再利用floor或ceil函数取整。
第二版:
将实数四舍五入到小数点后第2位。
doubleRound2(doublex);
Round2(4.375)=4.38,Round2(-4.374)=-4.37
第三版:
将实数四舍五入到小数点后第n位。
doubleRound(doublex,intn);
Round(3.1548,0)=3,Round(-3.1548,3)=-3.155
作业6函数和指针
38.已知:
inta=3;
unsignedb=5;
分析下面的语句将如何执行,并上机验证:
if(a>
b)printf("
a>
b\n"
);
if(a-b>
0)printf("
a-b>
0\n"
39.已知:
intx=0;
if(-1<
x<
1)printf("
-1<
1\n"
if(x=1)printf("
x=1\n"
40.已知:
a=1,b=2;
c=a&
&
b++;
printf("
%d%d%d\n"
a,b,c);
c=a||b++;
a,b,c);
41.已知:
inta=1,b=2,c=3,d=4,x;
x=a>
b?
c++:
d++;
%d%d%d%d%d"
a,b,c,d,x);
x=a<
42.118.韩信点兵
(一)
求1000以内所有除以3余2,除以5余3,除以7余2的正整数。
源自《孙子算经》:
“今有物不知其数。
三三数之剩二,五五数之剩三,七七数之剩二。
问物几何?
”
编写下面的函数来判断整数是否符合条件。
intIsSpecial(intn);
IsSpecial(10)=0,IsSpecial(23)=1
43.判断素数(只能被1和该数本身整除的数称为素数,1不是素数,如:
2,3,5,7,…)。
intIsPrime(intn);
IsPrime(5)=1,IsPrime(6)=0
编写主函数,输出100以内的全部素数。
然后,修改主函数,验证哥德巴赫猜想(任何大于2的偶数都是两个素数之和):
将100以内任何大于2的偶数都表示为两个素数之和。
输出结果如下:
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
……
44.几何图形
编写显示如下几何图形的函数,并编写主函数显示菜单“1-直线2-三角形3-菱形0-结束”,由用户进行选择。
若选择1~5,则输入必要的数据,然后调用有关函数显示图形;
若选择0,则结束程序。
voidLine(intn,charc);
//显示字符c组成的长度为n的直线
voidSquare(intn,charc);
//显示字符c组成的长度为n的正方形
voidIsoceles(intn,charc);
//显示字符c组成的高为n底为2n-1的等腰三角形
voidDiamond(intn,charc);
//显示字符c组成的高为n的菱形
aaaaa
mmmmm
^
^^^
^^^^^
^^^^^^^
^^^^^^^^^
*
***
*****
Line(5,'
a'
Square(5,'
*'
Isoceles(5,'
^'
Diamond(5,'
45.参数方程
编写星形线函数:
voidStar(double*x,double*y,doublet);
作业7选择类语句
46.大小写字母互换
下面的程序从键盘输入一串字符(以回车结束),然后对这些字符转换后输出。
具体转换方法是:
将大写字母就转换为小写字母,将小写字母就转换为大写字母,将数字转换为“#”,其它字符转换为“*”。
请指出Change函数中的错误并改正。
例如,输入:
3A$b4%,输出:
#a*B#*。
charChange(charc);
charc;
while((c=getchar())!
='
\n'
)
putchar(Change(c));
putchar('
charChange(charc)
if(c>
A'
&
c<
Z'
c=c-'
+'
;
z'
0'
9'
c='
#'
else
returnc;
47.破译密电码
(一)
密文
1
2
3
4
5
6
7
8
9
其它
明文
按上表所示密电码本对数字字符进行译码,其它非数字字符,一律译为星号。
请指出Decode函数中的错误并改正。
例:
输入密文:
2a6b4c5d9,输出明文:
1*2*3*4*5。
charDecode(charc);
密文:
"
c=getchar();
明文:
while(c!
{
putchar(Decode(c));
c=getchar();
}
charDecode(charc)
charr;
switch(c)
case'
:
r='
6'
1'
2'
3'
8'
4'
5'
7'
default:
returnr;
48.个人所得税
个人所得税的起征点为2000元,扣除2000元后的余额,500元以内的部分按5%征税;
500~2000元的部分按10%征税,2000~5000元的部分按15%征税,5000~20000元的部分按20%征税,20000~40000元的部分按25%征税,40000~60000元的部分按30%征税,60000~80000元的部分按35%征税,80000~100000元的部分按40%征税,100000以上的部分按45%征税。
floatTax(floatincome);
Tax(5400.00)=385.00
个人收入为5400元,其中2000元不纳税,余额3400元纳税。
其中500元按5%纳税25元,1500元按10%纳税150元,最后1400元按15%纳税210元,税款合计:
20000%+5005%+150010%+140015%=0+25+150+210=385
先对计算公式进行整理,化简后再编写函数。
49.符号函数
doubleSgn(doublex);
50.成绩评定
输入语文、数学、物理、化学、外语等五门功课的成绩,若全部及格,则输出“升级”;
若不及格不超过2门,则输出“补考”;
若不及格达到3门,则输出“留级”,若不及格超过3门,则输出“除名”。
51.正整数的最高位
用递归方法编写函数求正整数的最高位数字:
intTopDigit(intx);
52.正整数的任意位数字
用递归方法求正整数的第n位(由低位到高位从0开始计数)数字:
intDigit(intx,intn);
53.汉诺塔数列
用递归方法编写函数求汉诺塔数列的第n项:
intHanio(intn);
1,3,7,15,31,63,127,255,511,…
54.九连环数列
用递归方法编写函数求下面九连环数列的第n项:
intInterlink(intn);
1,2,5,10,21,42,85,170,341,…
作业8循环类语句
55.统计
(一)
编写函数,从键盘输入一组正实数(以零结束),求实数个数、总和、最大值、最小值和平均值。
voidStat(int*num,double*sum,double*max,double*min,double*avg);
56.韩信点兵
(二)
任给a,b,c(0a<
3,0b<
5,0c<
7),求除以3余a,除以5余b,除以7余c的最小正整数解。
intSpecial(inta,intb,intc);
源自《算术统宗》:
“三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。
57.守形数(平方数的低位部分恰为该数本身的数称为守形数,如:
52=25,762=5776,5和76都是守形数)
编写程序输出1000以内的全部守形数。
编写下面的函数来判断守形数。
intIsKeeper(intn);
IsKeeper(25)=1,IsKeeper(36)=0
58.反序数
编写函数求反序数。
intRevNum(intn);
Reverse(1234)=4321;
首先将累加器s清零;
然后将累加器s乘以10,再加上n的个位得4,将n除以10变为123;
再将累加器乘以10加上取n的个位3得43,将n除以10变为12;
…,如此继续下去,当n变为零时,s变为4321。
利用上面的函数来判断回文数(正看反看都一样的数)。
intIsPalNum(intn);
IsPalNum(159743)=0,IsPalNum(1258521)=1
59.购物优惠活动(三)
某商场推出“满100送30”购物优惠活动:
若顾客购物不足100元,则不优惠;
购物达100元,按每100元送30元代币券。
顾客用代币券购物同样享受优惠。
输入购物金额,假设该顾客不再追加购物金额,计算所能购买商品的价值总额,并计算该顾客享受的实际折扣。
若顾客购物付现金2650元,得代币券2650/10030=780元,用这780元代币券再购物又得代币券780/10030=210元,再用210元代币券购物又可得代币券210/10030=60元,所购物品价值总额为:
2650+780+210+60=3700,实付金额2650元,折扣为26503700=71.62%。
60.余弦函数及其图像
根据麦克劳林公式自行编写余弦函数,并与系统库中的余弦函数相比较。
doubleCos(doublex);
然后编写函数输出余弦函数在区间[0,2]内的曲线段。
voidDrawCos();
61.对阵形势
乒乓球团体赛中,A、B两队各出三名队员,以抽签方式决定对阵形势。
记者探知A队1号选手不与B队1号选手对阵,A队3号选手不和B队的1号和3号对阵。
请问三场比赛选手的对阵形势如何?
62.换钞票
现有100元的钞票,将其兑换成面值50元、20元、10元、5元、2元、1元的钞票,共有多少种兑换方法?
63.简单迭代法
求下面的方程在x=1.5附近的根。
x3-x2-1=0
若迭代公式选择不当,则有可能陷入死循环。
不妨选择下面的迭代公式
x=1+1/x2
64.二分迭代法
求下面的方程在(-10,10)内的根。
2x3-4x2+3x-6=0
65.质因子分解
编写函数输出正整数n的全部质因子。
voidPrimeFactor(intn);
PrimeFactor(60)显示:
60=2x2x3x5
变量k表示因子,从2开始试探,若k能整除n,则显示该因子,将n除以k;
连续除以该因子,直至n中不包含该因子为止;
然后k加1,继续试探…
66.字母塔
编写函数输出高度为n(n26)的字母塔。
voidLetterTower(intn);
LetterTower(3)输出下面的字母塔:
a
aba
abcba
67.数字方阵
编写函数输出核心数字为n(n9)的数字方阵。
voidPhalanx(intn);
Phalanx(3)输出下面的数字阵:
11111
12221
12321
68.杨辉三角形(在国外被称为Pascal三角形)
编写函数,输出杨辉三角形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业