您好,欢迎访问三七文档
1第一部分C语言理论基础(4)结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务(7)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点第二部分C语言基本语法知识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(4)以下能正确定义且赋初值的语句是A)intn1=n2=10;B)charc=32;C)floatf=f+1.1;D)doublex=12.3E2.5;(5)设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式是A)k=k=kB)-k++C)k%int(f)D)k=f=m(6)有以下程序段intk=0,a=1,b=2,c=3;k=ab?b:a;k=kc?c:k;执行该程序段后,k的值是A)3B)2C)1D)0(8).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:cd?c:d的值A)1B)2C)3D)4(15)以下4组用户定义标识符中,全部合法的一组是A)_mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_001(24)下列关于单目运算符++、--的叙述中正确的是A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量(26)以下选项中合法的用户标识符是A)longB)_2TestC)3DmaxD)A.dat(27)以下非法的赋值语句是A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j0;(28)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A)6.500000B)6C)5.500000D)6.000000(33)以下选项中不属于C语言的类型的是A)signedshortintB)unsignedlongintC)unsignedintD)longshort(34)以下叙述正确的是A)可以把define和if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符2(35)在C语言中,合法的长整型常数是A)0LB)4962710C)324562&D)216D(37)假定x和y为double型,则表达式x=2,y=x+3/2的值是A)3.500000B)3C)2.000000D)3.000000(38)以下合法的赋值语句是A)x=y=100B)d--;C)x+y;D)c=int(a+b);(40)以下程序的输出结果是main(){inta=3;printf(“%d\n”,(a+a-=a*a));}A)–6B)12C)0D)–12(41)以下所列的C语言常量中,错误的是A)0xFFB)1.2e0.5C)2LD)‘\72’(42)下列选项中,合法的C语言关键字是A)VARB)cherC)integerD)default(47)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是A)1B)2C)2.0D)2.5(48)若变量a、iI已正确定义,且i已正确赋值,合法的语句是A)a==1B)++i;C)a=a++=5;D)a=int(i);(49)若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A)0B)0.5C)1D)2(50)设有intx=11;则表达式(x++*1/3)的值是A)3B)4C)11D)12(51)下列程序的输出结果是A)3B)3.2C)0D)3.07main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf(%d\n,d*y);}(52)下列变量定义中合法的是A)short_a=1-.le-1;B)doubleb=1+5e2.5;C)longdo=0xfdaL;D)float2_and=1-e-3;(53)以下选项中属于C语言的数据类型是A)复数型B)逻辑型C)双精度型D)集合型(62)C语言提供的合法的数据类型关键字是A)DoubleB)shortC)integerD)Char(73)C语言程序的基本单位是A)程序行B)语句C)函数D)字符(5)设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【5】。3第三部分顺序结构:输入与输出(1)有以下程序main(){intm,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%d\n,m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789(2)有以下程序main(){intm=0256,n=256;printf(%o%o\n,m,n);}程序运行后的输出结果是A)02560400B)0256256C)256400D)400400(5)有以下程序main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf(%d%d%3.1f%3.1f\n,a,c,f,x);}程序运行后的输出结果是A)16516.5B)1651.56.5C)1651.06.5D)2651.56.5(6)有定义语句:intx,y;,若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A)1112回车>B)11,12<回车>C=11,12<回车>D=11,<回车>12<回车>(8)若有以下程序段(n所赋的是八进制数)intm=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A)32767,32767B)32767,032767C)32767,77777D)32767,077777(9)若有以下程序段intm=0xabc,n=0xabc;m-=n;printf(%X\n,m);执行后输出结果是A)0X0B)0x0C)0D)0XABC(11)设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是A)printf(“x=%d\n”,x);B)printf(“x=%ld\n”,x);C)printf(“x=%8dL\n”,x);D)printf(“x=%LD\n”,x);(12)以下程序段的输出结果是inta=1234;printf(%2d\n,a);A)12B)34C)1234D)提示出错、无结果(18)以下程序的输出结果是A)17,021,0x11B)17,17,17B)17,0x11,021D)17,21,11main(){intk=17;printf(%d,%o,%x\n,k,k,k);}(23)请读程序:#includestdio.hmain(){inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);4printf(\na=%d,b=%f,c=%f\n,a,b,c);}若运行时从键盘上输入9876543210CR(CR表示回车),则上面程序的输出结果是A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.0(25)以下程序的输出结果是【25】。#includestdio.hmain(){inta=2,c=5;printf(a=%%d,b=%%d\n,a,c);}A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d(8)若有程序main(){inti,j;scanf(i=%d,j=%d;&i,&j);printf(i=%d,j=%d\n,i,j);}要求给i赋10,给j赋20,则应该从键盘输入【8】。(14)若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【14】。intb,c;floata;scanf(%f,%d,c=%d,&a,&b,&c);(15)若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是【15】。inta,b;scanf(a=%d,b=%d,&a,&b);第四部分选择结构(3)设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a==1)&&(!b==0)B)(ab)&&!c||1C)a&&bD)a||(b+b)&&(c-a)(4)设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if(ab)if(c==d)y=0;elsey=1;该语句所表示的含义是(6)有以下程序main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(%d%d%d\n,i,j,k);}程序运行后的输出结果是A)123B)234C)223D)233(8)有以下程序main(){inta=3,b=4,c=5,d=2;if(ab)if(bc)printf(%d,d+++1);elseprintf(%d,++d+1);printf(%d\n,d);}程序运行后的输出结果是A)2B)3C)43D)44(10)以下4个选项中,不能看作一条语句的是A){;}5B)a=0,b=0,c=0;C)if(a0);D)if(b==0)m=1;n=2;(11)以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是A)if((aB)&&(bC))k=1;B)if((aB)||(bC))k=1elsek=0;C)if(a=B)k=0;D)if(aB)k=1;elseif(b=C)k=1;elseif(bC)k=1;elsek=0;(12)有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=ba)||(m=ab);printf(%d,%d\n,k,m);}程序运行后的输出结果是A)0,0B)0,1C)1,0D)1,1(15)有以下程序main(){inta=5,b=4,c=3,d=2;if(abc)printf(%d\n,d);elseif((c-1=d)==1)printf(%d\n,d+1);elseprintf(%d\n,d+2)}执行后输出结果是A)2B)3C)4D)编译时有错,无结果(16)已有定义:intx=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是A)6B)0C)2D)1(17)有一函数,,以下程序段中不能根据x值正确计算出y值的是A)if(x0)y=1;B)y=0;elseif(x==0)y=0;if(x0)y=1;elsey=-1;elseif(x0)y=-1;C)y=0;D)if(x=0)if(x=0);if(x0)y=1;if(x0)y=1;elsey=0;elsey=-1;elsey=-1;(18)有以下程序ma
本文标题:C语言理论基础试题
链接地址:https://www.777doc.com/doc-2908068 .html