课后题答案.docx
《课后题答案.docx》由会员分享,可在线阅读,更多相关《课后题答案.docx(21页珍藏版)》请在冰豆网上搜索。
![课后题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/26/27b77a2c-d699-47f9-950e-9e5c019c92b8/27b77a2c-d699-47f9-950e-9e5c019c92b81.gif)
课后题答案
项目一
一、选择题
1.A2.C3.B4.A5.D
二、填空题
1.编辑、编译、链接、运行
2.至少一个,可以由任意多个
3.Options子菜单【Directories】子菜单项;Include路径、库文件路径、输出路径、TC路径
4.按照指定格式输出数据
5.快捷键Ctrl+F9;Alt+F5
三、编程题
#include
main()
{
printf("*\n");
printf("**\n");
printf("**\n");
printf("*******\n");
printf("*Triangle!
*\n");
}
项目二
一、填空题
1.'\n':
换行;'\t'跳格;'\0':
空字符;'\07':
BEL;'\"':
双引号。
2.10:
整型;'A':
字符型;1.5E12:
实型;'\n':
字符型。
3.格式字符%d用于输出十进制整数;%c用于输出单个字符;%s用于输出字符串。
4.格式字符%d用于输入十进制整数;%f用于输入单精度数值;%s用于输入字符串。
5.单引号(')
6.axbycz
7.英文大小写字母、数字、下划线。
字母、下划线
8.printf(“n1=%d\nn2=%d”,n1,n2);
二、选择题
1.D
2.C
3.C
4.B
5.D
6.B
7.D
8.B
三、程序的执行结果
项目三
一、选择题
1.C2.D3.D4.C5.D
二、填空题
1.1
2.103
3.1
4.2
5.12;10
三、编程题
1.j
2.x=3,y=2,a=1,b=3
3.
(1)x转换为double型xdouble,y转换为int型yint
(2)计算yint%3
(3)将y转化为double类型ydouble与xdouble相加
(4)将步骤(3)的结果强制转化为int类型
(5)将步骤
(2)的结果与将步骤(4)的结果相乘,结果仍为整数
(6)将步骤(5)的结果转换为double类型,和xdouble相加
main()
{
floatx=3.01;chary='A';
printf("%lf\n",x+y%3*(int)(x+y));
printf("%d",x+y%3*(int)(x+y));
}
4.
main()
{
intn,n1,n2,n3;
printf("inputanumber(100~999):
\n");
scanf("%d",&n);
if(n<100||n>999)
{
printf("%disnotanumberbetween100and999.");
exit(0);
}
n1=n%10;
n2=(n/10)%10;
n3=n/100;
printf("sum:
%d+%d+%d=%d",n1,n2,n3,n1+n2+n3);
}
项目四
四、填空题
1.顺序、选择、循环
2.顺序
3.1
4.&&、||、!
5.x6.y%2==1
五、选择题
1.C
2.D
3.B
4.C
5.C、D
6.D
六、求解下面表达式的值
1.0
2.1
3.
(1)1
(2)0(3)0(4)1
七、程序题
1.2
2.you$3.0yuan/xiaoshi
3.25,18,16
4.功能是完成大小写字母转换,输入Z运行结果是 :
z
八、编写程序
参考程序如下:
1.#include
main()
{inta;
intb;
scanf("%d,%d",&a,&b);
if(a*a+b*b>100)
printf("a*a+b*b=%d",a*a+b*b);
else
printf("a+b=%d",a+b);
}
2.#include
main()
{intx;
scanf("%d",&x);
if(x%5==0&&x%7==0)
printf("yes" );
else
printf("no");
}
3.#include
main()
{inta;
intb;
intc ;
intmax ;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)max=a ;
elsemax=b
if(maxprintf("Max=%d",max);
}
项目五
一、填空题
1.0
2.终止当前switch语句的执行;多个switch表达式对应同样的操作
3.如果没有满足的case语句,就执行default对应的语句
4.执行该语句时,顺次判断各条件,一旦满足某一个条件i,就接着执行对应的语句i。
并且不再执行其他判断,直接退出整个if-else语句。
在执行switch语句时,先计算switch后面括号里表达式的值,然后根据这个结果选择匹配的case语句执行(case后面的常量表达式与switch表达式的值相等称为匹配)。
如果没有满足的case语句,就执行default对应的语句。
5.2
6.0
二、编程题
1.
main()
{
doublex=1;
inty;
printf("pleaseinputvalueofx:
\n");
scanf("%lf",&x);
switch((x<=0)+(x<0))
{
case0:
y=1;
break;
case1:
y=0;
break;
case2:
y=-1;
break;
}
printf("y=%d\n",y);
}
2.
main()
{
intmonth,days;
printf("inputmonth:
\n");
scanf("%d",&month);
if(month<1||month>12)
return;
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case2:
days=28;
break;
default:
days=30;
break;
}
printf("%dthmonthhas%ddays\n",month,days);
}
3.
main()
{
intn1,n2,n3,n4,m1,m2;
printf("input4integers:
\n");
scanf("%d",&n1);
scanf("%d",&n2);
scanf("%d",&n3);
scanf("%d",&n4);
if(n1if(n3if(n1>n3)
printf("Maxvalueis%d",n1);
else
printf("Maxvalueis%d",n3);
}
4.
main()
{
intn,n1,n2,n3;
printf("inputanumber(0~999):
\n");
scanf("%d",&n);
if(n<0||n>999)
{
printf("%disnotaintegerbetween0and999.\n",n);
return;
}
n3=n/100;
if(n3)
{
printf("three-digitnumber.\n");
}
else
{
n2=(n/10)%10;
if(n2)
{
printf("two-digitnumber.\n");
}
else
{
n1=n%10;
if(n1)
{
printf("one-digitnumber.\n");
}
else
{
printf("zero.\n");
}
}
}
}
5.
main()
{
doublemiles,cost;
printf("inputmiles:
\n");
scanf("%lf",&miles);
if(miles<0)
return;
if(miles<3)
cost=7;
else
cost=7+(miles-3)*2.2;
printf("%.2lfmilescost%.2lfyuan.\n");
}
项目六
九、填空题
1.forwhiledo-while
2.do-while语句
3.for语句
4.先判断,后执行。
先执行,后判断。
5.循环变量终值
一十、选择题
1.B
2.A
3.A
4.C
5.C
6.B
7.B
一十一、程序填空
1.(-1)*f
2.①pow1=1②n
3.①sum=0②i++ ; ③sum=sum+1.0/i
4.①i=1 ②scanf("%d",&a); ③a>max
5.①fact=1②i<=n
一十二、写出程序执行结果
1.######
2.8921
3.52
4.死循环,无结果
5.*#*#*#$
6.输出n的阶乘
7.输出x的n次方
8.输出所有输入的数中偶数的和,当输入的数小于0时结束程序
一十三、编写程序
参考程序如下:
4.#include
main()
{
inti,s;
doublet,sum;
s=2;
for(i=1;i<=10;i++)
{
s=s+i-1;
t=s*(1.0)/i;
sum=sum+t;
}
printf("%f\n",sum);
}
5.#include
main()
{inti;
longsum,t;
t=0;
sum=0;
for(i=1;i<=6;i++)
{t=t*10+8;
sum=sum+t;
}
printf("%ld\n",sum);
}
项目七
一、选择题
1.C2.D3.D4.D
二、填空题
1.M-1;N-1
2.strcat
3.str1[0]='\0'
4.&a[i];i%4==0;printf("\n");;
5.a[i][j]%2==0;number++
三、编程题
1.
main()
{
charstr1[20],str2[20];
inti=0,len;
printf("Input2strings:
\n");
gets(str1);
gets(str2);
if(strlen(str1)+strlen(str2)+1>20)
return;
len=strlen(str1);
for(i=0;istr1[len+i]=str2[i];
str1[len+i]='\0';
printf("Thenewstringis:
%s\n",str1);
}
2.
main()
{
doubledata[5],sum;
inti;
printf("input5doublefloatnumber:
\n");
for(i=0;i<5;i++)
scanf("%lf",&data[i]);
sum=0.0;
for(i=0;i<5;i++)
sum=sum+data[i];
sum=sum/5;
printf("average:
%lf\n",sum);
printf("thosenumberarebiggerthanaverage:
\n");
for(i=0;i<5;i++)
if(data[i]>sum)
printf("%lf",data[i]);
}
3.
main()
{
intarr[10]={23,45,-22,32,-56,-1,30,-10,22,16};
inti,num=0;
clrscr();
for(i=0;i<10;i++)
{
if(arr[i]>0)num++;
if(arr[i]<0)arr[i]=0;
}
printf("thereare%dpositivenumbers.\n",num);
printf("thenewelementsare:
\n");
for(i=0;i<10;i++)
{
printf("%d,",arr[i]);
}
printf("\n");
}
4.
main()
{
charstr[20];
chartemp;
inti,j;
printf("inputastring.\n");
gets(str);
for(i=0,j=strlen(str)-1;i{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
printf("reversedstring:
%s\n",str);
}
5.
intIsSymmetric(char*str)
{
inti,j;
for(i=0,j=strlen(str)-1;i{
if(str[i]!
=str[j])return0;
}
return1;
}
main()
{
charstr[20];
chartemp;
inti,j;
clrscr();
printf("inputastring.\n");
gets(str);
if(IsSymmetric(str))
printf("Symmetric.\n");
else
printf("NotSymmetric\n");
}
项目八
一十四、写执行结果
1.x=2,y=5.000000
x=2,y=5.000000
ffc2,ffc4
ffc2,ffc4
(注:
后两行结果不一定与此相同)
2.1
2
3
4
5
6
7
8
9
10
3.C,program,CLanguge
4.1345
5.最后少了“printf("b=%d",b);} ”,结果为:
b=13
一十五、编写程序
1.#include
main()
{inti=0;
chars[30],*p;
printf("pleaseinputtwostrings:
\n");
gets(s);
p=s;
while(*p!
='\0')
{i++;p++;}
printf("Thelengthofstringis%d\n",i);
}
2.#include
main()
{inti,n,t;
intnum[20],*p,*q;
printf("\nPleaseinputn(n<20):
");
scanf("%d",&n);
for(i=0;i{printf("\nPleaseinputNo.%d:
",i+1);
scanf("%d",&num[i]);
}
for(p=num,q=num+n-1;p{t=*p;*p=*q;*q=t;}
for(i=0;i}
或:
#include
main()
{intn,t;
intnum[20],*p,*q;
printf("\nPleaseinputn(n<20):
");
scanf("%d",&n);
for(p=num;p{printf("\nPleaseinputNumber:
");
scanf("%d",p);
}
for(p=num,q=num+n-1;p{t=*p;*p=*q;*q=t;}
for(p=num;p}
项目九
一、选择题
1.A2.C3.A4.D5.B
二、填空题
1.一一对应,个数相同,对应参数的类型相同
2.从实参到形参的单向传递
3.返回主调函数继续向下执行
4.A+B=12,C=14
三、编程题
1.
intsum(intn)
{
inti,s=0;
for(i=2;i<=n;i+=2)
s=s+i;
returns;
}
main()
{
inti,n;
printf("inputainteger(>1):
\n");
scanf("%d",&n);
if(n<1)
return;
printf("sumis%d\n",sum(n));
}
2.
intIsPrime(intn)
{
inti;
if(n<2)
return-1;
for(i=2;i{
if(n%i==0)return0;
}
return1;
}
main()
{
intn,m;
clrscr();
printf("inputapositiveinteger:
\n");
scanf("%d",&n);
m=IsPrime(n);
if(m==1)
printf("%disaprimenumber.\n",n);
elseif(m==0)
printf("%disnotaprimenumber.\n",n);
}
3.
intsum(intn)
{
inti,s=0;
while(n)
{
s=s+n%10;
n=n/10;
}
returns;
}
main()
{
inti,n;
printf("inputapositiveinteger(>1):
\n");
scanf("%d",&n);
if(n<1)
return;
printf("sumis%d\n",sum(n));
}
4.
voidfunc(char*str)
{
intlen,i;
printf("inputastring:
\n");
gets(str);
len=strlen(str);
for(i=1;i<=len;i++)
str[i-1]=str[i];
printf("newstringis:
\n");
printf("%s\n",str);
}
main()
{
intn,m;
charstr[20];
clrscr();
func(str);
}
项目十
一十六、分析程序功能
1.计算整数u和v的最大公约数H.C.F和最小公倍数L.C.D。
2.输入一个不超过10个字符的字符串,将字符串中字符从大倒小排序输出。
一十七、错误分析
正确的程序如下:
intsum(inta,intb)
{
return(a+b);
}
main()
{
intx,y;
x=3;
y=5;
printf("%d\n",sum(x,y));
}
一十八、读程序,写结果
1.运行结果为:
Theresultis243.000000
程序的功能为:
求乘方
2.程序运行结果为:
5050。
该程序的功能为:
求1+2+3+4+……+k的和
3.程序运行结果为:
140。
该程序的功能为:
计算7*20
项目十一
一十九、简答题
1.函数gettime获取当前系统时间。
需要加载头函数dos.h
2.函数initgraph
3.调用格式为:
initgraph(*gdriver,*gmode,*path)
调用方法:
intgdriver=VGA,gmode=VGAHI;
initgraph(&gdriver,&gmode,"d:
\\turboc");
4.使用函数setcolor(4)设置前景色为红色
使用函数setbkcolor
(1)设置背景色为蓝色。