您的当前位置:首页正文

C语言试题库(完整版)

2021-01-29 来源:好走旅游网


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);

因篇幅问题不能全部显示,请点此查看更多更全内容