当前位置:编程学习 > C/C++ >>

C 语言简单题目

很多是概念问题,但是有时候比较灵活。特请高手判别,指点迷津:

1.

个人觉得是否应该选A,因为他是初始化定义,但他没给全。。。

2.

个人觉得选A,概念问题  不知道B为啥错。。。

3.

个人觉得:x=6,if(x-->6)无法实行,直接运行else语句,则--x值为5,选D

思路对了吗?请高手指点。。。。。。

4.

个人觉得:i=8  不符合for循环  故未经过循环 选B   如何分析?

5.

指针问题,我是选择A,就是D中&p代指什么?谢谢!

6.编程题。。。  素数的函数调用求法。。。  就不懂了。。。高手教教

7.文件指针,不懂。。。

请高手帮忙分析   谢谢

8.

感觉上选C,请高手帮忙分析下。。。

9.

不知道选对了没?请高手给出做法

10.

是不是选C

11.

选A对了吗?请给出过程

12.

枚举类型,不懂。。。。。。

谢谢!!!:)  感谢您的帮助!!!

追问:好详细 先谢谢
答案:1选C,A正确,没给全并不错误,对于二维数组从a[0][0]开始赋值到a[2][1],没给出的值默认为0。C错在数组初始确定为3行2列数组,即初始赋值每个小组内只能有两个值,而它给出的是每三个一组,这样是给a[2][3]这样的数组初始化。
2选A正确,B错在宏定义与数据类型无关。define定义的宏在程序中只是做原样替换,不做数据类型检查。例如#define PI 3.a4b5926这样的定义是可以的,在后面的程序中只是将所有的PI替换成3.a4b5926,至于这个值是否正确合理,需要程序员来保证,程序本身不作规定。宏定义的意义更多在于使程序具有可读性。
3选A。分析是这样的,输入6后则x值为6,if语句内判断(x-->6)的过程为,先判断x是否大于6,判断之后对x进行自减1。因为x>6不成立,转去执行else,注意,此时x已经完成了自减1,即x值变为5。输出的值为--x,即对x先进行自减1,再输出,结果为4。这里需要注意的是x--和--x的区别,x--是先运算,后自减,--x则是先自减,后运算。另外要注意的就是无论if语句中是否成立,这与x的自减并不相关,x的自减是无条件的。
4选C,你的判断是正确的,因为初始已经给定i值为8,所以约束条件i<8不成立,所以循环体一次也不执行,判断i<8不成立时即结束这个循环,包括a+=i和i++都不执行,故应该选0次。
5选A是正确的,&是取地址运算符,一般凡代有&的式子都代表地址。指针本身即一个地址,即它保存的内容是一个地址。D中的&p表示的是指针变量p的地址。为了更好理解,我以这题为例详细说明。比如假设k的地址是4000H,这是十六进制表示的,4000H中存放的是十进制值4,*p表示指针变量,p的地址假设为3000H,经过p=&k赋值后,3000H中存放的值即为十六进制地址4000H(k的地址),那么&p就表示3000H,明白了吗?
6求素数算法是一个比较常见的算法,为节约运算,计算一个数是否素数是不需要把从1到本身的所有数除遍的,只需除到这个数的平方根处。下面用伪代码表述个这算法n=101;while n<300 doi=2while i<=sqr(n) doif mod(n,i) then i=nelse i=i+1end ifend doif i<sqr(n) then print nn=n+1end do请仔细分析,sqr是求平方根,mod是求余数,即看n是否可以被i整除。不明白可以继续提问。
7选D,首先说明fseek和ftell两个函数的功能,fseek是将一个文件当作数组一样对待,ftell以一个long类型值返回一个文件的当前位置。程序中的fp=fopen("exam.txt","rb");是将这个文件以二进制方式打开,fseek(fp,0,SEEK_END);是将指针fp移到文件的结尾处,其中SEEK_END预定义为文件结尾,这是默认的,然后把当前fp做为long型赋给n,输出的n即为文件大小,即字节数。
8应该选A,C在后面的k=1.2和k=3处会出现值的混乱,没有一个基准值。A虽然k已经是double型,但对它进行强制转换这样做合法,这个表达式是可执行的。
9题抱歉我看这题是有问题的,程序中没有s这个变量啊。而且i这个变量也没有初始化。所以程序应该不能执行。请你确认后再补充提问。
10选B。正确我就不解释了。C的解释请参照第2题,宏定义是不检查数据类型的。
11选A正确。过程这样,经*p=a后,p与a等价,初始n=1运算sum=sum+p[1],sum值变为2,因为p[0]是1。然后n自加一次,回到for中还有一次n自加,之后n变为3,再执行sum=sum+p[3],sum变为6,即2+4,同理再执行一次,sum值为12,即2+4+6,再向后循环不能执行了。
12选B。枚举类型不能以数字定义。枚举类型中默认依次映射为0,1,2……比如C项中A就表示整型数0,B表示1,C表示2。枚举类型可以指定值,比如D是可以的,枚举类型的指定值也可不完全指定,如A项,A种情况下,后面的值是连续给定,即E表示4,F表示5。
请参考,有不清楚的请继续追问。

上一个:C语言程序题
下一个:C语言跟C++有什么不同

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,