《C语言程序设计》习题.docx
- 文档编号:8908719
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:33
- 大小:70.76KB
《C语言程序设计》习题.docx
《《C语言程序设计》习题.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》习题.docx(33页珍藏版)》请在冰点文库上搜索。
《C语言程序设计》习题
《C语言程序设计》习题
习题二
一、简答题
1.常量有哪几类?
如何使用u、l、f对它们进行修饰?
2.字符常量与字符串常量之间的区别是什么?
3.运算符&&与&、||与|、!
与~之间有什么不同?
4.表达式在计算时,其类型如何确定?
5.C语言中,如何实现类型的转换?
二、选择题
1.以下字符串可以为用户定义的标示符的是。
A.shortB.LINE5C.nextdayD._my
2.设c是字符变量,则以下表达式正确的是。
A.c=1234B.c='c'C.c="c"D.c="abcd"
3.类型修饰符unsinged不能修饰下面的类型。
A.intB.charC.longD.double
4.下列正确的字符常量是。
A.'\234'B.'\af'C."a"D.'a'
5.下列不正确的字符串常量是。
A."hello\n"B."world\0"C."hello\tworld\n"D."world"
6.表达式12+’b’-45.5f的结果是类型。
A.intB.charC.floatD.double
7.下面4个选项中,均是C语言关键字的是。
A.enum,switch,float,define
B.for,int,default,scanf
C.switch,union,auto,type
D.unsigned,double,case,if
8.以下选项中不正确的整型常量是_____。
A.12LB.-10C.1,900D.123U
9.以下选项中不正确的实型常量是。
A.0.23EB.2.3e-1C.1E3.2D.2.3e0
10.表达式______的值是0。
A.3%5B.3/5.0C.3/5D.3<5
11.若变量a、b、c已正确赋值,不符合C语言语法的表达式是。
A.a=a/7B.a=7+b-c,a++C.a+b=c+bD.(int)(12.3%3)
12.整型变量x=1,y=3,经下列计算后,x的值不等于6的是。
A.x=(x+2,x*2)B.x=x>y?
x*2:
y*2
C.x=y/2*6D.x=(y++)+(y--)
13.有如下定义:
inti=1;
longw=5;
doublex=3.4,y;
则以下符合C语言语法的表达式是。
A.i+=i*=i=34;B.w=i*3=12
C.i=x%3D.y=double(i);
14.表示关系式
的C语言表达式为。
A.x>=y>=zB.(x>=y)and(y>=x)
C.(x>=y)&&(x>=z)D.(x>=y)&&(y>=z)
15.有如下定义:
floatf=23;
intn=2,m=5;
选出合法的表达式。
A.m>>nB.f|nC.~(f*m+n)D.f&m
16.有如下定义:
enumCOLOR{RED,WHITE,GREEN=3,BLACK}c1=RED,c2=BLACK;
则下列哪些表达式有错。
A.c1=BLUEB.c1*3+5*c2C.c2=3D.c1=(enumCOLOR)4
17.有如下定义:
inti=5,j=2,k=0;
下面表达式的值为5的是。
A.i++B.++iC.i/j--D.k=k?
i:
i-j
18.下列运算符中,优先级最高的是。
A.()B.++C.&&D.=
19.表达式sizeof(“\nsum=%d\n”)的值是。
A.8B.9C.10D.11
20.表达式!
(x>0&&y>0)等价于。
A.!
(x>0)||!
(y>0)B.!
x>0||!
y>0
C.!
x>0&&!
y>0D.!
(x>0)&&!
(y>0)
三、计算下列表达式的值。
1.已知:
inta=12,n=5;
(1)a+=a
(2)a-=2(3)a*=2+6
(4)a/=a+n(5)a%=%(n%=2)(6)a+=a-=a*=a/=n
2.已知:
inti=10,j=5,k=4;
(1)(i++)-j--
(2)i+(++j)+(k++)-(--i)(3)j=i*=k%j--
3.已知:
intm=5,n=3;
(1)!
m&&n++
(2)m||n+3&&n*m(3)m=1,n=2,m>n?
++m:
++n
(4)++n,m=12,m+n(5)m!
=n>2<=m+1
4.已知:
inta=2,b=3;floatx=3.5,y=2.5;
(1)x+a%3*(int)(x+y)%2/4
(2)(float)(a+b)/2+(int)x%(int)y
5.已知:
字符'0'的ASCII码为48。
(1)('9'+4)%3+5%'5'
(2)('7'-'0')/3+4
(3)8==3<=2&5(4)6>=3+2-('1'-'7')
四、写出下面式子的C语言表示形式。
1.
2.
3.
(求平方根使用库函数sqrt())
4.
5.
6.
习题三
一、简答题
1.程序控制的基本结构有哪些?
它们如何执行?
2.C语言中,语句有哪几类?
3.C程序的基本结构是什么?
有什么特点?
4.scanf()、getchar()与gets()函数作为输入函数它们区别是什么?
5.printf()、putchar()与puts()函数作为输出函数它们有什么不同?
二、选择题
1.若有语句:
inta,b,c;
则下面输入语句正确的是。
A.scanf("%D%D%D",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);
2.以下能正确定义变量m、n,并且它们的值都为4的是。
A.intm=n=4;B.intm,n=4;
C.m=4,n=4;D.intm=4,n=4;
3.若由如下语句:
unsigneda;
floatb;
以下能正确输入数据的语句是。
A.scanf("%d%6.2f",&a,&b);B.scanf("%c%f",&a,&b);
C.scanf("%u%f",&a&b);D.scanf("%d%d",&a,&b);
4.有如下语句:
intk1,k2;
scanf("%d,%d",&k1,&k2);
要给k2、k2分别赋值12和34,从键盘输数据的格式应该是。
A.1234B.12,34
C.1234D.%12,%34
5.intm=546,n=765;
printf("m=%-6d,n=%6d",m,n);
则输出的结果是。
A.m=546,n=765B.m=546,n=765
C.m=%546,n=%765D.m=546,n=765
6.有如下程序,输入数据25,12,14↙之后,正确的输出结果是。
main()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);
}
A.x+y+z=51B.x+y+z=41C.x+y+z=60D.不确定值
7.有如下程序:
main()
{
intx;
floaty;
scanf("%3d%f",&x,&y);
printf("x=%d,y=%f\n",x,y);
}
其输入数据为12345678↙,则输出结果为。
A.x=12345,y=678B.x=123,y=45
C.x=12345,y=678.000000D.x=123,y=45.000000
8.有如下语句:
inta,b;
scanf("%*4d%2d%4d",&a,&b);
printf("a=%d,b=%d",a,b);
假如输入的数据为9876543210↙,则输出为。
A.a=9876,b=54B.a=9876,b=3210
C.a=54,b=3210D.a=98,b=7654
9.有以下语句:
charc1,c2;
c1=getchar(c1);c2=getchar(c2);
putchar(c2);putchar(c1);
若输入为:
a,b↙,则输出为。
A.a,B.a,bC.b,aD.b,
10.有定义:
longd;doublef;要正确输入,应使用的语句是。
A.scanf("%ld%lf",&d,&f);B.scanf("%ld%ld",&d,&f);
C.scanf("%ld%f",&d,&f);D.scanf("%d%lf",&d&f);
三、编程实现下列各题。
1.从键盘上输入2个整数,输出较小的数。
2.从键盘上输入一个浮点数,将其结果保留两位小数输出。
3.从键盘输入一字符,依次输出其前导字符、该字符和后续字符。
4.从键盘输入三角形三边(假定能够成三角形),求三角形的周长和面积。
已知三边求面积的公式为:
。
习题四
一、简答题
1.数组中的元素具有什么共同点?
2.在C语言中,数组下标的引用范围如何规定?
3.数组的初始化与赋值的异同。
4.一般数组与字符数组的异同。
二、选择题
1.在C语言中定义数组时,数组长度要求是。
A.整型常量B.整型表达式
C.大于0的整型常量表达式D.一般表达式
2.对于一维整型数组a,正确地说明是。
A.inta[10];B.inta(10);
C.intn=10,a[n];D.intn;
scanf("%d",&n);
inta[n];
3.若有说明:
#defineN5
floatb[N];
则对数组b中元素引用正确的是。
A.b[N]B.b[5]C.b[0]D.b(4)
4.给出以下定义:
charx[]="hello";
chary[]={'h','e','l','l','o'};
则正确的说法是。
A.数组x和y等价;B.数组x的长度大于数组y的长度;
C.数组x和数组y的长度相等;D.数组x的长度小于数组y的长度;
5.以下对二维数组正确说明的是。
A.doubled[][12];B.doubled
(2)(12);
C.doubled[2][];D.doubled[2][12];
6.定义了一个
二维整型数组a,其最后一个元素为。
A.a[3][4]B.a[2][3]C.a[3,4]D.a[2,3]
7.以下能对数组正确初始化的是。
A.inta[5]={2,3,4,5,6,1};B.inta[5]={};
C.inta[5]={2,3,4};D.inta[]={};
8.若二维数组b有m列,则在a[i][j]前面的元素个数有。
A.i*m+j-1B.i*m+jC.j*m+iD.j*m+i-1
9.以下正确定义的语句是。
A.doubled[][4]={1,2,3,4,5,6,7,8};
B.doubled[2][]={1,2,3,4};
C.charc[][3]={'x','y','z'};
D.floatf[][2]={{1,2},{3,4},{5,6,7}};
10.有如下的定义:
doubledd[][3]={1,2,3,4,5,6,7,8};
则第一维的长度为。
A.2B.3C.4D.不能确定
11.有定义:
intb[3][4]={{1,2}{3,4,5},{6,7}};
则b[2][2]的值为。
A.4B.7C.0D.5
12.下述对C语言中字符数组描述错误的是。
A.字符数组可存放字符串;
B.字符数组中的字符串可以整体输入输出;
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值;
D.对于两个字符数组中字符串得比较,可以通过库函数strcmp()实现。
三、编写程序
1.从键盘输入两个字符串,比较长短,将较长的输出,如果两个字符串长度相同,输出较大的字符串。
2.从键盘输入两个字符串s1和s2,将s2连接在s1之后,构成一个新的字符串输出。
习题五
1.根据输入的圆锥体的底面半径r和高h,计算与圆锥体的表面积和体积。
2.编程实现:
3.根据输入的整数,判断该数能否被3、5、7整除,并根据以下情况输出:
(1)只能被其中一个数整除;
(2)能同时被两个数整除;
(3)能同时被3个数整除;(4)不能被任何一个数整除;
4.根据输入的三角形三边的边长a、b、c,判断能否构成三角形。
若能,计算三角形的面积。
5.输入二次方程的三个系数m、n、k,根据系数方程有实根还是有虚根,并分别计算。
二次方程的形式为:
6.从键盘输入一个四则运算的表达式,根据表达式计算其结果并输出。
如键盘输入的是:
4+7,应输出结果11。
7.从键盘输入若干个整数,其值在1~5之间,统计每个数出现的次数。
输入数据的个数由用户确定。
8.根据输入n的值,求n!
。
9.有一序列:
2/1、3/2、5/3、8/5、13/8、21/13、……,求这个序列的前30项之和。
10.编一程序统计几个学生平均年龄和平均成绩,要求通过键盘输入每个学生的年龄和成绩,直到输入年龄为-1为止。
11.输入10个数,请输出其中的最大值、最小值,并统计整数、负数、零的个数。
12.根据输入的n,计算并输出
。
13.根据用户输入的整数,把每位上的数字转换成对应的英文。
如123,转换为onetwothree。
14.利用下面公式计算
的值:
,当
为止。
15.在1~500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数,并求出它们的和。
16.输入一字符串,以'!
'作为结束标志,统计其中的字母个数,数字个数,其他字符的个数。
17.输出下面图形:
18.编一程序绘制下图:
19.读入一个算术表达式,以“;”结束。
该表达式中只包含小括号,统计表达式中小括号的是否配对,给出信息。
如果出错,是左括号多于右括号、右括号多于右括号还是右括号先出现。
20.求一个不超过5位数字的整数其各位数字之和。
21.编写程序,从键盘输入10位同学的5门课成绩,统计每位学生的平均成绩,并按平均成绩排序输出。
22.编程求出一个
矩阵中最大及最小元素及其下标。
23.一个已经从大到小排好序的数组,根据键盘输入的选择:
1—插入数据到数组,并保持数组中的元素的大小顺序;2—删除元素,保持数组元素都在开头位置。
插入和删除的元素都由键盘输入。
24.有一个字符串,包含n个字符,编程序实现:
将此字符串中从第m个字符开始的全部字符复制成另一个字符串。
习题六
1.编写程序,求出输入的三个正整数的最小公倍数和最大公约数。
2.编写程序,求出满足下列条件的四位数:
该数是一个完全平方数,且第一、第三位数字之和为10,第二、第四位数字之积为12。
3.编写程序,求出在100到300之间的数,它们满足条件:
三位数字之积为42,三位数字之和为12。
4.输出1~999中能被3整除且至少有一位数字是5的所有整数。
5.已知abc+cba=1333,其中a、b、c均为一位数,例如:
617+716=1333,试编程求出符合这一规律的a、b、c,并输出结果。
6.编写程序,利用下面公式求e的值。
7.求100~999中的水仙花数(若三位数abc满足
,则称为水仙花数)。
8.一个数如果正好等于他的因子之和,这个数称之为完数。
例如6的因子有1、2、3,而6=1+2+3,因此6就是完数。
编程找出1000以内的所有完数,并按下列格式输出结果:
6itsfactorsare1,2,3.
9.求出2~1000中的所有同构数(若一个数的平方,其低位和该数本身相同,则称为同构数,例如5就是同构数,
,25的低位的5与原数相同)。
10.一个人摘下一些桃子,卖掉一半,又吃了一个;第二天卖掉剩下的一半,又吃了一个;第三天、第四天、第五天都如此进行,第六天一看,只剩下一个桃子,问该人共摘了多少桃子?
11.编程实现n阶逆时针外螺旋矩阵。
如5阶的外螺旋矩阵为:
12.编写完成2位数以内的整数四则运算练习程序。
具体过程是:
(1)计算机任意出一道2位以内整数四则运算;
(2)操作者键入答案;
(3)计算机判断结果:
如果正确,显示“verygood!
”,出下一道题;如果不正确,显示“tryagain!
”,在给下一次机会,如果再次输入正确,显示“it’sright!
”,出下一道题;如果还不正确,显示“error!
”,出下一道题。
程序要求:
执行一次能练习10道题,总分100分,每题10分,第一次答对者给予10,第二次答对者给予5分。
10道全部做完后,给出总分并按等级显示。
其等级为:
100—满分,90~99—优秀,80~89—优良,70~79—良好,60~69—及格,0~59—不及格。
提示:
用随机函数random()来产生两个操作数和运算符,函数说明为:
intrandom(intn):
产生0~n-1之间的随机整数。
13.用筛数法求N以内素数,要求筛掉的数不能再在程序中出现。
14.某省规定月工资1500元以下者免所得税,超过1500元在1000元以内超过部分征所得税5%,超过2500元在2000元以内超过部分征收所得税7%,超过4500元在4000元以内超过部分征收所得税10%,以后每超过5000元,所得税增长5%,但最多不超过50%,编一所得税征收程序。
要求:
(1)用嵌套的条件语句;
(2)用循环语句;
15.有2N个随机排列的整数,其中N个奇数,N个偶数。
现要求将其排列成奇偶相间的序列,且奇数序列和偶数序列的相对顺序不变。
例如:
原序为1,7,6,4,3,8,2,9新序应为1,7,3,9,6,4,2,8。
16.已知如第14题,除了要求奇偶相间外,还要求奇数和偶数分别按升序排列。
如上面的例子,新序列为:
1,2,3,4,7,6,8,9。
17.有2N面随机排放的红绿彩旗(各N面),要求排成红绿间隔形式并且交换次数最少。
18.有随机排放的红、黄、蓝三种花(带花盆),红的M盆,黄的N盆,蓝的K盆。
要求将它们按红、黄、蓝顺序重新排放,即前M盆为红花,中间N盆为黄花,后面K盆为蓝花,且要求交换的次数最少。
请编程实现。
19.有18颗大珍珠串成一圈,其重量分别为:
5克、6克、6.2克、6.5克、6.1克、7克、8克、8.7克、5.4克、5.1克、6.3克、7.5克、9克、10克、8.1克、12克、11.5克、9.5克。
请从中取出一段(颗数不限),所取段最接近50克。
习题七
一、选择题
1.以下说法正确的是。
A.C语言规定,可执行程序总是从main函数开始执行;
B.在程序中,main函数必须写在最开始的部分;
C.可执行程序总是从第一个定义的函数开始执行;
D.在C语言中,main函数调用的函数必须在main函数中定义。
2.C语言程序中,以下说法正确的是。
A.函数的定义可以嵌套,但函数的调用不能嵌套;
B.函数的调用可以嵌套,但函数的定义不能嵌套;
C.函数的定义和调用都可以嵌套;
D.函数的定义和调用都不能嵌套。
3.C语言中,下列叙述正确的是。
A.实参和对应的形参各占用独立的存储单元;
B.实参和对应的形参共用同一个存储单元;
C.形参是虚拟的,不占用存储单元;
D.只有当实参和对应的形参同名时才共用同一个存储单元。
4.在C语言中,下列说法正确的是。
A.实参可以是常量、变量或表达式;
B.实参可以是任意类型;
C.形参可以是常量、变量或表达式;
D.实参的个数可以多于形参的个数。
5.对于return语句说法正确的是。
A.return语句只能出现在函数的结尾部分;
B.return语句可以在一个函数中出现多次;
C.return语句必须返回值;
D.main函数中不能使用return语句。
6.以下正确的函数原型是。
A.intfun(intx,y);B.intfun(intx;inty);
C.intfun[intx,inty];D.intfun(int,int);
7.C语言中允许函数类型缺省定义,此时该函数的类型是。
A.intB.doubleC.charD.float
8.从下面函数调用语句中可看出实参的个数为。
fun((a,b,c),d,(0,1,2));
A.1B.3C.5D.7
9.下面程序的运行结果是。
voidadd(inta,intb)
{
intsum;
sum=a+b;
}
main()
{
intsum=0;
add(4,5);
printf("%d\n",sum);
}
A.9B.0C.4D.无定值
10.下面程序运行的结果是。
intfun(intn)
{
ints=0,t=1,i;
for(i=1;i {s+=t; t*=2; } returns; } main() { printf("%d\n",fun(6)); } A.64B.32C.31D.63 11.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是。 A.autoB.staticC.externD.register 12.下面程序的运行结果是。 longfunc(inti) { staticints=1; s*=i; returns; } main() { longt=0,i; for(i=1;i<=4;i++) t+=func(i); printf("%ld\n",t); } A.0B.24C.9D.33 13.以下程序的输出结果是。 intx; voidfun(intx) { x*=x; printf("%d",x); } main() { intx=4; fun(x); printf("%d",x); { intx=0; printf("%d",++x); } printf("%d",x); } A.16,4,1,4B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)