扫一扫,微信直接登录

贸大考研论坛(对外经济贸易大学考研论坛)

快捷导航
法学高分集训营MA高分集训营MTI高分集训营434高分集训营431高分集训营
查看: 1431|回复: 0

[经验总结] 经验谈 | 22年贸大843C++控制语句例题多写法精讲

[复制链接]
发表于 2021-11-30 12:19:59 | 显示全部楼层 |阅读模式
冲刺班对于知识点已经掌握的差不多了,所以今天主要以做题为主。讲前四章的内容。这里找了三道题目,包括课本的例题、课后题和集锦里的题目(教材上的常见题集锦大家也应该做过一次了),下面会用不同的方法进行讲解。
真题的重要性也很高,19年&20年中与每节课主题相关的题目会摘出来给大家讲一下。另外会找一些比较简单的和常见的经典题目,至少用两种方法给大家进行讲解。以理解代码为主,自己数组写、指针写、循环写等几种方法都写一下,看看有什么不同。编程题怎么写都可以,但有些题目会有要求必须用某种方法。尤其是指针和数组部分的题目,今年可能考得会稍微多一点。
(一)题目一:输入一行字符,分别统计出其中的英文字母、数字、空格和其他字符的个数。
解法1:getchar()+while语句


首先看一下第一题,已经在21年考过了。贸大的题目首先是为研究生阶段的学习做铺垫,不管是哪个方向都会涉及到对于数据文本的处理,所以今年很可能会考到关于字符串处理的题目。
比如 21年第一题考到总结字符串中某个字母的个数,第二题考到找出两个字符串。它不会考处理单一数据,大概率会考一些字符跟文字,难度也会稍微大一些。
第一种解法是getchar()+while语句,第二种解法是gets()+for语句+数组。其中一些固定的写法可以记下来或者背下来,考前的时候看一看。
注意:
1、getchar()函数可以读取空格和换行,所以可以用来解决本题,因为本题需要读取空格;
但cin不能读取空格,所以不能用cin读取整个字符串,因为读取到空格就会自动结束读取。

2、(c=getchar())!=‘\n’,可分解为两句:c=getchar();while(c!=‘\n’){…},因为getchar每次都只读取一个字符,所以要利用while循环,读一个判断一个,再读下一个。

3、 L、T、N和O记得初始化为0,再进行++。

4、建议手写代码的时候,写上一些文字指引,方便老师阅读代码,也显得更为专业。

5、字母取名考虑L(etter)、N(umber)、T(ab)、O(thers),尽量不要随便用abcd。

解法2:gets()+for语句+数组
注意:
1、首先Get和getchar的区别是:gets()函数可以读取字符数组,getchar()函数可以读取单个字符,但都只能是char类型。

2、gets()识别到换行之后,停止读取(不读取换行),并自动补‘\0’,所以在for循环里面需要用‘\0’作为休止符。

解法3:gets()+while语句+指针

这个解法和上一个方法差不多,思想都是一样的。
今年专业课可能会考到与字符串处理有关的问题,需要看清楚题目里面有没有与空格有关的要求。首先要读清题目要求,在选择合适的方法进行作答。实在理解不了可以将模板背下来,都是万能的。

(二)题目二:关于图形输出的问题
(图形输出题目重点在于,找到图形每行之间的规律,将其总结为数学公式,如何理由双重循环进行输出。)

图形一:半菱形


注意:
1、对于菱形类,需要将其划分为上下两部分,上部分递增,下部分递减

2、下部分为2*(7-i)
图形输出题目重点在于找到图形每行之间的规律,将其总结为数学公式,如何利用双重循环进行输出。
对于图形类的题可以自己总结成数学公式,按照自己写的逻辑画一下。如果能画出来或者能算出来,大概率是没有问题的,这种类型的题目自己可以检查出来的。

图形二:菱形


注意:
1、输出菱形,将菱形分为上下两部分,再将每部分分为左右两部分,因此共需要4个循环。

2、循环条件不是试出来的,是先找规律,然后将其用i表示出来,为了方便理解,最后一个循环我写成了4+(7-i),4是左半部分,7-i是右半部分。

3、写完自己按代码走一遍,画一下,一般就可以确定自己写的是否正确。




19&20年相关题目讲解
1
Static变量考察


答案:B
第一次调用:fun(4):k=1+1=2,t=2+1=3,return(4*2*3)=24
第二次调用:fun(4):k=1+1=2,t=3+1=4,return(4*2*4)=32
static变量每次只有第一次调用时,赋值语句有效和,从第二次开始,只调用运算语句。


答案:B
第一次调用:x=3*3=9,先输出9,后进行x++操作后,x=10
第二次调用:x=10*3=30,先输出30,后进行x++操作后,x=31

2
strlen()和sizeof()
答案:A
sizeof()计算的是占用内存的大小,union是共用内存,int是4字节,char是1字节,float是4字节,取最大字节数,因此结果为4。

答案:B
sizeof()计算的是占用内存的大小,a数组成员均为char类型,各占一个字节,一共有9个成员(加上’\0’),故结果为9;
strlen()是求字符串长度,即看字符的个数(数到’\0’前一个字符),故答案是8;
若题目中数组a改为int型,则答案改为36,8

3
continue和break
答案:C
①i=0,k1=11,k2=0
j=0,
j=1,k2=1
j=2,
j=3,k2=2
k1=12
②i=1,k1=13,k2=0
j=0,
j=1,k2=1
j=2,
j=3,k2=2
k1=14
本题难点在于,要请两个k的不同,因为int k=0前面有个大括号,所以这就是一个新的k2,而最后输出的是k1,所以其实本题与continue无关,只需要看i循环了一遍,每循环一遍,k累加两次,一共循环2次,k初始化为10,故最终结果为14。
答案:97
89
83
269
high=100,n=3,count=0,sum=0,flag=1
①2-50内,有100的因数(2、50),flag=0,high=99
②2-49内,有99的因数(3、33),flag=0,high=98
③2-48内,有98的因数(2、48),flag=0,high=97
④2-47内,没有97的因数,flag=1,sum=97,count=1,high=96
……
①2-44内,没有89的因数,flag=1,sum=97+89=186,count=2,high=87
……
①2-41内,没有83的因数,flag=1,sum=97+89+83=269,count=3,high=82
本题功能:输出从100倒数的前三个素数及它们的和
注意:结果书写这里,空格和换行一定要看准,填空题只有完全对和完全不对两种。

4
循环语句代码理解阅读
答案:88898787
4:4-2=2,跳到case2语句,c+4=4+4=8,break表示不再继续。
4:4-2=2,跳到case2语句,c+4=4+4=8,break表示不再继续。
6:6-2-4,跳到default语句,c+2=6+2=8,break表示不再继续。
7:7-2=5,跳到default语句,c+2=7+2=9,break表示不再继续。
5:5-2=3,跳到case3语句,c+3=5+3=8
跳到default语句,c+2=5+2=7
5:5-2=3,跳到case3语句,c+3=5+3=8
跳到default语句,c+2=5+2=7

答案:C
f(5):return f(4)+f(3)
f(4):return f(3)+f(2)
f(3):return f(2)+f(1)
f(2):return f(1)+f(0)
f(2)= f(1)+f(0)=1+1=2
f(3)= f(2)+f(1)=2+1=3
f(4)= f(3)+f(2)=3+2=5
f(5)= f(4)+f(3)=5+3=8
虽然21年改成c++了,但21年考的题型与19年&20年的题型没有什么太大区别。只是文字类的题目有所减少,但对代码阅读的一些必考点还是会考的。同一个知识点可以在19&20年真题中找到两道题,每年都会考到。所以一定要注意这个知识点,多练习一下。
欢迎关注微信公众号”贸大考研论坛“
22年考研交流QQ群:611196096
23年考研交流QQ群:735033517
大家想要了解更多考研资讯,可以去关注一下这个公众号,也可以加一下贸大初试交流群。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注贸大考研论坛微信,掌握最新动态!
微信扫描二维码关注惠园教育官方公众号!
贸大考研交流总群
385407919 加群请提供论坛用户名
让我们聚集在此,告别孤单奋战,誓入贸大!

对外经济贸易大学考研论坛,已帮助数万研友成功考入贸大,提供对外经济贸易大学考研真题、考研资料、考研经验、招生信息、考研辅导班等信息。

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

QQ|小黑屋|手机版|Archiver|贸大考研论坛 ( 京ICP备18017786号-2 )

GMT+8, 2024-11-21 19:18 , Processed in 0.075847 second(s), 18 queries .

快速回复 返回顶部 返回列表