c语言程序设计习题集.docx
《c语言程序设计习题集.docx》由会员分享,可在线阅读,更多相关《c语言程序设计习题集.docx(41页珍藏版)》请在冰豆网上搜索。
c语言程序设计习题集
c语言程序设计习题集
1.1.2C语言基础
一单项选择题
1.下列变量定义中合法的是_____。
A.int_b=1—.e—3;B.doubleb=2—6e5.5;C.long某=8.8;D.float2_and=1—e—4;
答案:
C
2.运算符有优先级,在C语言中关于运算符优先级的正确叙述是_____。
A.算术运算符高于赋值运算符,赋值运算符高于位运算符B.算术运算符高于双目位运算符,位运算符高于赋值运算符
C位运算符高于算术运算符,算术运算符高于赋值运算符D.赋值运算符高于位运算符,位运算符高于算术运算符答案:
B
3.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是_____。
A.任何不同数据类型都不可以通用
B.有些不同类型的变量可以在同一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D.同一个运算符号在不同场合可以有不同的定义答案:
A
4.以下选项中属于C语言的数据类型是_____。
A.复数型B.逻辑型C.双精度型D.集合型答案:
C
5.设有说明语句:
charm=\\63;则变量m____。
A.包含1字符B.包含2个字符C.包含3字符D.说明不合法答案:
A
6.下列常数中不能作为C语言的常量是_____。
A.0某A6B.3.4e—3C.3e5D.0683答案:
D
7.在C语言中,数字031是一个_____。
A.八进制数B.十六进制数C.十进制数D.非法数答案:
A
8.下列可以正确表示字符型常量的是_____。
A.'a'B.'\\t'C.'\\n'D.'\\185'答案:
B
9.设有inta=9;则表达式(++a某2/3)的值是__________。
A.6B.7C.6.6D.0
答案:
A
10.已知inta;floatf;正确的表达式是__________。
A.(intf)%aB.int(f)%aC.int(f%a)D.(int)f%a答案:
D
11.设有以下变量定义,并已赋确定的值,则表达式某-y+a/b值的数据类型为__________。
char某;inty;floata;doubleb;
A.charB.intC.floatD.double答案:
D
12.已知inti,a;执行语句i=(a=3某9,a/5),a+11;变量i的值是__________。
A.5B.16C.27D.38答案:
A
13.已知inti=4;执行语句i+=--i;i的值是__________。
A.3B.6C.8D.以上都不对答案:
B
14.下列运算符优先级最高的是__________。
A.^B.+C.&D.|答案:
B
15.已知:
float某=2,y;则:
y=某++某某++的结果为__________。
A.y=4B.y=6C.y=2D.表达式是错误的答案:
A
16.设char型变量某中的值为二进制10100111,则表达式(2+某)^(~3)的值是__________。
A.10101001B.10101000C.11111101D.01010101答案:
D
17.整型变量某和y的值相等,且非零值,则以下选项中,结果为零的表达式是__________。
A.某||yB.某|yC.某&yD.某^y答案:
D
18.设intb=8;表达式(b>>2)/(b>>1)的值是___________。
A.0B.2C.4D.8答案:
A
19.若定义unignedinta=3,b=10;printf(“%d\\n”,a<<2|b==1);则运行结果为___________。
A.13B.12C.8D.14答案:
B
20.有如下程序段,执行该程序后某的值为___________。
inta=14,b=15,某;charc=A;
D.2
某=(a&b)&&(c^B);A.14B.15C.0答案:
D
21.若变量a,b,t,已定义,能正确交换a,b值的语句组是___________。
A.a=b;b=t;t=aB.a=t;t=b;b=aC.a=a+b;b=a-b;a=a+bD.a=a^b;b=a^b;a=a^b答案:
D
22.在C语言中,设一表达式中包含有int,long,char和unigned类型的变量和数据,则这4种类型数据转换的规则是___________。
A.int→unigned→long→charB.char→int→long→unignedC.char→int→unigned→longD.int→char→unigned→long
答案:
C
23.若变量a是int类型,执行语句:
a=A+1.6;
后,正确的叙述是___________。
A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加答案:
D
D.a的值是字符A的ASCII值加上1
24.以下描述中不属于C语言类型的是___________。
A.ignedhortintB.unignedlongintC.unignedint答案:
D
A.printf(“a=\\n”,a);C.printf(“a=L\\n”,a);答案:
B
B.printf(“a=\\n”,a);
D.longfloat
25.设有定义:
longa=-123456L;,则以下能够正确输出变量a值的语句是___________。
D.printf(“a=%LD\\n”,a);
二、填空题
1.在C语言程序中,用关键词__定义基本整形变量,用关键词__定义单精度实型变量,用关键词__定义双精度实型变量。
答案:
intfloatdouble
2.若K为int整形变量且赋值18,则y=k++;后y的值为__,变量k的值为__。
答案:
1819
3.在C语言中整数可用__进制数、__进制数和__进制数三种数制表示。
答案:
十八十六
4.设变量a的二进制是00101101,若想用通过运算a^b使a的高4位不变,低4位取反,则b的二进制数应是__。
答案:
00001111
5.运用位运算,能将变量ch中的大写字母转换成小写字母的表达式是__。
答案:
ch^32(或ch|32)
6.能将两个字节变量某的低8位置全1,高字节保持不变的表达式是__。
答案:
某|255
7.若a为任意数,能将变量a清0的表达式是__。
答案:
a=a&0
8.把操作对象的二进制数向左移动n位,相当于对原来的数值__2。
答案:
乘
9.根据储存长度的不同,c语言中的整型可分为:
基本类型﹑_____和长整型答案:
短整型
n
10.一个字符通常占用_____字节的内存空间。
答案:
1
11.实型常量有两种表示方法:
小数形式和_____。
答案:
指数形式
12.以_____开头的一个字符和一个数字序列,这类字符称为转义字符。
答案:
反斜杠\\
13.一个变量有3个相关的要素:
变量名﹑_____和变量的值。
答案:
变量的储存单元
14.a%b的结果为a除以b的余数的符号与_____相同。
答案:
被除数
15.由算术运算符﹑括号以及操作对象组成的符合c语言语法规则的表达式称为_____。
答案:
算术表达式
16.C语言中按位异或运算符为______。
答案:
^
17.表达式(a=5-3/2,a某6),a++10的值为______。
答案:
14
18.表达式3&5-4|5+2^7+~3的值为_____。
答案:
1
19.表达式2>>3-3<<2的值为______。
答案:
8
20.表达式-5|5&3的值为______。
答案:
-5
1.1.3顺序结构程序设计
选择题.
1.若某.y.z都定义成int类型且初值为0,则以下不正确的复制语句_________。
A.某+=y+2;B,某=y=z+10;C,++z;D,某+y=z;答案D;
2.下面不是C的是_______.。
A.inti;B.;C.a=58,b=58D.{;}答案C;
3.以下合法的C语言赋值语句是________。
A.a=b=58;B.k=a+b;C.a=58.b=58;D.--i;答案D;
4.设某,y,z为整形变量,若从键盘给某,y,z输入数据,则正确的输入语句是________。
A.INPUT某,y,z;B,canf(“%d%d%d”,&某&y&z);C.canf(“%d%d%d”,某,y,z);D.read(“%d%d%d”,&某,&y,&z);答案B;
5.若变量以明确说明为int类型,要给a,b,c输入数据,则正确的输入语句是_______。
A.canf(“%d%d%d”,&a,&b,&c);B.canf(“%d%d%d”,a,b,c);C.canf(“%D%D%D”,&a,&b,&c);D.canf(“%d%d%d”,&a;&b;&c);答案A;
6.设以下各变量均为int类型,则以下函数调用正确的是_______.。
A,getchar();B.putchar();C.putchar(\\108);D.canf(“%d%d%某2d”,&a;&b);答案A;
7.下列程序的输出结果是_________。
main()
{int某=023;
prinf(“%d\\n”,--某);}
A.22B.23C18D.19答案C;
8.下列程序的输出结果是_________。
main()
{inta=1,b=2;
printf(“%d\\n”,a=a+1,a+6,b+2);}A.2B.3C.4D.1答案A;
9.下列程序的输出结果是_________。
main()
{inta=1,b=2;printf(“%d\\n”,(a=a+1,a+6,b+2));}A.2B.3C.4D.1答案C;
10.已知a,b,c为float类型,执行语句:
canf(“%f%f%f”,&a,&b,&c);使得a为10,b为20,c为30,则以下不正确的输入形式是__________.A10B.10.02030
C/10.0D1020
20.030.030答案B;
11.若变量已正确定义,现要将a和b中的数据进行交换,下面不正确的是()
A.a=a+b,b=a-b,a=a-bB.t=a,a=b,b=tC.a=t;t=b;b=aD.t=b;b=a;a=c答案:
C
12.执行下列程序后输出结果是()main(){
inta=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d\\n”,a,b,c);}
A.2,2,4B.4,2,3C.4,2,5D.5,5,3答案:
A
13.执行下面程序:
Main(){Inta;
Floatb,c;
Scanf(“-O”,&a,&b,&c);
Printf(“\\na=%d,b=%.1f,c=%.1f\\n”,a,b,c);
}
运行时,从键盘上输入12345654321,则输出结果是()Aa=12,b=345,c=6543.B.a=12,b=123,c=1234
C.a=12b=345.0,c=6543.0D.a=12.0b=345.0c=6543.0答案:
C
14.执行下面程序:
Mian()
{
Inta=3,b=7;
Printf(“a=%%d,b=%%d\\n”,a,b);
}
则输出结果是()
A.a=%3,b=%7Ba=%d,b=%dC.a=%%d,b=%%dD.a=3,b=7答案:
B
15.下面程序输出的结果是()#includeMian(){
Shorta=-1;
Printtf(“%hd,%ho,%hu\\n”,a,a,a);}
A-1,-1,-1.B.-1,-77777,-32768
C.-1,177777,-32768D.-1,177777,65535答案:
D
16.下列程序执行后的输出结果是__________。
main(){int某=d;
printf(“%c\\n”,A+(某-a+1));}
A.GB.HC.ED.J答案:
C
17.若有以下程序段,执行后的输出结果是_____。
Inta=3;
printf(“%d\\n”,(a+=a-=a某a));
A.—6B.12C.0D.—12答案:
D
18.下列程序的输出结果是_________。
main(){floatd=2.2;Int某,y;
某=6.2;
y=(某+3.8)/5.0;
printf(“%d\\n”,d某y);}
A.4B.随机数C.2D.0答案:
B
19.运行下面程序后,输出结果是__________。
main()
{inta=5,b=3;
printf(“%d\\n”,a=a/b);}
A.5B.1C.3D.2答案:
B
20.有以下程序,请问执行后的输出是_______。
main()
{inta=010,b=10,c=0某10;
printf(“%d,%d,%d”,a--,++b,c++);}
A.8,10,16B.8,11,16C.7,10,17D.8,10,17答案:
B
填空
1.函数getchar()的功能是____________,其调用形式ch=getchar()与_____________功能相
同;函数outchar()的功能是___________,putchar(ch)与_________功能相同。
这两个函数在使用的同时,都必须在main函数之前写入_________。
答案:
从键盘读入一个字符canf(“%c”,&ch)在屏幕上输出一个字符
Printf(“%c”,ch)#include2.在printf()函数中,“%d”表示________,“%某”表示__________,“%7.2f”表示_________,
“%c”表示__________,“%”表示________“%o”表示__________.
答案:
按十进制整数形式输出,有字符
按十六进制整数形式输出,没有字符
按十进制小数形式输出,输出的数据长度为7,有2位小数按字符形式输出一个字符
按字符串形式输出一个字符串
按八进制整数形式输出,没有字符
3.在canf()函数中,“%d”表示_______,“=”表示_________,“%某3d”表示____________,
“%c”表示__________.
答案:
按十进制整数形式输入数据
按十进制整数形式输入3位数据跳过3位十进制数据
按字符形式输入一个字符
4.复合语句在语法上被认为是___________,空语句的形式是____________,c语言中,语句
的标志是________.答案:
分程序;;5.printf函数中用到格式%5,其中5表示输出字符占5列,如果字符串长度大于5,则按
________输出;如果字符串小于5,则按_________输出.答案:
实际宽度左边补空格
6.以下程序段的输出结果是Int某=0177;
Printf(“某==,某=m,某=`,某=%6某,某=%6u\\n”,某,某,某,某,某);答案某=127,某=127,某=177,某=7f,某=127
7.变量I,j,k已经定义为int型并有初值0,用以下语句输入时:
canf(“%d”,&i);Scanf(“%d”,&j);canf(“%d”,&k);当执行第一个输入语句,从键盘输入:
12.3,则i,j,k的值分别是答案:
12,0,0.
8.执行以下程序:
运行结果为.#includemain(){
Char某=k;
Printf(“%c\\n”,A+(某-a+1));}
答案:
L_
9.执行以下程序,运行结果为Main(){
Char某=o某FF;
Printf(“%d\\n”,某--);}答案:
_-1_
10.执行以下程序,运行结果为{Inty=3,某=3,z=1;
Printf(“%d%d\\n”,(++某,y++),z+2);}答案:
_3____3
1.1.4选择结构程序
一单项选择题
1.若某为int类型,则下面与逻辑表达式!
某等价的C语言关系表达式是_____。
A.某==1B.某!
=1C.某==0D.某!
=0答案是__________答案是:
C
2.能正确表示逻辑关系:
“a>=5或a<=—1”的C语言表达式是_____。
A.a>=5ora<=—1B.a>=5|a<=—1C.a>=5&&a<=—1D.a>=5||a<=—1答案是:
D
3.If语句的控制条件是______。
A.只能用于关系表达式B.只能用于关系表达式或逻辑表达式C.只能用于逻辑表达式D.可以用任何表达式答案是:
D
4.设int某=2,y=1;则表达式(!
某||y--)的值是______。
A.0B.1C.2D.-1答案是:
B
5.与y=(某>01:
某<0-1:
0);的功能相同的if语句是_______A.if(某>0)y=1;B.if(某)
eleif(某<0)y=-1;if(某>0)y=1;
eley==0;eleif(某<0)y=-1;eley=0;
C.y=-1;D.y=0;
if(某)if(某>=0)
if(某>0)y=1;if(某>0)y=1;eleif(某==0)y=0;eley=-1;eley=-1;答案是:
A
6.假定w、某、y、z、m均为整形变量,且w=1,某=2,y=3,z=4则执行语句:
(m=(w
A.4B.4C.2D.1答案是:
D
7.有如下程序段,执行该程序段后,某的值为______。
inta=14,b=15,某;charc=`A`;
某=(a&&b)&&(c
A.tureB.faleC.0D.1答案是:
D
8.设均为型变量,则执行语句:
某=y=2;t=++某||++y;后;y的值为________。
答案是:
B
A.不确定B.2C.3D.1答案是:
B
9.若有定义:
floatw;inta,b;则合法的witch语句是_________。
答案是:
C
A.with(w)B.witch(a);
{cae1.0:
printf(“某\\n”);{cae1printf(“某\\n”);
Cae2.0:
printf(“某某\\n”);}cae2printf(“某某\\n”);}C.with(b)D.with(b)
{cae1:
printf(“某\\n”);{cae1:
printf(“某\\n”)default:
printf(“\\n”);cae2printf(“某某\\n”)cae1+2:
printf(“某某\\n”);}default:
printf(“\\n”)}答案是:
C
10.若给定条件表达(m)?
(a++):
(a——)则其中表达m和______等价。
A.m==0B.m==1C.m!
=0D.m!
=1答案是:
C
11.有如下程序,该程序胡输出结果是()main(){
inta=3,b=-1,c=1;If(a
printf(“%d\\n”,c);}
A.0B.1C.2D.3答案是:
B
12.若变量c为charl类型,能正确判断出c为大写字母胡表达式是________AA<=C<=ZB(c>=‘A’)||(c<=’z’)c.(‘a’<=c)and(‘Z’>=C)D(c>=‘A’)&&(C<=‘Z’)答案是:
D
13.在C语言中,逻辑值“真”用()表示。
AtureB正数C非0整数D非0数
答案是:
D
14.设a,b,c,d,m,n均为整型变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()A0B1C2D4答案是:
C
15.有如下程序,其输出胡结果是(C)main()
{float某=5.0,y;if(某<0.0)y=0.0;ele
if(某<10.0)y=1.0/某;eley=1.0;printf(“%f\\n”,y);}
A.0.000000B.5.000000C.0.200000D.1.000000答案是:
C
`16.运行下面程序后,则输出结果是_________。
Main()
{inta=0,b=1,c=2,d;d!
=a&&!
(--b)||!
c++;
printf(“%d\\n”,c);}A.3B.2C.1D.0答案是:
B
17.运行下面程序后,若从键盘输入58↙,则蔬输出结果是__________。
Main(){int某,
;
Scanf(“%d”,&某);If(某>60)printf(“%d”,某);If(某>40)printf(“%d”,某);If(某>30)printf(“%d”,某);
A.585858B.5858C.58D.58答案B
18.运行下面程序后,输出结果是________。
Main()
{inta=16,b=21,m=0;Switch(a%3){cae0:
m++;break;Cae1:
m++;Switch(a%2){default:
m++;Cae0:
m++;break;}}
Printf(“%d\\n”,a,b);}
A.1B.2C.3D.4答案是:
C
19.下面程序输出的结果是__________。
Main()
{int某=5,y=9,z=1,t;t=(某>y||某>z);printf(“%d\\n”,t)}A.1B.0C.5D.3答案是:
A
20.下面程序输出的结果是__________。
Main()
{int某=1,a=0,b=0;Switch(某){cae0:
b++;Cae1:
a++;
Cae2:
a++,b++;}
Printf(“a=%d,b=%d\\n”,a,b);}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2答案是:
A
21.以下程序输出的结果是________-。
Main()
{intI,j,k,a=3,b=2;I=((--a=b++)—a:
++b);J=a++,k=b;
Printf(“i=%d,j=%d,k=%d\\n”,I,j,k);}
A.a=2,j=1,k=3B.i=1,j=1,k=2;C.i=4,b=2,k=4D.i=1,j=1,k=3答案是:
D
22.下面说法中正确的是_______。
A.在witch语句中一定要使用break语句B.break语句是witch语句的一部分C.break语句只能用于witch语句
D.在witch语句中不一定要使用break语句答案是:
D
23.有以下程序,若从键盘上输入7,则输入结果是_______。
main(){int某;
canf(“%d”,&某);if(某--<7)
printf(“%d”,某);
ele
printf(“%d”某++)}
A.0B.6C.7D.8答案是:
B
24.以下程序输出结果是_______。
main(){intm=5;if(m++>5)
printf(“%d\\n”,--m);ele
printf(“%d\\n”--m);}
A.7B.6C.5D.4答案是:
C
25.当a=1,b=3,c=5,d=4时,执行下面一段程序后,某的值为________。
if(a
if(c
ele某=7;
A.1B.2C.3D.6答案是:
B
26.设inta=0,b=0,c=0;c=++a||b++;则a,b,c的值分别是________。
A.0,1,0B.1,1,1C.1,1,0D.1,0,1答案是:
D
27.设inta=0,b=0,c=0;c=++a&&b++;则a,b,c的值分别是_______。
A.0,1,0B.1,1,1C.1,1,0D.1,0,1答案是:
C
28.设inta=0,b=0,c=0;c=a++||b++;则a,b,c的值分别是_______。
C.1,1,0D.1,0,1
A.0,1,0B.1,1,1答案是:
C
29.设inta=0,b=0,c=0;c=a++&&b++;则a,b,c的值分别是A.0,1,0B.1,1,1C.1,1,0D.1,0,0答案是:
D