5有n个人围成一圈,顺序排号,从第一个 人开始报数(从1到3报数),凡是数到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, y二0, z;
z= (x<=0) && (y- ->=0);
printf (tt%d%d%d%\n,\ z,x,y):)
A)0-1 ・1 B) 0・l 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'
D八O'
7.下列选项可作为C语言赋值语句的是 o (知识点4.2)
A)x=3,y=5 B)a=b=6 C)i--;
D)y=int(x);
& 当c的值不为0时,下列选项中能正确 将c的值赋给变量a、b的是 。
(知识点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.若x、b、m、n均为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;执
行以下语句后,能正确表示x、y、z值 的选项是 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小时内删除。
发表评论