C第九次博客作业--指针

一、PTA实验作业

题目1:两个4位正整数的后两位互换

1. 本题PTA提交列

1233806-20171216220551686-492239282.jpg

2. 设计思路

1233806-20171216222321249-1155632838.jpg

3.代码截图

1233806-20171216222420593-134561832.jpg

本题调试过程碰到问题及PTA提交列表情况说明

刚开始想到的交换是令t=a;a=b;b=t这种形式,但是答案没有正确,两个数字并没有交换,我也没有用到调用函数里面的p和q,而是自己重新定义了两个整数,所以整个代码里指针好像没有发挥什么作用,所以答案是错误的。然后看了室友的代码,才把p和q用上,然后参考了她的交换法,如下图所示:可是我不懂这个交换为什么用-和+来换。我发现我改成这样也没有正确,原因是我多加了p=&number1这个,指针指向一个地址我还不太会用
1233806-20171217145353686-1241428064.jpg

题目2:求出数组中最大数和次最大数

1. 本题PTA提交列

1233806-20171217145536905-851652181.jpg

2. 设计思路

1233806-20171217160216983-299406657.jpg

3.代码截图

1233806-20171217160323858-358034074.jpg

本题调试过程碰到问题及PTA提交列表情况说明

刚开始只用了一个循环,导致没有交换,原样输出。后来加了一个循环,但是没有注意第二个循环是从1开始,导致次大数和a[1]没有交换

题目3: 找最大值及其下标

1. 本题PTA提交列

1233806-20171217172447655-1474754560.jpg

2. 设计思路

1233806-20171217175244889-386995370.jpg

3.代码截图

1233806-20171217175338077-2117074454.jpg

本题调试过程碰到问题及PTA提交列表情况说明

没有给max赋值,输出的时候总是8,没有用到指针*b,position总是0

二、截图本周题目集的PTA最后排名

1233806-20171217211004171-364190610.jpg

三、阅读代码

1233806-20171217183912046-1874842424.jpg

该代码的功能是判断出回文字符串,优点是用的代码量少,清晰又简洁,巧妙的定义了strlen(s)

1233806-20171217214431264-984122600.jpg

四、本周学习总结

1.自己总结本周学习内容

本周学了结构,结构是一种允许程序员把一些数据分量聚合成一个整体的数据类型,它与数组的区别在于:数组中所有元素的数据类型必须是相同的,而结构中各成员的数据类型可以不同。

结构的定义用struct,要用大括号括起来,以分号结束,大括号中以定义变量的形式列出各信息项。结构的嵌套定义,必须先定义成员的结构类型,再定义主结构类型。结构的定义有单独定义:先定义一个结构类型,再定义这种结构类型的变量;混合定义:在定义结构类型的同时定义结构变量 struct 结构名{ 类型名 结构成员名}结构变量表;无类型名定义:在定义结构变量是省略结构名struct { 类型名 结构成员名} 结构变量名表;

结构变量的使用

结构数组操作

2.罗列本周一些错题

1233806-20171217183107499-692656734.jpg

1233806-20171217183121405-1222412491.jpg

1233806-20171217183129514-349802678.jpg



读入一行英文文本,将其中每个 

单词的最后一个字母改成大写,然后输出此文本行 (这里的“单词”是指由空格隔开或句号结尾的字符串)

注意:按照1,2,3,4顺序填空,不要写序号,空格或回车隔开。
#include  "stdio.h"
#include  "ctype.h"
void up1st (_____2_______  )
{

  int  k = 0 ;
   for ( ; ____3____ ;  p++ )
   {
     if ( k )
      {   if ( *p == ' ' || *p == '.' )
          {  
             *(p -1 ) =______4________;
             k=0;
          }
      }
      else 
        if ( *p != ' ' )  
            k = 1 ;
   }
      *( p-1 ) = toupper( *(p-1) ) ;
}

int main( )
{ 
   char  chrstr[81] ;
   
    printf( "\nPlease enter a string: " ); 
    ________1_____ ;
    printf( "\n\nBefore changing:\n  %s", chrstr );
    up1st( chrstr );
    printf( "\nAfter changing:\n  %s", chrstr );

}



参考答案


 gets(chrstr);

char *p 

*p

toupper( *(p-1))

我的作答


int *toupper,int *p

P=0;*p

3、填空题

分值10.0

得分: 3.0 



Fun函数用来删除字符串中所有空格, 

如输入:  as df gghk lkj78, 

则输出:  asdfgghklkj78        
#include <stdio.h>
#include <ctype.h>
void Fun(char *str)
{
   int i,j;
   i=j=0;
   while(____2_____)
   {
       if(str[i]!=' ')
           str[j++]=str[i];
       i++;
   }
   str[j]=___3____;
 }

int main()
{
  char str[81];
  int n;
  gets(str); 
  puts(str);
  _____1______;
  printf("*** str: %s\n",str);

}



参考答案


 Fun(str)

str[i]

'\0'

我的作答


str[i]=getchar()=='\0'

str[i]

n=0
4、填空题

分值10.0

得分: 3.0 



给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值, 

计算出这些数值的累加和作为函数值返回。 

例如,形参s所指的字符串为:abs5def126jkm8, 

程序执行后的输出结果为:22。
#include  <stdio.h>
#include  <string.h>
#include  <ctype.h>

int Fun(char  *s)
{ 
    int sum=0  ;
    while(___2___)
    {
        if(isdigit(*s))    /* if(*s>='0'&& *s<='9')*/
          _____3_________;
       s++;
    }
    return sum;

}

int main()
{
   char  s[81];
   int  sum;
   printf("\nEnter a string:"); 
   gets(s);
   _____1______;
   printf("\nThe result is:  %d\n",sum);
  

}




参考答案


sum=Fun(s)

*s

sum=sum+*s-'0'

我的作答


*s

s=sum*32+s-'0'

puts(s)

转载于:https://www.cnblogs.com/danzhai/p/8047957.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值