C语言程序设计试题.docx
《C语言程序设计试题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题.docx(45页珍藏版)》请在冰点文库上搜索。
C语言程序设计试题
C程序设计试题
(一)单项选择题
1、C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的()
A、适应性B、移植性C、兼容性D、操作性1、C语言属于()
A、机器语言B、低级语言C、中级语言D、高级语言1、以下叙述错误的是()
A、一个C程序总是从main函数开始执行的;
B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;
C、每个语句和数据定义的最后必须有一个分号;
D、C语言本身有输入输出语句。
1、C语言规定,在一个源程序中,main函数的位置()
A、必须在最开始B、必须在系统调用的库函数的后面
C、可以任意D、必须在最后
1、以下叙述中正确的是()
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C源程序经编译形成的二进制代码可以直接运行
D、C语言中的函数不可以单独进行编译
1、下列对C语言特点的描述中,错误的是()
A、C语言不是结构化程序设计语言B、C语言编程简洁明了C、C语言功能较强D、C语言移植性好1、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()
A、有零个或多个输入B、有零个或多个输出C、有穷性D、有效性
1、以下说法中正确的是()
A、C语言程序总是从第一个的函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分1、下列对C语言特点的描述中,错误的是()
A、C语言不是结构化程序设计语言B、C语言编程简洁明了
C、C语言功能较强D、C语言移植性好1、C语言程序的执行,总是起始于()
A、程序中的第一条可执行语句B、程序中的第一个函数C、main函数D、包含文件中的第一个函数1、C语言程序的注释是()
A、由"/*"开头,"*/"结尾B、由"/*"开头,"/*"结尾C、由"//"开头D、由"/*"或"//"开头1、下列说法中正确的是()
A、C语言程序书写时,不区分大小写字母
B、C语言程序书写时,一行只能够写一个语句
C、C语言程序书写时,一个语句可分成几行书写
D、C语言程序书写时,每行必须有分号
二、
2、结构化程序由三种基本结构组成,由这三种基本结构组成的算法()
A、可以完成任何复杂的任务B、只能完成部分复杂的任务
C、只能完成符合结构化的任务D、只能完成一些简单的任务2、以下叙述中正确的是()
A、用C语言实现的算法必须要有输入和输出操作
B、用C语言实现的算法可以没有输出但必须要有输入
C、用C程序实现的算法可以没有输入但必须要有输出
D、用C程序实现的算法可以既没有输入也没有输出
2、以下不是结构化程序设计方法的是()
A、循环结构B、模块结构C、顺序结构D、选择结构三、
3、若变量已正确定义,以下非法的表达式是()
A、a/=b+cB、a%(4.0)C、a=1/2*(x=y=20,x*3)D、a=b=c3、在C语言中,以下数据类型关键字不合法的是()
A、doubleB、shortC、integerD、char
3、以下叙述中正确的是()
A、a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。
B、在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式
C、执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值
改变为b的值,b的值由原值变为0
D、已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为33、正确的标识符是:
()
A、?
aB、a=2C、a.3D、a_33、以下正确的叙述是()
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误地表示
D、在C程序中,%是只能用于整数运算的运算符
3、在C语言中,字符型数据在内存中是以()形式存放的。
A、原码B、BCD码C、反码D、ASCII码3、以下选项中属于C语言的数据类型是()
A、复数型B、逻辑型C、双精度型D、集合型3、优先级最高的为()。
A、&&B、?
:
C、!
=D、||3、以下选项中,不合法常量的是()
A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e03、若x=4,则表达式x*=x+2的值为()
A、36B、24C、18D、203、以下选项中合法的字符常量是()
A、"B"B、'\010'C、68D、D3、下面不正确的字符串常量是()
2
A、'abc'B、"12'12"C、"0"D、""3、下述标识符中,()是合法的用户标识符。
A、A#CB、getchC、voidD、ab*3、下面合法的字符常量是()
A、"c"B、'\\''C、'W'D、'123'3、以下选项中正确的实型常量是()
A、0B、3.1415C、0.03x10D、.323、C语言中,下列字符常量合法的是()
A、'\t'B、"A"C、65D、A四、
4、下列不正确的转义字符是()
A、'\\'B、'\"C、'074'D、'\0'
4、以下所列的C语言常量中,错误的是()
A、0xFFB1.2e0.5C、2LD、'\72'
4、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是()
A、1B、2C、2.0D、2.54、在C语言中,int型数据在内存中是以()形式存储的。
A、原码B、补码C、ASCII码D、反码4、以下不是关键字的是()
A、continueB、charC、IfD、default4、若有说明:
chars1='\067';chars2="1";chars3='1';则()。
A、s1中包含3个字符,s2中包含1个字符,s3中包含1个字符B、s1中包含2个字符,s2中包含2个字符,s3中包含1个字符C、s1中包含1个字符,s2中无定值,说明不合法,s3中包含1个字符D、s1中包含1个字符,s2中包含1个字符,s3中无定值,说明不合法4、已知各变量的类型说明如下:
intk,a,b=1;unsignedlongw=5;则以下不符合C语言语法的表达式是()
A、k=b+2=wB、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)
4、若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()
A、2.500000B、2.750000C、3.500000D、0.0000004、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()
A、6.500000B、6C、5.500000D、6.0000004、为表示“x大于等于y,y大于等于z”,应使用C语言表达式()A、(x>=Y)&&(Y>=z)B、(x>=Y)AND(y>=z)C、(x>=Y>=z)D、(x>=Y)&(Y>=z)4、设x为int型变量,则执行:
x=10;x+=x-=x-x;语句后,x的值为()
A、10B、20C、40D、30
4、若变量c为char类型,能正确判断出c为小写字母的表达式是()A、'a'<=c<='z'B、(c>='a')||(c<='z')C、('a'<=c)and('z'>=c)D、(c>='a')&&(c<='z')4、假设所有变量均为整型,则表达式(a=2,b=5,a+b)的值是()
A、7B、8C、6D、24、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()A、-3B、9C、-12D、6
3
4、能正确表示逻辑关系:
“10?
=a?
=0”的C语言表达式是()
A、10>=a>=0B、a>=0anda<=10C、a>=0||a<=10D、a>=0&&a<=104、int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是()A、0~255B、0~65535C、-32768~32767D、-256~255五、
5、假定有变量定义:
intk=7,x=12;则值为3的表达式是()
A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)5、设整型变量a为5,则b值不为2的表达式是()
A、b=a/2B、b=6-(--a)C、b=a%2D、b=a>3?
2:
1
5、设有intx=11;则表达式(x++*1/3)的值是()
A、3B、4C、11D、125、一个C程序的执行是从()
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序的最后一个函数结束
C、本程序的main函数开始,到本程序的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
六、
6、执行下列语句:
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=%d6、以下合法的C语言赋值语句是()
A、a=b=58B、k=int(a+b);C、a=58,b=58D、--i;6、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是()
A、scanf(%f”,c)B、scanf(%8.4f”,&c);
C、scanf(%6.2f”,&c);D、scanf(%8f”,&c);
6、已定义c为字符型变量,则下列语句中正确的是()
A、c='97';B、c="97";C、c=97;D、c="a";6、以下选项中不是C语句的是()
A、{inti;i++;printf(“%d\n”,i);}B、;
C、a=5,c=10D、{;}
6、若执行以下语句:
inta;floatb,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“\na=%d,b=%f,c=%f\n”,a,b,c);在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是()
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.06、若有定义:
inta=8,b=5,C;,执行语句C=a/b+0.4;后,C的值为()
A、1.4B、1C、2.0D、26、执行以下程序段:
intx=496;printf(“*%-6d*\n”,x);的输出是()
A、*496*B、*496*C、*000496*D、输出格式不合法6、下列变量定义中合法的是()
A、short_a=1-1e-1;B、doubleb=1+5e2.5;C、longdo=0xfdaL;D、float2_and=1-e-3;6、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);
4
6、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为()
A、100765.12B、i=100,f=765.12C、100765.12D、x=100y=765.126、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是()A、a=b=c=100;B、d++;C、c+b;D、d=(c=22)-(b++);6、设有定义:
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);6、执行下列语句intx=10,y=3;printf("%d\n",y=x/y);后的输出是()
A、0B、1C、3D、不确定的值
6、执行以下程序段:
printf(“|%10.5f|\n”,12345.678);的输出是()
A、|2345.67800|B、|12345.6780|C、|12345.67800|D、|12345.678|七、
7、已定义ch为字符型变量,以下赋值语句中错误的是()
A、ch='\';B、ch=62+3;C、ch='';D、ch='\xaa';7、在下列选项中,不正确的赋值语句是()
A、++t;B、n1=(n2=(n3=0));C、k=i==j;D、a=b+c=1;7、已知i、j、k为int型变量,若从键盘输入:
1,2,3,回车,,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是()
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);
7、若有以下定义和语句:
intu=010,v=0x10,w=10;printf("%d,%d,%d\n,u,v,w);则输出结果是()A、8,16,10B、10,10,10C、8,8,10D、8,10,107、设有定义:
intx=10,y=3,z;则执行语句printf("%d\n",z=(x%y,x/y));后输出结果是()A、1B、0C、4D、3
7、若x为int型变量,则执行x=6;x+=x-=x*x后,x的值为()
A、36B、-60C、60D、-24
7、执行下列语句intk=17;printf(“%d,%o,%x\n”,k,k,k);后输出结果是()A、17,021,0x11B、17,17,17C、17,0x11,021D、17,21,117、设有定义intx=1;inty='a'<'A'?
x--:
x++;,则变量y的值是()(2分)
A、0B、2C、1D、37、设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是()
A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值
7、有以下语句intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);后,若从键盘上输入:
10A10<回车>,则输出结果是()A、10,A,10B、10,a,10C、10,a,0D、10,A,07、设有说明语句:
chara='\72';则变量a()
A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法7、执行下列语句intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);后的输出结果是()A、8,6B、8,3C、6,4D、7,47、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是()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;
5
7、若有以下定义和语句:
charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");则输出结果是A、2,MB、3,E
C、2,ED、输出项与对应的格式控制不一致,输出结果不确定7、执行下列语句:
doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);的输出结果是()
A、3B、3.2C、0D、3.077、若int类型占两个字节,则执行程序段:
inta=-1;printf(“%d,%u\n”,a,a);的输出是()A、-1,-1B、-1,32767C、-1,32768D、-1,655357、执行下列语句inta;printf("%d\n",(a=3*5,a*4,a+5));后,a的值是()
A、65B、20C、15D、10八、
8、若执行以下程序段:
inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);其输出结果是()
A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-108、有以下程序:
main(){intx=102,y=12;printf(“%2d,%2d\n”,x,y);}执行后输出结果是A、10,01B、002,12C、102,12D、02,108、若变量已正确定义,执行以下语句:
x=5.16894;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);的输出结果是()
A、输出格式说明与输出项不匹配,输出无定值B、5.17000
C、5.168000D、5.169000
8、执行下列语句intx=10,y=10;printf("%d%d\n",x--,--y);后的输出是()
A、1010B、99C、910D、1098、执行下列语句:
doubled;floatf;longL;inti;i=f=L=d=20/3;printf("%d%ld%f%f\n",i,L,f,d);
后,输出结果是(小数点后只写一位)()
A、666.06.0B、666.76.7C、666.06.7D、666.76.0九、
9、多重if_else语句嵌套使用时,寻找与else配套的if方法是()。
A、缩排位置相同的ifB、其上最近的ifC、下面最近的ifD、同行上的if9、以下不正确的if语句形式是()。
A、if(x>y&&x!
=y);B、if(x==y)x+=y;C、if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);D、if(xA、if(x>y)z=x;B、if(x==y)z=0;C、if(x!
=y)printf("%d",x)elseprintf("%d",y);D、if(x='A'&&ch<='Z')?
(ch+32):
ch的值是()。
A、AB、aC、ZD、z
9、逻辑运算符两侧运算对象的数据类型可以是()。
A、只能是0或1B、只能是0或非0正数
C、只能是整型或字符型数据D、可以是任何类型的数据
9、下述表达式中,()可以正确表示x?
0或x?
1的关系。
A、(x>=1)||(x<=0)B、x>=1|x<=0
C、x>=1&&x<=0D、(x>=1)&&(x<=0)9、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:
else子句总是与()配对。
6
A、缩排位置相同的ifB、其之前最近的if
C、其之后最近的ifD、同一行上的if
9、对if语句中表达式的类型,下面正确的描述是()。
A、必须是关系表达式B、必须是关系表达式或逻辑表达式
C、必须是关系表达式或算术表达式D、可以是任意表达式
9、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A、a<>0B、!
0C、a=0D、a
十、
10、对于条件表达式(k)?
(i++):
(i--)来说,其中的表达式k等价于()。
A、k==0B、k==1C、k!
=0D、k!
=110、以下关于运算符优先顺序的描述中正确的是()。
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
10、若运行时给变量x输入12,则执行程序intx,y;scanf("%d",&x);y=x>12?
x+10:
x-12;printf("%d\n",y);的结果是()。
A、0B、22C、12D、10
10、假设x,y,z都为整型变量,下列正确的输入语句是()。
A、INPUTx,y,z;B、scanf("%d%d%d",&x,&y,&z);
C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);10、设x,y,z,t均为int型变量,则执行语句x=y=z=1;t=++x||++y&&++z;后,t的值为()。
A、不定值B、2C、1D、0
10、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。
A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B、(x>=1)||(x<=10)||(x>=200)||(x<=210)
C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)
10、能正确表示“当x的取值在,1,100,和,200,300,范围内为真,否则为假”的表达式是()。
A、