(9)以下程序的定义语句中,x[1]的初值是【9】 ,程序运行后输出的内容是【10】。
#include <stdio.h>
main() www.ExamW.CoM
{ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{ p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");
}
(10)以下程序的输出结果是【11】。
#include <stdio.h>
void swap(int *a, int *b)
{ int *t;
t=a; a=b; b=t;
}
main()
{ int i=3,j=5,*p=&i,*q=&j;
swap(p,q); printf("%d %d\n",*p,*q);
}
(11)以下程序的输出结果是【12】。
#include <stdio.h>
main()
{ int a[5]={2,4,6,8,10},*p;
p=a; p++;
printf("%d",*p);
}
(12)以下程序的输出结果是【13】。
#include <stdio.h>
void fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d",x);
}
main()
{ fun(3); printf("\n");}
(13)以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。请填空。
#include <stdio.h>
#define N 3
typedef struct
{ int num; char nam[10]; char sex;}SS;
int fun(SS person[])
{ int I,n=0;
for(I=0;I<N;I++)
if( 【14】 ==′M′)n++;
return n;
}
main()
{SS W[N]={{1,"AA",′F′},{2,"BB",′M′},{3,"CC",′M′}}; int n;
n=fun(W); printf("n=%d\n",n);
}
(14)以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include <stdio.h>
main()
{FILE *fp; char ch;
fp=fopen( 【15】 );
ch=fgetc(fp);
while(!feof(fp)) { putchar(ch); ch=fgetc(fp); }
putchar(′\n′);fclose(fp);
}
(9)【9】 2 【10】 2 4 6 8
【解析】在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2; 当i=1时,p[1]=&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3时,p[3]=&x[7],p[3][0]=8。所以程序输出的结果为2 4 6 8。
(10)【11】 3 5 www.examw.com
【解析】函数swap(int *a,int *b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int *a,int *b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为3 5。
(11)【12】 4
【解析】在主函数中,语句p=a;p++使用指针p指向数组a[1],所以输出结果为4。
(12)【13】 1 3
【解析】在主函数中调用fun(3)时,实参3传递给形参x。在fun(x)内,执行第一条语句,输出1,然后执行第二条语句,输出3,所以结果为1 3。
(13)【14】 person[I].sex
【解析】在函数fun(SS person[])对person[]的性别进行判断,所以其正确的调用格式为person[I].sex。
(14)【15】 "filea.dat","r"
【解析】 fopen函数的调用方式通常为 fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容。所以空白处应当填入 "filea.dat","r"。