C语言辅导资料 下载本文

} }

【例4.46】下面程序的运行结果是 。

#include void main() {

int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) {

for(j=1;j<6;j++)

printf(“-”,a[i][j]); printf(“\\n”); } }

【例4.47】下面程序的功能是从键盘上输入一个大写字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间.若指定的字母为Z,则打印YZA;若指定的字母为A则打印ZAB.请填空.

#include void main() {

char a[3],c; int i;

c=getchar(); a[1]=c; if(c= =?Z?) {

a[2]=?A?;

; }

else if(c= =?A?) {

a[0]=?Z?;

; } else {

; ; }

for(i=0;i<3;i++) putchar(a[i]);

41

}

【例4.48】下面程序的运行结果是 .

#include void main() {

int i,r;

char s1[80]=”bus”; char s2[80]=”book”;

for(i=r=0;s1[i]!=?\\0?&&s2[i]!=?\\0?;i++) if(s1[i]==s2[i]) i++; else {

r=s1[i]-s2[i]; break; }

printf(”%d”,r); }

【例4.49】下面程序的运行结果是 .

#include void main() {

int a[9]={0,6,12,18,42,44,52,67,94}; int x=52,i,m,n=9; i=n/2+1; m=n/2;

while(m!=0) {

if(x

{ i=i-m/2-1; m=m/2; } else if(x>a[i])

{ i=i+m/2+1; m=m/2; } else

break; }

printf(”The index is :%d”,i); }

【例4.50】下面程序的运行结果是 .

#include void main() {

char a[]=”morning”,t; int i,j=0;

for(i=1;i<7;i++)

42

if(a[j]

t=a[j]; a[j]=a[7]; a[7]=t; puts(a); }

【例4.51】下面程序的功能是将二维数组a中每个元素右移一列,最右一列换到最左一列,移后的数组存到另一数组b中,并按矩阵形式输出b。请填空。

#include void main() {

int a[2][3]={4,5,6,1,2,3},b[2][3]; int i,j;

printf(“array a:\\n”); for(i=0;i<=1;i++) for(j=1;j<3;j++) ; for( ; i++) b[i][0]=a[i][2]; printf(“array b:\\n”); for(i=0;i<2;i++) {

for(j=0;j<3;j++)

printf(“]”,b[i][j]); ; } }

【例4.52】从键盘输入一行句子,统计其中单词的个数,补充程序使之完整。

#include void main() {

char s[80]; int i,num=0; ; gets(s);

while(s[i]!=?\\0?) {

if((i==0)&&(s[i]!=? ?)) num++;

else if( && ) num++; i++; }

printf(“num=%d”,num); }

【例4.53】下列count函数用于计算子串substr在母串str中出现的次数。

43

int count(char *str,char *substr) {

int x,y,z; int num=0;

for(x=0;str[x]!= ; x++) for(y= ,z=0; substr[z]= =str[y]; z++,y++) if(substr[ ]= =?\\0?) {

num++; break; }

return( num ); }

【例4.54】下面程序的运行结果是 。

#include void main() {

int i,j;

static int a[10]={1,1,1,1,1,1,1,1,1,1}; for(i=0;i<10;i++) for(j=0;j

第五章 指 针

【要点归纳】

1、 指针变量

在C语言中允许用一个变量来存放指针,这种变量称为指针变量。 在C语言中,提供了两种指针运算符: ? *:取指针目标运算符 ? &:取地址运算符 2、 指针的说明和初始化

指针说明的一般形式如下: 数据类型 *指针名;

说明:与普通变量不同的是,说明指针时指定的数据类型并不是指针变量本身的数据类型,而是其目标的数据类型。无论目标数据类型如何,所有指针都是具有相同格式的地址量,随着机器硬件不同,地址量的数据长度也不同。

44