2-2
一个C程序的执行是从( )(1分)
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
答案:A
2-3
以下叙述正确的是( )(1分)
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:C
2-4
一个C语言程序是由( )(1分)
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
答案:B
2-5
关于程序设计语言
在下列说法中,▁▁▁▁▁ 是不正确的。(1分)
A.高级语言功效较低,低级语言功效较高。
B.低级语言使用复杂、繁琐、费时、易出错。
C.高级语言使用简单、易学、易用、易维护。
D.高级语言无须翻译便可直接在机器上运行。
答案:D
2-6
用( )三种基本控制结构,就可以编写任何复杂的计算机程序(2分)
A.I/O,转移,循环
B.转子(程序),返回,处理
C.顺序,选择,循环
D.输入,输出,处理
答案:C
2-1
要调用数学函数时,在#include命令行中应包含____。(2分)
A.“stdio.h”
B.“string.h”
C.“math.h”
D."ctype.h"
答案:C
2-10
若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。(2分)
A.scanf("%d,%f”, &a, &c);
B.scanf(“d=%d, c=%f”, &a, &c);
C.scanf(”%d%f”, &a, &c);
D.scanf("%d%f”, a, c);
答案:D
2-11
C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )(2分)
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中任一种字符
答案:C
2-12
下列程序段输出结果为 ____。(2分)
int x = -3, y = 2;
if(x>y);
x = -x;
if(x<y)
y = -y;
printf("x=%d,y=%d\n", x, y);
A.x=3,y=-2
B.x=3,y=2
C.x=-3,y=2
D.x=-3,y=-2
答案:B
2-30
假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段功能等价的赋值语句是()。(2分)
s = a;
for(b = 1; b <= c; b++)
s = s + 1;
A.s = a + b;
B.s = a + c;
C.s = s + c;
D.s = b + c;
答案:B
2-31
若变量已正确定义,要求程序段完成求5!的计算,以下不能完成此操作的是(2分)
A.for (i = 1, p = 1; i <= 5; i++) p *= i;
B.for (i = 1; i <= 5; i++) {p = 1; p *= i;}
C.i = 1; p = 1; while (i <= 5) {p *= i; i++;}
D.i = 1; p = 1; do {p *= i; i++;} while (i <= 5);
答案:B
2-7
能正确表示逻辑关系"a≥10 或 a≤0"的C语言表达式是()。(2分)
A.a>=10 or a<=0
B.a>=0 | a<=10
C.a>=10 && a<=0
D.a>=10 || a<=0
答案:D
2-46
在嵌套使用if语句时,C语言规定else总是()。(2分)
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
答案:C
2-47
下列叙述中正确的是()。(2分)
A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
答案:D
2-48
有一函数,以下程序段中错误的是()。(2分)
A.
if(x > 0) y = 1;
else if(x == 0) y = 0;
else y = -1;
B.
y = 0;
if(x > 0) y = 1;
else if(x < 0) y = -1;
C.
y = 0;
if(x >= 0);
if(x > 0) y = 1;
else y = -1;
D.
if(x >= 0)
if(x > 0) y = 1;
else y = 0;
else y = -1;
答案:C
2-49
下列程序段的输出结果是()。(2分)
int main(void)
{
int a = 2, b = -1, c = 2;
if(a < b)
if(b < 0)
c = 0;
else c++;
printf("%d\n",c);
return 0;
}
A.0
B.1
C.2
D.3
答案:C
2-50
下列程序段的输出结果是 ()。(2分)
int main(void)
{
int x = 1, a = 0, b = 0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d\n",a,b);
return 0;
}
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
答案:A
2-51
在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是()。(2分)
int main(void)
{
int a,b,s,t;
scanf("%d,%d",&a,&b);
s = 1; t = 1;
if(a > 0) s = s + 1;
if(a > b) t = s + t;
else if(a == b) t = 5;
else t = 2 * s;
printf("t=%d\n",t);
return 0;
}
A.a>b
B.a<b<0
C.0<a
答案:C
2-63
C语言中while和do-while循环的主要区别是()。(2分)
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
答案:A
2-64
下列叙述中正确的是()。(2分)
A.break 语句只能用于 switch 语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break 语句只能用在循环体内和 switch 语句体内
D.在循环体内使用 break语句和 continue 语句的作用相同
答案:C
2-65
下列叙述中正确的是()。(2分)
A.do-while语句构成的循环不能用其他语句构成的循环来代替
B.do-while语句构成的循环只能用break语句退出
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环
D.用do-while语句构成的循环,在while后的表达式为零时结束循环
答案:D
2-66
执行以下循环语句时,下列说法正确的是()。(2分)
x = -1;
do {
x = x * x;
} while (x == 0);
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示有语法错误
答案:A
2-67
以下程序段的输出结果是()。(2分)
int main(void)
{
int num = 0, s = 0;
while(num <= 2){
num ++;
s += num;
}
printf("%d\n",s);
return 0;
}
A.10
B.6
C.3
D.1
答案:B
2-68
运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为()。(2分)
int main(void)
{
int m, n;
printf("Enter m,n;");
scanf("%d%d", &m,&n);
while (m != n)
{ while (m > n) m = m - n;
while (n > m) n = n - m;
}
printf("m=%d\n",m);
return 0;
}
A.m=3
B.m=2
C.m=1
D.m=0
答案:C
2-8
下列程序段的输出结果是()。(2分)
int main(void)
{
for(int i = 1; i < 6; i ++) {
if( i % 2 != 0) {
printf("#");
continue;
}
printf("*");
}
printf("\n");
return 0;
}
A.#* #* #
B.#####
C.*****
D.* #* #*
答案:A
2-91
在100-999的自然数中,若将组成这个数的三个数字认为是三条线段的长度,那么是三条线段组成一个等腰三角形(包括等边)的共有多少个(4分)
A.45
B.156
C.165
D.142
答案:C
2-92
边长为n的正方形可以分为多个边长为1的正方形,如:边长为2的正方形有2*2个边长为1的正方形和一个边长为2的正方形,问边长为5的正方形有几个正方形(2分)
A.25
B.30
C.55
D.100
答案:C
2-93
在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为()。(2分)
A.void
B.double
C.char
D.int
答案:D
2-94
下列程序的输出结果是()。(2分)
fun(int a, int b, int c)
{ c = a * b; }
int main(void)
{
int c;
fun(2, 3, c);
printf(“%d\n”, c);
return 0;
}
A.0
B.1
C.6
D.无法确定
答案:D
2-95
建立自定义函数的目的之一是()。(2分)
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
答案:B
2-96
以下正确的函数定义形式是()。(2分)
A.double fun(int x, int y)
B.double fun(int x ; int y)
C.double fun(int x, int y);
D.double fun(int x, y)
答案:A
2-97
以下不正确的说法是()。(2分)
A.实参可以是常量、变量或表达式
B.实参可以是任何类型
C.形参可以是常量、变量或表达式
D.形参应与对应的实参类型一致
答案:C
2-98
以下正确的说法是()。(2分)
A.实参与其对应的形参共同占用一个存储单元
B.实参与其对应的形参各占用独立的存储单元
C.只有当实参与其对应的形参同名时才占用一个共同的存储单元
D.形参是虚拟的,不占用内存单元
答案:B