c语言基础知识入门题目 c语言教程
大家好,如果您还对c语言基础知识入门题目不太了解,没有关系,今天就由本站为大家分享c语言基础知识入门题目的知识,包括c语言教程的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。
解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。
主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是代表的一维数组。比如name[3][20],为3行20列,那么name[0],它代表的是组成二维数组的第一维数组。又知道puts()括号里可以放一维数组名,可以输出它里面的字符串,对放name[0]的话,那就是输出3行20列中的第一行字符串。
通过for比较我们已经得出结果,即两次for循环都不符合条件,因此,m没有变化,=0。所以puts(nam[0])的话,就是输出Tony。
望楼主采纳。
几道C语言的题目
1。c语言的变量名只能以字母或者下划线开头,以数字,下划线,字母组成,且不得与c语言关键字重合。A是关键字;B以数字开头;D含有非法字符。
2.A项答案是3;B项3<=5为真,即是1;C答案为0;D项3<5为真,3==5为假,那么相与就为假,即是0;
3.都好表达式的值就是最后一个表达式的值,再把这个值赋给x,那么x就是最后一个的值。即是32.
4.原样输入,才能保证得到应得的值,<CR>是回车。
5.答案该选择A吧,至于原因,楼主应该知道吧。数组的下标都是整数,只能以[]表示,并且引用要带上数组名,就是a[],c[]之类的。
6。B,D都超出了数组范围。c没有数组标识。
7.5.5*1+2*1+2=9.5输出的总位数4位,1位小数。多余的小数四舍五入。
C语言经典题目
1.正确的算法:
如果n=3,过河时间为A+B+C
如果n<=2,好算,不费口舌了
如果n>=4,这个是重点:
每次优先考虑把最慢两人送过河
把n人中最快两人记为A,B,最慢两人记为C,D(过河时间A<B<C<D), n人问题实质上转换为4人过河问题,参考到4人过河时的优化,
记AB过河, A回, CD过河, B回,为方法X,实质是利用最快两人进行优化,耗时A+2B+D
记AD过河, A回, AC过河, A回,为方法y,实质是利用最快一人来过河,耗时2A+C+D
每次比较这两个方法,如果x快,使用x方法,如果y快,则用y,并且,一旦某次使用y方法后,以后都不用比较了,全部使用y方法过河
2.算法正确性证明:
为什么每次先让最慢两人过河?因为他们迟早要过河...早过晚过一样,而晚过的话,有可能时间不能被优化,所以选择最先过
为什么是两人,不是三人?因为这船一次只能两人,三人问题和两人问题的优化一样,所以一次考虑三人毫无意义,同理,三人以上不加考虑
为什么某次用y过河后不用再比较xy了?
先看这个例子:
1 99 100 101
用x方法是99+1+101+99= 300
y方法是 101+1+100+1= 203
y比x快的原因是2A+C+D< A+2B+D,即 A+C<2B
容易想到,从此以后A+C都会小于2B了(因为C越来越小)
3.补充:
算法分析就到这里了,至于具体的程序...楼主既然是ACMer,这个应该不困难
当然,如果楼主需要的话,也可以给出程序
文章到此结束,如果本次分享的c语言基础知识入门题目和c语言教程的问题解决了您的问题,那么我们由衷的感到高兴!