程序设计基础C离线作业.docx
- 文档编号:24872559
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:56
- 大小:144.83KB
程序设计基础C离线作业.docx
《程序设计基础C离线作业.docx》由会员分享,可在线阅读,更多相关《程序设计基础C离线作业.docx(56页珍藏版)》请在冰豆网上搜索。
程序设计基础C离线作业
个浙江大学远程教育学院
《程序设计基础(C)》课程作业
姓名:
XX
学号:
7XX
年级:
15秋
学习中心:
XX
—————————————————————————————
第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函数add,scanf,printf.2系统函数scanf,printf.3保留字#includeintreturn4自定义标识符x,y,z,add,a,b,c
步骤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
您可以输入其它的整数,观察程序的执行结果。
8070
80&&70=1
80||70=1
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
#include
intmain()
{
printf(".\n");
printf("..\n");
printf("......\n");
printf("..\n");
printf("...\n");
printf("....\n");
printf("..\n");
return0;
}
2.}仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
#include
intmain()
{charstring[20];
printf(“请输入\n”);
scanf(“%s”,string);
printf(“%s\n”,string);
return0;
}
3.从键盘输入十六进制整数,转化为八进制数输出.
#include
intmain()
{intx;
printf(“请输入十六进制整数\n”);
scanf("%x",&x);
printf("八进制为%o\n",x);
return0;
}
4.}只定义两个整型数据并赋值,实现两个整型数的互换。
#include
intmain()
{intx,y;
printf("请输入x,y\n");
scanf("%d%d",&x,&y);
printf("互换:
x=%d,y=%d\n",y,x);
return0;
}
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
#include
intmain()
{intx;
printf("请输入十进制整数\n");
scanf("%d",&x);
printf("八进制为%o\n",x);
printf("十六进制为%x\n",x);
return0;
}
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
#include
intmain()
{intx,y1,y2,y3;
printf("请输入三位制整数\n");
scanf("%d",&x);
y1=x%10;
x=x/10;
y2=x%10;
x=x/10;
y3=x%10;
printf("个位为%d\n",y1);
printf("十位为%d\n",y2);
printf("百位为%d\n",y3);
return0;
}
7.以下程序输出结果是(9,10)。
#include
voidmain()
{
inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
#include
intmain()
{
chara;
printf("您是一个学生吗\n");
a=getchar();
printf("您的选择是%c\n",a);
return0;
}
9.从键盘输入一个角度x,求10*sin(x)的值。
#include
#include
intmain()
{
inta,b;
printf("请输入角度a\n");
scanf("%d",&a);
b=10*sin(a);
printf("计算结果:
%d\n",b);
return0;
}
第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",a[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;
}
}
将数组a颠倒过来即:
[7,6,9,-8,6,10,-5,0,4,2]
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);while(i<=100)
s=s+i;{s=s+i;
i++;i++;}
printf(“1+2+3+….+99+100=%d\n”,s);
}
(2)
#include
voidmain()
{
inti,s;
i=1;
s=0;
while(i<=100)while(i<=100)
s=s+i;{s=s+i;
i++;i++;}
printf(“1+2+3+….+99+100=%d\n”,s);
}
(3)
#include
voidmain()
{
inti=1,s;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()
{
inta,s=1,i=1;
scanf("%d",&a);
for(;i<=a;i+=2)
s=s*i;
printf("1*3*5....*%d=%d\n",a,s);
return5;
}
8.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+2!
+3!
+…+5!
=153
#include
intmain()
{
inta,sum=0,s=1,i=1;
scanf("%d",&a);
for(;i<=a;i++)
{s=s*i;
sum+=s;}
printf("1!
+2!
+3!
...+%d!
=%d\n",a,sum);
return5;
}
9.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
12345678
123456789
#include
intmain()
{
inti,k;
for(i=1;i<=9;i++)
{for(k=1;k<=i;k++)
printf("%d",k);
printf("\n");}
return5;
}
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
(1)#include
intmain()
{
inti,sum=0;
for(i=2;i<=100;i+=2)
sum+=i;
printf("%d\n",sum);
return5;
}
(2)#include
intmain()
{
inti,sum=0;
for(i=2;i<=100;sum+=i,i+=2);
printf("%d\n",sum);
return5;
}
(3)#include
intmain()
{
inti,sum=0;
for(i=2;i<=100;)
{sum+=i;i+=2;}
printf("%d\n",sum);
return5;
}
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
intmain()
{
inti;
scanf("%d",&i);
while(i)
{
if(i<0)
printf("%4d",-i);
else
printf("%4d",i);
scanf("%d",&i);
}
return9;
}
2.输入一批数,输出比相邻数大的数,当输入0时结束。
#include
intmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
while(c)
{
if(ac)
printf("%4d",b);
a=b;
b=c;
scanf("%d",&c);
}
return9;
}
3。
将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
#include
intmain()
{
charch;
ch=getchar();
while(ch!
='\n')
{
if('A'<=ch&&'Z'>=ch)
ch+=32;
putchar(ch);
ch=getchar();
}
return9;
}
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
#include
intmain()
{
charch;
intdaxie=0,xiaoxie=0,number=0,others=0;
ch=getchar();
while(ch!
='\n')
{
if('A'<=ch&&'Z'>=ch)
daxie++;
elseif('a'<=ch&&'z'>=ch)
xiaoxie++;
elseif('0'<=ch&&'9'>=ch)
number++;
elseothers++;
ch=getchar();
}
printf("daxie=%d\nxiaoxie=%d\nnumber=%d\nothers=%d\n",daxie,xiaoxie,number,others);
return9;
}}
5.编写程序,计算分段函数:
#include
intmain()
{
intx;
doubley;
scanf("%d",&x);
if(x<=1)
y=1.0*x+5.0;
elseif(x<10)
y=2.0*x;
elsey=3.0/(x-10.0);
printf("y=%f\n",y);
return4;
}
6.根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
百分制
五分制
90~100
5
80~89
4
70~79
3
60~69
2
<60
1
#include
intmain()
{
intx;
scanf("%d",&x);
if(x>=90)
printf("相对应的五分制:
5\n");
elseif(x>=80)
printf("相对应的五分制:
4\n");
elseif(x>=70)
printf("相对应的五分制:
3\n");
elseif(x>=60)
printf("相对应的五分制:
2\n");
else
printf("相对应的五分制:
1\n");
return4;
}
7、用switch完成:
读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
#include
#include
intmain()
{
floatx;
inti;
printf("请输入一个实数\n");
scanf("%f",&x);
printf("请输入1或2或3\n");
scanf("%d",&i);
switch(i)
{
case
(1):
printf("y=sin(x)=%f\n",sin(x));break;
case
(2):
printf("y=cos(x)=%f\n",sin(x));break;
case(3):
printf("y=tan(x)=%f\n",sin(x));break;
default:
printf("Error");break;
}
return4;
}
8、用switch完成:
输入星期1到星期5,输出它们对应的颜色
星期1:
blue
星期2:
red
星期3:
white
星期4:
yellow
星期5:
green
#include
intmain()
{
inti;
printf("请输入星期几\n");
scanf("%d",&i);
switch(i)
{
case
(1):
printf("星期1:
biue\n");break;
case
(2):
printf("星期2:
red\n");break;
case(3):
printf("星期3:
white\n");break;
case(4):
printf("星期4:
yellow\n");break;
case(5):
printf("星期5:
green\n");break;
}
return4;
}
9、用switch完成:
从键盘输入A、B、C、D四个等级中的一个,转化输出
等级
输出
A
优秀
B
良好
C
中等
D
及格
E
不及格
#include
intmain()
{
chardegree;
printf("请输入等级\n");
degree=getchar();
switch(degree)
{
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;
}
return4;
}
第5章 数组及其应用
1.从键盘输入12个数,分别为:
900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。
#include
#defineSIZE100
intmain()
{
inta[SIZE],max,n,i,min;
for(i=0;i<12;i++)
scanf("%d,",&a[i]);
max=a[0];
min=a[0];
for(i=1;i<12;i++)
{
if(a[i]>max)
max=a[i];
elseif(a[i] min=a[i]; } printf("最大值=%d,最小值=%d\n",max,min); return0; } 2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。 #include #defineSIZE100 intmain() { inta[SIZE]={2,3,20,58,72,76,78,87,90,900}; inti,j,b[SIZE]; for(i=0,j=0;i<10;i++) { if(a[i]%2! =1) { b[j]=a[i]; j++; } } printf("一共%d个偶数\n",j); for(i=0;i printf("%4d",b[i]); printf("\n"); return0; } 3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然后进行删除。 #include #defineSIZE10 intmain() { inta[SIZE]={2,3,20,58,72,76,78,87,90,900}; inti,mid,low=0,high=9; intm=87,found=0; printf("原数组为: \n"); for(i=0;i<10;i++) printf("%6d",a[i]); printf("\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 离线 作业