浙江大学远程教育夏程序设计基础C离线作业答案全.docx
- 文档编号:4401470
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:58
- 大小:309.63KB
浙江大学远程教育夏程序设计基础C离线作业答案全.docx
《浙江大学远程教育夏程序设计基础C离线作业答案全.docx》由会员分享,可在线阅读,更多相关《浙江大学远程教育夏程序设计基础C离线作业答案全.docx(58页珍藏版)》请在冰豆网上搜索。
浙江大学远程教育夏程序设计基础C离线作业答案全
浙江大学远程教育学院
《程序设计基础(C)》课程作业
姓名:
王春强
学号:
年级:
2016春
学习中心:
桐庐学习中心
—————————————————————————————
第1章C语言的基本构成
程序调试题
1.编辑、调试以下程序
步骤1:
在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-1.c,程序代码如下:
#include
intadd(intx,inty)
{
intz;
z=x+y;
returnz;
}
intmain()
{
intadd(int,int);/*函数的说明,告诉系统在主函数中要调用add函数*/
inta,b,c;/*变量的定义*/
scanf("%d%d\n",&a,&b);
c=add(a,b);/*函数调用*/
printf("%d+%d=%d\n",a,b,c);
/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/
}
请思考文件ex1-1.c由几个函数构成?
调用了那几个系统函数?
此程序中用到了哪几个保留字?
哪几个用户自定义标识符?
答:
1.有2个函数构成,主函数main()及自定义函数add()
2.调用的系统函数有输入函数scanf()及输出函数printf()
3.保留字有:
int,return
4.自定义标识符有:
a,b,c,z,x,y
步骤3:
编译并运行程序,程序运行时输入两个整数,2040,观察程序运行的结果。
答:
结果是20+40=60
截图如下:
2.编辑、调试以下程序
步骤1:
在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2.c
步骤2:
在文本编辑器中输入以下C程序
#include
#include
intmain()
{
intand(int,int);/*函数的说明,告诉系统在主函数中要调用and函数*/
intor(int,int);/*函数的说明,告诉系统在主函数中要调用and函数*/
inta,b,c;/*变量的定义*/
scanf("%d%d",&a,&b);
c=and(a,b);/*函数调用*/
printf("%d&&%d=%d\n",a,b,c);
/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/
c=or(a,b);/*函数调用*/
printf("%d||%d=%d\n",a,b,c);
}
步骤3:
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-2.c,源程序代码为:
intand(inta,intb)
{
intc;
c=a&&b;
returnc;
}
步骤4:
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-3.c,源程序代码为:
intor(inta,intb)
{
intc;
c=a||b;
returnc;
}
步骤5:
点击编译图标
,编译程序1-2.c
步骤4:
点击执行图标
,执行程序1-2.c,当程序运行时,键盘输入2040,按回车。
2040
20&&40=1
20||40=1
您可以输入其它的整数,观察程序的执行结果。
答:
(增加语句:
#include
输入2040;2020;3060如下:
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
答:
#include
voidmain()
{
printf("☆\n");
}
截图如下:
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
答:
#include
voidmain()
{
charstr[80];
printf("请输入您的名字\n");
scanf("%s",str);
printf("学生:
%s,正在就读计算机专业\n",str);
}
截图:
3.从键盘输入十六进制整数,转化为八进制数输出。
答:
#include
voidmain()
{
inta;
printf("请输入十六进制整数\n");
scanf("%x",&a);
printf("转换成的八进制数为:
%o\n",a);
}
截图如下:
4.只定义两个整型数据并赋值,实现两个整型数的互换。
答:
#include
voidmain()
{
inta=13,b=25;
printf("原定义的数是:
a=%d,b=%d\n",a,b);
a=a^b;
b=b^a;
a=a^b;
printf("互换后的数是:
a=%d,b=%d\n",a,b);
}
截图:
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
答:
#include
voidmain()
{
inta;
printf("请输入一个整数\n");
scanf("%d",&a);
printf("转换成的十六进制数是%x,转换成的八进制数是%o\n",a,a);
}
截图如下:
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
答:
#include
voidmain()
{
inta,b,c,d;
scanf("%d",&a);
b=a%10;
c=(a/10)%10;
d=((a/100)%10);
printf("个位数是:
%d,十位数是:
%d,百位数是:
%d\n",b,c,d);
}
截图如下:
7.以下程序输出结果是(9,10)。
#include
voidmain()
{
inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
答:
#include
voidmain()
{
chara;
printf("您是一个学生吗?
请输入'y'或'n'进行回答\n");
scanf("%c",&a);
if(a=='y')
printf("您是学生\n");
elseif(a=='n')
printf("您不是学生\n");
else
printf("请重新输入\n");
}
截图:
9.从键盘输入一个角度x,求10*sin(x)的值。
答:
#include
#include
voidmain()
{
doublex;
scanf("%lf",&x);
printf("10*sin(x)的值为:
%lf\n",10*sin(x));
}
截图:
第3章 循环程序设计
1.以下for语句的循环次数是多少?
inti,j=3;
for(;i=j;i--,j--)printf("%d",i);
答:
循环次数3次
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;i<6;i++)
printf("%d",h[i][i])
3.写出以下程序运行的结果,此程序实现了什么功能?
#include
voidmain()
{inta[10]={2,4,0,-5,10,6,-8,9,6,7};
inti,count=0;
for(i=0;i<10;i++)
if(a[i]==0)count++;
elsecontinue;
printf("%d\n",count);
}
结果是1,功能是输出数字“0”的数量
4.写出以下程序的功能。
#include
voidmain()
{
inta[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;
for(k=0;k<10/2;k++)
{
tmp=a[k];
a[k]=a[10-k-1];
a[10-k-1]=tmp;
}
}
答:
功能是倒置数组
5.写出以下程序运行后的输出结果。
#include
voidmain()
{
inti,j;
for(i=0;i<6;i++)
{
for(j=0;j
printf("");
for(j=0;j<2*(5-i)-1;j++)
printf("*");
printf("\n");
}
}
答:
输出倒三角形五星阵
*********
*******
*****
***
*
6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
(1)
#include
voidmain()
{
inti,s;
i=1;s=0;
while(i<=100);
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
}
答:
改正后为:
#include
voidmain()
{
inti,s;
i=1;s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+….+99+100=%d\n",s);
}
截图如下:
(2)
#include
voidmain()
{
inti,s;
i=1;
s=0;
while(i<=100)
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
}
答:
改正如下:
#include
voidmain()
{
inti,s;
i=1;
s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+….+99+100=%d\n",s);
}
截图如下:
(3)
#include
voidmain()
{
inti=1,s;
while(i<=100);
{
s=s+i;
i++;
}
printf(“1+2+3+….+99+100=%d\n”,s);
}
答:
改正如下:
#include
voidmain()
{
inti=1,s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+….+99+100=%d\n",s);
}
截图如下:
7.输入一个基数,例如输入9,输出为:
求1*3*……*9的值。
输出为:
1*3*5*7*9=945
答:
#include
voidmain()
{
longints=1,i=1,a;
printf("请输入一个整数:
\n");
scanf("%d",&a);
while(i<=a)
{
s=s*i;
i=i+2;
}
printf("1*3*...*%d=%d\n",a,s);
}
截图如下:
8.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+2!
+3!
+…+5!
=153
答:
#include
voidmain()
{
longints=0,i=1,t=1,a;
printf("请输入一个5-10的整数:
\n");
scanf("%d",&a);
while(i<=a)
{
t=t*i;
s=s+t;
i++;
}
printf("1!
+2!
+3!
+…+%d=%d\n",a,s);
}
截图:
9.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
12345678
123456789
答:
#include
voidmain()
{
inti=1,s;
while(i<=9)
{
for(s=1;s<=i;s++)
printf("%d",s);
printf("\n");
i++;
}
}
截图:
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
答:
方法1
#include
voidmain()
{
inti,s=0;
for(i=2;i<=100;i+=2)
{
s=s+i;
}
printf("2+4+...+100=%d\n",s);
}
方法2
#include
voidmain()
{
inti=0,s=0;
for(;i<=100;)
{
s+=i;
i+=2;
}
printf("2+4+...+100=%d\n",s);
}
方法3
#include
voidmain()
{
inti,s;
for(i=2,s=0;i<=100;s+=i,i+=2);
printf("2+4+...+100=%d\n",s);
}
截图
10.输入一行字符,统计它有多少个字母?
答:
#include
voidmain()
{
charstring[100],c;
inttotal=99,count=0,scount=0;
while(count c=getchar(); if(c=='\n') break; string[count]=c; if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){ scount++; } count++; } printf("%s,count=%d\n",string,scount); } 第4章 分支程序设计 1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。 答: #include #include voidmain() { doublex; printf("输入若干整数(0表示结束): \n"); scanf("%lf",&x); while (1){ if(x! =0){ printf("%lf的绝对值为%lf\n",x,fabs(x)); scanf("%lf",&x); }else{ break; } } } 截图: 2.输入一批数,输出比相邻数大的数,当输入0时结束。 答: #include #include voidmain() { inta,b,c; printf("请输入整数: \n"); scanf("%d",&a); while(a) { scanf("%d",&b); if(b==0) break; if(a a=b; } printf("最大整数为: %d\n",a); } 截图: 3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。 答: #include voidmain() { chara; scanf("%c",&a); if(a>='A'&&a<='Z') printf("转换后的字母为: %c\n",a+32); else printf("转换后的字母为: %c\n",a); } 截图: 4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。 答: #include voidmain() { charc; inta=0,b=0,m=0,n=0; while (1) { scanf("%c",&c); if(c=='\n') break; if(c>='A'&&c<='Z') b++; elseif(c>='a'&&c<='z') a++; elseif(c>='0'&&c<='9') m++; else n++; } printf("小写字符有%d个,大写字符有%d个,数字字符有%d个,其它字符有%d个\n",a,b,m,n); } 截图: 5.编写程序,计算分段函数: 答: #include voidmain() { doublex,y; scanf("%lf",&x); if(x<=1) y=x+5; elseif(x>10) y=3/(x-10); else y=2*x; printf("y=%lf\n",y); } 截图: 6.根据输入的百分制按五分制的成绩输出。 百分制与五分制之间的关系见下表。 百分制 五分制 90~100 5 80~89 4 70~79 3 60~69 2 <60 1 答: #include voidmain() { intx,y; printf("请输入分数: "); scanf("%d",&x); if(x>100&&x<0) printf("成绩输入错误=%d"); else { if(x<=100&&x>=90) y=5; elseif(x<=89&&x>=80) y=4; elseif(x<=79&&x>=70) y=3; elseif(x<=69&&x>=60) y=2; elseif(x<=59&&x>=0) y=1; printf("五分制成绩=%d\n",y); } } 截图: 7、用switch完成: 读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。 答: #include #include voidmain() { doublex; ints; printf("请输入一个实数,一个整数\n"); scanf("%lf",&x); scanf("%d",&s); switch(s){ case1: printf("sin(x)=%lf\n",sin(x)); break; case2: printf("cos(x)=%lf\n",cos(x)); break; case3: printf("tan(x)=%lf\n",tan(x)); break; default: printf("输入错误"); break; } } 截图: 8、用switch完成: 输入星期1到星期5,输出它们对应的颜色 星期1: blue 星期2: red 星期3: white 星期4: yellow 星期5: green 答: #include voidmain() { ints; printf("输入星期1到星期5\n"); scanf("%d",&s); switch(s){ case1: printf("今天的颜色是: blue\n"); break; case2: printf("今天的颜色是: red\n"); break; case3: printf("今天的颜色是: white\n"); break; case4: printf("今天的颜色是: yellow\n"); break; case5: printf("今天的颜色是: greenn"); break; default: printf("输入错误"); break; } } 截图: 9、用switch完成: 从键盘输入A、B、C、D四个等级中的一个,转化输出 等级 输出 A 优秀 B 良好 C 中等 D 及格 E 不及格 答: #include voidmain() { printf("从键盘输入A、B、C、D四个等级中的一个! \n"); switch(getchar()){ case'A': printf("优秀\n"); break; case'B': printf("良好\n"); break; case'C': printf("中等\n"); break; case'D': printf("及格\n"); break; case'E': printf("不及格\n"); break; default: printf("输入错误"); break; } } 截图 第5章 数组及其应用 1.从键盘输入12个数,分别为: 900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。 答: #include voidmain() { inta[12]; intmax,min;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江大学 远程教育 程序设计 基础 离线 作业 答案