1、C语言全部考试系统题库含答案目录目录 1单元练习题一 C语言基础知识 3一、 判断题 3二、 单项选择题 4三、 读程序选择题 7四、程序填空题 8五、编程题 10单元练习题二 C语言程序结构 10一、 判断题 10二、 单项选择题 11三、 读程序选择题 18四、 程序填空题 30五、 编程题 35单元练习题三 数组 36一、 判断题 36二、 单项选择题 37三、读程序选择题 39四、程序填空题 43五、编程题 49单元练习题四 函数 49一、 判断题 49二、 单项选择题 50三、读程序选择题 52四、程序填空题 60五、编程题 63单元练习题五 预处理 63一、 判断题 63二、 单项
2、选择题 64三、读程序选择题 64四、程序填空题 65五、编程题 65单元练习题六 指针 66一、 判断题 66二、 单项选择题 66三、读程序选择题 67四、程序填空题 74五、编程题 77单元练习题七 结构体与共用体 78一、 判断题 78二、 单项选择题 78三、读程序选择题 79四、程序填空题 83五、编程题 83单元练习题八 文件 84一、 判断题 84二、 单项选择题 84三、读程序选择题 84四、程序填空题 85五、编程题 87第一章 C语言基础知识(C语言概述、算法、数据类型 运算符 表达式、位运算)一、 判断题(正确的填A,错误的填B)R1在C语言中,逗号运算符的优先级最低。
3、(A)2在语言可执行程序的开始执行点是程序中第一个函数。(B)3“5ch”是合法的变量名。(B)4C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。(A)5 当输入数据时,必须指明变量的地址,如scanf(%f,&f) (A)N6表达式i+与+i在任何场合功能完全相同。(B) 7在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。(A)R8.C语言程序中,语句以逗号结尾。( B )9.在 C 程序中,APH 和aph 代表不同的变量。( A )10. a-=7等价于a=a-7。( A )N11. printf函数中用到格式符%5s ,其中数字5表示输出
4、的字符串占用5列。如果字符串长度大于5,则输出按原字符长从左向右全部输出。(A )12.如果xy为真或ay)&(ab)就为真。( B )13.C语言程序的变量必须先定义再使用。( A )14.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。( B )15.程序的执行总是从main函数开始,在程序的最后一个函数中结束。(B )16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。(A)17. 运算符优先顺序:赋值运算符逻辑运算符关系运算符算术运算符(B)18.对应float类型的变量,也可以用等号“=”进行数值的判断。(B)19.表达式:1 & 3
5、.14 和 1 & 3 的值一样大。(B)20. 为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。(A)21、任何C程序都是从main函数开始和结束;(A)22. 在C程序中,使用分号“;”表示语句的结束。(A )23. C程序中的必须要有至少一个main的函数,可以有多个。( B )24. 在C程序中,无论是整数还是实数,都能准确无误的表示。( B )25. 在C程序中,赋值运算符的优先级最低。(B )26. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。( B )27. 在C程序中,变量可以一边定义一边使用。( B )28. C程序中的注释部分可有可
6、无,可以省略。( A)29.字符型变量可以存放多个字符。( B )30.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。( B )5.在C程序中,无论是整数还是实数,都能被准确无误地表示。(B )1.一个C程序的执行是从本程序的main函数开始,到main函数结束。(A)3.()4.运算符优先顺序:赋值运算符逻辑运算符关系运算符=y)&(y=z) B) (x=y)AND(y=z) C) (x=y=z) D) (x=y)&(y=z)13.不合法的八进制数是_ A) 0 B) 028 C) 077 D)0114、以下不能定义为用户标识符是 A Main B _0 C _int D size
7、of15.若x=5,y=4 则y*=x+5; y的值为( )。A. 40 B. 20 C B. 15 D. 3016、组成C语言程序的基本单位是()。A) 过程 B) 子程序C) 函数 D) 主程序和子程序17下列哪个标识符是C语言合法的标识符()。A) a*bB) -xyzC) ba2D) 5iN18若有定义:inta=7; floatx=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)/4的值是()。A) 2.75 B) 3.5C) 2.5 D) 019.设int m=1,n=2;则+m= =n的结果是( )A、0 B、1 C、2 D、3 N20. 若变量已定义并赋值,下列
8、符合C语法的表达式是:( )A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+bR(3)在C程序中,设一表达式中包含有int,long, unsigned和char类型的变量和数据,则表达式最后的运算结果类型是( )A.int B.char C.unsigned D.longR21C语言中基本的数据类型包括_。 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型 N22. 若定义x和y为double类型,则表达式:x=2,y=x+5/2的值是_ A) 4 B) 4.5 C) 4.0 D) 3.023
9、. 在以下运算符中,优先级最高的运算符是_ A) ? : B) + C) & D) +=24.C语言中基本的数据类型不包括_。 A) 整型 B)字符串型 C)字符型 D)实型25. 若定义int x=7,y=5,z;则表达式:z=x+5/2*y的值是_ A) 7 B) 7.5 C) 17 D) 19.56.以下说法中正确的是( )A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分(1)设int a=2,b;则执行b=a&1;语句后,b的结
10、果是( )A.0 B.1 C.2 D.3N(2)逗号表达式(a=3*5,a*4),a+15的值是( )A.15 B.60 C.30 D.757. 若已经定义了一个字符型变量为a,下面哪个表达式的含义跟其余表达式不同: A) a!=0 B) a!=0 C) a D) !a8. 在以下运算符中,优先级最高的运算符是_ A) , B) C) & D) +=9. 在C语言中,逻辑值“真”用_表示。A) true B) 大于0的数C) 非0的整数D) 非0的数10. 表达式_是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式A) (c=1)|(c=3)|(c=5) B) (
11、c!=1)&(c!=3)&(c!=5)C) (c=1)&(c=3)&(c=5) D) (c=1)|(c=3)|(c=5) 1.C语言中,int类型数据占2个字节,则long类型数据占( )A、1个字节 B、2 个字节 C、3个字节 D、4个字节1.下列字符串是合法的标识符的是( )。A、_HJ B、9_student C、 long D、LINE 12.下列说法中正确的是( )。A、 C程序书写时,不区分大小写字母B、 C程序书写时,一行只能写一个语句C、 C 程序书写时,一个语句可分成几行书写D、 C程序书写时每行必须有行号3.在C语言中,要求参加运算的数必须是整数的运算符是( )。A、/
12、B、! C、% D、= =4.C语言中,逻辑“真“等价于( )。A、大于零的数 B、大于零的整数C、非零的数 D、非零的整数6.假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/abc的表达式是( )。A、1/a*b*c B、1/(a*b*c)C、1/a/b/(float) c D、1.0/a/b/c1.下列合法的字符常量是( )。A、084 B、x43 C、ab D、0 2.在C语言提供的合法的关键字是( )A、switch B、cher C、Case D、sturct 3.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 A、 2
13、B、 1 C、 2.0 D、2.5三、 程序填空题 1以下程序不用第三个变量实现两个数对调的操作。 #includ “stdio.h” main() int a,b; scanf(%d,%d,&a,&b); a=;(三个字符) b=;(三个字符) a= a-b; printf(%d,%d,a,b);2、选择程序的运行结果 。 main ( ) int x=1, y=2, z, a, b, c, d; z = +x|+y; printf(x=%dn, x); printf(y=%dn, y); /*输出结果(三个字符) */ a=-1; b=-2; c=+a&b+; printf(b=%dn,
14、b); /*输出结果 (三个字符)*/ 3以下程序的结果为_main() unsigned int a=3, b=10; printf(%dn,a1); /*输出结果 */ printf(%dn,a1); /*输出结果 */4 若x=3,y=z=4,则下列表达式的值是。(1) (z=y=x)? 1:0 /*值为 */(2) z=y&y=x /*值为 */5已知float x=4.3,int y;执行语句y=(int)x后,x为型(填写小写英文字母),且y=(填写阿拉伯数字);6表达式c&d的值为(填写阿拉伯数字),c&d|!(3+4)的值为(填写阿拉伯数字)。7若x为int类型,则与逻辑表达式
15、“x”等价的表达式是, 与逻辑表达式“!x”等价的表达式是。8 表示“整数x的值大于5”时逻辑值为“真”的表达式是5,逻辑值为“假”的表达式是x9已知字母A的ASCII码为十进制数65,且设ch为字符型变量,则表达式ch=A-4+9的值为(一个字符常量);若定义:char c=72;则变量c中包含的字符个数为(数字)。10、C语言所提供的基本数据类型的整型类型包括:、整型、。(按每种类型所占字节数,从小到大排列)第二章 C语言程序结构(顺序程序设计、选择结构程序设计、循环控制)一、 判断题(正确的填A,错误的填B)1 do-while语句中的条件为非0时,就结束该循环。(B)2.在switch
16、-case语句中,不是每个case后都要使用break语句。( A )3.Break语句只能用于循环结构中。(B )48. 未给变量赋初值,只是运行结果不正确,不会有其他不良影响。(B)5、switch语句中,可以不使用break语句;(A)6、for语句中,三个表达式都可以省略;(A)7(7)在for循环中使用break语句的目的是使流程跳出循环体,终止当前循环(A)8. continue语句只能用于循环语句中。( A )9 while语句中的条件为0时,就结束该循环。(A)10.在循环体内使用break语句或continue语句的作用相同。(B)在C语言中,逻辑值“真”用 表示。11) 1
17、 12) 大于0的数13) 非0的整数14) 非0的数在循环语句的循环体中,continue语句的作用是()。15) 立即终止整个循环 16) 继续执行continue语句之后的循环体17) 结束本次循环 18) 结束本次循环并跳出循环语句while(!e);中,条件!e等价于( )19.e=0 20 .e!=0 21.e!=1 22.e=1设int c=5和int a; a=2+(c+=c+,c+8,+c), 则a=_23) 15 24) 14 25) 13 26) 16若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为if ( ) 27) a0 28) !a 29)
18、a=0 30) a二、 单项选择题N1、以下不是死循环的语句是_。for( ; ; x+i );while (1) x+;for( i=10; ; i- -) sum+= i ;for( ; (c=getchar() != n ; ) printf(“%c” , c) ;2设有程序段int k = 10 ; while ( k = 0 ) k = k - 1 ; 以下描述正确的是 ( )。A. 循环体语句一次也不执行。 B. 循环是无限循环。C. while 循环语句执行十次。 D. 循环体语句执行一次。3对下述程序,正确的判断是( )。main( ) int a,b;scanf (%d,%d
19、,&a,&b);if(ab)a=b; b=a;else a+; b+;printf(%d,%d,a,b); A. 有语法错误不能通过编译 B. 若输入4,5则输出5,6C. 若输入5,4则输出4,5 D. 若输入5,4则输出5,5R4 以下程序main() int i=010,j=10,k=0x10; printf(%d,%d,%dn,i,j,k);有语法错误不能通过编译输出结果是( )A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16R5. 若变量已正确说明为int类型,要给a,b,c输入数据,以下语句正确的是_A) read(a,b,c); B) scanf
20、(“%d%d%d”,a,b,c);C) scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c); R6.已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为_。 main() char x,y; x=0;y=9; pirntf(“%d,%dn”,x,y); A)因输出格式不合法,输出错误信息 B)48,57 C)0,9 D)48,587. 语句 for(k=0;k=y=z,应使用C语言表达式_。A)(y=z) B)(x=y)AND(y=z)C)(x=y=z) D)(x=y)&(y=z)6. 若变量已正确定义,语句“if(ab)
21、k=0; else k=1;”和_等价。A、k=(ab)?1:0; B、k=ab;C、k=a=b; D、a=b ? 0 : 1;9.以下程序的输出结果是_ void main() int a = 2,b = 5; printf(“a=%d,b=%d”,a,b); A) a=%2,b=%5 B) a=2,b=5C) a=%d,b=%d D) a=%d,b=%dN10.以下程序的输出结果是_ void main() int x=10,y=10; printf(“%d %dn”,x-,-y); A) 10 10 B) 9 9 C) 9 10 D) 10 911.若要表示if( a不等于0 )这一关系
22、式,则能正确表示这一关系的表达式为 if (_) A) a0 B) !a C) a=0 D) aR12对于循环语句while(1);下面( )是正确的 A、死循环 B、循环一次 C、不进入循环体 D、编译有错13.下面程序的输出是(假设 int 数据是 2 个字节) void main() int a = 32768; printf(“a=%dn”,a); A) a=32768 B) a=32767 C) a=-32768 D) a=-114.表达式_是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式A) (c=1)|(c=3)|(c=5) B) (c!=1)&(
23、c!=3)&(c!=5) C) (c=1)&(c=3)&(c=5) D) (c=1)|(c=3)|(c=5) N15. 以下程序段的输出结果是_ int x=3; do printf(%3d,x-=2; while (!(-x);A) 1 B) 3 0C) 1 -2 D) 死循环16、数字字符0的ASCII值为48,若有以下程序 main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a); 程序运行后的输出结果是 A 3,2 B 50,2 C 2,2 D 2,5017、有以下程序 main() int a,b,d=25; a = d/10 & (-1); b = a & (-1); printf(%d,%dn,a,b); 程序运行后的输出结果是 A 6,1 B 2,1 C 6,0 D 2,018若定义floata;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用()。A)scanf(%f,&a); B) scanf(%5.2f,a);C) scanf(%6.2f,&a); D) scanf(%f,a);19若定义inti; 则以下循环语句的循环执行次数是()。for(i=2; i=0;)printf(%d, i-);A) 无限次 B) 0次C) 1次 D) 2次20下面程序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1