C语言程序设计基础单项选择题库Word下载.docx
《C语言程序设计基础单项选择题库Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础单项选择题库Word下载.docx(58页珍藏版)》请在冰豆网上搜索。
(A)1(B)2
(C)3(D)4
10
如果在一个C语言表达式中有多个运算符,则运算时应该
(A)只考虑优先级(B)只考虑结合性
(C)先考虑优先级,然后考虑结合性(D)先考虑结合性,然后考虑优先级
11在C程序中,下面叙述不正确的是
(A)x和X是两个不同的变量(B)从键盘输入数据时,对整型变量只能输入整型数据,对于实型变量只能输入实型数据
(C)逗号运算符的优先级最低(D)若x、y类型相同,则执行语句y=x,后,将把x的值放入y中,而x的值不变
12
已知字符A的ASCII值为65,若定义inti;
,则执行语句i='
A'
+3.5;
后,正确的叙述是
(A)i的值是字符E(B)语句不合法
(C)i的值是字符A的ASCII值加上3,即68(D)i的值是字符A的ASCII值加上3.5,即68.5
13
C语言是计算机高级语言,它适合作为系统描述语言,它
(A)不以用来编写系统软件,可以用来编写应用软件(B)不以用来编写系统软件,不可以用来编写应用软件
(C)可以用来编写系统软件,不可以用来编写应用软件(D)可以用来编写系统软件,也可以用来编写应用软件
14
在纸上写好一个C语言程序后,上机运行的基本步骤为
(A)编辑、连接、编译、运行(B)编译、连接、编辑、运行
(C)编译、编辑、连接、运行(D)编辑、编译、连接、运行
15
用C语言等高级语言编写的程序称为
(A)可执行程序(B)编译程序
(C)目标程序(D)源程序
16
一个C语言源程序经过“编译程序”翻译后生成一个二进制代码文件,它的扩展名为
(A).dat(B).exe
(C).c(D).obj
17
通过“连接程序”软件,把C语言目标程序与C语言提供的各种库函数连接起来生成一个文件,它的扩展名为
(A).exe(B).dat
(C).obj(D).c
18
下面叙述中正确的是
(A)在C语言程序中,要调用的函数必须在main()函数中定义(B)C语言程序总是从main()函数开始执行
(C)C语言程序总是从第一个函数开始执行(D)在C语言程序中,main()函数必须放在程序的开始位置
19
在一个C语言源程序中,main()函数的位置
(A)必须在其他所有的函数之后(B)可以在任意位置
(C)必须在其他所有的函数之前(D)必须在固定位置
20
一个C语言程序由
(A)若干个过程组成(B)若干个子程序组成
(C)一个主程序和若干个子程序构成
(D)一个主函数和若干个子函数构成
21一个函数的组成有
(A)函数的声明部分和执行部分(B)函数名、函数类型、函数参数名、函数参数类型
(C)主函数和子函数(D)函数首部和函数体
22
下面叙述不正确的是
(A)在程序中任意合适的地方都可以加上注释以便阅读(B)C语言中的每条执行语句都需要用分号结束
(C)include命令所在行后面需要加分号(D)C语言具有高级语言的功能,也具有低级语言的一些功能
23
下面叙述正确的是
(A)在C程序中,main()函数的位置必须在其他所有的函数之前(B)C语言自身没有输入输出语句
(C)在C程序的编译过程中可以发现注释中的拼写错误(D)C程序的每一行只能写一条语句
24
在C语言中,用来表示“取位置”的符号是
(A)$(B)#
(C)@(D)&
25
在C语言中,用于结构化程序设计的三种基本结构是
(A)顺序结构、选择结构、转移结构(B)顺序结构、条件结构、循环结构
(C)顺序结构、选择结构、重复结构(D)顺序结构、选择结构、循环结构
26
一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是
(A)有效性(B)有穷性
(C)有零个或多个输入(D)有零个或多个输出
27
程序设计一般可以简化为以下4个步骤,其中首先应该完成的是
(A)调试并运行程序(B)编写程序
(C)建立数学模型(D)设计数据结构和算法
28
以下不正确的C语言标识符是
(A)ab.c(B)a_bc
(C)abc(D)ABC
29
以下正确的C语言标识符是
(A)a+b(B)test!
(C)_123(D)%x
30
编辑程序的功能是
(A)命令计算机执行指定的操作(B)调试程序
(C)将C源程序编译成目标程序(D)建立并修改程序
31C语言程序的基本单位是
(A)过程(B)函数
(C)子程序(D)标识符
32
下列说法中错误的是
(A)主函数可以分为两部分:
主函数首部和主函数体(B)主函数可以调用任何非主函数的其它函数
(C)任何非主函数可以调用其它任何非主函数(D)程序可以从任何非主函数开始执行
33
在下列数据中属于“字符串常量”的是
(A)ABC(B)"
ABC"
(C)'
abc'
(D)'
a'
34
在C语言中,字符'
\n'
在内存占用的字节数是
35
字符串"
(A)3(B)4
(C)6(D)8
·
试题讲评
编译字符串"
时,编译器会自动加上字符串结束标志'
\0'
,因此字符串"
占用的内存为4个字节。
36
在C语言中,合法的长整型常数是
(A)0L(B)4321
(C)0.07654321(D)2.3456e10
4321在C语言中默认为是int型数据,数据后加L或l表示该数的类型为长整型。
37
char型常量在内存中存放的是
(A)ASCII值(B)BCD码值
(C)内码值(D)十进制代码值
38
设m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是
(A)0,0(B)0,1
(C)1,0(D)1,1
(1)在C语言中,“||”表示逻辑或,“&
”表示逻辑与。
(2)对于“m=(表达式a)||(表达式b)”,若“表达式a”为真或“表达式b”为真,则m为真。
特别指出,若“表达式a”为真,则m的值肯定为真(无论“表达式b”的结果是否为真),在C语言中,为提高运算速度,此时就不再去执行“表达式b”。
(3)对于“m=(表达式a)&
(表达式b)”,若“表达式a”为假或“表达式b”为假,则m为假。
特别指出,若“表达式a”为假,则m的值肯定为假(无论“表达式b”的结果如何),在C语言中,为提高运算速度,此时就不再去执行“表达式b”。
(4)在本题的表达式中,从左至右,先计算“(m=a==b)”,在此表达式中,先计算“a==b”,由于a,b的值均为0,因此“a==b”的结果是真(即1)。
再将“a==b”的运算结果(即1)赋值给m,则m的值为1,因此“(m=a==b)”的结果为1,即真,按前述规则,不再对表达式“(n=c==d)”进行计算,因此结果为选项C。
39
设a为5,执行下列语句后,b的值不为2的是
(A)b=a/2(B)b=6-(--a)
(C)b=a%2(D)b=a>
3?
2:
4
40
表达式10!
=9的值是
(A)true(B)真
(C)0(D)1
41
若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是
(A)1.0(B)2.0
(C)0.0(D)2.5
对于逗号(,)运算符,从左至右进行运算,结果为最后一步的值。
42
若有chara;
intb;
floatc;
doubled;
,则表达式a*b+d-c的值的类型是
(A)float(B)int
(C)char(D)double
43
在以下一组运算符中,优先级最高的运算符是
(A)<
=(B)=
(C)%(D)&
44
下列叙述中正确的是
(A)C程序中的所有字母都必须小写(B)C程序中的关键字必须小写,其他标识符不区分大小写
(C)C语言中的所有字母都不区分大小写(D)C语言中的所有关键字必须小写
45
下面不属于C语言关键字的是
(A)integer(B)typedef
(C)enum(D)union
46
以下叙述不正确的是
(A)分号是C语句的必要组成部分(B)C程序的注释可以写在语句的后面
(C)函数是C程序的基本单位(D)主函数的名字是mian
47
下列能正确表示a≥10或a≤0的C语言关系表达式是
(A)a>
=10ora<
=0(B)a>
=10|a<
=0
(C)a>
=10||a<
=0(D)a>
=10&
a<
48
下列只有当整数x为奇数时,才是逻辑“真”的表达式是
(A)x%2==0(B)!
(x%2==0)
(C)!
(x%2)(D)(x-x/2*2)==0
49
设a为整型变量,不能正确表达数学关系10<
a<
15的C语言表达式是
(A)10<
15(B)a==11||a==12||a==13||a==14
10&
15(D)!
(a<
=10)&
!
(a>
=15)
对于表达式“10<
15”,无论a的值为多少,其结果均为真,原因是:
“10<
15”其实是“(10<
a)<
15”,即先对“10<
a”求值,再将该值与15进行比较,而无论a的值为多少,“10<
a”的值要么为真、要么为假,只有1与0两种取值,1与0均小于15,因此表达式“10<
15”的结果始终为真。
50
表达式17%4/8的值是
(A)0(B)1
(C)2(D)3
51下列说法正确的是2834
(A)在执行C程序时不是从main()函数开始(B)C语言程序书写格式限制严格,一行内只能写一条语句
(C)C语言程序书写格式比较自由,一条语句可以分写在多行上(D)C语言程序书写格式严格,要求一行内必须写一条语句,并要有行号
52
逻辑运算符两侧运算对象的数据类型
(A)只能是0或1(B)只能是0或非0正数
(C)可以是正数或字符型数据(D)是逻辑型
53
若有代数式3ae/(bc),则错误的C语言表达式为
(A)a/b/c*e*3(B)3*a*e/b/c
(C)3*a*e/b*c(D)a*e/c/b*3
54
用C语言编写的代码程序
(A)可立即执行(B)是一个源程序
(C)经过编译即可执行(D)经过编译解释才能执行
55
以下叙述中正确的是
(A)C语言的源程序不必通过编译就可以直接运行(B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C)C源程序经编译形成的二进制代码可以直接运行(D)C语言中的函数不可以单独进行编译
56
以下关于if语句的错误描述是
(A)条件表达式可以是任意的表达式(B)条件表达式只能是关系表达式或逻辑表达式
(C)条件表达式的括号不能省(D)与else配对的if语句是其之前最近的未配对的if语句
57
若变量x、y、z被定义为float型,通过语句scanf("
%f%f%f"
&
x,&
y,&
z);
给x输入15.0,给y输入25.0,给z输入35.0,下列输入形式不正确的是
(A)152535(B)152535
(C)15.025.035.0(D)15.0,25.0,35.0
58
若变量x、y被定义为float型,通过语句scanf("
x=%f,y=%f"
y);
给x输入1.23,给y输入1.26,下列输入形式正确的是
(A)x=1.23,y=1.26(B)1.23,1.26
(C)1.231.26(D)x=1.23y=1.26
59
若变量a、b、c被定义为int型,从键盘给他们输入数据,正确的输入语句是
(A)scanf("
%d%d%d"
a,&
b,&
c);
(B)scanf("
a,b,c);
(C)scanf("
(D)inputa,b,c;
60
若定义floata;
,要从键盘给a输入数据,其整数位为3位,小数位为2位,则选用
%f"
a);
a);
%6.2f"
(D)scanf("
61对于以下程序代码段,叙述正确的是
charc1='
D'
c2='
d'
;
printf("
%c\n"
(c1,c2));
(A)缺少一个格式说明符,编译出错(B)程序运行时产生出错信息
(C)程序输出大写字母D(D)程序输出小写字母d
62
下面程序代码段输出的结果是
intx=2,y=5;
%f\n"
(float)(x/y));
(A)0.000000(B)0
(C)0.40000(D)0.4
63
当输入数据形式为“25,13,10”时,下面程序代码段输出的结果是
inta,b,c;
scanf("
a+b+c=%d\n"
a+b+c);
(A)a+b+c=48(B)a+b+c=35
(C)a+c=48(D)随机数
64
以下说法正确的是
(A)输入项可以为一个实型常量,如scanf("
3.5);
(B)只有格式控制,没有输入项,也能进行正确输入,如scanf("
a=%d,b=%d"
);
(C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("
%4.2f"
x);
(D)当输入数据时,必须指明变量的位置,如scanf("
65
putchar函数可以向终端输出一个
(A)整型变量表达式(B)实型变量值
(C)字符串(D)字符或字符变量值
66
已知ch是字符变量,下面正确的赋值语句是
(A)ch='
123'
(B)ch='
\xff'
(C)ch='
\08'
(D)ch='
\'
67
若有a=1,b=0,c=2,d=3,则条件表达式a<
b?
a:
c<
d?
c:
d的值是
68
如果从键盘输入数据23,下面程序代码段输出的结果是
intx;
%d"
if(x>
10)
{
printf("
x);
}
20)
30)
(A)23(B)2323
(C)232323(D)都不正确
69
下面程序代码段的输出结果是
inta=15,b=10,c=20,d;
d=a>
12?
b:
c;
switch(d)
case5:
%d,"
case10:
b);
case20:
c);
default:
#\n"
(A)15,10,20,#(B)10,20,#
(C)10,20(D)10
70
inta=2,b=3,c=1;
switch(c)
case0:
a++;
case1:
b++;
case2:
a=%d,b=%d\n"
a,b);
(A)a=3,b=5(B)a=3,b=4
(C)a=4,b=4(D)a=4,b=5
71关于为什么要学习C语言,以下描述错误的是
(A)C语言早就过时了,应该学习最流行的语言。
(B)通过对C语言的学习,可以培养工程推理和解决问题的能力。
(C)C语言是结构化程序设计语言,是面向对象程序设计的基础。
(D)非计算机专业同学学习C语言,可以培养使用计算机解决问题的思维和能力。
72
执行了以下程序段后x,w的值为
intx=0,y=1,z=2,w;
if(x++)
w=x;
elseif(x++&
y>
=1)
w=y;
z>
1)
w=z;
(A)0,1(B)1,1
(C)2,1(D)3,2
73
下列语句中,错误的是
(A)while(x=y)5;
(B)dox++while(x==10);
(C)while(0);
(D)do2;
while(a==b);
74
若有整型变量i,j,则以下程序段中内循环体“printf("
ok"
”的循环次数为
for(i=5;
i;
i--)
for(j=0;
j<
4;
j++)
{
}
(A)20(B)24
(C)25(D)30
75
假定a和b为int型变量,则执行以下语句后b的值为
a=1;
b=10;
do
b-=a;
}while(b--<
0);
(A)9(B)8
(C)-2(D)-1
76
循环语句“for(x=0,y=0;
(y!
=123))||(x<
4);
x++);
(A)无限次(B)不确定
(C)4次(D)3次
77
在C语言中,下列说法中正确的是
(A)不能使用“do语句while(条件);
”的循环(B)“do语句while(条件);
”的循环中,当条件为非0时结束循环
(C)“do语句while(条件);
”的循环中,当条件为0时结束循环(D)“do语句while(条件);
”的循环必须使用break语句退出循环
78
下述程序代码段输出的结果是
intk=11;
k=%d,k=%o,k=%x"
k,k,k);
(A)k=11,k=13,k=b(B)k=11,k=12,k=11
(C)k=11,k=13,k=13(D)k=11,k=013,k=0xb
79
以下程序段中,while循环的循环次数是
inti=0;
while(i<
if(i<
continue;
if(i==5)
break;
i++;
(A)死循环,无限次(B)1
(C)6(D)10
80
设x和y均为int型变量,则执行下面的循环后y的值为
for(y=1,x=1;
y<
=50;
y++)
if(x>
=10)
if(x%2==1)
x+=5;
x-=3;
(A)2(B)4
81设i,j,k均为整型变量,则执行如下语句后,k的值为
for(i=0,j=10;
i<
=j;
i++,j--)
k=i+j;
(A)8(B)9
(C)10(D)11
82
以下程序段的输出结果是2903
inta=0,i;
for(i=1;
5;
i++)
switch(i)
case3:
a+=2;
a+=3;
a+=5;
%d\n"
(A)31(B)13
(C)10(D)20
83
以下程序段的输出结果是
inti=0,a=0;
for(;
;
)
if(i%10==0)
else
i--;
i+=11;
a+=i;
(A)21(