C语言习题.docx
- 文档编号:11637216
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:66
- 大小:50.79KB
C语言习题.docx
《C语言习题.docx》由会员分享,可在线阅读,更多相关《C语言习题.docx(66页珍藏版)》请在冰豆网上搜索。
C语言习题
c语言习题集
第一章C语言概述
一.填空题
1.C程序是由()构成的,一个C程序中至少包含()。
因此,()是C程序的基本单位。
2.C程序注释是由()和()所界定的文字信息组成的。
3.函数体一般包括()和()。
二.判断题
1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
【】
2.main函数必须写在一个C程序的最前面。
【】
3.一个C程序可以包含若干的函数。
【】
4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【】
5.C程序的注释只能是一行。
【】
6.C程序的注释不能是中文文字信息。
【】
8.可以使用TurboC来编译和连接一个C程序。
【】
9.可以使用TurboC来运行一个C程序。
【】
10.可以使用TurboC来实时调试(即动态调试)一个C程序。
【】
三.简答题
1.写出一个C程序的基本结构。
2.简要叙述使用TurboC2.0编译和运行一个程序的步骤。
四.编程题
1.提高题:
参照课本例1.1,试编写一个C程序,输出如下信息。
(提示:
使用键盘上的一些符号)。
2.提高题:
试编写一个C程序,输出如下信息。
试试看,可以输出其他组合图案吗?
第二章数据类型,运算符与表达式
一.选择题
1.合法的字符常量是。
A)‘\t’B)“A”C)‘a’D)’\x32’
2.是C语言提供的合法的数据类型关键字。
A)FloatB)signedC)integerD)Char
3.在以下各组标识符中,合法的标识符是。
(1)A)B01B)table_1C)0_tD)k%
(2)A)Fast_B)voidC)pblD)
(3)A)xy_B)longdoubleC)*pD)CHAR
(4)A)sjB)IntC)_xyD)w_y23
9.在C语言中,字符型数据在内存中以形式存放。
A)原码B)BCD码C)反码D)ASCII码
10.下列语句中,符合语法的赋值语句是。
A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;
13.与代数式(x*y)/(u*v)不等价的C语言表达式是。
A)x*y/u*vB)x*y/u/vC)x*y/(u*v)D)x/(u*v)*y
14.在C语言中,数字029是一个。
A)八进制数B)十六进制数C)十进制数D)非法数
17.若intk=7,x=12;则能使值为3的表达式是。
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5D)(x%=k)-(k%=5)
18.为了计算s=10!
(即10的阶乘),则s变量应定义为。
21.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是。
A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0
22.以下合法的赋值语句是。
A)x=y=100B)d――C)x+yD)c=int(a+b)
24.设以下变量均为int类型,则值不等于7的表达式是。
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
二.填空题
2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 。
6.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为。
7.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为。
10.已知:
chara=’a’,b=’b’,c=’c’,i;则表达式i=a+b+c的值为。
15.已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是。
19.若a是int变量,则执行表达式a=25/3%3后,a的值是。
三.判断题
1.在C程序中对用到的所有数据都必须指定其数据类型。
【】
2.一个变量在内存中占据一定的存储单元。
【】
3.一个实型变量的值肯定是精确的。
【】
4.对几个变量在定义时赋初值可以写成:
inta=b=c=3;【】
5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
【】
6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。
【】
7.%运算符要求运算数必须是整数。
【】
四.简答题
2.简述‘a’和“a”的区别。
3.程序:
intm=12;m=15;为什么整型变量m的值在运算后不是当初的12,而是15?
4.将下面各数用八进制和十六进制数表示:
十进制32-1-327682002-1280
八进制
十六进制
6.华氏温度F与摄氏温度c的转换公式为:
c=(F-32)*5/9,则floatc,F;c=5/9*(F-32)是其对应的C语言表达式吗?
如果不是,为什么?
五.程序阅读题
1.写出以下程序运行的结果。
main()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
}
2.写出以下程序运行的结果。
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
六.编程题
1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:
123反序为321)的C语言表达式。
2.已知intx=10,y=12;写出将x和y的值互相交换的表达式。
第三章TCIDE(最简单的C程序设计)
一.选择题
2.putchar()函数可以向终端输出一个。
A)整型变量表达式值B)实型变量值
C)字符串D)字符或字符型变量值
4.执行下列程序片段时输出结果是。
floatx=-1023.012
printf(“\n%8.3f,”,x);
printf(“%10.3f”,x);
A)1023.012,-1023.012B)-1023.012,-1023.012
C)1023.012,-1023.012D)-1023.012,-1023.012
5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。
inta1,a2;charc1,c2;
scanf(“%d%c%c”,&a1,&a2,&c1,&c2);
A)10A20B↙B)10A20B↙
C)10A20B↙C)10A20B↙
6.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按方式输入数据。
intk1,k2,k3,k4;
scanf(“%d%d”,&k1,&k2);
scanf(“%d,%d”,&k3,&k4);
A)1020↙B)1020↙C)10,20↙
D)1020↙1020↙1020↙10,20↙10,20↙
7.执行下列程序片段时输出结果是。
intx=13,y=5;
printf(“%d”,x%=(y/=2));
A)3B)2C)1D)0
8.下列程序的输出结果是。
main()
{intx=023;
printf(“%d”,--x);
}
A)17B)18C)23D)24
9.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是。
inta1,a2;charc1,c2;
scanf(“%d%d”,&a1,&a2);
scanf(“%c%c”,&c1,&c2);
A)1020AB↙B)1020↙
AB↙
C)1020AB↙D)1020AB↙
10.执行下列程序片段时输出结果是。
intx=5,y;
y=2+(x+=x++,x+8,++x);
printf(“%d”,y);
A)13B)14C)15D)16
11.若定义x为double型变量,则能正确输入x值的语句是。
A)scanf(“%f”,x);B)scanf(“%f”,&x);
C)scanf(“%lf”,&x);D)scanf(“%5.1f”,&x);
12.若运行时输入:
12345678↙,则下列程序运行结果为。
main()
{inta,b;
scanf(“%2d%2d%3d”,&a,&b);
printf(“%d\n”,a+b);
}
A)46B)579C)5690D)出错
13.已知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);
14.若intx,y;doublez;以下不合法的scanf函数调用语句是。
A)scanf(“%d%lx,%le”,&x,&y,&z);
B)scanf(“%2d*%d%lf”,&x,&y,&z);
C)scanf(“%x%*d%o”,&x,&y);
D)scanf(“%x%o%6.2f”,&x,&y,&z);
15.有输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是。
A)132↙B)1,3,2↙
C)a=1b=3c=2↙D)a=1,b=3,c=2↙
二.填空题
1.一个C程序由若干个文件组成,而一个这样的文件可以由若干个和 以及组成。
2.C语句可以分为,,, 和等5种类型。
3.C控制语句有种。
4.一个表达式要构成一个C语句,必须。
5.复合语句是用一对界定的语句块。
6.printf函数和scanf函数的格式说明都使用字符开始。
7.scanf处理输入数据时,遇到下列情况时该数据认为结束:
(1),
(2),(3)。
8.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是。
9.C语言本身不提供输入输出语句,其输入输出操作是由来实现的。
10.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:
。
三.程序阅读题
1.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入?
main()
{inta,b;
floatx,y;
charc1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“%f%e”,&x,&y);
scanf(“%c%c”,&c1,&c2);
}
2.写出以下程序的输出结果。
main()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
3.写出以下程序的输出结果。
main()
{inta=12345;
floatb=-198.345,c=6.5;
printf(“a=%4d,b=%-10.2e,c=%6.2f\n”,a,b,c);
}
4.写出以下程序的输出结果。
main()
{intx=-2345;
floaty=-12.3;
printf(“%6D,%06.2F”,x,y);
}
5.写出以下程序的输出结果。
main()
{inta=252;
printf(“a=%oa=%#o\n”,a,a);
printf(“a=%xa=%#x\n”,a,a);
}
6.写出以下程序的输出结果。
main()
{intx=12;doublea=3.1415926;
printf(“%6d##,%-6d##\n”,x,x);
printf(“%14.101f##\n”,a);
}
四.程序填空题
1.下列程序的输出结果是16.00,请填
(1)空使程序完整。
main()
{inta=9,b=2;
floatx=[1],y=1.1,z;
z=a/2+b*x/y+1/2;
printf(“%5.2f\n”,z);
}
五.编程题
1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。
2.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。
想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。
a=3b=4c=5
x=1.200000,y=2.400000,z=-3.600000
x+y=3.60y+z=-1.20z+x=-2.40
u=51274n=128765
c1=’a’or97(ASCII)
c2=’b’or98(ASCII)
3.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。
4.编程序:
用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数输出这两个字符。
并思考以下问题:
(1)变量c1,c2应定义为字符型或整型?
或两者皆可?
(2)要求输出C1和C2值的ASCII码,应如何处理?
用putchar函数还是printf函数?
(3)整型变量与字符型变量是否在任何情况下都可以互相替代?
如:
charc1,c2与intc1,c2
是否无条件地等价?
第四章分支(选择结构)程序设计
一.选择题
1.逻辑运算符两侧运算对象的数据类型。
A)只能是0或1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
2.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。
A)x%2==0B)!
x%2!
=0C)(x/2*2-x)==0D)!
(x%2)
3.以下程序片段。
intx=2,y=3;
printf();
A)什么都不输出B)输出为:
***x=2
C)输出为:
###y=2D)输出为:
###y=3
4.能正确表示“当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)
5.C语言对嵌套if语句的规定是:
else总是与。
A)其之前最近的if配对B)第一个if配对
C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对
6.设:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。
A)1B)2C)3D)4
7.下面是错误的if语句(设intx,a,b;)
A)if(a=b)x++;B)if(a=
C)if(a-b)x++;D)if(x)x++;
8.以下程序片段。
main()
{intx=0,y=0,z=0;
if(x=y+z)
printf(“***”);
else
printf(“###”);
}
A)有语法错误,不能通过编译B)输出:
***
C)可以编译,但不能通过连接,所以不能运行D)输出:
###
9.对下述程序,是正确的判断。
main()
{intx,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y;y=x;
else
x++;y++;
printf(“%d,%d”,x,y);
}
A)有语法错误,不能通过编译B)若输入3和4,则输出4和5
C)若输入4和3,则输出3和4D)若输入4和3,则输出4和5
10.若w=1,x=2,y=3,z=4,则条件表达式w w: y y: z的值是。 A)4B)3C)2D)1 11.下述表达式中,可以正确表示x≤0或x≥1的关系。 A)(x>=1)||(x<=0)B)x>=1|x<=0 C)x>=1&&x<=0D)(x>=1)&&(x<=0) 12.下述程序的输出结果是。 main() {inta=0,b=0,c=0; if(++a>0||++b>0) ++c; printf(“%d,%d,%d”,a,b,c); } A)0,0,0B)1,1,1C)1,0,1D)0,1,1 13.下述程序的输出结果是。 main() {intx=-1,y=4,k; k=x++<=0&&! (y--<=0); printf(“%d,%d,%d”,k,x,y); } A)0,0,3B)0,1,2C)1,0,3D)1,1,2 14.以下程序输出结果是。 main() {intx=1,y=0,a=0,b=0; switch(x){ case1: switch(y){ case0: a++;break; case1: b++;break; } case2: a++;b++;break; case3: a++;b++; } printf(“a=%d,b=%d”,a,b); } A)a=1,b=0B)a=2,b=1C)a=1,b=1D)a=2,b=2 15.下述程序的输出结果是。 main() {inta,b,c; intx=5,y=10; a=(--y=x++)? –y: ++x; b=y++;c=x; printf(“%d,%d,%d”,a,b,c); } A)6,9,7B)6,9,6C)7,9,6D)7,9,7 16.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。 if(a if(c else if(a if(b elsex=3; elsex=6; elsex=7; A)1B)2C)3D)4 17.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。 A)if(a)S1;elseS2;B)if(a==0)S2;elseS1; C)if(a! =0)S1;elseS2;D)if(a==0)S1;elseS2; 18.若inti=0;执行下列程序后,变量i的正确结果是。 switch(i){ case9: i+=1; case10: i+=1; case11: i+=1; default: i+=1; } A)10B)11C)12D)13 19.若有说明语句inti=5,j=4,k=6;floatf;则执行f=(i i: (j j: k;语句后,f的值为。 A)4.0B)5.0C)6.0D)7.0 20.若有定义: inta=3,b=2,c=1;并有表达式: ①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是。 A)①和②B)②和③C)①和③D)③和④ 二.填空题 1.C语言提供6种关系运算符,按优先级高低它们分别是,,,,,等。 2.C语言提供三种逻辑运算符,按优先级高低它们分别是,,。 3.设a=3,b=4,c=5,写出下面各逻辑表达式的值。 表达式表达式运算后的值 a+b>c&&b==c ! (a>b)&&! c||1 ! (a+b)+c–1&&b+c/2 4.写出数学式子的C语言表达式。 5.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 。 6.设x,y,z均为int型变量;写出描述“x,y和z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题