C语言试题库
一、 单项选择 第一章 C 语言概述
( 1) 一个 C程序的执行是从
A、本程序的 MAIN函数开始,到 MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的 MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的 ( 2) 以下叙述正确的是
A、 在 C程序中, MAIN函数必须位于程序的最前面。 B、 C 程序的每行中只能写一条语句。 C、 C 语言本身没有输入输出语句。
D、 在对一个 C程序进行编译的过程中,可发现注释中的拼写错误。 ( 3) C 语言规定,在一个源程序中, MAIN主函数的位置是在: A、 必须在最前面。
B、 必须在系统调用的库函数的后面
C、 可以在任意位置。
MAIN函数结束。
D、 必须在最后面
( 4) 一个 C程序是由:
A、 一个主程序和若干子程序组成 B、 函数组成 C、 若干过程组成 D、 若干子程序组成
( 5) 以下叙述不正确的是:
A、 一个 C源程序可由一个或多个函数组成 B、 一个 C源程序必须包含一个 MAIN函数 C、 C 程序的基本组成单位是函数
D、 在 C程序中,注释说明只能位于一条语句的后面 第二章 数据类型、运算符与表达式 ( 1) 若 x, i, j, k
都是 int 型变量,则计算下面表达式后,x=( i =4 , j =16 , k =32)
A、4 B、16
C、32
x 的值为
D、52
( 2) 下列四组选项中,均不是C语言键字的选项是
A、 define , IF, type B、getc, char, printf
C、include, scanf,
case E、 if, struct, type
( 3) 下面四个选项中,均是不合法的用户标识符的选项是A、A,P _0, do
B、 float,1a0, _A
C、 b-a, goto, int
D、_123, temp, INT
( 4) 若有代数式3 ae/bc ,则正确的C语言表达式是A、 a/b/c*e*3
B、 3*a*e/bc
C、 3*a*e/b*c
D、 a*e/c/b*3
( 5) 已知各变量的类型说明如下:
int k, a, b;
unsinged long w=5; double x=1.42;
则以下不符合C语言语法的表达式是 A、 x%(-3)
B、 w+=-2;
C、 k=(a=2,b=3,a+b)
D、 a+=a-=(b=4)*(a=3)
第三章 简单 C程序设计
(1) putchar 函数可以向终端输出一个
A、整型变量表达式值
B、实型变量值
C、字符串
D、字符或字符型变量值
(2)若 x,y 均定义为 int 型, z 定义为 double 型,以下合法的语句是
A、 scanf( “%d%lx,%le”,&x,&y,&z) ;
scanf 函数调用
B、 scanf( “%2d*%d%lf”,&x,&y,&z);
C、 scanf( “%x%*d%o”,&x,&y,&z);
D、 scanf( “%x%o%6.2f”,&x,&y,&z);
(3) 当输入数据的形式为:25,13,10
<回车 >时,以下程序的输出结果
为
main() {int x,y,z;
scanf( “%d%d%d”,&x,&y,&z); printf( “x+y+z=%d n”,x+y+z); }
A、 x+y+z=48 B、 x+y+z=35
C、 x+z=35
D、不确定值
(4) 以下能正确的定义整型变量 a,b 和 c,并对它们赋初值为5的语句
是
A、 int a=b=c=5;
B、 int a, b, c=5;
C、 a=5, b=5, c=5;
D、 a=b=c=5;
(5) 若有以下定义,则正确的赋值语句是 int a,b;
float x;
A、 a=1, b=2; B、 b++;
C、 a=b=5;
D、 b=int(x);
第四章 选择结构程序设计
( 1)能正确表示“当 x 的值在 [1 , 10] 和[200 ,210] 的范围为真,否则为假”的表达式是
A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)
B、(x>=1) ││ (x<=10) ││ (x.>=200) ││ (x<=210) C、(x>=1) &&(x<=10) ││ (x.>=200) &&(x<=210) D、(x>=1) ││ (x<=10)&& (x.>=200) ││ (x<=210) ( 2)以下程序的运行结果是 #include “stdio.h ”
main()
{int a,b,d=241; a=d/100%9; b=(-1)&&(-1);
printf( “%d,%d”,a,b); }
A、6,1 B、2,1 C、6,0 D、2,0
( 3)请阅读以下程序: main() {int
a=5 , b=0 , c=0;
“* * *
n”);
if (a+b+c) printf( else }
以上程序
。
printf( “$ $ $ n”);
A) 有语法错误不能通过编译
B) 可以通过编译但不能直接通过连接 C)输出*** D)输出$$$
( 4)以下程序的运行结果是
。
main() {int m=5;
if(m++>5)printf(
“
%d n”,m);
else
printf( “%d n”,m—— );
}
A) 4 B) 5
C) 6 D) 7
( 5) 为了避免在嵌套的条件语句中
if-else else
子句总是
与
对。
c 语言规定:
相配
中产生二义性,
A)缩排位置相同的 if B)其之前最近的 if C)其之后最近的 if D)同一行上的 if 第五章 循环控制 (1) 设有程序段 int k=10 while (k=0)
k=k-1
则下面描叙正确的是 。A) while (k=0)
k=k-1;
B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 ( 2)下面程序段的运行结果是
int n=0;
while(n++<=2); printf(
“%d”,n);
A) 2
。
B) 3 C) 4 D) 有语法错
( 3) C 语言中 while 和 do-while 循环的主要区别是
A) do-while 的循环体至少无条件执行一次
B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内 D) do-while 允许从外部转到循环体内 (4) 以下能正确计算 1*2*3* ⋯*10 的程序段是
A) do {i=1;s=1; s=s*i;
i++;
}while(I<=10);
B) do {i=1;s=0; s=s*i;
i++;
}while(I<=10);
。
。
C) i=1;s=1;
do {s=s*i;
i++; }while(I<
=10);
D) i=1;s=0;
do {s=s*i;
i++; }while(I<
=10);
第六章 数组
( 1)在 c 语言中,引用数组元素时,其数组下标的数据类型允许是___
_。
A) 整型常量 B) 整型表达式
C) 整型常量或整型表达式 D) 任何类型的表达式
( 2)以下能对二维数组 a 进行正确初始化的语句是____。
A) int a[2][ ]={{1,0,1},{5,2,3,}};
B) int a[ ][3]={{1,2,3},{4,5,6}}; C) int a[2][4]={1,2,3,},{4,5},{6}}; D) int a[ ][3]={{1,0,1},{},{1,1}}; ( 3)若有说明: int a[3][4]={0}; A) 只有元素 a[0][0] B) 此说明语句不正确
C) 数组 a 中各元素都可得到初值,但其值不一定为 D) 数组 a 中每个元素均可得到初值 0
( 4)下面程序___(每行程序前面的数字表示行号)。 1 2 3 4 5 6 7
8
0
)
则下面正确的叙述是____。
可得到初值 0
main() {
float a[10]={0}; int i
for(i=0;i<3;i++) scanf(
“%d”,&a[i];
for(i=1;i<10;i++) a[0]=a[0]+a{i}; printf( “%f n”,a[0]);
}
A) 没有错误 B) 第 3 行有错误 C) 第 5 行有错误 D) 第 7 行有错误
( 5)若二维数组 a 有 m列,则计算机一元素 a[i][j]
____。(假设 a[0][0] 位于数组的第一个位置上。)
A) i*m+j B) j*m+i C) i*m+j-1 D) i*m+j+1 第七章 函数
( 1)以下正确的函数定义形式是
。A)double fun(int x,int y) C) double fun(int x;int y) D) double fun(int x,int y) E) double fun(int x,y); (2) 以下正确的函数形式是
。
在数组中位置的公式为
A) double fun(int x,int y) {z=x+y; return z;} B) fun(int x,y) {int z; return z;} C) fun(x,y)
{int x,y; double z; z=x+y;return z;}
D) double fun(int x,int y) {double z; z=x+y;return z;}
(3) C 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A) 地址传递 B) 单向值传递
C)由实参传给形参,再由形参传回给实参
D)传递方式
(4)C 语言允许函数值型缺省定义,此时该函数值隐含的类型
。
A)float 型
B)int 型 C)long 型 D)double 型
(5) 下面函数调用语句含有实参的个数为 func((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5
第八章 编译预处理命令 ( 1)请读程序 :
#define ADD(x) x+x
main()
{
是
。
int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf(
“sum=%d”,sum);
}
上面程序的运行结果是
A) sum=9 B) sum=10 C) sum=12 D) sum=18
(2) 以下程序的运行结果是 #define MIN(x,y) (x)<(y)? (x)+(y)main()
{int I=10,j=15,k;
k=10*MIN(I,j);
printf( “%d n”,k);
。
。
因篇幅问题不能全部显示,请点此查看更多更全内容