辅修C 语言练习实验报告
一.题目分析
题目一
7-25 求幂之和(15 分)
本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
输入格式:
输入在一行中给出正整数n(≤10)。
输出格式:
按照格式“result = 计算结果”输出。
- 本题pta提交列表:
- 设计思路(流程图)
最终程序如下:
#include<stdio.h>
#include<math.h>
int main(){
int i,n,result=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
result+=pow(2,i);
printf("result = %d",result);
}
- 本题调试结果
本题在编程中算是十分简单的一题了,注意好细节便不会有什么太大的问题。因为使用到pow这个数学函数,所以头定义要加上 #include<math.h>。
题目二
7-14 特殊a串数列求和(20 分)
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
- 本题 pta提交列表:
- 设计思路(包括流程图)
最终程序如下
#include<stdio.h>
int main()
{
int a,n;
int sum=0;
scanf("%d %d",&a,&n);
int k=a;
for(int i=1;i<=n-1;i++)
{
a*=10;
a+=k;
sum+=a;
}
sum+=k;
printf("s = %d",sum) ;
return 0;
}
- 本题的调试结果为:
与样例结果一致
- 实验过程中遇到的问题以及解决方法
这题难度较上一题难度稍大一点。但是由于程序写的较少,还比较生疏,造成了失误以至于浪费了很多时间来寻找错误。
在原本的程序中,我把 int k=a;放在了scanf("%d %d",&a,&n);前面,以至于运行结果严重出错,还一直苦思冥想找不到原因。后来两者顺序对调一下便没有什么问题了。
从这题 谨记!!!!数字的输入应先放在前面,后面的变量再调用这个数,否则程序会错的很离谱。
题目三:
7-3 统计字符(15 分)
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
- 本题pta提交列表
2.设计思路(流程图)
最终程序为:#include<stdio.h>
int main()
{
char en[10];
int i,letter=0,blank=0,digit=0,other=0;
for(i=0;i<10;i++)
en[i]=getchar();
for(i=0;i<10;i++){
if((en[i]>='a'&&en[i]<='z')||(en[i]>='A'&&en[i]<='Z'))
letter++;
else if(en[i]== ' '||en[i]== '\n')
blank++;
else if(en[i]>= '0'&&en[i]<= '9')
digit++;
else
other++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
}
- 本题调试结果:
与样例一致
- 题目分析
本题难度一般,就是过程较为繁琐。
利用for 语句以及getchar 给字符型数组赋值,判断一个字符是数字、大写字母、小写字母或者其他主要依据于ASCII码值。只要记清楚每种字符类型对应的ASCII码值的范围,在利用if语句判断。问题不大。
本题除了一些小细节,没有出现什么需要特别注意以及很难解决的问题。
二.同学代码互评(例7-20 同学:王纪聪)
我的代码:
同学的代码:
代码互评:虽然两个同学的代码看起来有所差异,但实际上思路差不多一样。两个同学都采用了循环,唯一不同的是,我判断的是命题的真假。两个人的方法都很方便快捷。
三.总结
- 我学会了什么?
从以上三题中,我更加熟练的掌握了for 循环语句,if判断语句的应用 以及了解了数组的使用。更加清晰的记住了数字,大写字母,小写字母对应的ASCII值。以及十分值得记住的由第二个题目得知的——实验要先输入数,才能对数进行调用。
- 这些内容,还有那些不会?
数组的掌握可能还不够娴熟。基本知识都懂,在运用上面可能就存在比较大的问题。实验中使用到的参数类型大部分为整型,长整型、浮点型之类的接触较少。我会尽量多花时间,多练习,以便能够更加熟练的掌握知识点。