浙江大学远程教育学院程序设计基础C离线作业解析Word下载.docx
《浙江大学远程教育学院程序设计基础C离线作业解析Word下载.docx》由会员分享,可在线阅读,更多相关《浙江大学远程教育学院程序设计基础C离线作业解析Word下载.docx(52页珍藏版)》请在冰豆网上搜索。
x,y,z,a,b,c.
步骤3:
编译并运行程序,程序运行时输入两个整数,2040,观察程序运行的结果。
程序运行结果,20+40=60
2.编辑、调试以下程序
在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2.c
步骤2:
在文本编辑器中输入以下C程序
#include<
ex1-2-2.c>
intand(int,int);
/*函数的说明,告诉系统在主函数中要调用and函数*/
intor(int,int);
%d%d"
c=and(a,b);
%d&
&
%d=%d\n"
/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/
c=or(a,b);
%d||%d=%d\n"
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-2.c,源程序代码为:
intand(inta,intb)
{
intc;
c=a&
b;
returnc;
步骤4:
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-3.c,源程序代码为:
intor(inta,intb)
c=a||b;
步骤5:
点击编译图标
,编译程序1-2.c
点击执行图标
,执行程序1-2.c,当程序运行时,键盘输入2040,按回车。
2040
20&
40=1
20||40=1
您可以输入其它的整数,观察程序的执行结果。
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
源程序:
#include<
voidmain(){
printf("
\t*\n"
);
\t**\n"
\t********\n"
\t***\n"
\t****\n"
\t**\n"
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
intmain(){
chars[255];
请输入:
"
scanf("
%s"
s);
你输入的是:
%s\n"
return0;
3.从键盘输入十六进制整数,转化为八进制数输出。
inta;
请输入一个十六进制数:
%x"
a);
转化为八进制数为%o\n"
a);
4.只定义两个整型数据并赋值,实现两个整型数的互换。
inta=5;
intb=3;
现在的数a=%d,b=%d\n"
a,b);
a=a^b;
b=b^a;
交换之后a=%d,b=%d\n"
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
请输入一个十进制数:
%d"
这个数转化为八进制数为%o\n"
这个数转化为八进制数为%x\n"
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
intmain()
{inta;
您输入的数字为%d\n"
百位数为%d\n"
a/100);
十位数为%d\n"
a%100/10);
个位数为%d\n"
a%10);
return0;
7.以下程序输出结果是()。
voidmain()
inti=010,j=10;
%d,%d\n"
++i,j--);
}
9,10
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
chars;
你是学生吗(Y/N):
s);
if(s=='
Y'
||s=='
y'
)
你是学生~~\n"
else
你不是学生~~\n"
9.从键盘输入一个角度x,求10*sin(x)的值。
math.h>
{inta;
doubler;
请输入角度:
r=10*sin(a);
%f\n"
r);
第3章 循环程序设计
1.以下for语句的循环次数是多少?
inti,j=3;
for(;
i=j;
i--,j--)printf("
i);
3次
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;
i<
;
)
)
6;
i++)
h[i][i])
3.写出以下程序运行的结果,此程序实现了什么功能?
{inta[10]={2,4,0,-5,10,6,-8,9,6,7};
inti,count=0;
for(i=0;
10;
i++)
if(a[i]==0)count++;
elsecontinue;
%d\n"
count);
该程序实现的功能为:
计算数组a中包含几个0。
4.写出以下程序的功能。
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.写出以下程序运行后的输出结果。
inti,j;
6;
{
for(j=0;
j<
i;
j++)
printf("
"
for(j=0;
2*(5-i)-1;
*"
\n"
输出倒三角形
*********
*******
*****
***
*
6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
voidmain()
inti,s;
i=1;
s=0;
while(i<
=100)
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
(1)
=100);
(2)
=100){
printf(“1+2+3+….+99+100=%d\n”,s);
s=0;
(3)
ints=0;
inti=1,s;
=100);
7.输入一个基数,例如输入9,输出为:
求1*3*……*9的值。
输出为:
1*3*5*7*9=945
inta,b;
b=1;
for(inti=1;
i<
=a;
i+=2){
b=b*i;
%d\n"
b);
8.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+…+5!
=153
{
inta,b,c;
c=0;
i<
i++)
for(intj=1;
j<
=i;
j++)
b=b*j;
c=c+b;
c);
return0;
9.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
12345678
123456789
for(inta=1;
a<
=9;
a++)
for(intb=1;
b<
b++)
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
{intsum=0;
for(inta=2;
=100;
a+=2)
{sum+=a;
sum);
11.输入一行字符,统计它有多少个字母?
intcount=0;
for(inti=0;
255;
if(s[i]>
='
a'
&
s[i]<
z'
||s[i]>
A'
Z'
{
count++;
}
count);
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。
intx;
x);
for(;
x;
x))
if(x>
0)
printf("
绝对值是%d\n"
x);
else
-x);
2.输入一批数,输出比相邻数大的数,当输入0时结束。
intb=0;
b=a;
a;
a))
if(a>
b)
%d\t"
b=a;
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
charc;
while((c=getchar())!
\n'
if(c>
c<
c+=32;
putchar(c);
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
intdx=0,xx=0,sz=0,qt=0;
dx++;
elseif(c>
xx++;
0'
9'
sz++;
qt++;
包含大写字母%d个,小写字母%d个,数字%d个,其他字符%d个.\n"
dx,xx,sz,qt);
5.编写程序,计算分段函数:
floatx,y;
%f"
if(x<
=1)
y=x+5;
elseif(x<
10)
y=x*2;
y=3/(x-10);
y);
6.根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
百分制
五分制
90~100
5
80~89
4
70~79
3
60~69
2
<
60
1
if(a>
=90)
5\n"
elseif(a>
=80)
4\n"
=70)
3\n"
=60)
2\n"
1\n"
7、用switch完成:
读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
floatb;
请输入实数:
请选择整数1or2or3:
switch(a)
case1:
y=sin(x)=%f\n"
sin(b));
break;
case2:
y=cos(x)=%f\n"
cos(b));
case3:
y=tan(x)=%f\n"
tan(b));
default:
error\n"
8、用switch完成:
输入星期1到星期5,输出它们对应的颜色
星期1:
blue
星期2:
red
星期3:
white
星期4:
yellow
星期5:
green
今天星期几?
星期一:
blue\n"
星期二:
red\n"
case3:
星期三:
white\n"
case4:
星期四:
yellow\n"
case5:
星期五:
green\n"
9、用switch完成:
从键盘输入A、B、C、D四个等级中的一个,转化输出
等级
输出
A
优秀
B
良好
C
中等
D
及格
E
不及格
chara;
请输入等级\n"
case'
:
优秀\n"
B'
良好\n"
C'
中等\n"
D'
及格\n"
E'
不及格\n"
第5章 数组及其应用
1.从键盘输入12个数,分别为:
900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。
inta[12];
for(inti=0;
12;
请输入第%d个数:
i+1);
scanf("
a[i]);
intmax=a[0],min=a[0];
for(intj=1;
if(a[j]>
max)
max=a[j];
if(a[j]<
min)
min=a[j];
最大值为%d,最小值为%d\n"
max,min);
2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。
#defineSIZE100