C程序设计专项练习题.docx
- 文档编号:6429959
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:45
- 大小:45.95KB
C程序设计专项练习题.docx
《C程序设计专项练习题.docx》由会员分享,可在线阅读,更多相关《C程序设计专项练习题.docx(45页珍藏版)》请在冰豆网上搜索。
C程序设计专项练习题
一、C语言概述
一、单选题
1-1.以下______不是C语言的特点。
A.语言的表达能力强B.语法定义严格C.数据结构系统化D.控制流程结构化
1-2.C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下选项中可以不在该环境下进行的是______。
A.编辑和编译B.编译和连接C.连接和运行D.编辑和运行
1-3.以下______不是二进制代码文件。
A.标准库文件B.目标文件C.源程序文件D.可执行文件
1-4.下面各选项组中,均属于C语言关键字的一组是______。
A.auto,enum,includeB.switch,typedef,continue
C.signed,union,scanfD.if,struct,type
1-5下面四组字符串中,都可以用作C语言程标识符的是______。
A.print B.I\am C.sign D.if
_maf scanf 3mf ty_pe
mx_2d mx_ a.f x1#
aMb6 AMB A&B 5XY
1-6.以下不属于流程控制语句的是______。
A.表达式语句B.选择语句C.循环语句D.转移语句
1-7.下面描述中,不正确的是______。
A.C程序的函数体由一系列语句和注释组成。
B.注释内容不能单独写在一行上。
C.C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明;
D.scanf和printf是标准库函数而不是输入和输出语句。
1-8.下面描述中,正确的是______。
A.主函数中的花括号必须有,而子函数中的花括号是可有可无的。
B.一个C程序行只能写一个语句。
C.主函数是程序启动时唯一的入口。
D.函数体包含了函数说明部分。
二、填空题
1-9.一个完整的C程序至少要有一个_______函数。
1-10.标准库函数不是C语言本身的组成部分,它是由_______提供的功能函数。
1-11.C程序是以______为基本单位,整个程序由______组成。
1-12.常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和_______函数等几个大类。
1-13.标准库函数存放在_______文件中。
1-14.目标程序文件的扩展名是______。
1-15.程序连接过程是将目标程序、______或其他目标程序连接装配成可执行文件。
1-16.因为源程序是______类型的文件,所以它可以用具有文本编辑功能的任何编辑程序完成编辑。
三、应用题
1-17.你认为C语言的主要特点和用途是什么?
它和其它高级语言有什么不同?
1-18.C语言以函数为程序的基本单位,它有什么好处?
1-19.C语言程序结构的特点是什么?
由哪些基本部分组成?
1-20.C语言标识符的作用是什么?
命名规则是什么?
与关键字有何区别?
1-21.指出下列符号中哪些是C语言标识符?
哪些是关键字?
哪些既非标识符亦非关键字?
struau_to_autosizeof3idfilem_i_n
-mincall..menuhelloABCSIN90n*mx.y
x1234untilcos2x12341234hellos+3s_3
1-22.为什么可以称C为"中级语言"?
二、数据类型与运算规则
一、单选题
2-1.C语言中字符型(char)数据在内存中的存储形式是______。
A.原码 B.补码 C.反码 D.ASCII码
2-2.运算符有优先级,在C语言中关于运算符优先级的正确叙述是______。
A.逻辑运算符高于算术运算符,算术运算符高于关系运算符
B.算术运算符高于关系运算符,关系运算符高于逻辑运算符
C.算术运算符高于逻辑运算符,逻辑运算符高于关系运算符
D.关系运算符高于逻辑运算符,逻辑运算符高于算术运算符
2-3.C语言并不是非常严格的语言,在以下关于C语言的不严格的叙述中,错误的说法是______。
A.任何不同数据类型都不可以同用
B.有些不同类型的变量可以在一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D.同一个运算符号在不同的场合可以有不同的含义
2-4.以下选项中属于C语言的数据类型是______。
A.复数型 B.逻辑型 C.双精度型 D.集合型
2-5在C语言中,int、char和short三种类型数据所占用的内存______。
A.均为2个字节 B.由用户自己定义
C.由所用机器的机器字长决定 D.是任意的
2-6.下列常数中不能作为C的常量的是______。
A.0xA5 B.2.5e-2 C.3e2 D.0582
2-7.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是______。
A.0至255 B.0至65535 C.-256至255 D.-32768至32767
2-8.在C语言中,数字029是一个______。
A.八进制数 B.十六进制数 C.十进制数 D.非法数
2-9.下列可以正确表示字符型常数的是______。
A."a" B.'\t' C."\n" D.297
2-10.以下错误的转义字符是______。
A.'\\' B.'\'' C.'\81' D.'\0'
2-11.C语言中整数-8在内存中的存储形式是______。
A.1111111111111000 B.1000000000001000
C.0000000000001000 D.1111111111110111
2-12.已知inti;floatf;正确的语句是______。
A.(intf)%i B.int(f)%i C.int(f%i) D.(int)f%i
2-13.已知:
chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是______。
A.int B.char C.float D.double
2-14.已知inti,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。
A.6 B.12 C.30 D.36
2-15.已知inti=5,j=5;执行语句j+=++i;后j的值是______。
A.10 B.11 C.12 D.A,B,C答案都不对
2-16.字符串"\\\22a,0\n"的长度是______。
A.8 B.7 C.6 D.5
2-17.已知:
charc='A';inti=1,j;执行语句j=!
c&&i++;则i和j的值是______。
A.1,1 B.1,0 C.2,1 D.2,0
2-18.已知:
intx=1,y=2,z;则执行:
z=x>y?
++x:
++y;则z的值为______。
A.1 B.2 C.3 D.4
2-19.为求出s=10!
的值,则变量s的类型应当为______。
A.int B.unsiged C.long D.以上三种类型均可
2-20.已知:
floatx=1,y=2,z; 则:
z=++x*y++的结果为______。
A.z=4 B.z=2 C.z=6 D.表达式是错误的
2-21.已知"inta=4,b=5,c;",则执行表达式"c=a=a>b"后变量a的值为______。
A.0 B.1 C.4 D.5
2-22.已知:
charw;intx;floaty;doublez;则表达式w*x+z-y结果的类型是______。
A.float B.Char C.int D.double
2-23.选出使变量i的运行结果为4的表达式______。
A.inti=0,j=0; B.inti=1,j=0;
(i=3,(j++)+i); j=i=((i=3)*2);
C.inti=0,j=1; D.inti=1,j=1;
(j==1)?
(i=1):
(i=3); i+=j+=2;
2-24.已知:
intx;则使用逗号运算的表达式"(x=4*5,x*5),x+25"的结果为①,变量x的值为②。
①A.20 B.100 C.表达式不合法 D.45
②A.20 B.100 C.125 D.45
2-26.执行下面语句后x的值为______。
inta=14,b=15,x;charc='A';x=((a&b)&&(c<'a'));
A.TRUE B.FALSE C.0 D.1
2-27.若定义了intx;则将x强制转化成双精度类型应该写成______。
A.(double)x B.x(double) C.double(x) D.(x)double
2-28.要判断char型变量m是否是数字字符,可以使用下列表达式______。
A.0<=m&&m<=9 B.'0'<=m&&m<='9'
C."0"<=m&&m<="9" D.前面三个答案均是错误的
二、填空题
2-29.负数在计算机中是以_______形式表示。
2-30.双精度型实数的表示范围是_______,其有效位是_______。
2-31.关系表达式的运算结果是______值。
2-32.逻辑运算符!
是_______运算符,其结合性是由_______。
2-33.表达式的运算对象可以是常数、变量和_______。
2-34.已知charc;表达式(c<=57||c>=65&&c<=90||c>=97&&c<=122)&&c==27的值为1,则变量c的值可以是_______。
*2-35.已知:
a=15,b=240;则表达式(a&b)&b||b的结果为_______。
2-36.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是_______。
#include
main()
{charcl='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
三、应用题
2-37.下面程序的输出是_______。
main()
{intx=10,y=10;printf("%d%d\n",x--,--y);
}
2-38.分析下面程序执行后的结果。
main()
{inta=3,b=7;
printf("%d\n",a+++++b);/*①*/
printf("%d\n",b%a);/*②*/
printf("%d\n',!
a>b);/*③*/
printf("%d\n",a+b);/*④*/
printf("%d\n",a&&b);/*⑤*/
}
2-39.在C语言中,怎样区分求负与减法运算?
怎样区分取地址运算和按位与运算?
三、顺序结构的程序设计
一、单选题
3-1.已知:
chara;intb;floatc;doubled;则计算表达式a*c+c-d之后,结果的数据类型______。
A.char B.int C.float D.double
3-2.以下选项中不是C语句的是______。
A.{inti;i++;printf("%d\n",i);} B.; C.a=5,c=10 D.{;}
3-3.以下合法的C语句是______。
A.{a=b}; B.k=int(a+b); C.k=a+b=c; D.--i;
3-4.执行以下程序段后,c3的值是______。
intc1=1,c2=2,c3;
c3=c1/c2;
A.0 B.1/2 C.0.5 D.1
3-5.若inta,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);
3-6.若floata,b,c;要通过语句:
scanf("%f%f%f",&a,&b,&c);分别为a,b,c输入10,22,33。
以下不正确的输入形式是______。
A.10 B.10.0,22.0,33.0 C.10.0 D.1022
22 22.033.0 33
33
3-7.若在键盘上输入:
283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是______。
A.scanf("%f",&c);B.scanf("%8.4f",&c);C.scanf("%6.2f",&c);D.scanf("%8",&c);
3-8.执行语句:
printf("|%10.5f|\n",12345.678);的输出是______。
A.|2345.67800| B.|12345.6780| C.|12345.67800| D.|12345.678|
3-9.若有以下程序段,其输出结果是______。
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
A.3,0,-10 B.0,0,5 C.-10,3,-10 D.3,0,3
3-10.若a为int类型,且a=125,执行下列语句后的输出是______。
printf("%d,%o,%x\n",a,a+1,a+2)
A.125,175,7D B.125,176,7F C.125,176,7D D.125,175,2F
二、填空题
3-11.{a=3;c+=a-b;}在语法上被认为是___条语句。
空语句的形式是_____。
3-12.若floatx;以下程序段的输出结果是_________。
x=5.16894;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
3-13.以下程序段中输出语句执行后的输出结果依次是__________、__________和___________。
inti=-200,j=2500;
printf("
(1)%d%d",i,j);
printf("
(2)i=%d,j=%d\n",i,j);
printf("(3)i=%d\nj=%d\n",i,j);
3-14.当运行以下程序时,在键盘上从第一列开始输入9876543210↙(此处↙代表回车),则程序的输出结果是___________。
main()
{inta;floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
3-15.以下程序段,要求通过scanf函数给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式______________、______________和_____________。
intk;floata;doublex;
scanf("%d%f%lf",&k,&a,&x);
pirntf("k=%d,a=%f,x=%f\n",k,a,x);
3-16.执行下列程序段后,输出结果是_____________。
inta,b,c;
a=b=c=0;
c=(a-=a-3),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
3-17.下面程序的输出结果是_____________。
main()
{intx=10,y=3,z;
printf("%d\n",z=(x%y,x/y));
}
3-18.若doublea,b,c;要求为a、b、c分别输入10、20、30。
输入序列为:
(□表示空格)
□10.0□□20.0□□30.0↙,则正确的输入语句是_____________________________。
3-19.下面程序的输出结果是______________。
main()
{doublea;floatb;intc;
c=b=a=40/3;
printf("%d%f%f\n",c,b,a);
}
3-20.若有inta=10,b=20,c=30;则能使a和c的值互换的语句是_____________________。
三、编程题
3-21.编写程序,输出如下信息:
***************************
verygood!
***************************
3-22.编写程序,输入9时23分并把它化成分钟后输出。
(从零点整开始计算)。
3-23.编写程序,分别转换摄氏温度-100C、00C、150C、340C为华氏温度。
摄氏温度与华氏温度满足下列关系式(C表示摄氏温度,F表示华氏温度):
C=(5/9)(F-32)
3-24.设圆半径为5,编写程序,求圆的周长和面积。
3-25.编写程序,输入三角形的3个边长A、B、C,求三角形的面积SS。
3-26.设a=3,b=4,c=5,d=1.2,e=2.23,f=-43.56,编写程序,使程序输出为:
a=□□3,b=4□□□,c=**5
d=1.2
e=□□2.23
f=-43.5600□□**
3-27.编写程序,读入三个整数给a、b、c,然后交换其中的数,使a存放b的值,b存放c的值,c存放a的值。
3-28.编写程序,输入三个数a,b,c,求它们的平均值。
并按如下形式输出:
averageof**、**and**is**.**
其中,三个**依次表示a,b,c的值,**.**表示a,b,c的平均值。
3-29执行下列程序,按指定方式输入(□表示空格),能否得到指定的输出结果?
若不能,请修改程序,使之能得到指定的输出结果。
输入:
2□3□4↙
输出:
a=2,b=3,c=4
x=6,y=24
程序:
main()
{inta,b,c,x,y;
scanf("%d,%d,%d",a,b,c);
x=a*b;y=x*c;
printf("%d%d%d",a,b,c);
printf("x=%f\n",x,"y=%f\n",y);
}
四、选择结构的程序设计
一、单选题
4-1.if语句的控制条件______。
A.只能用关系表达式 B.只能用关系表达式或逻辑表达式
C.只能用逻辑表达式 D.可以用任何表达式
4-2.以下程序的输出结果是______。
main()
{floatx=2,y;
if(x<0)y=0;
elseif(x<5&&!
x)y=1/(x+2);
elseif(x<10)y=1/x;
elsey=10;
printf("%f\n",y);
}
A.0.000000 B.0.250000 C.0.500000 D.10.000000
4-3.执行以下程序段后,a,b,c的值分别是______。
inta,b=100,c,x=10,y=9;
a=(--x==y++)?
--x:
++y;
if(x<9)b=x++;c=y;
A.9,9,9 B.8,8,10 C.9,10,9 D.1,11,10
4-4.执行下列程序段后,x、y和z的值分别是______。
intx=10,y=20,z=30;
if(x>y)z=x;x=y;y=z;
A.10,20,30 B.20,30,30 C.20,30,10 D.20,30,20
4-5.以下程序的输出结果是______。
main()
{intw=4,x=3,y=2,z=1;
if(x>y&&!
(z==w))printf("%d\n",(w w: z z: x)); elseprintf("%d\n",(w>x? w: z>y? z: x)); } A.1 B.2 C.3 D.4 4-6.下面的程序片段所表示的数学函数关系是______。 y=-1; if(x! =0){if(x>0)y=1;} elsey=0; A.y=-1(x<0) B.y=1(x<0) y=0(x=0) y=-1(x=0) y=1(x>0) y=0(x>0) C.y=0(x<0) D.y=-1(x<0) y=-1(x=0) y=1(x=0) y=1(x>0) y=0(x>0) 4-7.若执行以下程序时从键盘上输入3□4,则输出结果是______(□表示空格)。 main() {inta,b,s; scanf("%d%d",&a,&b); s=a; if(a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 专项 练习题