程序设计基础C离线作业.docx
- 文档编号:4687071
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:45
- 大小:33.89KB
程序设计基础C离线作业.docx
《程序设计基础C离线作业.docx》由会员分享,可在线阅读,更多相关《程序设计基础C离线作业.docx(45页珍藏版)》请在冰豆网上搜索。
程序设计基础C离线作业
浙江大学远程教育学院
《程序设计基础(C)》课程作业
姓名:
马骏
学号:
715003012001
年级:
2015春季
学习中心:
宁波学习中心
—————————————————————————————
第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由几个函数构成?
调用了那几个系统函数?
此程序中用到了哪几个保留字?
哪几个用户自定义标识符?
答:
ex1-1.c由4个函数构成;调用了scanf,printf两个系统函数;include,int,return三个保留字;a,b,c,x,y,z六个自定义标示符。
步骤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
您可以输入其它的整数,观察程序的执行结果。
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
3.从键盘输入十六进制整数,转化为八进制数输出。
4.只定义两个整型数据并赋值,实现两个整型数的互换。
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
7.以下程序输出结果是()。
#include
voidmain()
{
inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
9.从键盘输入一个角度x,求10*sin(x)的值。
答:
#include
intmain()
{
printf("*\n");
printf("**\n");
printf("**\n");
printf("**\n");
printf("**********\n");
printf("**\n");
printf("**\n");
printf("**\n");
printf("***\n");
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
return0;
}
2.
#include
intmain()
{
charstring[80];
printf("您是一个学生吗:
\n");
scanf("%s",string);
printf("%s\n",string);
return0;
}
3.
#include
void main()
{
int n;
printf("请输入一个十六进制整数\n");
scanf("%x", &n);
printf("八进制显示:
%o\n", n);
}
4.
#include
voidchange(int*a,int*b)
{
*a^=*b;
*b^=*a;
*a^=*b;
}
intmain()
{
inta=3,b=4;
change(&a,&b);
printf("a=%db=%d\n",a,b);
return0;
}
5.
#include
voidmain()
{
chars[20];
inti;
intflag;
printf("pleaseinputanumber\n");
while
(1)
{
flag=0;
scanf("%s",s);
if(s[0]!
='-'&&(s[0]<'0'||s[0]>'9'))
{
printf("inputerror!
n\pleaseinputagain\n");
continue;
}
for(i=1;i!
=strlen(s);++i)
{
if((s[i]<='0'||s[i]>='9'))
{
printf("inputerror!
\npleasinputagain\n");
flag=1;
braek;
}
}
printf("八进制:
%o\n十六进制:
%x\n",atoi(s),atoi(s));
}
6.
#include
intmain()
{
inta,b;
scanf("%d,&a");
b=a%10;
printf("个位数是:
d%\n",b);
b=a%100/10;
printf("十位数是:
d%\n",b);
b=a%1000/10;
printf("百位数是:
d%\n",b);
return0;
}
7.输出结果为89
8.
#include
intmain()
{
charanswer;
printf("您是一个学生吗?
\n");
printf("输入'y'或输入'n'进行回答\n");
answer=getchar();
if(answer=='y'||answer=='Y')
printf("Yes\n");
elseif(answer=='n'||answer=='N')
printf("No\n");
else
printf("您的回答不明确\n");
return0;
}
9.
#include
#include
main()
{
intx;
doubley;
printf("Inputx:
\n");
scanf("%d",&x);
y=10.0*sin((double)x*2.0/360.0);
printf("sin(%d)=%f\n",x,y);
return0;
}
第3章 循环程序设计
1.以下for语句的循环次数是多少?
答:
4次
inti,j=3;
for(;i=j;i--,j--)printf("%d",i);
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;i<6;i++)
printf("%d",h[i][i])
3.写出以下程序运行的结果,此程序实现了什么功能?
答:
统计数组中0的个数。
#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);
}
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;s=s+i;
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
intmain()
{
inti,n.sum;
Sum=1;
prirntf("inputn=");
scanf("%d",&n);
for(i=l;i<=n;i+=2);
sum*=i;
printf("结果:
%d\n",sum);
return0;
}
8.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+2!
+3!
+…+5!
=153
#include
intmain()
{
inti,n.sum;
Sum=1;
prirntf("inputn=");
scanf("%d",&n);
for(i=l;i<=n;i+=2);
sum*=i;
printf("结果:
%d\n",sum);
return0;
}
9.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
12345678
123456789
答:
#include
intmain()
{
printf("1\n");
printf("12\n");
printf("123\n");
printf("1234\n");
printf("l2345\n");
printf("123456\n");
printf("l234567\n");
printf("l2345678\n");
printf("l23456789\n");
return0;
}
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
#include
intmain()
{
inti,sum=0;
for(i=2;i<=100;i+=2)
sum+=i;
printf("sum=%d\n",sum);
return0;
}
11.输入一行字符,统计它有多少个字母?
答:
#include
intmain()
{
intn=0;
charch;
printf("请输入一串字符\n");
for(;(ch=getchar())!
='\n';)
{
if('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z')
n++;
}
printf("字母个数%d\n",n);
return0;
}
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束
答:
#include
#include
intmain()
{
intx=0;
while
(1)
{
printf("请输入x値:
\n");
scanf("%d",&x);
if(x==0)
{
break;
}
printf("x绝对値为:
%d",fabs(x));
}
}
2.输入一批数,输出比相邻数大的数,当输入0时结束
答:
#include
intmain()
{
intx=0,last=0;
while
(1)
{
printf("请输入X值:
\n");
scanf("%d",&x);
if(x==0)
{
break;
}
if(x>last)
{
printf("x比相邻数大:
%d",fabs(x));
}
last=x;
}
return0;
}
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
#include
intmain()
{
char*str;
intlen0:
inti=0;
printf('请输入字符:
\n");
scanf("%s",str);
len=strlen(str);
for(i=0;i { if('A'<=str[i]&&str[i]<='Z') { str[i]+=32; } } ptilntf(转换后字符: %s",str); return0 } 4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。 #include intmain() { char*str; intlen0: inti=0; intupchar=0,lowchar=0,number=0,other=0; printf('请输入字符: \n"); scanf("%s",str); len=strlen(str); for(i=0;i { if('A'<=str[i]&&str[i]<='Z') { upchar++; } elseif('a'<=str[i]&&str[i]<='Z') { lowchar++; } elseif('0'<=str[i]&&str[i]<='9') { number++; } else { other++; } } printf("大写字符: %d小写字符%d数字字符%d其他字符%d",upchar,lowchar,number,other); return0; } 5.编写程序,计算分段函数: 答: #include void main( ) { floatx,y; printf("请输入x: "); scanf("%f",&x); if(x<=1) y=x+5; elseif(x<10 && x>1) y=2*x; elseif(x>10) y=3/(x-10); printf("y=%f\n",y); } 6.根据输入的百分制按五分制的成绩输出。 百分制与五分制之间的关系见下表。 百分制 五分制 90~100 5 80~89 4 70~79 3 60~69 2 <60 1 #include intmain() { intscore=0; intlevel=0;/*5分制表示的成绩12345*/ inti=0; printf("输入分数(输入-1表示结束)"); while (1) { printf("请输入分数: "); scanf("%d",&score); if(score==-1) { break; } elseif(90<=score&&score<=100) { level=5; } elseif(80<=score&&score<=89) { level=5; } elseif(70<=score&&score<=79) { level=5; } elseif(60<=score&&score<=69) { level=5; } elseif(0<=score&&score<=59) { level=5; } printf("\n5分制成绩为: %d",level); } return0; } 7、用switch完成: 读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。 #include #include intmain() { floatx=0; inty=0; printf("请输入一个实数: "); scanf("%f",&x); printf("请输入一个整数: "); scanf("%d",&y); switch(y) { case1: printf("%f",sin(x)); break; case2: printf("%f",cos(x)); break; case3: printf("%f",tan(x)); break; default: printf("你输入了错误的整数! \n"); break; } } 8、用switch完成: 输入星期1到星期5,输出它们对应的颜色 星期1: blue 星期2: red 星期3: white 星期4: yellow 星期5: green 答: #include intmain() { inty=0; printf("请输入一个星期(12345): "); scanf("%d",&y); switch(y) { case1: printf("星期1: blue"); break; case2: printf("星期2: red"); bre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 离线 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)