智慧树知到《C语言程序设计》章节测试答案
智慧树知到《C语言程序设计》章节测试答案
第一章
1、构成c程序的基本单位是函数,有且只有一个主函数
A:对
B:错
答案: 对
2、c语言一行可以写多条语句
A:对
B:错
答案: 对
3、不正确的叙述是()。
A:注释说明只能位于一条语句的后面。
B:C源程序的基本组成单元是函数。
C:C源程序可由一个或多个函数组成。
D:每条语句最后必须有一个分号。
答案: 注释说明只能位于一条语句的后面。
4、C源程序的调试是指对源程序进行()。
A:录入与编辑。
B:编译、连接与运行。
C:查错与排错。
D:连接与运行。
答案: 编译、连接与运行。
5、以下叙述中正确的是()。
A:C程序的执行总是从main函数开始的。
B:一对花括号"{}"只能作为函数体的定界符。
C:C源程序编译时注释部分的错误将被发现。
D:构成C源程序的基本单位是函数,所有函数名都可以由用户命名。
答案: C程序的执行总是从main函数开始的。
第二章
1、以下选项中可用作C程序合法实数的是
A:0.1e0
B:3.0e0.2
C:E9
D:9.12E
答案: 0.1e0
2、以下程序的输出结果是
#include <stdio.h>
main()
{ int x=10,y=10;
printf("%d %d\n",x–,–y); }
A:10 10
B:9 9
C:9 10
D:10 9
答案: 10 9
3、若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是
A:a=(b=4)=3;
B:a=b=c+1;
C:a=(b=4)+c;
D:a=1+(b=c=4);
答案: a=(b=4)=3;
4、写出下面程序的运行结果:
#include <stdio.h>
void main( )
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d ",x,y,z);
}
A:2,3,1
B:2,2,1
C:1,1,1
D:2,2,3
答案: 2,3,1
5、写出下面程序的运行结果:
#include <stdio.h>
void main( )
{
int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
A:3,2
B:2,2
C:1,2
D:1,1
答案: 1,2
6、写出下面程序的运行结果:
main()
{int a,b,c=9;
a=3,b=4;
c%= a+b;
printf(“%d”,c)
}
A:3
B:2
C:1
D:4
答案: 2
7、写出下面程序的运行结果:
#include <stdio.h>
main()
{ int a=4,b,c;
c=a+(b=2);
a+=a-=a*a;
printf("%d,%d,%d ",a,b,c);
}
A:4,2,6
B:-8,2,6
C:-12,2,6
D:-24,2,6
答案: -24,2,6
8、对于int n=3;执行n+=n-=n*n;后n的值是9。
A:对
B:错
答案: 错
9、在C语言中8.9e1.2是不正确的实型常量。
A:对
B:错
答案: 对
10、对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。
B:错
答案: 对
11、若x为整型变量、j为实型变量,当执行语句:x=(int)j;后,j也变为整型变量。
A:对
B:错
答案: 错
12、“!”的优先级可以比“/”高。
A:对
B:错
答案: 对
13、两个char 型数据相加,其结果为char型。
A:对
B:错
答案: 错
14、若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
A:对
B:错
答案: 错
15、在C程序中,%是只能用于整数运算的运算符。
A:对
B:错
答案: 对
16、以下各数均不是合法的八进制数:256、03A2、-0127。
A:对
B:错
答案: 错
17、C语言程序中,任何英语单词均可以作标识符。
A:对
B:错
答案: 错
18、若有宏定义:#defineM(x,y,z)xy+z,则宏引用M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)(4+5)+6+7。
A:对
B:错
答案: 错
19、C语言中不区分大小写英文字母。
A:对
B:错
答案: 错
20、程序中的变量代表内存中的一个存储单元,它的值不可以随时修改。
A:对
B:错
答案: 错
21、0x173是正确的十六进制常数。
A:对
B:错
答案: 对
22、逻辑表达式-5&&!8的值为1。
A:对
B:错
答案: 错
23、下面程序的输出是____
#include<stdio.h>
int main()
{ int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
return 1;
}
A:k=11,k=12,k=11
B:k=11,k=13,k=13
C:k=11,k=013,k=0xb
D:k=11,k=13,k=b
答案: k=11,k=13,k=b
24、在下列选项中,不正确的赋值语句是___.
A:++t;
B:n1=(n2=(n3=0));
C:k=i=j;
D:a=b+c=1;
答案: a=b+c=1;
25、下面程序的输出的是_.
#include<stdio.h>
void main()
{int x=10,y=3;
printf("%d\n",y=x/y);
}
A:0
B:1
C:3
D:不确定的值
答案: 3
26、已知字母A的ASCII码为十进制的65,下面程序的输出是_.
#include<stdio.h>
void main()
{char ch1,ch2;
ch1="A"+"5"-"3";
ch2="A"+"6"-"3";
printf("%d,%c\n",ch1,ch2);
}
A:67,D
B:B,C
C:C,D
D:不确定的值
答案: 67,D
27、为表示关系x≥y≥z,应使用C语言表达式____.
A:(x>=y)&&(y>=z)
B:(x>=y)AND(y>=z)
C:(x>=y>=z)
D:(x>=y) & (y>=z)
答案: (x>=y)&&(y>=z)
28、下面程序的输出结果是___.
#include<stdio.h>
voidmain()
{
int a=-1, b=4, k;
k=(++a<=0)&&(b–<=0);
printf("%d,%d,%d\n",k,a,b);
}
A:1,1,2
B:1,0,3
C:0,1,2
D:0,0,3
答案: 0,0,3
29、若有以下定义和语句:
int a=010, b=0x10, c=10;
printf("%d,%d,%d\n",a,b,c);
则输出结果是____.
A:10,10,10
B:8,16,10
C:8,10,10
D:8,8,10
答案: 8,16,10
30、已知有double型变量x=2.5,y=4.7,整型变量a=7,
则表达式 x+a%3*(int)(x+y)%2/4的值是____.
A:2.4
B:2.5
C:2.75
D:0
答案: 2.5
31、假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;
则该程序段执行后,m的值是___.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;
则该程序段执行后,m的值是___.
A:4
B:3
C:2
D:1
答案: 1
32、有以下程序,其中k的初值为八进制数
#include <stdio.h>
main()
{int k=011;
printf("%d\n",k++);
}
程序运行后的输出结果是____
A:12
B:11
C:10
D:9
答案: 9
33、有以下程序
#include
#define SUB(a) (a)-(a)
main()
{ int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的输出结果是___
A:0
B:-12
C:-20
D:10
答案: -20
34、有以下定义语句,编译时会出现编译错误的是___
A:char a=’a’;
B:char a=’\n’;
C:char a=’aa’;
D:char a=’\x2d’
答案: char a=’aa’;
35、以下选项中,不正确的 C 语言浮点型常量是___
A:160.
B:0.12
C:2e4.2
D:0.0
答案: 2e4.2
36、以下选项中,___是不正确的 C 语言字符型常量。
A:"a"
B:"\x41"
C:"\101"
D:"a"
答案: "a"
37、以下合法的标识符是___。
A:int
B:_a12
C:3ce
D:stu#
答案: _a12
38、已知intx=023,表达式++x的值是___。
A:17
B:18
C:19
D:20
答案: 20
39、已知intx=10,表达式x+=x-=x-x的值是___。
A:10
B:40
C:30
D:20
答案: 20
40、在 C 语言中,字符型数据在计算机内存中,以字符的___形式存储。
A:原码
B:反码
C:ASCII 码
D:BCD码
答案: ASCII 码
41、若变量x、i、j和k都是int型变量,则计算下面表达式后,x的值是___。
x=(i=4,j=16,k=32)
A:4
B:16
C:32
D:52
答案: 32
42、下列不正确的转义字符是___。
A:"\"
B:"\""
C:"074"
D:"\0"
答案: "074"
43、image.png
A:a/b/ce3
B:3ae/b/c
C:3ae/bc
D:ae/c/b3
答案: 3ae/bc
44、要为字符型变量 a赋初值,下列语句中哪一个是正确的___。
A:char a="3";
B:char a=‘3’;
C:char a=%;
D:char a=*;
答案: char a=‘3’;
45、字符串"ABC"在内存占用的字节数是___。
A:3
B:4
C:6
D:8
答案: 4
46、若有说明语句:char c="\72";则变量c在内存占用的字节数是___。
A:1
B:2
C:3
D:4
答案: 1
47、C语言中,要求运算对象只能为整数的运算符是___。
A:%
B:/
C:>
D:*
答案: %
48、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是___。
A:1
B:2
C:2.0
D:2.5
答案: 2.0
49、sizeof (double)的结果值是___。
A:8
B:4
C:2
D:出错
答案: 8
50、以下用户标识符中,合法的是___。
A:int
B:nit
C:123
D:a+b
答案: nit
51、表达式18/4*sqrt(4.0)/8值的数据类型是___。
A:int
B:float
C:double
D:不确定
答案: double
第三章
1、有以下程序
#include <stdio.h>
void main()
{
char a,b,c,d;
scanf(“%c%c“,&a,&b);
c=getchar( );
d=getchar( );
printf(“%c%c%c%c\n”,a,b,c,d);
}
当执行程序时,按下列方式输入数据
12↙
34↙
则输出结果是
A:1234
B:12
C:12 回车 3
D:12 回车34
答案:c
2、若有定义:int a,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是
A:3 空格5
B:3,5
C:3分号5
D:35
答案:c
3、以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)
A:printf("%c\n","a"-32);
B:printf("%d\n","A");
C:printf("%c\n",65);
D:printf("%c\n","B"-1);
答案:b
4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换为小写字母的语句是
A:c=(c-‘A’)%26+’a’;
B:c=c+32;
C:c=c-‘A’+’a’;
D:c=(‘A’+c)%26-‘a’;
答案:D
5、在C语言中,每个语句和数据定义是用__ 结束
A:句号
B:逗号
C:分号
D:括号
答案:C
6、“putchar(70); ” 这一C语句输出的结果为( )
A:70
B:F
C:提示语法错误
D:C
答案:B
7、C 语言标准格式输入函数scanf()的参数表中要使用变量的地址值。
A:对
B:错
答案:A
8、表达式语句和表达式没有什么区别。
A:对
B:错
答案:B
9、C 语言标准输入操作中,gets()函数一次只可读取一个字符。
A:对
B:错
答案:B
10、C 语言程序中可以有多个函数,但只能有一个主函数。
A:对
B:错
答案:A
11、C 语言标准输出操作中,putchar()函数可以输出显示一个字符串。
A:对
B:错
答案:B
12、C 语言标准格式输出函数printf()的参数表是由若干个表达式组成。
A:对
B:错
答案:A
13、C 语言标准输入操作中,gets()函数一次只可读取一个字符。
A:对
B:错
答案:B
14、以下叙述中正确的是
A:用C程序实现的算法必须要有输入和输出操作
B:用C程序实现的算法可以没有输出但必须要有输入
C:用C程序实现的算法可以没有输入但必须要有输出
D:用C程序实现的算法可以既没有输入也没有输出
答案:
15、在C语言中,执行下面两个语句后,输出的结果为( )。
char c1=97, c2=98;printf("%d %c",c1,c2);
A:9798
B:97b
C:a98
D:ab
答案:B
16、下列语句中符合C语言语法的赋值语句是
A:a=7+b+c=a+7;
B:a=7+b++=a+7;
C:a=7+b,b++,a+7
D:a=7+b,c=a+7;
答案:D
17、在C语言语言中,退格符是( )
A:\n
B:\t
C:\f
D:\b
答案:D
18、putchar()函数可以向终端输出一个
A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量值
答案:D
19、以下选项中不是C语句的是()。
A:++t
B:;
C:k=i=j;
D:{a/=b=1;b=a%2;}
答案:A
20、有定义语句:int a=5,b,不能给b赋2的赋值语句是( )。
A:b=a/2;
B:b=b+2;
C:b=2%a;
D:b=5;b=2;
答案:B
21、已有定义int a=-2;和输出语句printf("%8lx",a);以下正确的叙述是( )。
A:整型变量的输出形式只有%d一种
B:%x是格式符的一种,它可以适用于任何一种类型的数据
C:%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D:%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
答案:C
22、以下语句的输出结果是 ( )。
printf("%d\n",strlen("\t\"\065\xff\n"));
A:5
B:14
C:8
D:输出项不合法,无法正常输出
答案:A
23、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是( )。
A:10<回车>22<回车>33<回车>
B:10.0,22.0,33.0<回车>
C:10.0<回车>22.033.0<回车>
D:10 22<回车>33<回车>
答案:C
24、使用scanf("a=%d,b=%d",&a,&b)为变量a,b赋值。要使a,b均为50,正确的输入是( )。
A:a=50b=50
B:5050
C:a=50,b=50
D:50,50
答案:C
25、调用getchar和putchar函数时,必须包含的头文件是( )。
A:stdio.h
B:stdlib.h
C:define
D:以上都不对
答案:A
26、以下叙述中不正确的是( )。
A:调用printf函数时,必须要有输出项
B:使用putchar函数时,必须在之前包含头文件stdio.h
C:在C语言中,整数可以以十进制、八进制或十六进制的形式输出
D:使用putchar函数可以不要输出项
答案:
27、putchar()函数可以向终端输出一个( )。
A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量
答案:D
28、用getchar()函数可以从键盘读入一个( )。
A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量
答案:D
第四章
1、以下程序段的输出结果是
main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);
}
A:1,1,2
B: 2,2,1
C:2,2,2
D:2,2,3
答案:
2、当c的值不为0时,能正确将c的值赋给变量a,b的是
A:c=b=a
B:(a=c)&&(b=c)
C:(a=c)||(b=c)
D:a=c=b
答案:B
3、以下程序的运行结果是
main()
{inta=010, b=10;
printf("%d,%d\n" , ++a, b--);
}
A:11, 10
B:9, 10
C: 011, 10
D: 011, 9
答案:
4、已知int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是
A:1,2
B:1,3
C:2,3
D:2,2
答案:D
5、#include <stdio.h>
void main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);}
程序运行后的输出结果是
A:3
B:2
C:1
D:0
答案:
6、#include <stdio.h>
main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1: switch(y)
{case 0:a++;break;
case1:b++;break;}
case 2:a++;b++;break;
case 3:a++;b++;break;
default:a++;b++;}
printf(“\na=%d,b=%d”,a,b);}
A.a=1,b=0 B.a=2,b=1C.a=1,b=1D.a=2,b=2
以上程序的输出是
A:a=1,b=0
B:a=2,b=1
C:a=1,b=1
D:a=2,b=2
答案:
7、下面程序的输出结果是:
#include<stdio.h>
void main()
{ int a=2, b=-1, c=2;
if(a<b)
if(b<0)c=0;
elsec+=1;
printf("%d", c);
}
A:2
B:1
C:3
D:4
答案:A
8、下程序功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出,请填空。
#include<stdio.h>
void main()
{int x=256;
printf(“%d-%d-%d”,___,x/10%10,x/100);}
A:x/10
B:x%10
C:x/10%10
D:x/100%10
答案:B
9、有以下程序
#include <stdio.h>
void main()
{ int x;
scanf("%d",&x);
if(x>15) printf("%d",x-5);
if(x>10) printf("%d",x);
if(x>5) printf("%d ",x+5);
}
若程序运行时从键盘输入12<回车>,则输出结果为_
A:12
B:17
C:12 17
D:7
答案:C
10、有以下程序(说明:字符0的ASCII码值为48)
#include <stdio.h>
main()
{char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c ",c1,c2);
}
若程序运行时从键盘输入48<回车>,则输出结果为_
A:09
B:0
C:9
D:"0" "9"
答案:A
11、在C语言中,设有如下定义: inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为( )。
A:1
B:2
C:3
D:0
答案:B
12、设有如下定义: inta=2,b; 则执行b=a&&1;语句后,b的结果是( )。
A:0
B:1
C:2
D:3
答案:B
13、设a=3,b=4,c=5,则表达式!(a>b)&&!c||1的结果是( )。
A:1
B:0
C:2
D:4
答案:A
14、能正确表示a 和 b同时为正或同时为负的逻辑表达式是( )。
A:(a>=0||b>=0)&&(a<0||b<0)
B:(a>=0&&b>=0)&&(a<0&&b<0)
C:(a+b>0)&&(a+b<=0)
D:a*b>0
答案:D
15、以下程序段的输出结果是( )。
int a=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A:a=10 b=50 c=10
B:a=10 b=30 c=10
C:a=50 b=30 c=10
D:a=50 b=30 c=50
答案:B
16、有如下程序
intmain( )
{ float x=2.0,y;
if(x<0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf(“%f\n”,y);
return 0;
}
该程序的输出结果是( )。
A:0.000000
B:0.250000
C:0.500000
D:1.000000
答案:
17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。
A:a<>0
B:!a
C:a=0
D:a
答案:D
18、有如下程序段:
int x =1, y=1 ;
int m , n;
m=n=1;
switch (m)
{ case 0 : x=x2;
case 1:
{
switch (n)
{ case 1 : x=x2;
case 2 : y=y2;break;
case 3 : x++;
}
}
case 2 : x++;y++;
case 3 : x=2;y*=2;break;
default:x++;y++;
}
执行完成后,x和y 的值分别为( )。
A:x=6 y=6
B:x=2 y=1
C:x=2 y=2
D:x=7 y=7
答案:A
19、以下程序的输出结果是( )
intmain()
{ int a=1,b=3,c=5,d=4,x;
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
printf(“x=%d”,x);
return 0;
}
A:1
B:2
C:3
D:6
答案:B
20、在C语言中,设x=1, y=2, 执行表达式 (x>y)?x++:++y以后x和y的值分别为( )。
A:1和2
B:1和3
C:2和2
D:2和3
答案:B
21、以下程序段,运行后的输出结果是( )。
char m="b";
if(m++>"b")printf("%c\n",m);
else printf("%c\n",m–);
A:a
B:b
C:c
D:d
答案:C
22、以下程序段的输出结果是( )。
int a=13,b=21,m=0;
switch(a%3)
{
case 0:m++;break;
case 1:m++;
switch(b%2)
{
default:m++;
case 0:m++;break;
}
}
printf("%d",m);
A:1
B:2
C:3
D:4
答案:C
第五章
1、下述for循环语句____
int i,k;
for (i=0,k=-1;k=1;i++,k++)printf(“***”);
A:判断循环语句结束的条件非法
B:是无限循环
C:只循环一次
D:一次也不循环
答案:B
2、#include <stdio.h>
main( )
{ int x=0,y=5,z=3;
while(z–>0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
} 程序执行后的输出结果是
A:3,2,0
B:3,2,-1
C:4,3,-1
D:5,-2,-5
答案:B
3、有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是
A:自然数1~9的累加和
B:自然数1~10的累加和
C:自然数1~9中的奇数之和
D:自然数1~10中的偶数之和
答案:A
4、以下程序执行后的输出结果是()
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;}
while(!i);
n++;}
printf(“n=%d\n”,n);}
A:n=5
B:n=2
C:n=3
D:n=4
答案:D
5、程序运行后的输出结果是
#include<stdio.h>
main()
{ int i,j,m=2;
for(i=1;i<3;i++)
{for(j=3;j>0;j–)
{if(i+j>3) break;
m=ij;} }
printf(“m=%d\n”,m);}
A:m=6
B:m=2
C:m=4
D:m=5
答案:B
6、以下程序运行后的输出结果是
#include<stdio.h>
main()
{int a=1,b=2;
for(;a<8;a++) { b+=a;a+=2;}
printf(“%d,%d\n”,a,b);}
A:9,18
B:8,11
C:7,11
D:10,14
答案:D
7、以下程序运行后的输出结果是
main()
{ int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break; }
printf("%d\n",c);}
A:3
B:5
C:7
D:9
答案:A
8、以下程序的运行结果是
#include <stdio.h>
main()
{ int x=8;
for( ; x>0; x–)
wWw.WeNtiyi.CoM{ if(x%3) {printf(“%d,”,x–);
continue;}
printf(“%d,”,–x); } }
A:7,4,2
B:8,7,5,2
C:9,7,6,4
D:8,5,4,2
答案:D
9、下述程序的输出结果
#include<stdio.h>
main()
{int y=10;
while(y–);
printf(“y=%d”,y);}
A:y=0
B:y=1
C:y=随机值
D:y=-1
答案:D
10、下面的程序 的结果是:
main()
{ int x=3;
do
{printf("%d\n",x-=2);}
while(!(–x));}
A:输出的是1
B:输出的是1和-2
C:输出的是3和0
D:是死循环
答案:
11、下述for语句
int i,x;
for (i=0,x=1;i<=9&&x!=876;i++)
scanf(%d”,&x);
A:最多循环10次
B:最多循环9次
C:无限循环
D:一次也不循环
答案:A
12、有以下程序
#include <stdio.h>
main()
{int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case 1:printf("%d",s+5);
case 2:printf("%d",s+4); break;
case 3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是
A:6566456
B:66656
C:66666
D:666656
答案:A
13、下面程序段的输出结果是__.
x=3;
do { y=x–;
if (!y) {printf("");continue;}
printf("#");
} while(x=2);
A:##
B:##
C:死循环
D:输出错误信息
答案:C
14、下面程序的输出结果是___.
#include<stdio.h>
voidmain( )
{ int n=4;
while (n–) printf("%d ",n–);
}
A:2 0
B:3 1
C:3 2 1
D:2 1 0
答案:A
15、以下程序运行后的输出结果是____.
#include<stdio.h>
void main()
{ int i=10,j=0;
do
{ j=j+1;i–;
}while(i>2);
printf("%d\n",j);
}
A:50
B:52
C:51
D:8
答案:
16、下面程序的输出结果是____.
main( )
{
int i,k=0, a=0, b=0;
for(i=1;i<=4;i++)
{
k++;
if (k%2==0) {a=a+k; continue;}
b=b+k;
a=a+k;
}
printf("k=%d a=%d b=%d\n",k,a,b);
}
A:k=5 a=10 b=4
B:k=3 a=6 b=4
C:k=4 a=10 b=3
D:k=4 a=10 b=4
答案:D
17、下面程序的输出结果是___.
#include<stdio.h>
void main( )
{int y=9;
for(;y>0;y–)
{if(y%3==0)
{printf("%d",–y);
continue;}
}
}
A:741
B:852
C:963
D:875421
答案:B
18、有以下程序
#include<stdio.h>
main()
{
int i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j–)
{if(ij>3) break;
m=ij;
}
}
printf("m=%d\n",m);
}程序运行后的输出结果是___.
A:m=1
B:m=2
C:m=4
D:m=5
答案:
19、有以下程序
#include <stdio.h>
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k;
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\n”,c);
}
程序运行后的输出结果是___
A:3
B:5
C:7
D:9
答案:A
20、for(i=1;i<9;i+=1);该循环共执行了___次。
A:7
B:8
C:9
D:10
答案:B
21、int a=2;while(a=0) a–;该循环共执行了___次。
A:0
B:1
C:2
D:3
答案:A
22、执行完循环 for(i=1;i<100;i++);后,i的值为___。
A:99
B:100
C:101
D:102
答案:B
23、以下 for语句中,书写错误的是___。
A:for(i=1;i<5;i++)
B:i=1;for(;i<5;i++);
C:for(i=1;i<5;i++);
D:for(i=1;i<5;) i++;
答案:A
24、___语句,在循环条件初次判断为假,还会执行一次循环体。
A:for
B:while
C:do-while
D:以上都不是
答案:C
25、有以下程序段,其运行结果是___
int i=5;
do{
if(i%3==1)
if(i%5==2)
{printf("%d",i);
break;}
i++;
}while(i!=0);
A:26
B:7
C:5
D:3*5
答案:B
26、i、j已定义为 int 类型,则以下程序段中内循环体的执行次数是___。
for(i=5;i;i–)
for(j=0;j<4;j++){…}
A:20
B:24
C:25
D:30
答案:A
27、以下不构成无限循环的语句或语句组是___。
A:n=10;while(n);{n–;}
B:n=0;while(1){n++;}
C:n=0;do{++n;}while(n<=0);
D:for(n=0,i=1;;i++)n+=i;
答案:A
28、有以下程序段,其运行结果是___。
Inty=9;
for(;y>0;y–)
if(y%3==0)printf("%d",–y);
A:875421
B:963
C:852
D:741
答案:C
29、有以下程序段,其运行结果是___。
int i,j;
for(i=3;i>=1;i–)
{for(j=1;j<=2;j++)
printf("%d",i+j);
printf("\n");}
A:234
345
B:432
543
C:23
34
45
D:45
34
23
答案:D
第六章
1、若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c="a",d,g;
则数值为4的表达式是
A:a[g-c]
B:a[4]
C:a["d"-"c"]
D:a["d"-c]
答案:D
2、以下程序运行后的输出结果是
#include<stdio.h>
main()
{int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
for(i=1;i<3;i++) s=s+a;
printf(“%d\n”,s);}
A:6
B:10
C:11
D:5
答案:D
3、#include<stdio.h>
main()
{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=1;i<3;i++)
for(j=1;j<=1;j++) t+=b[b[j]];
printf(“%d\n”,t);}
程序运行后的输出结果是
A:1
B:3
C:4
D:9
答案:C
4、若有以下定义和语句
char s1[10]="abcd!",s2[10]="\n123\";
printf("%d,%d",strlen(s1),strlen(s2));
则输出结果是
A:5 5
B:10 5
C:10 7
D:5 8
答案:A
5、#include<stdio.h>
main()
{ char s[]={"012xy"};
int i,n=0;
for(i=0;s!=0;i++)
if(s>"a"&&s<="z") n++;
printf("%d\n",n); }
程序运行后的输出结果是
A:0
B:2
C:3
D:5
答案:B
6、以下程序的运行结果是
#include <stdio.h>
main()
{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s]++;
for(i=1;i<5;i++) printf(“%d”,c);
printf(“\n”); }
A:1 2 3 4
B:2 3 4 4
C:4 3 3 2
D:1 1 2 3
答案:C
7、有以下程序
#include <stdio.h>
main()
{ char s[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s!=0;i++)
if(s>="0"&&s<="9") n++;
printf("%d\n",n);
}
程序运行后的输出结果是
A:0
B:3
C:7
D:8
答案:
8、#include<stdio.h>
main()
{int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=1;i<3;i++)
for(j=1;j<3;j++) printf(“%d”,a[j]);
printf(“ ”);}
程序运行后的输出结果是
A:5689
B:5678
C:1234
D:4567
答案:A
9、#include<stdio.h>
main()
{int a[3][3]=1,2,3},{4,5,6},{7,8,9;
int b[3]={0},i;
for(i=1;i<3;i++) b=a[2]+a[2];
for(i=1;i<3;i++)printf(“%d”,b);
printf(“ ”);}
程序运行后的输出结果是
A:14
B:1418
C:1428
D:18
答案:B
10、以下程序用以删除字符串中所有空格,横线处需要填哪条语句
#include<stdio.h>
main()
{char[100]={“Our teacher teach c language!”};
int i,j;
for(i=j=0;s!=‘’;i++)
if(s!=‘ ’) {s[j]=s;j++;}
问题来自[问题易],本页地址:https://www.wentiyi.com/wenti/2053477.html
