当前位置:文档之家› C语言试题库(完整版).docx

C语言试题库(完整版).docx

C语言试题库一、单项选择第一章 C 语言概述( 1)一个 C 程序的执行是从A、本程序的MAIN 函数开始,到MAIN 函数结束。

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C、本程序的MAIN 函数开始,到本程序的最后一个函数结束。

D、本程序文件的第一个函数开始,到本程序的MAIN 函数结束。

( 2)以下叙述正确的是A、在 C 程序中, MAIN 函数必须位于程序的最前面。

B、 C 程序的每行中只能写一条语句。

C、 C 语言本身没有输入输出语句。

D、在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误。

( 3) C 语言规定,在一个源程序中,MAIN 主函数的位置是在:A、必须在最前面。

B、必须在系统调用的库函数的后面C、可以在任意位置。

D、必须在最后面( 4)一个 C 程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成( 5)以下叙述不正确的是:A、一个 C 源程序可由一个或多个函数组成B、一个 C 源程序必须包含一个MAIN 函数C、 C 程序的基本组成单位是函数D、在 C 程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式( 1)若 x, i, j, k都是int型变量,则计算下面表达式后,x 的值为x=( i =4 , j=16 , k =32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、 define , IF, typeB、getc, char, printfC、include, scanf,case E 、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P _0, doB、 float,1a0, _AC、 b-a, goto, intD、_123, temp, INT(4)若有代数式3 ae/bc ,则正确的C语言表达式是A、 a/b/c*e*3B、 3*a*e/bcC、 3*a*e/b*cD、 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 型,以下合法的 scanf 函数调用语句是A、 scanf( “%d%lx,%le ”,&x,&y,&z);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=48B、 x+y+z=35C、 x+z=35D、不确定值(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,1B、2,1C、6,0D、2,0( 3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *n”); 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)4B)5C)6D)7( 5)为了避免在嵌套的条件语句中if-else中产生二义性, c 语言规定:else子句总是与相配对。

A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if第五章循环控制(1)设有程序段int k=10while (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) 2B)3C)4D)有语法错( 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]可得到初值0B)此说明语句不正确C)数组 a 中各元素都可得到初值,但其值不一定为0D)数组 a 中每个元素均可得到初值0( 4)下面程序___(每行程序前面的数字表示行号)。

1main()2{3float a[10]={0};4int i5for(i=0;i<3;i++) scanf(“%d” ,&a[i]; 6for(i=1;i<10;i++) a[0]=a[0]+a{i};7printf(“%f n”,a[0]);8}A)没有错误B)第 3 行有错误C)第 5 行有错误D)第 7 行有错误( 5)若二维数组 a 有 m 列,则计算机一元素a[i][j]在数组中位置的公式为____。

(假设a[0][0]位于数组的第一个位置上。

)A) i*m+jB) j*m+iC) i*m+j-1D) 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;returnz;}(3) C 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C 语言允许函数值型缺省定义,此时该函数值隐含的类型是。

A)float型B)int型C)long 型D)double 型(5) 下面函数调用语句含有实参的个数为。

func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)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=9B)sum=10C)sum=12D)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);。

相关主题