四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.请阅读分析下列程序,然后写出运行结果。
main( )
{
int a=0,b=1;
printf("a=%d,b=%d\n",a,b);
a+=b;b+=a;
printf("a=%d,b=%d\n",a,b);
}
31.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结
果。
main ( )
{
int x,y;
scanf("%d",&x);
if(x>2&&x<=10)
y=x *(x+2);
else if(x>-1&&x<=2)
y=2*x;
else if(x<-1)y=x-1;
if(y!=-1)
printf("%d,y);
else
printf("error");
}
32.请阅读分析下列程序,然后写出程序的循环次数和运行结果。
main(void)
{
int i;
for(i=1; i<6; i+ +)
{
if(i%2)
{
printf("@");continue;
}
printf("*");
}
printf("\n");
}
33.请阅读分析下列程序,然后写出程序的运行结果。
void fun( );
void main(void)
{
fun( );
fun( );
}
void fun( )
{
static int a[3]={0,1,2},b=10;
int i;
if(b= =10)
{
for(i=0;i<3;i+ +)
a[i]+=a[i];
for(i=0;i<3;i+ +)
printf("%d,",a[i]);
printf("b=%d\n",b);
b+ +;
}
else
{
for(i=0;i<3;i+ +)
a[i]*=a[i];
for(i=0;i<3;i+ +)
printf("%d,"a[i]);
printf("b=%d\n",b);
}
}
34.请阅读分析下列程序,然后写出程序的运行结果。
void main(void)
{
int a[ ]={1,2,3,4,5,6},*p;
p=a;
p+ +;
*(p+3)+=2;
printf("%d\n",*p);
printf("%d\n",*(p+3));
}
35.设有下列创建单向链表的部分程序:
#include"malloc.h"
#include"string.h"
struct automobile
{
char type[20];
int load;
struct automobile *next;
} * head=NULL;
void main(void)
{
struct automobile *p;
char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"};
int automobile_load[3]={24,18,42},j;
for(j=0;j<3;j+ +)
{
p=(①______________)malloc(sizeof(struct automobile));
strcpy(②_____________,automobile_type[j]);
p->load=automobile_load[j];
p->next=head;
head=p;
}
}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
37.设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。