程序设计基础C离线作业答案Word文件下载.docx
- 文档编号:22046983
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:41
- 大小:33.68KB
程序设计基础C离线作业答案Word文件下载.docx
《程序设计基础C离线作业答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础C离线作业答案Word文件下载.docx(41页珍藏版)》请在冰豆网上搜索。
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输出一个中空的五角星。
printf(“hello\n”);
3.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
charstr[80]=”hello,world”;
printf(“%s\n”,str);
5.从键盘输入十六进制整数,转化为八进制数输出。
Scanf(“%x”,&
a);
printf(“%o\n”,a)
6.
7.只定义两个整型数据并赋值,实现两个整型数的互换。
intx=3,y=6;
temp=x;
x=y;
y=temp;
8.
9.从键盘上输入一个整数,分别输出8、16进制数的程序。
inta;
scanf(“%d”,&
printf”%-4o%-4x”,a,a);
10.
11.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
x);
y1=y%10;
y=y/10;
y2=y%10;
y3=y/10;
12.
13.以下程序输出结果是(i=9;
j=10)。
14.
voidmain()
inti=010,j=10;
printf("
%d,%d\n"
++i,j--);
}
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
char,a;
printf(“您是个学生吗\n”);
scanf(“%s”,&
if(a=’y’)printf(“您是个学生\n”);
elseprintf(“您不是个学生\n”)
9.
10.从键盘输入一个角度x,求10*sin(x)的值。
math.h>
floata,b;
scanf(%f”,&
b=10*sin(a);
printf(“b=%f\n”,b)
11.
第3章 循环程序设计
1.以下for语句的循环次数是多少?
inti,j=3;
for(;
i=j;
i--,j--)printf("
%d"
i);
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;
i<
6;
i++)
a[i][i])
3.写出以下程序运行的结果,此程序实现了什么功能?
计算数组中0的个数
{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);
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.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
(1)
voidmain()
inti,s;
i=1;
s=0;
while(i<
=100)
{s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
(2)
s=0;
{s=s+i;
(3)
inti=1,s;
s=0
=100);
s=s+i;
7.输入一个基数,例如输入9,输出为:
求1*3*……*9的值。
输出为:
1*3*5*7*9=945i=1;
s=1;
for(i=1;
=9;
i=i+2){s=s*i;
8.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+…+5!
=153#include<
intmain()
inti;
ints=0;
inta;
intj,js;
请输入一个5~10之间的整数:
scanf("
for(i=1;
=a;
for(j=1,js=1;
=i;
js*=j;
s+=js;
%d的阶乘和=%d\n"
a,s);
return0;
9.在屏幕上输出以下内容
1
12
123
1234
12345
#include<
for(j=1;
printf("
%1d"
j);
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
for(i=2;
=100;
i+=2)sum+=i;
11.输入一行字符,统计它有多少个字母?
charstr[80];
gets(str);
inti=0;
intnum=0;
while(str[i]!
='
\0'
){
if(str[i]>
'
a'
str[i]<
z'
||str[i]>
A'
Z'
num++;
i++;
%d\n"
num);
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。
intx;
for(;
x;
x))
if(x<
0)x=-x;
x);
2.输入一批数,输出比相邻数大的数,当输入0时结束。
inta[10];
inti,num=0;
scanf("
a[i]);
if(a[0]>
a[1])num++;
elseif(a[9]>
a[8])num++;
else
for(i=1;
9;
i++)
{
if(a[i-1]<
a[i]&
a[i]>
a[i+1])num++;
}
比相邻数大的数据个数=%d\n"
return0;
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出#include<
charch;
%c"
ch);
if(ch>
ch<
)ch=ch+32;
%c\n"
ch);
return0;
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
intxiaoxie=0;
intdaxie=0;
intothers=0;
chara;
while((a=getchar())!
\n'
)
if(a>
a<
)xiaoxie++;
elseif(a>
)daxie++;
0'
9'
)num++;
elseothers++;
小写=%d大写=%2d数字=%d其他=%d\n"
xiaoxie,daxie,num,others);
5.编写程序,计算分段函数:
if(x<
=1)y=x+5;
elseif(x<
10)y=2x;
elsey=3/(x-10);
6.根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
百分制
五分制
90~100
5
80~89
4
70~79
3
60~69
2
<
60
1
if(x>
90)printf(“wufenzhi=5);
else(x>
80)……..
7、用switch完成:
读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
inta=4;
floatx;
请输入一个实数\n"
%f"
请输入需要的计算1-sin;
2-cos;
3-tan\n"
switch(a)
case1:
%f\n"
sin(x));
break;
case2:
cos(x));
case3:
tan(x));
default:
信息出错\n"
8、用switch完成:
输入星期1到星期5,输出它们对应的颜色
星期1:
blue
星期2:
red
星期3:
white
星期4:
yellow
星期5:
green#include<
charday;
day);
switch(day)
case'
m'
:
bule\n"
case'
t'
red\n"
default:
error\n"
9、用switch完成:
从键盘输入A、B、C、D四个等级中的一个,转化输出
等级
输出
A
优秀
B
良好
C
中等
D
及格
E
不及格
switch(ch)
case'
A=优秀\n"
B'
B=良好\n"
error"
ch=getchar();
putchar(ch);
putchar('
e'
第5章 数组及其应用
1.从键盘输入12个数,分别为:
900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。
inti,a[12],max,min;
请输入12个数:
for(i=0;
12;
scanf("
显示输入的数组:
%d"
a[i]);
if(a[1]>
a[0])
{
max=a[1];
min=a[0];
}
min=a[1];
max=a[0];
for(i=2;
if(a[i]>
max)
max=a[i];
if(a[i]<
min)
min=a[i];
max=%dmin=%d\n"
max,min);
2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。
inti,a[12],y;
偶数有:
if(a[i]%2==0)
printf("
%d\n"
3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然后进行删除。
#defineSIZE10
inti,m,low=0,high=SIZE-1,mid,found=0;
inta[SIZE]={2,3,20,58,72,76,78,87,90,900};
m);
while((low<
=high)&
(found==0))
mid=(low+high)/2;
if(m<
a[mid])
high=mid-1;
elseif(m>
low=mid+1;
elsefound=1;
if(found==1)
mid);
for(i=mid;
SIZE-1;
a[i]=a[i+1];
%d,"
else
notfind\n"
第6章 函数及其应用
练习与实践
一、阅读程序,写出程序运行的结果。
1.写出以下程序的执行结果。
81.
floataver(inta[])求平均的函数
intk,sum=0;
floatave;
for(k=0;
k++)
sum+=*(a+k);
指针与数组
ave=(float)sum/10;
return(ave);
staticb[]={78,89,98,76,78,45,88,81,92,85};
ave=aver(b);
调用函数
ave=%f\n"
ave);
提示:
数组b的首地址传递给形参a,*(a+k)就是数组元素b[k].
2.阅读程序,写出程序的执行结果。
abdef,删除字符串中的字母c
voidabc(charstr[])
{inta,b;
for(a=b=0;
str[a]!
;
a++)
if(str[a]!
='
c’)
str[b++]=str[a];
str[b]='
charstr[]="
abcdef"
;
abc(str);
str[]=%s"
str);
return0;
数组str的首地址传递给形参str,str[a]就是实参中的数组元素str[a],当数组元素不为’c’时进行复制。
3.写出以下程序的执行结果。
55
444
1111
11111
intsort(intb[],intn,intx)
intk;
for(k=n-1;
k>
=0;
k--)
if(b[k]<
x)
b[k+1]=b[k];
else
b[k+1]=x;
inti,j;
staticinta[5]={8,5,4,1,6};
intb[8];
b[0]=a[0];
5;
sort(b,i,a[i]);
j++)
b[i]);
循环体中
如果b[k]<
x成立,执行语句b[k+1]=b[k];
表示数组元素b向后移,不满足时插入x,即从大到小排序。
4.写出以下程序的执行结果。
7
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;
\n%d"
fun(9));
fun(9)=9-fun(7),...,fun
(1)=3
5.写出以下程序的执行结果,并说明其作用是什么?
1432
intf(intn)
if(n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 离线 作业 答案