C语言第八章 指针(3)

2019-08-20 18:44

5.若定义char *p=“abcd”;则 printf(“%d”,*(p+4));的结果为 。(1级)6.以下函

数用来求出两整数之和,并通过形参将结果传回,请填空。 (1级) void func(int x,int y, ) { *z=x+y; }

7.若有以下定义,则通过指针p引用值为98的数组元素的表达式是 。(1级) int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;

8.int a[10];则a[i]的地址可表示为 或 ,a[i]可表示为 。(0级) 9.在C语言中,对于二维数组a[i][j]的地址可表示为 或 。其中,对于a[i]来说,它代表 ,它是一个 。(0级) 10.一个指针变量P和数组变量a的说明如下: int a[10],*p;

则p=&a[1]+2的涵义是指针p指向数组a的第 个元素。(0级) 11.一个数组,其元素均为指针类型数据,这样得数组叫 。(0级) 12. 16.int *p[4]表示一个 ,int(*p)[4]表示 。(0级) 13.若有以下定义和语句

int w[10]={23,54,10,33,47,98,72,80,61},*p; p=w;

则通过指针p引用值为98的数组元素的表达式是 。(1级) 三、程序填空题

1.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空。 (1级)

# include main ( )

{ int ﹡a, ﹡b, ﹡c, mun, x, y, z;

a=&x; b=&y; c=&z;

printf (〞输入3个整数: 〞); scanf (〞%d%d%d 〞, a, b, c);

printf (〞%d, %d, %d\\n 〞, ﹡a, ﹡b, ﹡c); num=﹡a;

if(﹡a>﹡b) (1) ; if(num>﹡c) (2) ;

printf (〞输出最小整数:%d\\n 〞, num); }

2.下面程序是把从终端读入的一行字符作为字符串放在字符数组中,然后输出。请填空。

(1级)

int i; char s[80], ﹡p;

for ( i=0; i<79; i++ ) { s[i]=getchar( ); if ( s[i]= =ˊ\\nˊ) break; } s[i]= (1) ; p= (2) ; while ( ﹡p ) putchar ( ﹡p++); 3.下面程序是判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称“回文”,如level)。请填空。(2级) # include # include main ( )

{ char s[81], ﹡p1, ﹡p2; int n;

gets ( s ); n=strlen ( s ); p1=s; p2= (1) ;

while ( (2) ) { if ( ﹡p1!= ﹡p2 ) break;

else { p1++; (3) ; } }

if (p1

4.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。(2级)

Strcen(char a[], char b[]) { int num=0,n=0;

while(*(a+num)!= (1) ) num++;

while(b[n]){*(a+num)=b[n]; num++; (2) } ;} return(num); }

5.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig

函数。请填空。(1级) main()

{ int findbig(int,int,int); int (*f)(),x,y,z,big;

f= (1) ;

scanf(\big=(*f)(x,y,z);

printf(\}

6.以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。(1级)

void exchange(int *x, int *y) { int t; t=*y;

*y = (1) ; *x = (2) ; }

7.定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能。 (2级)

#include

void compare(char *s1, char *s2)

{ while(*s1&&*s2&& (1) ) { s1++;

(2) ; }

return (3) ;

}

void main(void)

{printf(\}

8.以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。(2级) #include int isprime(int); void main(void)

{int i,a[10],*p=a,sum=0; printf(\

for (i=0;i<10;i + + ) scanf(\for (i=0;i<10;i + + )

if (isprime(*(p+ (1) )) == 1) { printf(\ sum += *(a+i); }

printf(\ }

int isprime(int x) { int i;

for (i=2;i<=x/2;i + + ) if (x%i = = 0) return (0); (2) ; }

9.以下函数的功能是删除字符串s中的所有数字字符。请填空。(2级)

viod dele(char *s) { int n=0,i;

for(i=0;s[i];i++) if( (1) ) s[n++]=s[i];

s[n]= (2) ; }

10. 下面函数的功能是求出形式参数array所指的数组中的最大值和最小值,并把最

大值和最小值分别存入max和min所对应的实参中,请把下面的程序填写完整。(1级)

void find (array,n,max.min) int *array,n,*max.*min { int *p,*data_end; data_end=array+n; *max=*min=*array;

for(p=array+1;p

{if( (1) ) *max= (2) else if ( (3) ) *min= (4) } return;

} 四、读程序写结果题

1.以下程序的执行结果是 。(1级) # include main ( )

{ int i, j; int ﹡p,﹡q; i=2; j=10; p=&i; q=&j; ﹡p=10; ﹡q=2; printf(〞i=%d, j=%d\\n 〞, i, j); } 2.以下程序的执行结果是 。(2级) # include main ( )

{ int ﹡﹡p,﹡q; i=10; q=&i; p=&q; printf(〞%d\\n 〞, ﹡﹡p); } 3.以下程序的执行结果是 。(1级) # include main ( )

{ int ﹡p; p=&i; ﹡p=2; p++; ﹡p=5; printf(〞%d,〞, ﹡p); p﹣﹣; printf(〞%d\\n 〞, ﹡p); } }

4.以下程序的执行结果是 。(1级) # include main ( )

{ int ﹡p, i; i=5; p=&i; i=﹡p+10; printf(〞i=%d\\n〞, i); } 5.以下程序的执行结果是 。(1级) # include main ( )

{ char s[ ]=”abcdefg”; char ﹡p; p=s; printf(〞ch=%c\\n〞,

﹡(p+5)); }

6.以下程序的执行结果是 。(1级) # include

main ( )

{ int a[ ]={2,3,4}; int s, i,﹡p; s=1; p=a;

for (i=0; i<3; i++) s﹡=﹡(p+i); printf(〞s=%d\\n〞, s); } 7.以下程序的执行结果是 。 (1级) # include

main ( )

{ int a[ ]={1,2,3,4,5,6},﹡p; for (p=&a[5];p>=a;p﹣﹣)

printf(〞%d〞, ﹡p); printf(〞\\n〞); } 8.以下程序的执行结果是 。(2级) # include main ( )

{ char ch[2][5]={”6934”,”8254”},﹡p[2]; int i, j, s=0;

for (i=0; i<2; i++) p[i]=ch[i]; for (i=0; i<2; i++)

for (j=0; p[i][j]>?\\0?&& p[i][j]<=?9?; j+=2)

s=10﹡s+p[i][j]-?0?; printf(〞%d\\n〞, s); }

9.以下程序的执行结果是 。(2级)

# include

main ( )

{ char ﹡p1,﹡p2, str[20]=”xyz”; p1=”abcd”; p2=”ABCD”; strcpy (str+1, strcat (p1+1,p2+1)); printf(〞%s〞, str); }

10.以下程序的执行结果是 。(2级)

#include

void main(void)

{char *s, *s1 = “here is”, *s2 = “key”;

s = s1;

while (*s1!=?\\0?) s1++; while (*s1++=*s2++); s2 = s;

while (*s2!=?\\0?) s2++; printf(“%d\\n”, s2-s);

}

11.以下程序的执行结果是 。(2级)

#include void main(void)

{static int a[] = {1, 3, 5, 7}; int *p[3] = {a+2, a+1, a}; int **q = p;

printf(“%d\\n”, *(p[0]+1) + **(q+2));

}

12.以下程序的执行结果是 。(2级) #include

fut(int **s, int p[2][3]) { **s=p[1][1]; }

void main(void)

{ int a[2][3] = {1,3,5,7,9,11}, *p; p = (int *) malloc(sizeof(int)); fut(&p,a);

printf(\}

13.以下程序的执行结果是 。(1级)

#include void main(void)

{ static char a[]=\char *p1,*p2; int k;

p1=a; p2=b;

for(k=0;k<=7;k++)

if (*(p1+k)==*(p2+k)) printf(\ printf(\

}


C语言第八章 指针(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:功、功率、机械效率计算题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: