字符数组
2017-12-10 21:00 小厮sir 阅读(665) 评论(1) 编辑 收藏 举报一、PTA实验作业(4分)
题目1:字符串转换成十进制整数
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
define定义量 STRING_SIZE为1000
定义str数组
定义sum,i,flag,f
gets输入文本
for(i = 0; str[i] != '#'; ++i) 用循环来遍历每一字符并转为十进制
if(str[i] == '-' && !flag)
f = 1 标记数字前的第一个-,表示负数
else if((str[i] >= '0') && (str[i] <= '9'))字符0到9转十进制
sum = sum * 16 + str[i] - '0'转十进制然后求和
flag = 1;
小写字母转十进制*/
sum = sum * 16 + str[i] - 'a' + 10;
flag = 1;
大写字母转十进制后求和
sum = sum * 16 + str[i] - 'A' + 10;
flag = 1;
if(f)如果f==1则输出十进制整数变为负数
sum = -sum;
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
题目2:统计大写辅音字母
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
include <ctype.h>调用大写字母函数
定义char text[80]放输入的文本
ctr做循环变量
count=0记录个数,注意初始化
flag=0用来标记是大写字母
gets(text)得到文本
for遍历文本每一个字符直到\0时循环结束
如果(isupper(text[ctr]))
文本是大写记录flag=1;
在(flag==1)的条件下
判断大写字母不是AEIOU
是的话用count计数
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
就是当第一次条件测试时大写字母时后面要不要加上else之类的还是不用,还有就是怎样简化我的那个嵌套的
if语句,还有就是我最后的那个判断如何缩短
题目3:找最长的字符串
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
定义 n放N个字符串
定义指针数组 *a[n];放输入的字符串
定义普通字符数组 b[80]放每次输入的字符串
定义number[20];//存放字节数
定义 ctr,outer,inner,temp循环变量
标记值 found=0;
输入n scanf("%d",&n);
然后存入number中
scanf("%s",b)
a[ctr]=b;
number[ctr]=sizeof(a[ctr])
用sizeof()将每次输入的字符串存入a中
每次计算的字节数存入number中
用冒泡法从大到小排序后搜索出最大值
for(outer=0;outer<(n-1);outer++){
for(inner=outer;inner<n;inner++){
if(number[outer]<number[inner]){
temp=number[inner];
number[inner]=number[outer];
number[outer]=temp;
再遍历字符指针数组,找出字节数相等的地址
for(ctr=0;ctr<n;ctr++){
if(number[0]==sizeof(a[ctr]))
找到时候标记found=1
break结束循环
if(found==1)如果找到了
输出a[ctr]);
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
写到最后发现还是不能输出最长的字符串,因为我用冒泡法排序后顺序变了,用ctr对应不起来,不知道如何解决
二、截图本周题目集的PTA最后排名。(2分)
三、本周学习总结(3分)
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
在变量名前加上*,说明这个变量是指针,c程序可以识别他
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
当指针自身加一个数值时,表示改变指向的地址
不能相加
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
定义一个数组a[10],然后定义一个指针int *p,p=a[ctr]
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p="字符串"
字符串的第一个字符
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
2.本周你不会内容有什么?
除了做运算和声明指针,还有哪些用处
如何将字符串通过输入储存在指针数组中
声明p是指针后后面如果用到p要不要加上
错题:
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________. (*p只能说明p是一个指针)
main()
{
int p,q,a,b;
p=&a;
printf(“input a:”);
scanf(“%d”,*p);
……
}
A、
*p表示的是指针变量p的地址
B、
*p表示的是变量a的值,而不是变量a的地址
C、
*p表示的是指针变量p的值
D、
*p只能用来说明p是一个指针变量
有以下程序
include<stdio.h>
main()
{ int m=1,n=2,p=&m,q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,p,q);
}
程序运行后的输出结果是()b
A、
1,2,1,2
B、
1,2,2,1
C、
2,1,2,1
D、
2,1,1,2