C语言程序设计项目教程课后参考答案_c语言程序设计答案
C语言程序设计项目教程课后参考答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计答案”。
《C语言程序设计项目教程》课后参考答案
连雁平
武夷学院数学与计算机学院
2013.9.25 第一章: 1.填空题
(1)函数
主函数
函数
(2)/*
*/(3)连接
(4)#
(5).h
(6).c
.obj
.exe 2.选择题
(1)C(2)C(3)D(4)B(5)D(6)A 3.程序设计题
(1)#include
void main()
{
printf(“*”);
printf(“**”);
printf(“***”);
printf(“**”);
printf(“*”);}(2)#include
void main()
{
printf(“***************”);
printf(“这是我的C程序”);
printf(“***************”);} 第二章: 1.填空题
(1)0x(2) (3)5(4)a%2!=0(5)0(6)x>20&&x
(1)C(B答案如果斜杆之间无空格是对的)
(2)A(3)B(4)B(5)A(输出结果是字符5)
(6)C(7)B(8)A(9)C(10)A(11)B(12)D(13)D(14)D(15)B(16)A(17)B(18)C C(19)A(20)与第2题题目一样
(21)C(22)第一个w应该是变量x才是,无答案
(23)D(24)D(25)B 3.程序设计题
(1)#include
void main()
{ float a=2,b=6,h=3.6;printf(“%f”,(a+b)*h/2);}
(2)#include void main(){ int time,h,m,s;scanf(“%d”,&time);s=time%60;m=time/60%60;h=time/3600;printf(“时间是%d小时%d分%d秒”,h,m,s);} 第三章: 1.选择题
(1)D(2)D(A的答案要修改一下,不然也是不合法)(3)和(4)与第一题相同(5)D(6)D(7)A(8)B 2.编程题
(1)#include void main(){
char c;
c=getchar();
putchar(c-1);
putchar(c);
putchar(c+1);}(2)#include void main(){ int score1,score2,score3,score4,sum;
float avr;scanf(“%d,%d,%d,%d”,&score1,&score2,&score3,&score4);
sum=score1+score2+score3+score4;
avr=sum/4.0;
printf(“总成绩是:%d,平均分是:%f”,sum,avr);} 第四章: 1.填空题
(1)1(2)54321(3)(x%3==0||x%7==0)
f=1;(4)y is 1.I do this.2.选择题
(1)B(2)D(3)B(4)C(5)A(6)A 3.编程题(1)
#include
void main(){ int i;scanf(“%d”,&i);if(i%2==0)
printf(“%d是偶数!”,i);else
printf(“%d是奇数!”,i);}(2)
#include #include void main(){ int a,b,i;for(a=3;a
b=sqrt(a);
for(i=2;i
if(a%i==0)break;
if(i>b)
printf(“%d ”,a);} }(3)
#include void main(){ int n,t=1,T=0;for(n=1;n
t*=n;
T+=t;} printf(“1!+2!+3!+4!+5!=%d”,T);}(4)
#include void main(){ char ch;int i=0;while((ch=getchar())!='n')
i++;
printf(“总共输入%d个字符”,i);} 第五章: 1.填空题
(1)14 0(2)[常量表达式1][常量表达式2](3)按行存放
(4)i*n+j+1(5)0
0(6)首地址
(7)字符(8)string.h(题干中“写入库函数”应该是“包含头文件”)
(9)2 1(10)for(i=0;i
(1)B(2)D(3)CD(题干“数组a”应该是“数组b”)
(4)C(答案C应该是“double c[5][4];”)(5)D(B答案中的a[n]应该是a[m])
(6)C(7)D(8)D(9)D(该题与填空题第4题重复)
(10)C(11)B(12)C(13)D(14)B(15)B(16)D(17)A(18)B(19)D(20)D(题干“字符中”应该是“字符串”)(21)C(22)D(23)D(24)B(25)D 3.分析题
(1)1 0 0 0 0(第七行应该是s[i][j])(2)AB LMNP
0 1 0 0 0
(3)SW(case „I‟后面是冒号不是分号)
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1(4)array a:(第一个for循环后面的左花括号去掉)(5)1 7
array b: 12 13 1 4 17 18 19 2 5 22 23 24 25 3 6 4.编程题(1)
#include void main(){ int a[20];
int i,j,t;printf(“input 20 numbers :n”);for(i=0;i
scanf(“%d”,&a[i]);
printf(“n”);for(j=0;j
if(a[i]
{t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(“the sorted numbers :n”);for(i=0;i
printf(“n”);}(2)
#include void main(){
int a[4][4],i,j,max,row1,column1;
int min,row2,column2;
for(i=0;i
for(j=0;j
scanf(“%d”,&a[i][j]);
max=a[0][0];row1=0;column1=0;
min=a[0][0];row2=0;column2=0;
for(i=0;i
for(j=0;j
{
if(max
{
max=a[i][j];
row1=i;
column1=j;
}
if(min>a[i][j])
{
min=a[i][j];
row2=i;
column2=j;
}
} printf(“max=%d,row=%d,column=%dn”,max,row1+1,column1+1);printf(“min=%d,row=%d,column=%dn”,min,row2+1,column2+1);}(3)
#include void main(){ int num[4][4]={32,30,49,56,15,7,31,9,2,8,24,17,37,19,98,35};int i,j,data1,data2,max,min;for(j= 0;j
min= num[j][0];
data1=0;
for(i=1;i
{
if(min>num[j][i])
{
min=num[j][i];
data1 = i;
}
}
max=num[0][data1];
data2 = 0;
for(i=0;i
{
if(max
{
max=num[i][data1];
data2 = i;
}
}
if(data2 == j)
printf(“该矩阵的马鞍点是: num[data2][data1]);
} }(4)
#include #include void main(){ char str[50];int i,s;printf(”请输入一行字符串:“);gets(str);s=strlen(str);printf(”字符串倒序输出:“);for(i=s-1;i>=0;i--)
printf(”%c“,str[i]);}(5)
#include #include void main(){ char a[80],str1[80],str2[80],str3[80];printf(”请输入三个字符串“);printf(”字符串str1:“);gets(str1);
num[%d][%d]=%dn”, data2, data1,printf(“字符串str2:”);gets(str2);printf(“字符串str3:”);gets(str3);if(strcmp(str1,str2)>0)strcpy(a,str1);else strcpy(a,str2);if(strcmp(a,str3)>0)puts(a);else puts(str3);}(6)
#include void main(){ int score[20][3],sum[20],i,j,t;for(i=0;i
for(j=0;j
scanf(“%d”,&score[i][j]);for(i=0;i
sum[i]=0;for(i=0;i
for(j=0;j
sum[i]+=score[i][j];for(i=0;i
for(j=0;j
if(sum[j]
{t=sum[j];sum[j]=sum[j+1];sum[j+1]=t;} printf(“总成绩从大到小顺序是:”);for(i=0;i
printf(“%4d”,sum[i]);} 第六章 1.填空题(1)int(2)值传递
址传递
(3)2(4)static(5)1(6)10,20,40,40(7)②
(8)13
2.选择题
(1)B(2)A(3)D(4)C(5)A(6)B(7)D 3.程序设计题 1.int fun(int x,int y){
char c;
switch(c=getchar())
{
case '+':return x+y;break;8)B 24
(case '*':return x*y;break;default:printf(“输入的符号不对!”);
} } 2.#include void strfun(char a[],char b[]){
int alen=strlen(a);
int blen=strlen(b);
int i;
for(i=0;i
a[alen+i]=b[i];
puts(a);} 3.float fun(int n){ float i,t=1.0,s=0;for(i=1;i
t=t/i;
s+=t;} return s;} 4.void charsum(char s[80],int sum[4]){
int i,strl;
strl=strlen(s);
for(i=0;i
if((s[i]>='a'&&s[i]='A'&&s[i]
sum[0]++;
else if(s[i]>='1'&&s[i]
sum[1]++;
else if(s[i]==' ')
sum[2]++;
else
sum[3]++;
printf(“字母个数是:%d,数字个数是:%d,空格个数是:是:%dn”,sum[0],sum[1],sum[2],sum[3]);} 5.%d,其他字符个数
#include #define MAX(a,b,c)((a)>(b)?(a):(b))>(c)?((a)>(b)?(a):(b)):(c)void main(){ int a,b,c;printf(“请输入三个数字:”);scanf(“%d%d%d”,&a,&b,&c);printf(“最大的数字是:%d”,MAX(a,b,c));}