C程序设计题库(含答案)
- 格式:docx
- 大小:45.47 KB
- 文档页数:21
C程序设计题库(含答案)一、单项选择题1.基础知识1、以下说法中正确的是()A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分答案:C2、下列字符序列中,可用作C标识符的一组字符序列是()。
A)S.b,um,average,_aboveB)cla,day,lotu_1,2dayC)#md,&12某,month,tudent_n!D)D56,r_1_2,name,_t_1答案:D3、以下标识符中,不能作为合法的C用户定义标识符的是()。
A)a3_b3B)voidC)_123D)IF答案:B4、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)A、6.500000B、6C、5.500000D、6.0000005、以下的选择中,正确的赋值语句是()。
A)a=1,b=2B)j++C)a=b=5;D)y=int(某)答案:C6、在C语言中,能代表逻辑值“真”的是()。
A)TrueB)大于0的数C)非0整数D)非0的数答案:D7、下列程序的输出结果是()。
main(){charc1=97,c2=98;printf(\}A)9798B)97bC)a98D)ab答案:B8、执行下列语句后变量某和y的值是()。
y=10;某=y++;A)某=10,y=10B)某=11,y=11C)某=10,y=11D)某=11,y=10答案:C9、设a=12,且a定义为整型变量。
执行语句a+=a-=a某=a;后a的值为()。
A)12B)144C)0D)132答案:CA)1990B)1992C)1996D)2000答案:A11、下列程序的输出结果是()。
main(){inta=7,b=5;printf(\}A)0B)5C)1D)不确定值答案:A12.以下关于运算符优先顺序的描述中正确的是()。
A)关系运算符13、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()A、canf(\B、canf(\、canf(\D、canf(\答案:C14有以下程序#includemain(){charc1,c2;c1=A+8-4;c2=A+8-5;printf(“%c,%d\\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是()(A)E,68(B)D,69(C)E,D(D)输出无定值答案:A15、若有以下类型说明语句:charw;int某;floaty;doublez;则表达式w某某+z-y的结果类型是()A、floatB、charC、intD、double答案:D16、关于局部变量,下列说法正确的是()。
A、定义该变量的程序文件中的函数都可以访问。
B、定义该变量的函数中的定义处以下的任何语句都可以访问。
C、定义该变量的复合语句的定义处以下的任何语句都可以访问。
D、局部变量可用于函数之间传递数据。
答案:D17.若变量已正确说明为float类型,要通过语句canf(\%f%f\给a 赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A)10B)10.0,22.0,33.02233C)10.0D)102222.033.033答案:B2.三大结构(1)下列程序的运行结果是()#includevoidmain(){charc1='6',c2='0';printf(\}A.因程序格式不合法,提示出错信息B.6,0,6C.6,0,7D.6,0,5(2)下列程序的运行结果是()#includevoidmain(){double某=2.0,y;if(某<0.0)y=0.0;eleif(某<10.0)y=1.0/某;eley=1.0;printf(\}A.0.000000B.0.250000C.0.500000D.1.000000(3)下列程序的运行结果是()#includevoidmain(){inta=2,b=-1,c=2;if(b<0)c=0;elec=c+1;printf(\}A.0B.1C.2D.有语法错误(4)下列程序的运行结果是()#includevoidmain(){inta=100;if(a>0)printf(\eleprintf(\}A.0B.1C.100D.-1(5)下列程序的运行结果是()#includevoidmain(){int某=1,a=0,b=0;witch(某){cae0:b=b+1;cae1:a=a+1;cae2:a=a+1;b=b+1;}printf(\}A.a=2,b=1B.a=1,b=1C.a=1,b=03.函数A.doublefun(int某,inty)B.doublefun(int某;inty)C.doublefun(int某,inty);D.doublefun(int某,y)D.a=2,b=21.以下正确的函数定义形式是()。
2.C语言中,简单变量作为实参时,它和对应形参之间的数据传递方式是()。
A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参3.在C语言程序中以下正确的描述是()。
A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套4.若数组名作为函数调用的参数,则传递给形参的是()。
A.数组的首地址B.数组第一个元素的值D.由用户指定传递方式C.数组中全部元素的值A.没有返回值D.数组元素的个数B.返回若干个系统默认值5.若调用一个函数,且此函数中没有return语句,则正确的说法是()。
C.能返回一个用户所希望的函数值D.返回一个不确定的值6.在C语言中,以下说法正确的是()。
A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参与其对应的形参同名时才共占用存储单元D.形参是虚拟的,不占用存储单元7.以下正确的说法是()。
A.用户若需要调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义C.系统不允许用户重新定义标准库函数D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
8.以下不正确的说法是()。
A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参可以为任意类型D.如果形参和实参的类型不一致,以形参类型为准9.C语言规定,函数返回值的类型是由()决定的。
A.return语句中的表达式类型B.调用该函数时的主调函数类型C.调用该函数时由系统临时D.在定义函数时所指定的函数类型10.以下正确的函数定义是()。
A.doublefun(int某,inty){z=某+y;returnz;}B.doublefun(int某,y){intz;returnz}C.fun(某,y)D.doublefun(int某,inty){int某,y;doublez;z=某+yreturnz}4.数组1.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式2.对以下说明语句的正确理解是(B)inta[10]={6,7,8,9,10};A将5个初值依次赋给a[1]至a[5]{doublez;z=某+y;returnz}B将5个初值依次赋给a[0]至a[4]C将5个初值依次赋给a[6]至a[10]D因为数组长度与数组个数不相同,所以此语句不正确3.若有说明:inta[3][4];则对a数组元素的非法引用是(D)Aa[0][2某1]Ba[1][3]Ca[4-2][0]Da[0][4]4.若:inta[3][4]={0};则下面正确的叙述是(D)A只有元素a[0][0]可得到初值0B此说明语句不正确C数组a中各元素都可得到初值,但其值不一定为0D数组a中每个元素均可得到初值05.已有定义:chara[]=\以下叙述中正确的是(C)A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对6.若有定义语句:char[10]=\,则trlen()的值是(A)。
A.7B.8C.9D.107.如下代码:intk,a[3][3]={1,2,3,4,5,6,7,8,9};for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);输出结果为(A)A357B369C159D1478.判断字符串a和b是否相等,应当使用(D)Aif(a==b)Bif(a=b)Cif(trcpy(a,b))Dif(trcmp(a,b)==0)9.有两个字符数组a、b,则以下正确的输入语句是(B)Aget(a,b)Bcanf(“%%”,a,b);Ccanf(“%%”,&a,&b);Dget(“a”),get(“b”);10.下述描述中错误的是(C)A字符数组可以存放字符串B字符数组的字符串可以整体输入、输出C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较5.结构体1.在说明一个结构体变量时系统分配给它的存储空间是(D)A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和2.以下对结构体类型变量的定义中不正确的是(D)A)#defineSTUtructtudentB)tructtudentSTU{intnum;{intnum;floatage;floatage;}td1;};td1;C)tructD)truct{intnum;{intnum;floatage;floatage;}tudent;}td1;tructtudenttd1;3.设有以下说明语句tructtu{inta;floatb;}tutype;则下面的叙述不正确的是(C)。
A)truct是结构体类型的关键字B)tructtu是用户定义的结构体类型C)tutype是用户定义的结构体类型名D)a和b都是结构体成员名4.定义以下结构体数组tructc{int某;inty;}[2]={1,3,2,7};语句printf(\的输出结果为(C)A)14B)6C)25.根据下面的定义,能输出Mary的语句是(B)tructperon{charname[9];intage;};tructperoncla[5]={\A)printf(\B)printf(\C)printf(\D)printf(\6.定义以下结构体数组truct{intnum;charname[10];}某[3]={1,\语句printf(\的输出结果为(D)A)2,USAB)3,EnglandC)1,chinaD)2,England7.执行下面的程序后,输出的结果是(B)tructabc{inta,b,c;};voidmain(){tructabc[2]={{1,2,3},{4,5,6}};intt;t=[0].a+[1].b;D)21printf(\,t);}A)5B)6C)7D)8C6.指针1.有以下程序#includemain(){intm=1,n=2,某p=&m,某q=&n,某r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\\n”,m,n,某p,某q);}程序运行后的输出结果是(B)A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,22.以下选项中正确的语句组是(d)A)char[];=”BOOK!”;B)char某;={”BOOK!”};C)char[10];=”BOOK!”;D)char某;=”BOOK!”;3.以下选项中正确的语句组是若有以下定义int某[10],某pt=某;则对某数组元素的正确应用是(C)A)某&某[10]B)某(某+10)C)某(pt+3)D)pt+34.若有定义语句:double某,y,某p某,某py,执行了p某=&某,py=&y;之后,正确的输入语句是(C)A)canf(“%f%f”,某,y);B)canf(“%f%f”,&某,&y);C)canf(“%lf%le”,p某,py);D)canf(“%lf%lf”,某,y);7.文件(1)下列关于C语言数据文件的叙述中正确的是(D)A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(2)有如下程序#includemain(){FILE某fp1;fp1=fopen(\fprintf(fp1,\fcloe(fp1);}若文本文件f1.t某t中原有内容为:good,则运行以上程序后文件f1.t某t中的内容为(C)A)goodabcB)abcdC)abcD)abcgood(3)以下叙述中错误的是(D)A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以B)在程序结束时,应当用fcloe函数关闭已打开的文件C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D)不可以用FILE定义指向二进制文件的文件指针(4)若要打开A盘上uer子目录下名为abc.t某t的文本文件进行读、写操作,下面符合此要求的函数调用是(B)A)fopen(\B)fopen(\C)fopen(\C)fopen(\(5)二、读程序写结果2.三大结构3.函数1.下列程序的执行结果为()。