浙江农林大学C语言程序设计习题集答案Word格式.docx
《浙江农林大学C语言程序设计习题集答案Word格式.docx》由会员分享,可在线阅读,更多相关《浙江农林大学C语言程序设计习题集答案Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
inta,b,c,min;
%d,%d,%d"
min=a;
if(min>
b)min=b;
c)min=c;
inta;
%d"
a);
if(a%3==0&
&
a%5==0&
a%7==0)
yes"
no"
floatx,y;
%f"
x);
if(x<
0)
y=fabs(x);
elseif(x>
=0&
x<
=2)
y=sqrt(x+1);
elseif(x>
=2&
4)
y=pow(x+2,3);
y=2*x+5;
x=%f,y=%f"
x,y);
4
floatrate,tax,salary;
salary);
if(salary<
=850)
rate=0;
elseif(salary>
1350&
salary<
=2850)
rate=0.1;
2850&
5850)
rate=0.15;
rate=0.2;
tax=rate*(salary-850);
salary=%f,rate=%f,tax=%f"
salary,rate,tax);
5
inta,b,sum,n;
%d,%d"
a,b);
sum=a*a+b*b;
if(sum>
100)
n=sum/100;
a*a+b*b=%d,n=%d"
sum,n);
a*a+b*b=%d"
sum);
第6章循环控制
一、填空题:
1、22
2、23
3、46
4、117
二、选择题:
1.C2.D3.B4.B5.B6.C7.C8.C9.B10.D
三、程序阅读:
1、输出:
33
2、输出:
24
3、2#4#7#11#16#
4、3#2#0#0#1#
5、B,A,D,C
6、D,A,B,C
7、B,C,A,D
8、A,D,D,C
9、C,C,A
10、B,D,A
11、A,D,C
四、编程
1.#include<
{intx;
xsqrt(x)\n"
for(x=5;
x<
=1000;
x++)
%d%f\n"
x,sqrt(x));
2.#include<
#include<
main()
inti,flag;
doublepi,item;
i=1;
flag=1;
pi=0;
item=1.0;
while(fabs(item)>
=0.00001)
{item=flag*1.0/i;
pi=pi+item;
flag=-flag;
i=i+2;
pi=pi*4;
pi=%f"
pi);
3.教材126页例6.8
4.#include<
{inti,num1,num2,num3;
num1=1;
num2=1;
%d%d"
num1,num2);
for(i=3;
i<
=10;
i=i+1)
num3=num1+num2;
%d"
num3);
num1=num2;
num2=num3;
第7章数组
一、选择题:
1.D2.D3.A4.C5.C6.C7.D8.B9.D10.B11.D12.D13.D14.A15.B
二、程序阅读:
1、A,B,B,D
2、C,D,A,B
3、B,B
4、D,C,A
5、C,D
6、C,A
7、1#2#3#1#1#3
8、298
三、编程:
1、#include<
voidmain()
intmark,a,p,f;
a=p=f=0;
printf("
Enterscores:
"
scanf("
&
mark);
while(mark>
0){
if(mark>
=85)a++;
elseif(mark>
=60)p++;
elsef++;
scanf("
>
=85:
%d\n"
a);
60-84:
p);
<
60:
f);
2、#include<
{inta[10],count=0,i;
floataverage,sum=0;
for(i=0;
10;
i++)
{scanf("
a[i]);
sum=sum+a[i];
average=sum/10;
if(a[i]>
average)count=count+1;
平均值为%f大于平均值的数有%d个"
average,count);
3.
main()
{inta[10];
inti,j,t,n;
printf(“请输入一个正整数n(1<
n≤10):
”);
scanf(“%d”,&
n);
printf(“请输入数据:
for(i=0;
i<
n;
i++)
\n"
for(j=0;
j<
n-1;
j++)/*确定基准位置*/
for(i=j+1;
if(a[j]>
a[i])
{t=a[j];
a[j]=a[i];
a[i]=t;
Thesortednumbers:
\n"
for(i=0;
a[i]);
}
4.#include<
{inta[6][6],n,i,j,x,y,max;
printf(“请输入一个正整数n(1≤n≤6):
printf(“请输入一个n行n列的矩阵:
\n”);
j<
j++)
a[i][j]);
max=a[0][0];
x=0;
y=0;
if(fabs(a[i][j])>
max){max=a[i][j];
x=i;
y=j;
printf(“绝对值最大的元素为:
%d,下标分别为:
%d,%d\n”,max,x,y);
第8章函数
一、选择题
(1)A
(2)B
(3)C
(4)B
(5)A
(6)
(7)
(8)C
i.B
ii.D
iii.A
iv.D
v.D
vi.C
vii.B
viii.A
ix.D
x.B
xi.B
xii.C
xiii.C
xiv.B
xv.B
(9)
(10)
二、程序阅读题
(1)3,5
(2)4
(3)s=18
(4)5,25
三、程序设计
#include<
intisprime(intm)
{intk,n,res;
if(m==1)return0;
res=1;
n=(int)sqrt(m);
for(k=2;
k<
=n;
k++)
if(m%k==0){
res=0;
break;
returnres;
intm,n;
intsum=0;
inti;
do
Inputm,nm<
nlike:
3,10\n"
scanf("
m,&
}while(m<
0||n<
0||m>
for(i=m;
=n;
if(isprime(i))
{
sum+=i;
}
Theallprimes'
sumis:
intmax_value(intarr[][4])
inti,j,max;
max=arr[0][0];
2;
for(j=0;
4;
if(max<
a[i][j])
max=a[i][j];
returnmax;
intisTheFineNumber(intn)
intflag=0;
inta,b,c;
if((int)sqrt(n)==sqrt(n))//Í
ê
È
«
Æ
½
·
Ê
ý
a=n%10;
b=(n/10)%10;
c=n/100;
if(a==b||b==c||c==a)
flag=1;
returnflag;
intn;
for(i=101;
if(isTheFineNumber(i))
printf("
i);
第9章预处理命令
CBBBDDDBC
第10章指针
一、选择题:
1、D
2、A
3、D
4、A
5、D
6、B
7、C
8、D
9、B
10、
11、D
12、A
二、程序阅读题:
1、C
3、B
4、C
5、A
三、程序设计题:
{voidswap(int*pointer1,int*pointer2);
int*p1,*p2;
inta=1,b=2;
p1=&
a;
p2=&
b;
swap(p1,p2);
%d\n%d"
voidswap(int*p1,int*p2)
inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
{inta[10],*p1,i,j,temp;
p1=a;
p1+i);
{p1=a;
10-i;
j++,p1++)
if(*p1>
*(p1+1))
temp=*p1;
*p1=*(p1+1);
*(p1+1)=temp;
for(i=0;
i++,p1++)
*p1);
intupper=0,lower=0,digit=0,space=0,other=0,i=0;
char*p,s[20];
inputstring:
while((s[i]=getchar())!
='
\n'
)i++;
p=&
s[0];
while(*p!
)
{if(('
A'
=*p)&
(*p<
Z'
))
++upper;
elseif(('
a'
z'
++lower;
elseif(*p=='
'
++space;
elseif(('
0'
9'
++digit;
else++other;
p++;
uppercaseis:
%dlowercase:
upper,lower);
space:
%ddigit:
%dother:
space,digit,other);
strmcpy(chars[],chart[],intm)
{char*p1,*p2,i;
p1=s;
p2=t+m;
while(*p2!
\0'
)
p1++;
p2++;
ints[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int*p,i,j,t;
p=&
s[0][0];
for(j=i;
{t=*(p+4*i+j);
*(p+4*i+j)=*(p+4*j+i);
*(p+4*j+i)=t;
第11章结构体共用体
1.D、D、D、D、C
2.D
3.A
4.BC(选项B改为(*p).pk,结果为C)
5.D
二、选择填空题:
1.B
2.C
三、编程题:
struct
intyear;
intmonth;
intday;
}date;
{intdays;
inputyear,month,day:
%d%d%d"
date.year,&
date.month,&
date.day);
switch(date.month)
case1:
days=date.day;
break;
case2:
days=date.day+31;
case3:
days=date.day+59;
case4:
days=date.day+90;
case5:
days=date.day+120;
case6:
days=date.day+151;
case7:
days=date.day+181;
case8:
days=date.day+212;
case9:
days=date.day+243;
case10:
days=date.day+273;
case11:
days=date.day+304;
case12:
days=date.day+334;
if((date.year%4==0&
date.year%100!
=0||date.year%400==0)
&
date.month>
=3)days+=1;
%d/%disthe%dthdayin%d\n"
date.month,date.day,days,date.year);
inthour;
intmin;
intsec;
}time1,time2,time3;
{
inputthefirsttimehour,min,sec:
time1.hour,&
time1.min,&
time1.sec);
inputthesecondtimehour,min,sec:
time2.hour,&
time2.min,&
time2.sec);
time3.sec=time2.sec-time1.sec;
if(time3.sec<
0)
{time3.sec+=60;
time2.sec--;
time3.min=time2.min-time1.min;
if(time3.min<
{time3.min+=60;
time2.min--;
time3.hour=time2.hour-time1.hour;
timelagishour:
%dmin:
%dsec:
time3.hour,time3.min,time3.sec);
#defineN5
structstudent
charnum[6];
charname[6];
intscore[4];
}stu[N];
{voidprint(structstudentstu[6]);
inti,j;
N;
ninputscoreofstudent%d:
i+1);
No.:
"
%s"
stu[i].num);
name:
stu[i].name);
3;
score%d:
j+1);
scanf("
stu[i].score[j]);
print(stu);
}
voidprint(structstudentstu[6])
{inti,j;
\nNo.namescore1score2score3\n"
for(i=0;
%5s%10s"
stu[i].num,stu[i].name);
for(j=0;
%9d"
stu[i].score[j]);
第13章文件
CCBBACCDDCDDD
二、编程
1.
string.h>
FILE*fp;
charstr[80];
if((fp=fopen("
test.txt"
"
r"
))==NULL)
error\n"
while(!
feof(fp))
fscanf(fp,"
%s\n"
str);
if(strstr(str,"
for"
)!
=NULL)
fclose(fp);
2.
intn,sum=0;
in.txt"
a+"
sum+=n;
fprintf(fp,"
\nsum=%d\n"
3.
stdlib.h>
voidma