C语言自测题:
有疑问的部分:
以下函数的功能是比较两个字符串s和t的大小,函数中应填入( )。
comp(char *s, char *t)
{
for (;*s==*t;________)
if (*s=='\0')
return(0);
return(*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++
下列程序可以打印出楼梯的形状,同时在楼梯上方打印两个笑脸。
#include "stdio.h"
main( )
{
int i,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
①
printf("%c%c",219,219);
②;
}
}
#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(" ")
BD你给我打印出来个楼梯看看?
-
- 字符串”\\\”ABC”\\”的长度是( )。
-
- A、11
- B、8
- C、5
- D、3
-
- C.
- C.
-
- 答题时长:8分27秒
- 要求时长:20秒