资源描述
一、单项选择题(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=0|a=0&a=A&ch=Z)?(ch+32):ch的值是( B )。 (2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(+a0)&!(b-=0);printf(“%d %d %dn”,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分) 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*language2比较的是( 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源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译27、以下叙述中正确的是 (C)(2分) A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出28、C语言中, 下列字符常量合法的是(A)(2分) A、t B、A C、65 D、A29、下列关于赋值运算符的表述中,错误的是(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.00000031、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default32、设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(%2d%2d%2d,&i,&j,&k); B、scanf(%d %d %d,&i,&j,&k); C、scanf(%d,%d,%d,&i,&j,&k); D、scanf(i=%d,j=%d,k=%d,&i,&j,&k);35、为了避免在嵌套的条件语句ifelse中产生二义性,c语言规定:else子句总是与( B )配对。 (2分) A、缩排位置相同的ifB、其之前最近的if C、其之后最近的if D、同一行上的if36、能正确表示“当x的取值在1,100和200,300范围内为真,否则为假”的表达式是( C)。(2分) A、 (x=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=300)37、若w,x,y,z,m均为int型变量,则执行语句w=1;x=2;y=3;z=4; m=(wy)?w:x;m=(my)?m:y;m=(m3;j-) if (j%3) j-; -j;-j;printf(“%d ”,j); 的执行结果是( A )。 (2分A、7 4B、4 7 C、5 6D、1 340、以下描述正确的是( C )。(2分) A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。 C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while41、以下正确的定义语句是( D )。(2分) A、int a14=1,2,3,4,5; B、float x3=1,2,3; C、long b23=1,1,2,1,2,3; D、double y3=0;42、下面描述正确的是( D )。 (2分) A、字符串所包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串stop 与stop相等 D、字符串“That”小于字符串The43、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式44、若有说明:int a3=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(%d,&a B、scanf(%d,p); C、printf(%d,a); D、printf(%d,p);48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分) A、1,0 B、1,1 C、0,1D、0,049、语句“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、double52、下面不正确的字符串常量是(A)(2分) A、 abc B、 1212 C、 0 D、 53、已知各变量的类型说明如下:int k,a,b=1; unsigned long w=5;则以下不符合C语言语法的表达式是(A)(2分) A、 k=b+2=w B、 w+= -2 C、 k=(a=2,b=3,a+b) D、 a+=a-=(b=4)*(a=3)54、执行下列语句int x=10,y=3;printf(%dn,y=x/y);后的输出是(C)(2分) A、 0 B、 1 C、 3 D、 不确定的值55、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%dn”,a, b, c); 其输出结果是(B)(2分) A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-1056、已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分) A、scanf(%2d%2d%2d,&i,&j,&k); B、scanf(%d %d %d,&i,&j,&k); C、scanf(%d,%d,%d,&i,&j,&k); D、scanf(i=%d,j=%d,k=%d,&i,&j,&k);57、以下错误的if语句是( C )。(2分) A、 if(xy) z=x; B、 if(x=y) z=0; C、 if(x!=y) printf(%d,x) else printf(%d,y); D、 if(xy) x+;y-;58、条件运算符的结合方向是( A )。(2分) A、自右至左; B、自左至右; C、任意; D、前后顺序;59、对于程序段int x=-1; do x=x*x; while(!x);说法正确的是( C )。(2分) A、是死循环 B、循环执行两次 C、循环执行一次 D、有语法错误60、t为int类型,进人下面的循环之前,t的值为0,则对于while( t=l ) 叙述中正确的是( B )。 (2分) A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对61、执行语句x=y=0; while (x=1) | (x=1 | x=1 & x=1) & (x=0)78、若a=-14,b=3,则条件表达式 ab) & (n=cd)后n的值为( B ) 。(2分) A、1B、2 C、3D、480、对for(表达式1; ;表达式3)可以理解为( B )。(2分) A、for(表达式1;0;表达式3) B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3)81、若I为整型变量,则for(I=2;I=1) printf(“%d”,I-);的循环执行次数是( B )。(2分) A、无限次B、0次 C、1次D、2次82、程序 int i,sum; for(i=1;ib)B、if (strcmp(a,b) C、if (strcmp(b,a)0)D、if (strcmp(a,b)0)86、若已定义char s240=china,English;则在下面表达式中能表示字符E的地址的是( B )。 (2分) A、&s21 B、s1 C、&s1D、&(s1+1) 87、关于局部变量,下列说法正确的是 ( D )。(2分) A、 定义该变量的程序文件中的函数都可以访问。 B、 定义该变量的函数中的定义处以下的任何语句都可以访问。 C、 定义该变量的复合语句的定义处以下的任何语句都可以访问。 D、 局部变量可用于函数之间传递数据。88、程序char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(“%d”,*-p);的输出结果是( C )。(2分) A、非法 B、a4的地址 C、5 D、389、C语言结构体类型变量在程序执行期间(A)(2分) A、所有成员一直驻留在内存中。 B、只有一个成员驻留在内存中。 C、部分成员驻留在内存中。 D、没有成员驻留在内存中。90、下列正确定义一个文件指针pm的语句是(C )(2分) A、FILE pm;B、file *pm; C、FILE *pm;D、file pm;91、以下叙述中正确的是(B)(2分) A、C语言的源程序不必通过编译就可以直接运行 B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译92、结构化程序由三种基本结构组成, 由这三种基本结构组成的算法(A)(2分) A、可以完成任何复杂的任务 B、只能完成部分复杂的任务 C、只能完成符合结构化的任务 D、只能完成一些简单的任务93、以下正确的叙述是(D)(2分) A、 在C程序中,每行中只能写一条语句 B、 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C、 在C程序中,无论是整数还是实数,都能被准确无误地表示 D、 在C程序中,%是只能用于整数运算的运算符94、以下叙述中正确的是( C)(2分) A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。 B、C程序由主函数组成 C、C程序由函数组成 D、C程序由函数和过程组成95、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为 (C)(2分) A、 4 B、 16 C、 32 D、 5296、能正确表示逻辑关系:“10=a=0”的C语言表达式是 ( D )(2分) A、 10=a=0 B、 a=0 and a=0|a=0&a=1097、执行以下程序段:int x = 496;printf(“*%-6d*n”, x);的输出是 (A)(2分) A、*496 * B、* 496* C、*000496* D、输出格式不合法98、执行下列语句int a;printf(%dn,(a=3*5,a*4,a+5);后,a的值是(B)(2分) A、 65 B、 20 C、 15 D、 1099、若有以下定义和语句:int u=010,v=0 x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是(A)(2分) A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,10100、以下关于运算符优先顺序的描述中正确的是( C )。(2分) A、关系运算符算术运算符赋值运算符逻辑与运算符 B、逻辑与运算符关系运算符算术运算符赋值运算符 C、赋值运算符逻辑与运算符关系运算符算术运算符 D、算术运算符关系运算符赋值运算符逻辑与运算符101、设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为( C )。(2分) A、不定值B、4 C、3 D、1103、程序段 int x=3; do printf(“%d”,x-=2); while (!(-x);的输出结果是( C )。(2分) A、1 B、3 0 C、1 -2D、死循环104、C语言中while和do-while循环的主要区别是( A )。(2分) A、dowhile的循环体至少无条件执行一次 B、while的循环控制条件比dowhile的循环控制条件严格 C、dowhile允许从外部转到循环体内 D、do-while的循环体不能是复合语句105、对于程序段 int k=0; while(k=1)k+; while 循环执行的次数是( A )。 (2分) A、无限次 B、有语法错,不能执行 C、一次也不执行 D、 执行1次106、若I为整型变量,则for(I=2;I=1) printf(“%d”,I-);的循环执行次数是( B )。(2分) A、无限次B、0次 C、1次D、2次107、以下正确的定义语句是(D )。(2分) A、int a14=1,2,3,4,5;B、float x3=1,2,3; C、long b23=1,1,2,1,2,3; D、double y3=0;108、若有char a80,b80;则正确的是( D )。 (2分) A、puts(a,b);B、printf(%s,%s,a ,b ); C、putchar(a,b); D、puts(a);puts(b);109、若已定义char s10;在下面表达式中不能表示s1的地址的是( B )。 (2分) A、s+1 B、s+ C、&s0+1 D、&s1110WEN、若有说明:int a34;则数组a中各元素( C )。(2分) A、可在程序的运行阶段得到初值0 B、可在程序的编译阶段得到初值0 C、不能得到确定的初值 D、可在程序的编译或运行阶段得到初值0111、函数调用语句fun(exp1,exp2), (exp3,exp4,exp5)中实参的个数是( B )。 (2分) A、1B、2 C、4D、5 112、有程序 char s=”ABCD”, *P; for(p=s+1; ps+4; p+) printf (“%s ”,p); 程序的输出结果是( D ) 。 (2分) A、ABCD BCD CD D B、A B C D C、B C D D、BCD CD D113、当说明一个共用体变量时系统分配给它的内存是(C )(2分) A、各成员所需内存量的总和。 B、第一个成员所需内存量。 C、成员中占内存量最大者所需的容量。 D、最后一个成员所需内存量。114、系统的标准输入文件是指是(A )(2分) A、键盘B、显示器 C、软盘D、硬盘115、下列运算符中,结合性为自左向右的是(B)(2分) A、?: B、, C、+=D、+116、以下选项中正确的实型常量是(B)(2分) A、0 B、3.1415 C、0.03x10 D、.32117、若变量c为char类型,能正确判断出c为小写字母的表达式是 (D)(2分) A、 a=c= a)|(c= z) C、 (a=c) D、 (c= a)&(c= z)118、若所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是(B)(2分) A、7 B、8 C、6D、2119、若执行以下语句:int a;float b,c;scanf(“%2d%3f%4f”, &a, &b, &c); printf(“na=%d,b=%f,c=%fn”,a, b, c);在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是(C)(2分) A、a=98,b=765,c=4321B、a=10,b=432,c=8765 C、a=98,b=765.000000,c=4321.000000 D、a=98,b=765.0,c=4321.0120、有以下语句 int m=0,n=0; char c=a; scanf(%d%c%d,&m,&c,&n); printf(%d,%c,%dn,m,c,n); 若从键盘上输入:10A10,则输出结果是(A)(2分) A、10,A,10 B、 10,a,10 C、 10,a,0 D、 10,A,0121、执行下列语句int x=10,y=10;printf(%d %dn,x-,-y); 后的输出是(D)(2分) A、10 10 B、9 9 C、9 10 D、10 9122、下列表达式中,( C )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。 A、x%2=0 B、!x%2!=0 C、(x/2*2-x)=0 D、!(x%2)123、已知:int n,i=1,j=2;执行语句n=ij?i+:j+;则i和j的值是( C )。 (2分) A、1,3 B、1,2 C、2,2 D、2,3 124、执行语句for(I=1;I+4; );后变量I的值是( C )。(2分) A、3 B、4 C、5 D、不定125、a和b为int型变量,则执行a=1;b=10;do b- =a;a+; while (b-=Y)&(Y=z) B、(x=Y)AND(y=z) C、(x=Y=z) D、(x=Y)&(Y=z) 147、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是(C)(2分) A、a=a+b, b=a-b, a=a-b; B、t=a; a=b; b=t; C、a=t; t=b; b=a;D、t=b; b=a; a=t;148以下语句char c=a;if(ac=z)printf(LOW);else printf(UP);执行后的结果为( A )。 A、LOW B、UP C、LOWUPD、语句错误,编译不能通过149、程序段 int a=1,b=2, c=3, t; while (abB、 D、:155、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%dn”,a, b, c); 其输出结果是(B)(2分) A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10156、程序段char a7=”abcdef”; char b4=”ABC”; strcpy(a,b); printf(“%c”,a5); 输出结果是( D )。(2分) A、一个空格 B、0 C、e D、f157在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是( C )类型。(2分) A、void B、double C、int D、char158、对于某个函数调用,不用给出被调用函数的原形的情况是( C )。(2分) A、被调用函数是无参函数 B、被调用函数是无返回值的函数 C、函数的定义在调用处之前 D、函获得的定义在别的程序文件中5、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分) A、 2.500000 B、 2.750000 C、 3.500000 D、 0.000000160、以下运算符中,运算对象必须是整型的是 (B)(2分) A、 / B、 %= C、 != D、= 7、若变量已正确说明为float类型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)(2分) A、 102233B、 10.0,22.0,33.0C、 10.022.0 33.0 D、 10 2233161、若有定义:int a=3,b=2,c=1;并有表达式:a%b,abc,b&c+1,c+=1,则表达式值相等的是( C )。(2分) A、和B、和C、和D、和 162、在C语言中,一位数组的定义方式为:类型说明符 数组名(A)。(2分) A、常量表达B、整型表达式C、整型常量或整型表达式 D、整型常量163、若用数组名作为函数调用的实参,传递给形参的是( A )。(2分) A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数164、能正确进行字符串赋值的是( B )。 (2分) A、char s5=a,e,i,o,u; B、char s5; s=good; C、char s5=abcdef; D、char s5; s =good;165、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为( D )。 (2分) A、该数组的长度 B、该数组的元素个数 C、该数组中各元素的值D、该数组的首地址166、已知:int a10,*p=a;则下面说法不正确的是 ( A )。(2分) A、p指向数组元素a0 B、数组名a表示数组中第一个元素的地址 C、int a10,*p=&a0;与上述语句等价 D、以上均不对167、下列关于文件指针的描述中,错误的是(D )(2分) A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。168C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的(B)(2分) A、适应性B、移植性 C、兼容性D、操作性169、以下叙述不正确的是(D)(2分) A、在C程序中,逗号运算符的优先级最低 B、在C程序中,APH和aph是两个不同的变量 C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不变 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值170、逻辑运算符两侧运算对象的数据类型可以是( D )。(2分) A、只能是0或1B、只能是0或非0正数 C、只能是整型或字符型数据 D、可以是任何类型的数据171、设int a=3,b=4,c=5,则下面表达式中,值为0的表达式是( D )。 (2分) A、a&bB、a=b C、a|b+c&b-cD、!(ab)&!c|1)172、有int n=0,p;doscanf(“%d”,&p);n+;while(p!=12345&n3);此处循环的结束条件是( D )。(2分) A、P的值不等于12345并且n的值小于3 B、P的值等于12345并且n的值大于等于3 C、P的值不等于12345或者n的值小于3 D、P的值等于12345或者n的值大于等于3173、 一个完整的C源程序是( B )。 (2分) A、要由一个主函数(或)一个以上的非主函数构成 B、由一个且仅由一个主函数和零个以上(含零)的非主函数构成 C、要由一个主函数和一个以上的非主函数构成 D、由一个且只有一个主函数或多个非主函数构成174、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( D )。(2分) A、extern B、register C、autoD、static175、已知:char s10,*p=s;则在下列语句中,错误的语句是 ( B )。(2分) A、p=s+5; B、s=p+s; C、s2=p4; D、*p=s0;176、以“w+”方式打开一个文件,下列描述中正确的是(B )(2分) A、被打开的文件一定要存在。 B、被打开的文件既可以写又可以读。 C、被打开的文件内容不被删除。 D、被打开的文件可以是文本
展开阅读全文