5n个人围成一圈,顺序排号,从第一个 人开始报数(从13报数),凡是数到3的 人退出圈子,问最后留下的是原来的几号的 那个人。
#include <stdio.h> void main()
{
int n, i, k, m;
int array[50], *p;
printf(Mplease input the number of persons: n = \nH);
scanf("%d", &n);
p = array;
for (i 0; i v n i++)
*(p+i) = i+1;
i = 0;    //i为每次循环计数变量
k = 0;    // k为按1,2,3报数时的计数变
m = 0; // m为退岀人数计数变量
while(m < n-l) 〃当退出人数比n-1少 时执行循环体
{
if( *(p+i) != 0 )
k++;
if(k == 3)    //对退出的人编号
置为0
{
*(p+i) = 0;
k 0;
m++;
}
i++
if(i == n)
i = 0;
}
while(*p == 0)
p++ printf("The last one is No. %d\n",
*p)
6编写一个函数求字符串的长度。并在main 函数中输入字符串,并输出其长度。
#include <stdio.h> void main()
{
int strLen(char *str);
intlen;
char string[20];
printf("please input a string: \nM);
scanf(”s”, string);
len = strLen(string);
printf("The length of the string is: %2d\n", len);
}
int strLen(char *str)
{
char *p;
int count = 0;
p = str;
while(水p)
{
P++ count++;
}
return (count);
}
7有一个字符串,包含n个字符。编写一个 函数,将此字符串中从第m个字符开始的 全部字符复制到另一个字符串。
#include <stdio.h>
#include <string.h>
void main()
{
void copystr(char char int);
unsigned int m;
char strl [20], str2[20];
printf(Hplease input a string: H);
gets(strl);
printf(”which character that begin to copy?**);
scanf("%d'*, &m);
if( m > strlen(strl))
printf(ninput error!11);
else
{
copystr(str2, strl, m); printf(Hresult: %s\nM, str2);
void copystr(char *dest, char * source, int m) {
source = source + m-1;
while(*source)
{
*dest = *source;
dest++;
source++;
}
*dest 二、O';
一、单选题(共60小题,每题1分,共60
分)
1.执行下列程序中的输出语句后,x的值
是    o (知识点3.10)
main ()
{int x
printf(“d\n", (x=5*6, x*2, x+20)) }
A)30 B) 60 C) 5() D)
2.下列程序的输出结果是    。(知识
3.8)
main()
{int x=l, y0, z
z= (x<=0) && (y- ->=0)
printf (tt%d%d%d%\n,\ z,x,y):)
A)0-1 1 B) 0l 0 C) 0 1 0 D) 0 1 -1
3.C语言中,下列选项属于合法的长整
型常数的是    o (知识点3.3)
A)0L    B)1234567    C)0.0234567
D)3.14159e3
4.下列选项中属于不正确的赋值语句的
是    。(知识点3.6)
A)t++    B)n 1 = (n2= (n3=0))     C)k=i=
=j D)a=b, c=l
5.若有定义:int a, b char x, y并有以
下输入数据:14 22 XxYy (回车) 则能给a赋整数14,b赋整数22,x 赋字符x,y赋字符y的正确程序段是     。(知识点4.2)
A)scanf(“d%d", &a,&b)
x=getchar() y=getchar()
B)scanf(t4%d%d %c %c", &a, &b,&x,&x,&y,&y)
C)
scanf(“d %d %c%c%c %c", &a,&b,&x,&x, &y,&y)
C)scanf(4t%d%d %c %c", &a, &b,&x,&y)
6.下列转义字符不正确的是    o (知
识点3. 5)
A)'\\'    B)'\'    C)'\053'
DO'
7.下列选项可作为C语言赋值语句的是     o (知识点4.2)
A)x=3,y=5    B)a=b=6 C)i--
D)y=int(x)
& 当c的值不为0时,下列选项中能正确 将c的值赋给变量ab的是    。
(知识点5.2)
A)c=b=a    B)(a=c) II (b=c)
C)(a=c)&&(b=c)    D)a=c=b
9.有以下程序:
main ()
{ unsigned int a
int b=-l
a=b
printf (“u”a) }
该程序运行后的输出结果是    O (知识
4.5)
A)-l    B )65535    0 32767
D)-32768
10.xbmn均为ini型变量,执行
下面语句后b的值为    o (知识点
3.10)
m=20 n=6
x= (- -m= =n++) ? - -m ++n b=m++
A) 11    B)6    C) 19    D)
18
11.有以下程序:
main ()
{ int a=l 1 l,b=222
printf ("%d\n”a, b)
}
该程序运行后的输出结果是    0 (知识
4.5)
A)错误信息 B) ill C) 222 D) 111, 222
12.以下程序的输出结果是    。(知识
4.5)
main()
{ int a=2,c=5;
primf(“a=%%%d,b=%%%d\n'', a, c) }
A) a=%2,b=%5 B) a=2,b=5 C) a=%%%d,b=%%%d D) a=%%d,b=%%d
13.对于浮点型变量f,能实现对f中的值
在小数点后第三位进行四舍五入的表 达式是    o (知识点3.8)
A) f= (f* 100+0.5) /100.0    B)
f= (f* 100+0.5) /100
C)f= (int)(代 100+0.5) /100.0    D)
f= (f7100+0.5) *100
14.a=5, b=6, c=7, d=8, m=2, n=2,执行 (m=a>b)&&(n=c>d)后 的值为     o (知识点5.2)
A) 2,2    B) 2,0    C) 0,2
D)0,0
15.语句 printf ("%d\n”strlen
(“asd\n\xl2\l\\”));的输出结果是
    。(知识点7.3)
A)9 B) 11    C)7    D)8
16.有以下程序:
main()
{
int y=1234
printf ("y=%6d", y)
printf ("y=%+06d\n”y)
}
该程序的运行结果是    o (知识点4.5)
A)y= 1234y=001234    B)y=
1234y=+01234
C) y=1234y=+01234    D) y=
1234y=1234
17.语句:printf (“d”,!9)的输出结果
是    o (知识点5.2)
A)0    B)1    C)有语法错误,不
能执行    D) -9
18.已有定义语句:intx=6, y=4, z=5
行以下语句后,能正确表示xyz值 的选项是    0 (知识点5.3)
if (x<y) z=x x=y y=z
A) x=4, y=5, z=6    B)x=4, y=6,
z=6
C) x=4, y=5, z=5    D)x=5, y=6,
z=4
19.下列选项中属于正确的switch语句的
是    □(知识点5.4)
A)switch (1.0)
B)swicth (1)
{ case 1.0 : printf (“A\n”)
{ case 1 : printf (“A\n”)
case 2.0 : printf ("B\n”);    }
case 2 : printf ("B\n”); }
C)switch ((int) (1.0+2.5))
D)switch (“a");
{ case 1 : printf (“A\n”)
{ case "a" : printf ("A\n”);
case 1+2 : printf ("B\n") }
case "b” : printf ("B\n'') }
20.k int型变量,以下语句段执行后
的输出结果是    o (知识点5.3)
k=-3
if (k<=0) printf (“####”)
else printf (“****”);
A) #### B) **** C) ####****
c语言培训班推荐D)有语法错误,不能执行
21.a=2, b=3, c=4, d=5 时,执行下面
一段程序后x的值为    o (知识点
5.3)
(a>b)
if (c<d) x=l
else
if (a<c)
if (b>d) x=2 :
else x=3
else x=4
else x=5
A) 2    B) 3 C) 4    D) 5
22.下列程序的运行结果是    o (知
识点6.3)
main ()
{ int y=10
do { y・・;} while (・・y )
printf (“d\n”y- -) }
A)1    B) 1 C) 8    D)
0
23.下列程序的运行结果是    o (知
识点6.5)
# include <stdio.h>
main () int i
for (i=l i<=5 i++)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。