c语言题库1

发布时间 : 星期二 文章c语言题库1更新完毕开始阅读

一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分)

A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分

2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)

A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是 (B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0

4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型

C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分) A、 10>=a>=0 B、 a>=0 and a<=10 C、 a>=0||a<=10 D、 a>=0&&a<=10

6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)

A、 INPUT x、y、z; B、 scanf(\ C、 scanf(\ D、 read(\

8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分) A、 把x和y按从大到小排列 B、 把x和y按从小到大排列 C、 无确定结果 D、 交换x和y中的值

9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分) A、 0 B、 0.5 C、 1 D、 2

10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。 (2分) A、A B、a C、Z D、z

11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d %d %d\\n”,k,a,b);后的输出结果是( D ) 。 (2分)

A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4

12、设 int x=1, y=1; 表达式(!x||y--)的值是( B )。(2分) A、0 B、1 C、2 D、-1

13、程序段 int x=3; do { printf(“%d”,x-=2); } while (!(--x));的输出结果是( C )。(2分)

1

A、1 B、3 0 C、1 -2 D、死循环

14、程序段for (i=2; i==0; ) printf(“%d” , i--) ;的循环次数是( B )。(2分) A、无限次 B、0次 C、1次 D、2次

15、语句int k=1; while (k++<10);执行后,变量k的值是( B )。(2分) A、10 B、11 C、9 D、无限循环,值不定

16、程序 int i,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\\n”,sum); 的执行结果是( C )。(2分)

A、6 B、3 C、不确定 D、0

17、以下对二维整形数组a的正确说明是( C)。(2分) A、int a[3][]; B、float a(3,4); C、double a[1][4]; D、float a(3)(4)

18、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是(B )。 (2分) A、s+1 B、s++ C、&s[0]+1 D、&s[1]

19、对两个字符数组a和b进行初始化char a[ ]=\ char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是(D ) 。 (2分)

A、a与b数组完全相同 B、a与b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长

20、有说明:char *language[]={\VA\则表达式*language[1]>*language[2]比较的是( A )

A、字符B和字符P B、字符串FORTRAN和字符串BASIC C、字符F和字符B D、字符串BASIC和字符串PASCAL 21、C语言程序由函数组成,它的( B)。(2分)

A、主函数必须在其它函数之前,函数内可以嵌套定义函数 B、主函数可以在其它函数之后,函数内不可以嵌套定义函数

C、主函数必须在其它函数之前,函数内不可以嵌套定义函数 D、主函数必须在其它函数之后,函数内可以嵌套定义函数

22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( D )。(2分) A、extern B、registerC、auto D、static

23、已知:int a[]={1,2,3,4,5,6},*p=a;则值为3的表达式是 ( A )。 .(2分) A、p+=2,*(p++) B、p+=2,*++p C、p+=3,*p++ D、p+=2,++*p

24、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是(D )(2分) A、struct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。 C、stutype是用户定义的结构体变量名。 D、a和b都是结构体变量。 25、下列关于文件指针的描述中,错误的是(D )(2分)

A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。 26、以下叙述中正确的是(B)(2分)

A、C语言的源程序不必通过编译就可以直接运行

B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行

2

D、C语言中的函数不可以单独进行编译 27、以下叙述中正确的是 (C)(2分)

A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出 28、C语言中, 下列字符常量合法的是(A)(2分) A、'\\t' B、\ C、65 D、A

29、下列关于赋值运算符的表述中,错误的是(B)(2分) A、赋值运算符优先级高于逗号运算符

B、赋值运算符的结合性是从左至右 C、赋值运算符是双目运算符 D、赋值运算符可在表达式中连用

30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000 31、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default

32、设x,y为浮点型变量,合法赋值语句是(A)(2分) A、x=8+y; B、(float)3 ; C、y=(x%2)/10 ; D、*x=10; 33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分) A、 ch='\\'; B、 ch=62+3; C、 ch=' '; D、 ch='\\xaa';

34、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分) A、scanf(\

B、scanf(\、scanf(\ D、scanf(\

35、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与( B )配对。 (2分)

A、缩排位置相同的ifB、其之前最近的if C、其之后最近的if D、同一行上的if

36、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是( C)。(2分)

A、 (x>=1)&&(x<=100)&&(x>=200)&&(x<=300)

B、 (x>=1)||(x<=100)||(x>=200)||(x<=300) C、 (x>=1)&&(x<=100)||(x>=200)&&(x<=300) D、 (x>=1)||(x<=100)&&(x>=200)||(x<=300) 37、若

w,x,y,z,m

均为

int

型变量,则执行语句

w=1;x=2;y=3;z=4;

m=(w

B、do-while语句构成的循环必须用break语句才能退出

C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环 D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环

39、设j为int型变量,则for(j=10;j>3;j--) {if (j%3) j--; --j;--j;printf(“%d ”,j); }的执行结果是( A )。 (2分

A、7 4B、4 7 C、5 6D、1 3

3

40、以下描述正确的是( C )。(2分)

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。 C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 41、以下正确的定义语句是( D )。(2分) A、int a[1][4]={1,2,3,4,5};

B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0};

42、下面描述正确的是( D )。 (2分)

A、字符串所包含的字符个数相同时,才能比较字符串

B、字符个数多的字符串比字符个数少的字符串大 C、字符串\ \与\相等 D、字符串“That”小于字符串\

43、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分) A、整型常量

B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式

44、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( B )。(2分) A、2B、3 C、4D、无确定值

45、已知int f(int);和int g(int);是函数f 和g 的原形。下列语句中,将函数f作为函数参数的有( A )。 (2分)

A、f(3); B、p=f(3); C、g(f(3)); D、f(g(3)); 46、函数调用结束后,形式参数(C )。(2分)

A、继续占用相同大小的内存B、占用的内存减小 C、释放内存 D、不确定 47、已知:int a,*p=&a;则下列函数调用中错误的是( D )。(2分) Ascanf(\、scanf(\、printf(\ D、printf(\48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分) A、1,0 B、1,1 C、0,1D、0,0

49、语句“fseek(fp,100L,2);”的功能是(B )(2分)

A、将fp所指向文件的位置指针移至距文件首100个字节。 B、将fp所指向文件的位置指针移至距文件尾100个字节。

C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。 D、将fp所指向文件的位置指针移至距当前位置 指针的文件尾方向100个字节。 50、以下叙述错误的是(D)(2分)

A、一个C程序总是从main函数开始执行的;

B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上; C、每个语句和数据定义的最后必须有一个分号; D、C语言本身有输入输出语句。

51、若有以下类型说明语句:char w; int x; float y; double z;则表达式 w*x+z-y 的结果类型是(D)(2分)

A、float B、char C、int D、double 52、下面不正确的字符串常量是(A)(2分)

4

联系合同范文客服:xxxxx#qq.com(#替换为@)