| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1150 人关注过本帖
标题:二级C的基本题目,求高手赐教!
只看楼主 加入收藏
小小飞机
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-7-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
二级C的基本题目,求高手赐教!
以下几个题目是我在自学二级C遇到的一些问题,实在是自己想不明白,所以才来里面请教,麻烦下大家抽空帮我解答下,我感激不尽!!

题1: (重点求思路)
字符串"ab\034\\x79"的长度怎么算?  我自己这算了几次,还是和答案不一样,想看看大家是怎么来数的。

题2:(重点求思路)
为求出return语句返回计算100!的结果,此函数的类型说明应为()  这个题目,我就完全懵了,不懂在说什么。
A.int B.long C.unsigned long D.都不对

题3:以下程序运行后的输出结果是()(重点求思路)
main()
{
unsiged char a,b,c;
a=0x3;
b=a|0x8;
c=b<<1;   我对<<这个运算不懂。
printf("%d%d\n",b,c);
}

题4:程序运行时,从键盘输入Y? N? ,则输出结果为() (重点求思路)
#include <stdio.h>
main()
{
char c;
while((c=getchar())! ='?')  这句代码是什么意思?
putchar(--c);  还有这句里面的--c是什么意思?
}



搜索更多相关主题的帖子: return 字符串 
2012-07-11 15:24
小小飞机
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-7-11
收藏
得分:0 
求教高手为我解答,我马上要考试了。
2012-07-11 15:25
the_27th
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2012-7-10
收藏
得分:10 
"ab\034\\x79"
“\”表示转义字符,即将“\”后面的字符转换为别的含义。\034应该是表示八进制的34,\\表示反斜杠\。所以这个字符串的字符为:a,b,\034,\\,x,7,9,然后再加上字符串本身的一个结束标准\0,应该是8吧。最后建议你问一下老师。

main()
{
unsiged char a,b,c;
a=0x3;
b=a|0x8;
c=b<<1;   我对<<这个运算不懂。//这个表示将b转换为二进制数后,左移一位,即乘2
printf("%d%d\n",b,c);
}

#include <stdio.h>
main()
{
char c;
while((c=getchar())! ='?')  这句代码是什么意思?//意思是从键盘输入一个字符,然后判断这个字符。如果这个字符不是?,那么整个语句为真,执行下面的putchar(--c);语句。
putchar(--c);  还有这句里面的--c是什么意思?先把c的ASCII码减一,在一字符形式输出。
}

题2:(重点求思路)
为求出return语句返回计算100!的结果,此函数的类型说明应为()  这个题目,我就完全懵了,不懂在说什么。
A.int B.long C.unsigned long D.都不对
至于这道题,我会选择d,但只能说我感觉是这个,具体也书不清楚。因此建议你去找你的老师问一下
2012-07-11 16:23
小小飞机
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2012-7-11
收藏
得分:0 
回复 3楼 the_27th
那个算长度的答案是5.不是8.
那个/x79应该是代表一个十六进制数。还有一点是,算字符串长度时候似乎是不用把最后一个结束语算进来吧,谢谢你的回答。
2012-07-11 23:24
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
收藏
得分:5 
第一个长度是7吧a,b,\034,\\,x,7,9,用VC6算出来也是得7的
第二个数据溢出,应该是D
第三个“|”运算符和“<<”运算符我也没看过,不过谭教授书上有,挺详细的
第四个是输出非“?”字符的ascii码的前一个字符,这里是输出“X”吧

[ 本帖最后由 sala0127 于 2012-7-12 20:11 编辑 ]
2012-07-12 20:09
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
楼上 说的基本正确 << 是左移运算符 左移1位 相当于把一个数乘 2
这些都是书上比较基本的东西 你马上要考试了都还没搞清楚啊 呵呵。

[ 本帖最后由 有容就大 于 2012-7-13 10:18 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-07-13 09:56
vs900702
Rank: 2
等 级:论坛游民
帖 子:22
专家分:24
注 册:2010-10-23
收藏
得分:0 
回复 5楼 sala0127
\0代表的是结束符,所以如果用strlen测试的话就只有2了,我认为应该是a,b,\0,3,4,\\,x,7,9,新手求指教哈
2012-07-13 10:52
邱威
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:136
专家分:351
注 册:2012-3-28
收藏
得分:5 
(1)求字符串的长度,注意‘\’,数字,字符串结束符‘\0’;
(2)就是每次提到的溢出问题,int,long,unsigned long范围,在跟你要求的100!的值比较;
(3)这种问题还是去看书,或是去百度(就这么直接给你讲解,估计一时半会还是不明白);
(4)getchar(),putchar(),这个在屏幕上输入,输出的东东,注意一个字符进,一个字符出。
我不会做题,我也做不到,但是我能看你的题目。。。
还是看一下书吧,这都是很基本的东西,这个都没弄懂,考了二级又有什么用呢?
从现在开始只要把C语言的书再认真的过一遍,我估计你就不只考二级的水平了。
2012-07-13 11:50
菜鸟0
Rank: 2
等 级:论坛游民
帖 子:37
专家分:91
注 册:2012-6-20
收藏
得分:0 
5楼说的对,长度是7,c语言是按从左到右的结合顺序,应该是\\,x,7,9,而不是\,\x79
2012-07-13 13:35
如此悠然
Rank: 2
等 级:论坛游民
帖 子:62
专家分:86
注 册:2012-5-18
收藏
得分:0 
小手一抖,十分到手,手提酱油,低头猛走~

——————
严谨
2012-07-13 13:39
快速回复:二级C的基本题目,求高手赐教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036970 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved