C语言程序设计第3次.docx
《C语言程序设计第3次.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第3次.docx(12页珍藏版)》请在冰豆网上搜索。
C语言程序设计第3次
第3次作业一、程序阅读题〔本大题共50分,共5小题,每一小题10分〕
1.
#include
#defineF(x)x*x
intmain()
{
doublen;
n=F(3.5+5)/F(3);
printf("n=%.2lf\n",n);
return0;
}
2.〔写出下面程序执行的结果〕
#include
intmain()
{
intx,b1,b2,b3;
x=300;
b3=x/100;
b2=(x-b3)/100;
b1=x%10;
x=b1+b2+b3;
printf("%d\n",x);
return0;
}
3.
写出下面程序执行的结果〕
#include
intmain()
{
charc,str[]="SSSWILTCH2\2\223WALL";
intk;
for(k=2;(c=str[k])!
='\0';k++)
{ switch(c)
{ case'A':
putchar('a');
continue;
case'2':
break;
case2:
while((c=str[k++])!
='\2'&&c!
='\0')
;
case'T':
putchar('*');
case'L':
continue;
default:
putchar(c);
continue;
}
putchar('#');
}
printf("\n");
return0;
}
4.〔写出下面程序执行的结果〕
#include
intmain()
{
charc1='a',c2='b',c3='c',c4='\101',c5='\x4a';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c\n",c4,c5);
return0;
}
5.
〔写出下面程序执行的结果〕
#include
inta,b,c,d;
intmain()
{
voidp(inta,intb);
printf("%d,%d,%d,%d\n",a,b,c,d);
p(a,b);
printf("%d,%d,%d,%d\n",a,b,c,d);
return0;
}
voidp(inta,intb)
{
staticintc;
a++,b++;
c-=1,d+=1;
if(a<3)
{
p(a,b);
printf("%d,%d,%d,%d\n",a,b,c,d);
}
}
二、程序设计题〔本大题共40分,共5小题,每一小题8分〕
1.编程序实现功能:
将一个10行5列数组a每一行中最大值取出存放到一个一维数组b中,输出数组a和数组b的值,要求所有数组操作通过两种以上的指针方式表示。
2.编写程序实现功能:
分别统计键盘输入流上接收字符串中每种数字字符的个数,要求使用数组表示所有计数器集合,并且在数组的下标表达式中使用枚举型数据。
3.编程序实现功能:
求出在1~1000之间的整数中能同时被3、5、7整除的数,输出满足条件的数以与它们的和。
4.编程序实现华氏温度到摄氏温度的转换,其转换公式是:
,式中f表示华氏温度,c表示摄氏温度。
5.
编写一个递归函数计算Hermite多项式,Hn〔x〕定义为:
三、填空题〔本大题共10分,共5小题,每一小题2分〕
1.
下面程序的功能是:
求两个实数之和的平方根,请选择适宜选项填空完成程序。
#include
#include< >
intmain()
{
doublea,b;
scanf("%lf,%lf",&a,&b);
printf("%lf\n",sqrt(a+b));
return0;
}
2.
下面程序的功能是:
挑选输入流中的数字字符按序组成整数〔例如输入流为ab3c5g8,获取的整数为358〕,请选择适宜选项填空完成程序。
#include
intmain()
{
charc;
intn=0;
while((c=getchar())!
='\n')
if( )
n=n*10+c-'0';
printf("n=%d\n",n);
return0;
}
Ac>='0'&&c<='9'
Bc>'0'&&c<'9'
Cc>=0&&c<=9
Dc>'0'||c<'9'
3.下面程序的功能是:
求从键盘输入的3个整数之和。
请选择适宜选项填空完成程序。
#include
intadd( ① );
intmain()
{
inta,b,c,sum;
printf("?
a,b,c:
");
scanf("%d,%d,%d",&a,&b,&c);
sum=add( ② );
printf("sum=%d\n",sum);
return0;
}
intadd(inta,intb)
{
returna+b;
}
Aadd(a,b),c
Ba,b,c
Cinta;intb
Dint,int
4.
下面程序的功能是:
将从键盘上输入的一个字符串数据写入到指定的文件中,然后将其读出进展校验,正确输出OK,错误输出ERROR。
请选择适宜选项填空完成程序。
#include
#include
intmain()
{
FILE *fpt;
charstr[100],str1[100]="",fn[20];
printf("Inputthefilename:
");
gets(fn);
if((fpt= ① )==NULL)
{
printf("Can'topenfile%s\n",fn);
return-1;
}
gets(str);
fwrite(str,sizeof(char),strlen(str),fpt);
fseek( ② );
fread(str1,sizeof(char),strlen(str),fpt);
if(strcmp(str,str1)==0)
printf("OK\n");
else
printf("ERROR\n");
puts(str1);
fclose(fpt);
return0;
}
A fopen(fn,"w+")
B fpt,-1*strlen(str),SEEK_CUR
C fpt,-1*strlen(str),SEEK_END
D fopen(fn,"r+"))
5.
下面程序的功能是:
取出变量a从右端开始的4~7位,存放到变量d中并输出。
请选择适宜选项填空完成程序。
#include
intmain()
{
unsignedshorta,b,c,d;
a=0x29;
b=a>>4;
c= ① ;
d=b&c;
printf("%x\n%x\n",a,d);
return0;
}
A (~0<<4)
B ~(0<<4)
C ~(~0>>4)
D ~(~0<<4)
答案:
一、程序阅读题〔50分,共5题,每一小题10分〕
1.
参考答案:
解题方案:
评分标准:
2.
参考答案:
5
解题方案:
评分标准:
3.
参考答案:
SWI*CH#*Wa
解题方案:
评分标准:
4.
参考答案:
aabb cc abc
AJ
解题方案:
评分标准:
5.
参考答案:
0,0,0,0
2,2,-3,3
1,1,-3,3
0,0,0,3
解题方案:
评分标准:
二、程序设计题〔40分,共5题,每一小题8分〕
1.
参考答案:
#include
#include
#include
intmain()
{
inta[10][5],b[10],i,j;
srand(time(NULL));
for(i=0;i<10;i++)
for(j=0;j<5;j++)
*(a[i]+j)=rand()%100;
for(i=0;i<10;i++)
{
*(b+i)=a[i][0];
for(j=0;j<5;j++)
if(*(b+i)<*(*(a+i)+j))
*(b+i)=*(*(a+i)+j);
}
printf("\tarrayA:
\tarrayB:
\n");
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\t%4d\n",b[i]);
}
return0;
}
解题方案:
评分标准:
2.
参考答案:
#include
#include
#defineMAX1000
enumdig{zero,one,two,three,four,five,six,seven,eight,nine};
intmain()
{
intgetline(char*s,intlim);
charstr[MAX],*p;
intcounter[10]={0},i;
enumdignu=zero;
gets(str);
p=str;
while(*p)
{
if(*p>='0'&&*p<='9')
counter[nu+*p-'0']++;
p++;
}
for(i=0;i<10;i++)
printf("%4d",counter[i]);
printf("\n");
return0;
}
解题方案:
评分标准:
3.
参考答案:
#include
intmain()
{
intn,sum=0;
for(n=1;n<=1000;n++)
if(n%3==0&&n%5==0&&n%7==0)
{ printf("%5d",n);
sum+=n;
}
printf("\nsum=%d\n",sum);
return0;
}
解题方案:
评分标准:
4.
参考答案:
#include
intmain()
{
doublec,f;
printf("请输入华氏温度数:
");
scanf("%lf",&f);
c=5.0/9*(f-32);
printf("摄氏温度是:
%lf\n",c);
return0;
}
解题方案:
评分标准:
5.
参考答案:
#include
intmain()
{
doubleH(intn,doublex);
intn;
doublex;
printf("Inputxandn:
");
scanf("%lf,%d",&x,&n);
printf("H(%d,%lf)=%lf\n",n,x,H(n,x));
return0;
}
doubleH(intn,doublex)
{
if(n==0)
return1;
elseif(n==1)
return2*x;
else
return2*x*H(n-1,x)-2*(n-1)*H(n-2,x);
}
解题方案:
评分标准:
三、填空题〔10分,共5题,每一小题2分〕
1.
参考答案:
C
解题方案:
评分标准:
2.
参考答案:
A
解题方案:
评分标准:
3.
参考答案:
① D
② A
解题方案:
评分标准:
4.
参考答案:
① A
② B
解题方案:
评分标准:
5.
参考答案:
D
解题方案:
评分标准: