C语言最后一次上级

  1. 分析下列程序的运行结果,并上机验证

main 

{

int  i,  j,  *pi,  *pj;

pi=&i;   pj=&j;                                                  

i=5;   j=7;   

printf( "%d\t%d\t%d\t%d", i, j, pi, pj );          

printf( "\n%d\t%d\t%d\t%d\n", &i, *&i, &j, *&j );

}

运行结果:5       7       1703724 1703720

                  1703724 5        1703720 7

main()                                                                                

{  int  a[ ]={ 1, 2, 3 };                                                         

   int  *p,  i;                                                                

   p=a;                                                                             

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

    printf( "%d  %d  %d  %d\n", a[i], p[i], *(p+i), *(a+i) );

}

      运行结果:1 1 1 1

                        2 2 2 2

                        3 3 3 3

main()

{  int  a[ ]={ 2, 5, 3, 6, 8 };                                          

   int  *p, i=1, s=0;                                                                                          

   for  ( p=a;  p<a+5; p++ )                                

    {  i*=*p;  s+=*p; }

   printf( "%d    %d\n", i, s);

}

运行结果:1440    24

              

int  ff( char  *x )                                          

{  char  *p=x,  *q;                                                                    

int   i, k=1;                                    

      q = p+strlen(x)-1;

  for ( i=1; i<=strlen(x)/2; i++)                                                           

if  (*p==*q)   { p++;  q--; }                      

        else  { k=0;  break;  }

      return  k;

}

main()                                                          

{ char  a[80];                                                                                                            

  gets(a);

  if  ( ff (a)==1 )    printf( "*****\n");   

 else  printf("%%%\n");

}

若从键盘输入:asdfghgfdsa

则输出结果为:*****

若从键盘输入:aweftfew

则输出结果为:%

用户自定义函数的功能是:检测一个字符串左右是否对称,若对称输出“*****”,若不对称输出“%”。

  1. 以下是求三个数中的最大数的程序,试完整程序。

void  cut( int  *p,  int  *q)

{  int  t;

  t=*p;    *p=*q    ;  *q=t;  }

main()

{  int  a, b, c;

scanf( "%d%d%d", &a, &b, &c );

if  ( a<b )           cut(&a,&b);  

if  ( a<c )               cut(&a,&c);  

printf( "%d\n",       a       );

}

3、以下是将字符串复制到另一个字符串中的源程序,其中函数cprstr的形参为两个字符指针变量,其中,pm指向原字符串,pn指向目标字符串,试完整源程序。

#include  "stdio.h"

void  cpystr( char *pm,  char *pn)

{

  while  ( ( *pn=*pm )!='\0' )

   {      pn++       ;

         pm++       ;

}

}

main( )

{  char  *pa="BEIJING CHINA",  b[20], *pb;

   pb=b;

   cpystr (    pa,pb    );

   printf( "string_a=%s\nstring_b=%s\n",  pa, pb );

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值