资源描述
第3次作业ﻫ一、程序阅读题(本大题共50分,共 5 小题,每小题 10 分)ﻫ1、
#include <stdio、h>
#define F(x) x*x
int main()
{
double n;
n=F(3、5+5)/F(3);
printf(”n=%、2lf\n”,n);
return 0;
}
2、 (写出下面程序执行得结果) ﻫ#include <stdio、h> ﻫint main() ﻫ{ ﻫint x,b1,b2,b3; ﻫ x=300; ﻫ b3=x/100;
b2=(x-b3)/100;
b1=x%10;
x=b1+b2+b3;
printf("%d\n",x); ﻫreturn 0;
}
3、
写出下面程序执行得结果)
#include <stdio、h>
int main()
{
char c,str[]="SSSWILTCH2\2\223WALL";
int k;
for(k=2;(c=str[k])!='\0’;k++)
{ switch(c)
{ case ’A': putchar(’a’);
continue;
case '2’: break;
case 2: while((c=str[k++])!='\2'&&c!=’\0’)
;
case 'T’: putchar(’*');
case ’L': continue;
default: putchar(c);
continue;
}
putchar(’#');
}
printf(”\n");
return 0;
}
ﻫ4、 (写出下面程序执行得结果) ﻫ#include <stdio、h〉
int main() ﻫ{
char c1=’a’,c2=’b',c3=’c',c4='\101',c5=’\x4a’;
printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c %c\n”,c4,c5); ﻫreturn 0;
}
5、
(写出下面程序执行得结果)
#include <stdio、h>
int a,b,c,d;
int main( )
{
void p(int a,int b);
printf("%d,%d,%d,%d\n",a,b,c,d);
p(a,b);
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}
void p(int a,int b)
{
static int c;
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 〈stdio、h>
#include < >
int main()
{
double a,b;
scanf("%lf,%lf”,&a,&b);
printf(”%lf\n",sqrt(a+b));
return 0;
}
A string、h
B stdlib、h
C math、h
D mathematics、h
ﻫ2、
下面程序得功能就是:挑选输入流中得数字字符按序组成整数(例如输入流为ab3c5g8,获取得整数为358), 请选择合适选项填空完成程序。
#include 〈stdio、h>
int main()
{
char c;
int n=0;
while((c=getchar())!=’\n')
if( )
n=n*10+c—'0’;
printf("n=%d\n",n);
return 0;
}
A c>='0'&&c<=’9'
B c〉'0’&&c〈'9'
C c>=0&&c〈=9
D c〉’0’||c〈'9'
3、 下面程序得功能就是:求从键盘输入得3个整数之与。请选择合适选项填空完成程序。 ﻫ#include <stdio、h〉
int add( ① ); ﻫint main() ﻫ{ ﻫint a,b,c,sum;
printf("?a,b,c: ”);
scanf("%d,%d,%d",&a,&b,&c);
sum=add( ② ); ﻫprintf(”sum=%d\n",sum); ﻫreturn 0;
}
int add(int a,int b) ﻫ{
return a+b;
} ﻫA add(a,b),c
B a,b,c
C int a;int b
D int,int
4、
下面程序得功能就是:将从键盘上输入得一个字符串数据写入到指定得文件中,然后将其读出进行校验,正确输出OK,错误输出ERROR。请选择合适选项填空完成程序。
#include <stdio、h〉
#include 〈string、h>
int main()
{
FILE *fpt ;
char str[100],str1[100]="",fn[20];
printf("Input the :”);
gets(fn);
if((fpt= ① )==NULL)
{
printf("Can’t open \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);
return 0;
}
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 <stdio、h>
int main()
{
unsigned short a,b,c,d;
a=0x29;
b=a〉〉4;
c= ① ;
d=b&c;
printf("%x\n%x\n”,a,d);
return 0;
}
A (~0<〈4)
B ~(0<〈4)
C ~(~0>>4)
D ~(~0<〈4)
ﻫ
ﻫ答案:
一、程序阅读题(50分,共 5 题,每小题 10 分)
1、 ﻫ参考答案:
n=24、00
ﻫ解题方案:
ﻫ评分标准:ﻫﻫ2、
参考答案:
5ﻫ解题方案:
ﻫ评分标准:
ﻫ3、
参考答案:
SWI*CH#*Wa
ﻫ解题方案:ﻫﻫ评分标准:
4、
参考答案:ﻫaa bb cc abc
A J ﻫﻫ解题方案:ﻫ
评分标准:
5、
参考答案:
0,0,0,0
2,2,-3,3
1,1,-3,3
0,0,0,3
ﻫ解题方案:
ﻫ评分标准:
ﻫ二、程序设计题(40分,共 5 题,每小题 8 分)ﻫﻫ1、
参考答案:
#include <stdio、h〉
#include <stdlib、h>
#include <time、h>
int main()
{
int a[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("\tarray A:\tarray B:\n”);
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
printf("%4d”,a[i][j]);
printf("\t%4d\n",b[i]);
}
return 0;
}
解题方案:
评分标准:
2、 ﻫ参考答案:
#include <stdio、h>
#include <stdlib、h>
#define MAX 1000
enum dig{zero,one,two,three,four,five,six,seven,eight,nine};
int main()
{
int getline(char *s,int lim);
char str[MAX],*p;
int counter[10]={0},i;
enum dig nu=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");
return 0;
}
ﻫ解题方案:
ﻫ评分标准:
3、
参考答案:
#include <stdio、h>
int main()
{
int n,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);
return 0;
}
ﻫ解题方案:
ﻫ评分标准:
ﻫ4、
参考答案:
#include 〈stdio、h> ﻫint main()
{ ﻫdouble c,f;
printf("请输入华氏温度数:");
scanf("%lf”,&f);
c=5、0/9*(f—32);
printf(”摄氏温度就是:%lf\n”,c); ﻫreturn 0;
}
ﻫ解题方案:
评分标准:ﻫ
5、 ﻫ参考答案:
#include <stdio、h〉
int main()
{
double H(int n,double x);
int n;
double x;
printf("Input x and n:”);
scanf("%lf,%d”,&x,&n);
printf(”H(%d,%lf)=%lf\n",n,x,H(n,x));
return 0;
}
double H(int n,double x)
{
if(n==0)
return 1;
else if(n==1)
return 2*x;
else
return 2*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ﻫ解题方案:
评分标准:
展开阅读全文