您的位置:首页 > 编程语言 > C语言/C++

CSDN自测题——C语言(MAY 04,2014)

2014-05-04 16:08 211 查看

C语言自测题:

有疑问的部分:

以下函数的功能是比较两个字符串s和t的大小,函数中应填入( )。

comp(char *s, char *t)

{

for (;*s==*t;________)

if (*s=='\0')

return(0);

return(*s-*t);

}

A. s++

B. t++

C. s++;t++

D. s++,t++

那*t == '\0' 怎么办?或者是因为*t==‘\0'时已经return *s - *t;了?不对!注意!网页上的源程序不便于阅读,一个return在for循环内,一个return是在循环之后,省略不写的esle就代表下一次循环了~!

下列程序可以打印出楼梯的形状,同时在楼梯上方打印两个笑脸。

#include "stdio.h"

main( )

{

int i,j;

printf("\1\1\n");

for(i=1;i<11;i++)

{



printf("%c%c",219,219);

②;

}

}

A. ①处代码为:for(j=1;j<=i;j++)

B. ①处代码为:for(j=1;j<11;j++)

C. ②处代码为:printf("\n")

D. ②处代码为:printf(" ")



#include<stdio.h>

void main()

{

long int i;

int count=0; /*count:统计满足条件的五位数的个数*/

for(i=1000;i<9999;i++)

① /*判断所选的数能否被3整除*/

count++; /*若满足条件则计数*/

printf("count=%d\\n",count);

}

下列说法正确的是( )。

A. ①处代码应为:if(!((i*10+6)%3))

B. ①处代码应为:if(!((i*10)%3))

C. 输出结果为:count=2999

D. 以上说法均不正确

关于结果的计算(当然打印出来简单,但是假设你没有编译器,只能口算):

因为尾数固定6,所以是1006、1016、1026、1036、1046、1056这样变化;

根据除以三的规律,大概三分之一符合标准,即1026、1056、1086这样类推,个位数不变,一直到9999.应该大约是三百次~!

但是忽略了一个细节,统计的是五位数,i 乘以10+6,i本身要循环9999-1000 = 8999次。

实际情况是1000×10+6或者9999×10+6,递推,规律为:

10006、10016、10026、10036......99986(不包含99996)

同样也是“跳二”原则,即:

10026、10056、10086......99966

这样九千除以三,为三千次,三千次刚好缺一次99996,剩下2999次。

结果,“错题”:

下列程序可以打印出楼梯的形状,同时在楼梯上方打印两个笑脸。 #include "stdio.h" main( ) { int i,j; printf("\1\1\n"); for(i=1;i<11;i++) { ① printf("%c%c",219,219); ②; } }

A、①处代码为:for(j=1;j<=i;j++)
B、①处代码为:for(j=1;j<11;j++)
C、②处代码为:printf("\n")
D、②处代码为:printf(" ")

说我AC错了,应该为BD,首先,我不知道所谓笑脸是个什么东西,我用linux gcc可看不到笑脸,其次,楼梯是个什么概念?

BD你给我打印出来个楼梯看看?

字符串”\\\”ABC”\\”的长度是( )。

A、11
B、8
C、5
D、3

C.


答题时长:8分27秒
要求时长:20秒

说应该选B,我不知道这个怎么算的,感觉根本就不对,其实就是编译不出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: