C考试系统题库判断和选择_第1页
C考试系统题库判断和选择_第2页
C考试系统题库判断和选择_第3页
C考试系统题库判断和选择_第4页
C考试系统题库判断和选择_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C考试系统题库判断和选择C考试系统题库判断和选择C考试系统题库判断和选择C考试系统题库判断和选择编制仅供参考审核批准生效日期地址:电话:传真:邮编:一、判断题(正确的填A,错误的填B)第一章C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)1.在C语言中,逗号运算符的优先级最低。(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。(B)3.“5ch”是合法的变量名。(B)4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f)(A)6.表达式i++与++i在任何场合功能完全相同。(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。(A)8.C语言程序中,语句以逗号结尾。(B)9.在C程序中,APH和aph代表不同的变量。(A)10.a-=7等价于a=a-7。(A)11.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按原字符长从左向右全部输出。(A)12.如果x>y为真或a<b为真,表达式(x>y)&&(a<b)就为真。(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.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程序中的注释部分可有可无,可以省略。(A)29.字符型变量可以存放多个字符。(B)30.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(B)5.在C程序中,无论是整数还是实数,都能被准确无误地表示。(B)1.一个C程序的执行是从本程序的main函数开始,到main函数结束。(A)3.()4.运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符(B)第二章判断题(正确的填A,错误的填B)1.do-while语句中的条件为非0时,就结束该循环。(B)2.在switch-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)112)大于0的数13)非0的整数14)非0的数在循环语句的循环体中,continue语句的作用是()。15)立即终止整个循环16)继续执行continue语句之后的循环体17)结束本次循环18)结束本次循环并跳出循环语句while(!e);中,条件!e等价于()19.e==020.e!=021.e!=122.e==1设intc=5和inta;a=2+(c+=c++,c+8,++c),则a=__________23)1524)1425)1326)16若要表示if(a不等于0)这一关系式,则能正确表示这一关系的表达式为if()27)a<>028)!a29)a=030)a第三章判断题1.字符串“girl”大于字符串“good”。(B)2.C语言中有字符串变量,与字符数组等价。(B)R3.同一数组可以存储不同类型的值。(

B)N4.若有:inta[2][3];则a+1和a[1]的值以及类型都一样。(B)R5.字符'\0'的值就是0。(A)6.C语言中是用字符串变量来存放字符串。(B)7.表达式sizeof("abc")的值是4。(B)AN8.同数组的名字一样,函数的名字也是一种指针。(A)9、C语言中在定义数组时,一个数组的数组元素的数据类型可以不相同;(B)10、chara[10];a[10]=9;上述语句编译不会出错;(A)BR11.数组元素的下标是从1开始标号的。(B)N12.若a为一维数组名,则*(a+i)与a[i]等价。(A)13.循环语句中的continue语句的作用是结束整个循环。(B)14.字符串"That"小于字符串"the"。(A)15.字符个数多的字符串比字符个数少的字符串大。(B)有以下语句:intb;charc[10];,则正确的输入语句是16)scanf("%d%s",&b,&c); 17)scanf("%d%s",&b,c);18)scanf("%d%s",b,c); 19)scanf("%d%s",b,&c);已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是20数组a和b的长度相同 21a数组长度小于b数组长度22a数组长度大于b数组长度 设有数组定义:chararray[]="China";则数组array所占的存贮空间为个字节.234245256267若定义intx[10];则TurboC编译系统为该数组分配个字节存储单元。27.1028.1129.2030.21第四章判断题(正确的填A,错误的填B)R1.C程序中,函数的定义和函数的调用均可以嵌套。(B)R2.C程序中,若对函数类型未加显示说明,则函数的隐含类型为“int”。(A)3.在调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参。(A)R4.函数的返回值是通过函数中的return语句获得的。(A)5.用数组名作函数参数时传递的是数组的值。(B)6.全局变量可以被任何一个函数中的任何一个表达式使用。(B)7.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。(A)8.C函数既可以嵌套定义又可以递归调用.(B)9.C语言规定,函数的实参应与其对应的形参类型一致。(A)10.若全局变量和局部变量同名,则全局变量被遮蔽。(A)11.若要在函数f中修改变量a的值,应该把a的地址传递给f。(A)12.当数组做为参数传递给函数时,是把数组中的所有元素都传递给了该函数。(B)N13.给局部变量加上static属性后,其生存期和作用域都扩展了。(B)14、在某个变量前用extern声明,可以扩展变量的作用域;(B)15、外部变量采用静态存储,内部变量采用动态存储;(B)16、静态外部变量只能在本文件使用,其他文件不能使用该变量;(A)17(1)不同函数内的变量,可以用相同的名字(A)N18(2)设函数调用表达式为:fun(fun(a,b),c),则函数fun带3个参数。(B)19(4)C语言中,函数返回值的类型是由定义函数时所指定的函数类型决定的(A)20(5)在main函数内定义的变量在整个程序范围内有效(B)21(10)静态外部变量,不允许其它文件中的函数访问(A)22(1)不同函数内的变量,可以用相同的名字(A)N23(2)设函数调用表达式为:add(sub(a,b),c),则函数add带3个参数。(B)24.在C程序中return语句最多可以返回一个值。(A)25.若函数类型和return语句中表达式类型不一致时,返回类型以函数类型为准。(A)26.在C语言中实参和与其对应的形参各占用独立的存储单元。(A)27由一个函数调用另一个函数,被调用的函数又调用其他函数的关系,称为函数的嵌套调用。(T)28一个函数直接或者间接地自己调用自己的过程成为递归调用。(T)29使用递归方法解决问题,必须要有一个明确的结束递归的条件。(T)30递归调用也称为循环定义,即用其自身来定义自己的过程。(T)第五章判断题(正确的填A,错误的填B)R1.变量的指针,其含义是指该变量的地址。(A)N2.有以下语句staticinta[]={0,1,2,3,4},*p;p=&a[2];则表达式(*p)++执行后,指针p指向的元素值是2。(B)3R3.变量的指针,其含义是指该变量的数值。(B)4.有以下语句staticinta[]={0,1,2,3,4},*p;p=&a[1];则表达式(*p)++执行后,指针p指向的元素值是2。(A)B5.若p是指向结构体s的指针,则(*p).n和(&s)->n等效。(B)6、char*p[10];p是指向数组的指针。(B)(9)设:char*px;则赋值表达式px="a"正确(A)N(10)设:inta[3]={1,2,3},*pa;则赋值表达式px=&a正确(B)7.int*p[5]定义的是一个指针数组。(A)8.int(*p)[5]定义的是一个指针数组。(B)9.当main函数带有形参时,传给形参的值只能从命令行中得到。(A)下列说法中不正确的是()R10.指针是一个变量11.指针中存放的是地址值12.指针可以进行加、减等算术运算13.指针变量不占用存储空间设变量定义为“intx,*p=&x;”,则&*p相当于___________。N18)p19)*p20)x21)*&x设变量定义为“inta[4];”,则表达式不符合C语言语法。22)*a23)a[0]24)a25)a++已知:int*p,a;则语句“p=&a;”中的运算符“&”的含义是()26、位与运算27、逻辑与运算28、取指针内容29、取变量地址int

n=0,*p=&n,**q=&p;则正确的赋值语句是30p=1;

31)

*q=2;

32)

q=p;

33)

*p=5;第六章判断题 (正确的填A,错误的填B)R1.共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。(B)N2.为了获得结构体变量s中成员n的地址,可以用表达式:s.(&n)。(B)R3、结构体和共用体都是构造数据类型,没有区别;(B)N4(3)设有宏定义:#defineMY(x,y)x*y,则宏调用MY(2+3,5)的结果为25。(B)5(4)结构体中的所有元素,共用存储单元(B)6.结构体变量所占的内存长度等于最长的成员的长度。(B)7.当定义一个共用体变量时系统分配给它的内存是各成员所需内存量的总和。(B)R8.宏名必须用大写字母表示。(B)9.在C语言中预处理命令都以“#”开头。(A)N10(3)设有宏定义:#defineMUL(x,y)x*y,则宏调用MUL(2+3,5)的结果为25。(B)11.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用<>(尖括号)括起时,寻找被包含文件的方式是直接按系统设定的标准方式搜索目录。(A)以下叙述正确的是_________.——预编译之宏替换(12)可以把define和if定义为用户标识符13)可以把define定义为用户标识符,但不能把if定义为用户标识符(14)可以把if定义为用户标识符,但不能把define定义为用户标识符(15)define和if都不能定义为用户标识符正确答案:B.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是__________.——数据类型重新命名(16)PER是结构体变量名(17)PER是结构体类型名(18)typedefstruct是结构体类型(19)struct是结构体类型名正确答案:B如果有structwage{charname[30];floatsalary;};则structwageworker1,worker2;定义了两个()。20.结构数据类型21.结构类型变量22.结构常量23.一般变量以下说法正确的是。(24)结构体成员变量可以用作函数的形式参数。(25)结构体数组名可以用作函数参数,发生函数调用时传递的是地址数据。(26)结构体数组的元素不能用作函数的实际参数。(27)结构体成员变量的指针不能用作函数的实际参数。以下关于typedef的叙述中,错误的是。(28)使用typedef为固定长度的数组定义一个新的类型名(29)用typedef可以在C语言中创建新的数据类型(30)用typedef只是将已存在的类型用一个新的标识符来代表(31)使用typedef有利于程序的移植32.文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。(A)33.文件包含处理命令的格式为#include“包含文件名”或#include<包含文件名>(A)34.一条包含命令可以指定多个被包含文件(B)35.文件包含可以嵌套,即被包含文件中又包含另一个文件。(A)36.可以把define和if定义为用户标识符37.可以把define定义为用户标识符,但不能把if定义为用户标识符38.可以把if定义为用户标识符,但不能把define定义不用户标识符39.define和if都不能定义为用户标识符第七章判断题(正确的填A,错误的填B)R1.利用ftell函数关闭已打开的文件(B)R2.文件操作中fopen是必须的,而fclose则可省略。(B)3.任何文件都可以看做是“流”式文件。(B)4(8)设:FILE*fout;charch;则ch=fgetc(fout)表示将字符ch写入由fout指针所指向的文件中去。(B)5(5)在文件末尾定义的外部变量在本源程序文件范围内有效(B)6(6)若文件位置指针指向文件末尾,则feof(fp)返回值为非0值(A)7.数据文件一般分为两种,分别是二进制文件和字符文件。(A)R8在C语言中,以“r”方式不能打开并不存在的文件。(A)9在C语言中,以“w”方式不能打开并不存在的文件。(B)10在C语言中,以“r”方式能打开并不存在的文件。(B)11在C语言中,以“w”方式能打开并不存在的文件。(A)下列语句中,将C定义为文件型指针的是 12.FILEc; 13.FILE*c; 14.filec; 15.file*c;若有定义FILE*fp,则打开与关闭文件的命令是16.fopen(fp),fclose(fp) 17.fopen(fp,“w”),fclose(fp)18.open(fp),close(fp) 19.open(fp,“W”),close(fp)C语言中,组成数据文件的成分是20.记录 21.数据行 22.数据块 23.字符(字节)序列24.文件由ASCII码字符序列组成,C语言只能读写文本文件25.文件由二进制数据序列组成,C语言只能读写二进制文件26.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件27.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是N 28.fopen("A:\\user\\abc.txt","r+")N29.fopen("A:\user\abc.txt","r") N30.fopen("A:\user\abc.txt","rb")31.fopen("A:\user\abc.txt","w")二、单项选择题第一章单项选择题R1、以下标识符中,不能作为合法的C用户定义标识符的是:()A.a3_b3B.voidC._123D.abcR2、C语言规定:在一个源程序中,main函数的位置()。A.必须在最后 B.必须在系统调用的库函数的后面。C.必须在最开始。 D.可以任意R3、下列说法中正确的是()。A.C程序书写时,不区分大小写字母B.C程序书写时,一行只能写一个语句C.C程序书写时,一个语句可分成几行书写D.C程序书写时每行必须有行号4、

已知ch是字符型变量,下面不正确的赋值语句是()。A.ch=5+9 ; B.ch='a+b';C.ch='\0'; D.ch='7'+'6' ;5、

若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。A. 2.750000 B.0.00000 C.3.500000 D.2.5000006.已知ch是字符型变量,下面正确的赋值语句是()。A.ch='123' ; B. ch='\08';C.ch='\xff'; D.ch="\";1.以下标识符中,不能作为合法的C用户定义标识符的是:____________。A)a3_b3B)voidC)_123D)abc2.C语言中,运算对象必须是整型的运算符是__________。A)%B)/C)%和/D)*7.在C程序中,用___________表示逻辑值“真”。A)1B)非0的数C)非1的数D)大于0的数N8.设intc=5和inta;a=2+(c+=c,c+8,++c),则a=__________A)15B)14C)13D)169.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符________。A)必须为字母或下划线。B)必须为下划线。C)必须为字母D)可以是字母、数字和下划线中的任一种字符。10.若变量已正确定义并赋值,表达式____________不符合C语言语法。A)a*b/c;B)3.14%2C)2,bD)a/b/c11.下列说法中正确的是___________。A)C程序书写时,不区分大表达式小写字母B)C程序书写时,一行只能写一个语句C)C程序书写时,一个语句可分成几行书写D)C程序书写时每行必须有行号12.为表示数学关系x≥y≥z,正确的C语言表达式是__________。A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)13.不合法的八进制数是________A)0B)028C)077D)0114、以下不能定义为用户标识符是AMain B_0 C_int Dsizeof15.若x=5,y=4则y*=x+5;y的值为()。A.40B.20CB.15D.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.5

C)2.5

D)019.设intm=1,n=2;则++m==n的结果是()A、0B、1C、2D、3N20.若变量已定义并赋值,下列符合C语法的表达式是:( )A、a:=b+1 B、a=b=c+2 C、int18.5%3 D、a=a+7=c+bR(3)在C程序中,设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果类型是()A.intB.charC.unsignedD.longR21.C语言中基本的数据类型包括__________。A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型N22.若定义x和y为double类型,则表达式:x=2,y=x+5/2的值是__________A)4B)4.5C)4.0D)3.023.在以下运算符中,优先级最高的运算符是__________A):B)++C)&&D)+=24.C语言中基本的数据类型不包括__________。A)整型B)字符串型C)字符型D)实型25.若定义intx=7,y=5,z;则表达式:z=x+5/2*y的值是__________A)7B)7.5C)17D)19.56.以下说法中正确的是()A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分(1)设inta=2,b;则执行b=a&&1;语句后,b的结果是()A.0B.1C.2D.3N(2)逗号表达式(a=3*5,a*4),a+15的值是()A.15B.60C.30D.757.若已经定义了一个字符型变量为a,下面哪个表达式的含义跟其余表达式不同:A)a!=0B)a!=’\0’C)aD)!a8.在以下运算符中,优先级最高的运算符是__________A),B)[]C)&&D)+=9.在C语言中,逻辑值“真”用__________表示。A)trueB)大于0的数C)非0的整数D)非0的数10.表达式__________是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式A)(c=1)||(c=3)||(c=5)B)(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、LINE12.下列说法中正确的是()。A、C程序书写时,不区分大小写字母B、C程序书写时,一行只能写一个语句C、C程序书写时,一个语句可分成几行书写D、C程序书写时每行必须有行号3.在C语言中,要求参加运算的数必须是整数的运算符是()。A、/B、!C、%D、==4.C语言中,逻辑“真“等价于()。A、大于零的数B、大于零的整数C、非零的数D、非零的整数6.假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/abc的表达式是()。A、1/a*b*cB、1/(a*b*c)C、1/a/b/(float)cD、1.0/a/b/c1.下列合法的字符常量是()。A、'\084' B、'\x43' C、'ab' D、"\0"2.在C语言提供的合法的关键字是( )A、switch B、cher C、Case D、sturct3.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是2 B、1 C、2.0 D、2.5第二章C语言程序结构单项选择题1、以下不是死循环的语句是_______。for(;;x+i);while(1){x++;}for(i=10;;i--)sum+=i;for(;(c=getchar())!=‘\n’;)printf(“%c”,c);2.设有程序段intk=10;while(k=0)k=k-1;以下描述正确的是()。A.循环体语句一次也不执行。 B.循环是无限循环。C.while循环语句执行十次。 D.循环体语句执行一次。3.对下述程序,正确的判断是()。main(){inta,b;scanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++;printf("%d,%d",a,b);}A.有语法错误不能通过编译B.若输入4,5则输出5,6C.若输入5,4则输出4,5D.若输入5,4则输出5,5R4.以下程序main(){inti=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);}有语法错误不能通过编译输出结果是()A.8,10,16B.8,10,10C.10,10,10D.10,10,16R5.若变量已正确说明为int类型,要给a,b,c输入数据,以下语句正确的是__________A)read(a,b,c);B)scanf(“%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(){charx,y;x=’0’;y=’9’;pirntf(“%d,%d\n”,x,y);}A)因输出格式不合法,输出错误信息B)48,57C)0,9D)48,587.语句for(k=0;k<5;++k){if(k==3)continue;printf(“%d”,k);}的输出结果为_________。A)012B)0124C)01234D)没有输出结果8.为表示关系x>=y>=z,应使用C语言表达式___________。A)(y<=x)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)6.若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和___________等价。A、k=(a>b)

1:0;B、k=a>b;C、k=a<=b;D、a<=b

0:1;

9.以下程序的输出结果是__________ voidmain(){inta=2,b=5;printf(“a=%%%d,b=%%%d”,a,b);}A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%dN10.以下程序的输出结果是__________voidmain(){intx=10,y=10;printf(“%d%d\n”,x--,--y);}A)1010B)99C)910D)10911.若要表示if(a不等于0)这一关系式,则能正确表示这一关系的表达式为if(__________)A)a<>0B)!aC)a=0D)aR12对于循环语句while(1);下面()是正确的A、死循环B、循环一次C、不进入循环体D、编译有错13.下面程序的输出是(假设int数据是2个字节)voidmain(){inta=32768;printf(“a=%d\n”,a);}A)a=32768B)a=32767C)a=-32768D)a=-114.表达式__________是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式A)(c=1)||(c=3)||(c=5)B)(c!=1)&&(c!=3)&&(c!=5)C)(c==1)&&(c==3)&&(c=5)D)(c==1)||(c==3)||(c==5)N15.以下程序段的输出结果是_____intx=3;do{printf("%3d",x-=2;}while(!(--x));A)1B)30C)1-2D)死循环16、数字字符0的ASCII值为48,若有以下程序main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是A3,2 B50,2 C2,2 D2,5017、有以下程序main(){inta,b,d=25;a=d/10&(-1);b=a&&(-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是A6,1 B2,1 C6,0 D2,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.下面程序段___x=3;do{y=x--;if(!y){printf("x");continue;}printf("#");}while(1<=x<=2);A)将输出##B)将输出##*C)是死循环D)含有不合法的控制表达式21.以下程序中,while循环的循环次数是()。#include“stdio.h”main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A、1B、10C、6D、死循环,不能确定次数N22.有以下程序:#include“stdio.h”inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序运行后的输出结果是()。A、8B、10C、7D、1123(4)下面程序段的运行结果是()main(){inta=11,b=10,c=0;a/=b+(b&&c);printf(″%d\n″a);}A.0B.1C.1.1D.1124(5)两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是()main(){intx;scanf(″%d″,&x);if(x++>5)printf(″%d″,x);elseprintf(″%d\n″,x-1);}A.7和5B.6和3C.7和4D.6和4(6)语句while(!e);中,条件!e等价于()A.e=0B.e!=0C.e!=1D.e==0R25下面程序的输出是______main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=13B)k=11,k=13,k=13C)k=11,k=013,k=oXbD)k=11,k=13,k=b26(7)下面程序的运行结果是()main(){inti=1,sum=0;lop:sum=sum+i;i=i+2;if(i<6)gotolop;printf(″sum=%d\n″,sum);}A.sum=4B.sum=9C.sum=16D.sum=2527.以下程序的输出结果是__________ voidmain(){inta=2,b=5;printf(“a=%%%d,b=%%%d”,a,b);}A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d28执行下面的程序后,a的值为_____main(){inta,b;for(a=1,b=1;a<100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7B)8C)9D)102930.下面的程序会()main(){intx=3,y=0,z=0;if(x=y+z)printf(“****”);elseprintf(“####”);}A、有语法错误不能通过编译B、输出****C、可以通过编译,但不能通过连接,因而不能运行D、输出####4.以下程序的输出结果是()main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d%d”,x--,y);}A、10192B、9876C、10990D、1010911.下面程序的输出是______main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=13B)k=11,k=13,k=13C)k=11,k=013,k=oXbD)k=11,k=13,k=b2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是____main(){intx;scanf("%d",&x");if(x++>5)printf("%d",x)elseprintf("%d\n",x--);}A)7和5B)6和3C)7和4D)6和43.读程序#include”stdio.h”main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210<CR>(<CR>表示回车),则上面程序的输出结果是——Ca=98,b=765,c=4321a=1,b=432,c=8765a=98,b=765.000000,c=4321.000000a=98,b=765.0,c=4321.05.下面程序的输出是____main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,a);}A)x=4,y=4,a=1B)x=5,y=5,a=1C)x=5,y=4,a=3D)x=5,y=4,a=.第三章数组单项选择题R1、对两个数组a和b进行如下初始化chara[]="ABCDEF";charb[]={’A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是()A)a与b数组完全相同B)a与b长度相同

C)a和b中都存放字符串D)a数组比b数组长度长R2.若有说明:inta[3][4];则对a数组元素的正确引用是()A.a[2][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)R3.合法的数组定义是()A、inta[]="string"; B、inta[5]={0,1,2,3,4,5};C、vhsts="string"; D、chara[]={0,1,2,3,4,5};4.以下正确的声明是()。A.inta[1][4]={1,2,3,4,5}; B.floatx[3][]={{1},{2},{3}};C.longb[2][3]={{1},{1,2},{1,2,3}}; D.doubley[][3]={0};5下列语句的执行结果是()。staticcharstr[10]={“china”};printf(“%d”,strlen(str));A.10B.6C.5D.0R6、以下能正确定义一维数组的选项是Ainta[5]={0,1,2,3,4,5}; Bchara[]={0,1,2,3,4,5};Cchara={'A','B','C'}; Dinta[5]="0123";7.下面程序段的运行结果是()。chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A.空格B.\0C.eD.f8定义如下变量和数组,则输出结果是()。inti;intx[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);A.159B.147C.357D.3699.下列对一维数组a的正确说明语句为()。A)inta(10);B)intn=10,a[n];C) intn;scanf("%d",&n);inta[n];D)#defineSIZE10inta[SIZE];10.下列二维数组的说明中,不正确的是()A、floata[3*8][7-3]B、floata[][3]={0,1,8};C、#defineL3floata[L][3]D、inta[6],[7]11.执行以下程序段后,s的值是inta[]={5,3,7,2,1,5,4,10};ints=0,k;for(k=0;k<8;k+=2)s+=*(a+k);A、17B、27C、13D、无定值12.若有定义:charc[10];从键盘输入“LiFang”,则正确的函数引用是()A.scanf(“%c”,&c[10]);B.gets(c);C.scanf(“%s”,&c);D.gets(c[10]);N13.以下程序的输出结果是_________。main(){chars1[20]=“China”,s2[20]=“for”,s[10];if(strcmp(s1,s2))printf(“%s\n”,strcat(s2,s1));elseprintf(“%d\n”,strlen(s1));}A)ChinaforB)5C)forChinaD)314选择下面程序运行的结果:#include“stdio.h”intm[3][3]={{1},{2},{3}};intn[3][3]={1,2,3};main(){printf("%d\n",m[1][0]+n[0][0]);printf("%d\n",m[0][1]+n[1][0]);}第1条printf语句行输出的结果为( )A、0 B、1 C、3 D、2R15(9)以下对一维数组a中的所有元素进行正确初始化的是()A.inta[10]==(0,0,0,0);B.inta[10]={};C.inta[]={0};D.inta[10]={10*2};16(10)(8)若定义intx[10];则TurboC编译系统为该数组分配()个字节存储单元。A.10B.11C.20D.21N18.有如下程序main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(“%d”,s);}该程序的输出结果是A、18B、19C、20D、21N19.执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是()。#include“stdio.h”main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}A、123,456,789B、1,456,789C、1,23,456,789D、1,23,45620.以下程序的输出结果是_____main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));(strlen不算\0,sizeof算\0)}A)6B)7C)11D)1221.合法的数组定义是()A、inta[]="string"; B、inta[5]={0,1,2,3,4,5};C、vhsts="string"; D、chara[]={0,1,2,3,4,5};22.以下正确的声明是______。A.inta[1][4]={1,2,3,4,5}; B.floatx[3][]={{1},{2},{3}};C.longb[2][3]={{1},{1,2},{1,2,3}}; D.doubley[][3]={0};N23.阅读下面程序,回答问题。#include“stdio.h"voidmain(){ inti,jrow,column,m; staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++) if(array[i][j]<m){m=array[i][j];row=i;column=j;}printf(“%d,%d,%d”,m.row.column);}该程序的功能是()。A、计算二维数组的元素和 B、求二维数组的最小值及其下标C、对二维数组进行排序 D、求二维数组的最大值及其下标24.若有以下程序段:inta[]={4,0,2,3,1},k,j,t;for(j=1;j<5;j++){t=a[j];k=j-1;while(k>=0&&t>a[k]){a[k+1]=a[k];k--;}a[k+1]=t;}则该程序段的功能是___(8)____A)对数组a进行插入排序(升序)。B)对数组a进行插入排序(降序)。C)对数组a进行选择排序(升序)。D)对数组a进行选择排序(降序)。N25.执行如下程序段,当输入为Iam<CR>时,输出的结果是_________。charstr[80];scanf(“%s”,str);strcat(str,”sad!”);printf(“%s”,str);A)Iamsad!B)Isad!C)Isad!D)sad!3.main(){inta[10]={1,2,3,-4,5,6,7,-8,9,10},s=0;for(inti=0;i<10;i++){if(a[i]<0)break;s+=a[i];}printf("%d",s);//s=6}(3)下面程序的输出是#include“stdio.h”#include“stdlib.h”main(){charstr1[20],str2[20];scanf(“%s”,str1);//从键盘输入helloworldprintf("%s",str1);//输出结果1fflush(stdin); gets(str2);//从键盘输入crazyenglishprintf("%s",str2);//输出结果2输出crazyenglish}输出结果1是:(A)Hello(B)World(C)HelloWorld(D)WorldHello输出结果2是:(A)Hello(B)World(C)HelloWorld(D)WorldHello7.1.选择下面程序运行的结果:#include“stdio.h”intm[3][3]={{1},{2},{3}};intn[3][3]={1,2,3};main(){printf("%d\n",m[1][0]+n[0][0]);printf("%d\n",m[0][1]+n[1][0]);}第1条printf语句行输出的结果为( )A、0 B、1 C、3 D、22.还是刚才1题那个程序,第2条printf语句行输出的结果为( )A、2 B、4 C、6 D、05.函数调用:strcat(strcpy(str1,str2),str3)的功能是()A、将串str1复制到串str2中后再连接到串str3之后;B、将串str1连接到串str2之后再复制到串str3之后;C、将串str2复制到串str1中后再将串str3连接到串str1之后;C、将串str1复制到串str2中后再将串str3连接到串str2之后;第四章函数单项选择题1、

C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式R2、若调用一个函数,且此函数中没有return语句,则正确的说法是()该函数A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值R3、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A.float型B.int型C.long型D.double型R4、在C语言程序中,以下描述正确的是()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套5.voidmain(){intf(int);intw=2,k;for(k=0;k<3;k++){w=f(w);printf(“%d\n”,w);}}intf(intx){inty=0;staticintz=3;y++;z++;return(x+y+z)

;}程序结束后,z的值为_______。(1)A)3B)4C)5D)6R6.在一个被调用函数中,关于return语句使用的描述,错误的是()A、被调用函数中可以不用return语句B、被调用函数中可以使用多个return语句C、被调用函数中,如果有返回值,就一定要有return语句D、被调用函数中,一个return语句可返回多个值给调用函数7.以下程序输出的结果是()。#include<stdio.h>intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}A、12B、13C、14D、158(2)若有如下函数定义:add(floatx,floaty){……}则下列说法正确的是()A.函数返回值类型不确定B.函数返回值是float型C.函数返回值是int型D.函数返回值是void型9intx1=30,x2=40;//x1x2是全局变量voidmain(){intx3=10,x4=20;sub(x3,x4);sub(x2,x1);L1:printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);}voidsub(intx,inty){x1=x;x=y;y=x1;L2:printf(“%d,%d\n”,x,y);}L1行输出结果为______B_________。(3)A)10,20,30,40B)10,20,40,10C)20,10,40,30D)10,20,40,40R10.以下对C语言函数的描述中,正确的是()。A、C程序由一个或一个以上的函数组成B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中调用关系的所有函数必须放在同一个程序文件中11.以下函数值的类型是()。fun(floatx){floaty;y=3*x-4;returny;}A、intB、不确定C、voidD、float12.一个C程序由函数A(),B(),C()和函数P()构成,在函数A()中分别调用了函数B()和函数C(),在函数B()中调用了函数A(),且在函数P()中也调用了函数A(),则可以说()。A、函数B()中调用的函数A()是函数A()的间接递归调用B、函数A()被函数B()调用是直接递归调用C、函数P()直接递归调用了函数A()D、函数P()中调用的函数A()是函数P()的嵌套13.下面函数调用语句含有实参的个数为()。func((a,b,c,d),(e,f,g));A、1 B、2 C、4 D、以上都不对14.已有函数max(a,b)为了让函数指针变量p指向函数max正确的赋值方法是()。A、p=max; B、*p=max;C、p=max(a,b); D、*p=max(a,b);N15.下面程序运行的结果为:#include<stdio.h>voidswap(inta,intb){ intt; t=a;a=b;b=t;}main(){intm=3,n=4;printf(“Theold:m=%d,n=%d\n”,m,n);swap(m,n);Printf(“Thenew:m=%d,n=%d\n”,m,n);

}A、3,4 B、m=3,n=4 C、3,4 D、m=3,n=4 3,4 m=3,n=4 4,3 m=4,n=3N16、选择程序的运行结果。main(){intx;x=try(5);printf("%d\n",x);}try(intn){if(n>0)return(n*try(n-2));elsereturn(1);}A)1B)15C)120D)答案均是错误的17.有以下程序viodfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,45618.下列语句的执行结果是()。staticcharstr[10]={“china”};printf(“%d”,strlen(str));A.10B.6C.5D.0N19.读程序,回答问题。#include<stdio.h>inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}voidmain(){ints=a,i;for(i=0;i<3;i++)s+=f(i);printf("%d\n",s);}程序运行结果是(C)。A、26 B、28C、29 D、2520.有如下程序intfunc(inta,intb){return(a+b);}main0{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%d\n”,r);}该程序的输出的结果是__________。A)12B)13C)14D)1521.有以下程序viodfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出结果是_________。A)30,20,10B)、10,20,30C)456,567,678D)678,567,45622.以下程序执行之后sum的值是_________。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A)15B)14C)不确定D)0N23.voidmain(){intf(int);intw=2,k;for(k=0;k<3;k++){w=f(w);printf(“%d\n”,w);}}intf(intx){inty=0;staticintz=3;y++;z++;return(x+y+z)

;}程序结束后,w的值为______。(2)A)20B)7C)28D)13N24.intx1=30,x2=40;//x1x2是全局变量voidmain(){intx3=10,x4=20;sub(x3,x4);sub(x2,x1);L1:printf(“%d,%d,%d,%d\n”,x3,x4,x1,x2);}voidsub(intx,inty){x1=x;x=y;y=x1;L2:printf(“%d,%d\n”,x,y);}L2行输出结果为____________。(4)A)10,20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论