一、PTA实验作业
题目1:两个4位正整数的后两位互换
1. 本题PTA提交列
2. 设计思路
3.代码截图
本题调试过程碰到问题及PTA提交列表情况说明
刚开始想到的交换是令t=a;a=b;b=t这种形式,但是答案没有正确,两个数字并没有交换,我也没有用到调用函数里面的p和q,而是自己重新定义了两个整数,所以整个代码里指针好像没有发挥什么作用,所以答案是错误的。然后看了室友的代码,才把p和q用上,然后参考了她的交换法,如下图所示:可是我不懂这个交换为什么用-和+来换。我发现我改成这样也没有正确,原因是我多加了p=&number1这个,指针指向一个地址我还不太会用
题目2:求出数组中最大数和次最大数
1. 本题PTA提交列
2. 设计思路
3.代码截图
本题调试过程碰到问题及PTA提交列表情况说明
刚开始只用了一个循环,导致没有交换,原样输出。后来加了一个循环,但是没有注意第二个循环是从1开始,导致次大数和a[1]没有交换
题目3: 找最大值及其下标
1. 本题PTA提交列
2. 设计思路
3.代码截图
本题调试过程碰到问题及PTA提交列表情况说明
没有给max赋值,输出的时候总是8,没有用到指针*b,position总是0
二、截图本周题目集的PTA最后排名
三、阅读代码
该代码的功能是判断出回文字符串,优点是用的代码量少,清晰又简洁,巧妙的定义了strlen(s)
四、本周学习总结
1.自己总结本周学习内容
本周学了结构,结构是一种允许程序员把一些数据分量聚合成一个整体的数据类型,它与数组的区别在于:数组中所有元素的数据类型必须是相同的,而结构中各成员的数据类型可以不同。
结构的定义用struct,要用大括号括起来,以分号结束,大括号中以定义变量的形式列出各信息项。结构的嵌套定义,必须先定义成员的结构类型,再定义主结构类型。结构的定义有单独定义:先定义一个结构类型,再定义这种结构类型的变量;混合定义:在定义结构类型的同时定义结构变量 struct 结构名{ 类型名 结构成员名}结构变量表;无类型名定义:在定义结构变量是省略结构名struct { 类型名 结构成员名} 结构变量名表;
结构变量的使用
结构数组操作
2.罗列本周一些错题
读入一行英文文本,将其中每个 单词的最后一个字母改成大写,然后输出此文本行 (这里的“单词”是指由空格隔开或句号结尾的字符串)注意:按照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 *ptoupper( *(p-1))我的作答int *toupper,int *pP=0;*p
3、填空题分值10.0得分: 3.0 Fun函数用来删除字符串中所有空格, 如输入: as df gghk lkj78, 则输出: asdfgghklkj78 #include#include 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#include #include 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)*ssum=sum+*s-'0'我的作答*ss=sum*32+s-'0'puts(s)