本人用得教科书是《C程序设计(第四版)》谭浩强 著 清华大学出版社。大一的时候刚上大学,也没统一的交报告的格式,作业也没备注题目跟要求,就只有一个文本,想想大一还真的是好蠢萌。
下面放出大一上学期学的C语言所做过的作业。
- 输入一个数,判断是正数、负数还是零。(第七题)
#include <stdio.h>
int main()
{
int x;
printf("请输入x的值:");
scanf("%d",&x);
if(x<0)
printf("Y=-1\n");
else
if(x=0)
printf("Y=0\n");
else
printf("Y=1\n");
return 0;
}
测试结果:
请输入x的值:4
Y=1
Press any key to continue
请输入x的值:0
Y=0
Press any key to continue
请输入x的值:-9
Y=-1
Press any key to continue
请输入x的值:4
Y=1
Press any key to continue
请输入x的值:0
Y=0
Press any key to continue
请输入x的值:-9
Y=-1
Press any key to continue
2. 输入一个小于10000的正整数,将其每个位数输出,并且逆序输出。(第9题)
#include <stdio.h>
#include <math.h>
int main()
{
int num,weishu,ge,shi,bai,qian,wan;
printf("请输入一个小于10000的正整数\n");
scanf("%d",&num);
if(num>9999)
weishu=5;
else
if(num>999)
weishu=4;
else
if(num>99)
weishu=3;
else
if(num>9)
weishu=2;
else weishu=1;
printf("你输入的数为%d位数\n",weishu);
wan=num/10000;
qian=(int)(num-wan*10000)/1000;
bai=(int)(num-wan*10000-qian*1000)/100;
shi=(int)(num-wan*10000-qian*1000-bai*100)/10;
ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
switch(weishu)
{
case 5:printf("每位数字为:%d,%d,%d,%d,%d\n",wan,qian,bai,shi,ge);
printf("逆序输出为:%d,%d,%d,%d,%d\n",ge,shi,bai,qian,wan);break;
case 4:printf("每位数字为:%d,%d,%d,%d\n",qian,bai,shi,ge);
printf("逆序输出为:%d,%d,%d,%d\n",ge,shi,bai,qian);break;
case 3:printf("每位数字为:%d,%d,%d\n",bai,shi,ge);
printf("逆序输出为:%d,%d,%d\n",ge,shi,bai);break;
case 2:printf("每位数字为:%d,%d\n",shi,ge);
printf("逆序输出为:%d,%d\n",ge,shi);break;
case 1:printf("每位数字为:%d\n",ge);
printf("逆序输出为:%d\n",ge);break;
}
return 0;
}
测试结果:
请输入一个小于10000的正整数
8998
你输入的数为4位数
每位数字为:8,9,9,8
逆序输出为:8,9,9,8
Press any key to continue
3. 输入4个数字,让其从小到大排序。(第11题)
#include <stdio.h>
int main()
{
int a,b,c,d,i;
printf("请输入4个数字,以逗号隔开\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
if(a>b)
{i=a;a=b;b=i;}
if(a>c)
{i=a;a=c;c=i;}
if(a>d)
{i=a,a=d;d=i;}
if(b>c)
{i=b;b=c;c=i;}
if(b>d)
{i=b;b=d;d=i;}
if(c>d)
{i=c;c=d;d=i;}
printf("从小到大排序为:%d %d %d %d\n",a,b,c,d);
return 0;
}
测试结果:
请输入4个数字,以逗号隔开
5,9,2,11
a=5,b=9,c=2,d=11
从小到大排序为:2 5 9 11
Press any key to continue
4. 求三位数的水仙花数。(第八题)
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c,i;
printf("水仙花数为:\n");
for(i=100;i<1000;i++)
{
a=i/100;
b=i/10-a*10;
c=i%10;
if (i==pow(a,3)+pow(b,3)+pow(c,3))
printf("%d\n",i);
}
return 0;
}
测试结果:
水仙花数为:
153
370
371
407
Press any key to continue
5. 用c语言求下列分数序列的前20项之和(第10题)
#include <stdio.h>
int main()
{
int i,n=20;
float a=2,b=1,c,s=0;
for(i=1;i<=n;i++)
{
s=s&#