C语言各章习题集.docx
- 文档编号:5607751
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:50
- 大小:86.76KB
C语言各章习题集.docx
《C语言各章习题集.docx》由会员分享,可在线阅读,更多相关《C语言各章习题集.docx(50页珍藏版)》请在冰豆网上搜索。
C语言各章习题集
C语言习题集
第1章C语言概述
一.填空题
1.C程序是由构成的,一个C程序中至少包含。
是C程序的基本单位。
2.任何C程序必须有且只有一个_______函数。
3.C程序注释是由和所界定的文字信息组成的。
二.判断题
1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
2.main函数必须写在一个C程序的最前面。
3.一个C程序可以包含若干的函数。
4.可用VisualC++6.0编译、连接、运行、调试C程序。
5.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
6.C程序的注释只能是一行。
7.C程序的注释不能是中文文字信息。
三.简答题
1.简述C语言的特点。
2.写出C程序的基本结构。
3.简述使用VisualC++6.0编译和运行C程序的步骤。
4.简述C语言程序设计课程的学习方法。
四.编程题
1.编写C程序,输出如下信息:
****************************************************************
Theonlywaytolearnanewprogramminglanguageisbywritingprogramsinit.
****************************************************************
2.编写C程序,输出如下信息:
Chasproventobeapleasant,expressiveandversatilelanguageforawidevarietyofprograms.Itiseasytolearn,anditwearswellason'sexperiencewithitgrows.
3.编写C程序,输入4个整数,输出其中最大者。
第2章程序的灵魂——算法
一.填空题
1.+=程序。
是程序的灵魂。
2.一个计算机程序应包括和的内容。
3.算法是。
计算机算法的特性是、、、、。
4.计算机算法可以用,和等方法表示。
5.三种基本程序结构是,和。
6.结构化程序设计的主要方法是。
二.简答题
1.分别用ANSI流程图、N-S图、自然语言描述求解下面问题的步骤。
(1)依次输入10个数,要求将其中最大的数打印出来。
(2)有3个数a,b,c,要求按由大到小的顺序把它们打印出来。
(3)求两个正整数m和n的最大公约数和最小公倍数。
(4)有一函数:
输入
,输出
值。
(5)求两个正整数m和n的最大公约数和最小公倍数。
2.分别用ANSI流程图和N-S流程图表示求解下面问题的算法。
(1)依次输入10个数,要求将其中最大的数打印出来。
(2)有3个数a,b,c,要求按由大到小的顺序把它们打印出来。
(3)判断一个数n能否同时被3和5整除。
(4)有一个分数数列:
求出这个数列前20项之和。
第3章数据类型、运算符与表达式
一.选择题
1.C语言的关键字是( )。
A.NULL B.file C.include D.typedef
2.正确的自定义标识符是( )。
A.if B.a*b C.iFD.8pq
3.错误的转义字符是( )
A.'\091' B.'\\'C.'\0' D.'\''
4.在C语言中,错误的常数是( )
A.1E+0.0 B.5 C.0xaf D.0L
5.在C语言中,要求参加运算的数必须时整数的运算符是( )。
A./B.*C.%D.=
6.在C语言中,数字029是一个( )。
A.八进制数B.十六进制数C.十进制数D.非法数
7.C语言中整数-8在内存中的存储形式为( )。
A.111111*********0B.100000000001000
C.000000000001000D.111111*********1
8.对于charcx=’\039’;语句,正确的是( )。
A.不合法B.cx的值是’\03’
C.cx的值为四个字符D.cx的值为三个字符
9.若intk=7,x=12;则能使值为3的表达式是( )。
A.x%=(k%=5)B.x%=(k-k%5)
C.x%=k-k%5D.(x%=k)-(k%=5)
10.为了计算s=10!
(即10的阶乘),则s变量应定义为( )。
A.intB.unsignedC.longD.以上三种类型均可
11.以下所列的C语言常量中,错误的是( )。
A.0xFFB.1.2e0.5C.2LD.’\72’
12.假定x和y为double型,则表达式x=2,y=x+3/2的值是( )。
A.3.500000B.3C.2.000000D.3.000000
13.设变量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
14.以下选项中不属于C语言的类型是( )。
A.signedshortintB.unsignedlongint
C.unsignedintD.longshort
15.设以下变量均为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)
16.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是( )。
A.a=20000+20000;B.a=4000*10;
C.30000+10000;D.a=4000L*10L;
17.对于语句:
f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( )是正确的。
A.语法错误B.f为5.0C.f为0.0D.f为2.0
18.与代数式
不等价的C语言表达式是( )。
A.x*y/u*vB.x*y/u/vC.x*y/(u*v)D.x/(u*v)*y
二.填空题
1.在C语言中(16位PC机),一个char数据在内存中所占字节数为,其数值范围为;一个float数据在内存中所占字节数为,其数值范围为。
2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为。
3.在C语言中,不同运算符之间运算次序存在的区别,同一运算符之间运算次序存在的规则。
4.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为。
5.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为。
6.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为。
7.数学式子
的C语言表达式为。
8.定义:
doublex=3.5,y=3.2;则表达式(int)x*0.5的值是,表达式y+=x++的值是。
9.定义:
intm=5,n=3;则表达式m/=n+4的值是,表达式m=(m=1,n=2,n-m)的值是,表达式m+=m-=(m=1)*(n=2)的值是。
10.若a是int变量,则执行表达式a=25/3%3后,a的值是。
11.数学表达式
对应的C语言表达式为:
。
12.已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是。
三.判断题
1.在C程序中对用到的所有数据都必须指定其数据类型。
2.一个变量在内存中占据一定的存储单元。
3.一个实型变量的值肯定是精确的。
4.对几个变量在定义时赋初值可以写成:
inta=b=c=3;
5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。
7.%运算符要求运算数必须是整数。
8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
9.在C程序中,逗号运算符的优先级最低。
10.C语言不允许混合类型数据间进行运算。
四.简答题
1.c语言中运算符的优先级和其结合性有和区别?
2."A"与'A'有何区别?
3.华氏温度F与摄氏温度c的转换公式为:
则floatc,F;c=5/9*(F-32)是其对应的C语言表达式吗?
如果不是,为什么?
五.程序阅读题
1.写出以下程序运行的结果。
main()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\x41’;
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)输出。
2.输入两个整数x,y,将其值互换后输出。
3.利用ASCII表,输出笑脸及扑克牌符号、10个数字符号、26个大写字母。
第4章最简单的C程序设计
一.选择题
1.C语言的程序一行写不下时,可以()。
A.用逗号换行B.用分号换行
C.在任意一空格处换行D.用回车符换行
2.putchar函数可以向终端输出一个()。
A.整型变量表达式值B.实型变量值
C.字符串D.字符或字符型变量值
3.执行下列程序段时输出结果是()。
unsignedinta=65535;
printf(“%d”,a);
A.65535B.-1C.-32767D.1
4.执行下列程序段时输出结果是()。
intx=13,y=5;
printf(“%d”,x%=(y/=2));
A.3B.2C.1D.0
5.下列程序的输出结果是()。
main()
{intx=023;
printf(“%d”,--x);
}
A.17B.18C.23D.24
6.执行下列程序段时输出结果是()。
intx=5,y;
y=2+(x+=x++,x+8,++x);
printf(“%d”,y);
A.13B.14C.15D.16
7.若运行时输入:
12345678↙,则下列程序运行结果为()。
main()
{inta,b;
scanf(“%2d%2d%3d”,&a,&b);
printf(“%d\n”,a+b);
}
A.46B.579C.5690D.出错
8.有输入语句:
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↙
9.若运行时输入:
12345678↙,则下列程序运行结果为()。
main()
{inta,b;
scanf(“%2d%2d%3d”,&a,&b);
printf(“%d\n”,a+b);
}
A.46B.579C.5690D.出错
10.已知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);
11.若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);
12.有输入语句:
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.复合语句是用一对界定的语句块。
5.printf函数和scanf函数的格式说明都使用字符开始。
6.scanf处理输入数据时,遇到下列情况时该数据认为结束:
(1),
(2),(3)。
7.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是。
8.C语言本身不提供输入输出语句,其输入输出操作是由来实现的。
9.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:
。
三.程序阅读题
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);
}
四.编程题
1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。
2.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。
3.若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)
第5章选择结构程序设计
一.选择题
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.设inta=0,b=5;执行表达式++a||++b,a+b后,a,b和表达式的值分别是( )。
A.1,5,7 B.1,6,7 C.1,5,6 D.0,5,7
4.关系表达式a≤x<b的正确描述是( )。
A.a<=x=a&&x=a||x
(x=b)
5.能正确表示“当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)
6.C语言对嵌套if语句的规定是:
else总是与()。
A.其之前最近的if配对B.第一个if配对
C.缩进位置相同的if配对D.其之前最近的且尚未配对的if配对
7.设:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()。
A.1B.2C.3D.4
8.设intx,a,b;则下面if语句中错误的是()。
A.if(a=b)x++;B.if(a=
C.if(a-b)x++;D.if(x)x++;
9.若w=1,x=2,y=3,z=4,则条件表达式w w: y y: z的值是()。 A.4B.3C.2D.1 10.下述程序的输出结果是()。 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 11.下述程序的输出结果是()。 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 12.当a=1,b=3,c=5,d=4时,执行完下面的程序段后x的值是()。 if(a A.1B.2C.3D.4 二.填空题 1.“20 2.“n是大于整数m的奇数”的C语言表达式是____________________。 3.“y能被4整除但不能被100整除,或y能被400整除”的C语言表达式是。 4.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式: 。 5.有intx=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为。 6.若有x=1,y=2,z=3,则表达式(x x: y)==z++的值是。 三.判断题 1.if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。 2.switch语句的case表达式必须是常量表达式。 3.if语句、switch语句可以嵌套。 4.switch语句的各个case和default的出现次序不影响执行结果。 5.多个case可以执行相同的程序段。 6.内层break语句可以终止嵌套的switch,使最外层的switch结束。 7.switch语句的case分支可以使用{}复合语句,多个语句序列。 8.switch语句的表达式与case表达式的类型必须一致。 四.简答题 1.C语言中如何表示“真”和“假”? 系统如何判断一个量的“真”和“假”? 2.请将以下语句改成switch语句。 if((s>0)&&(s<=10)) if((s>=3)&&(s<=6))x=2; elseif((s>1)&&(s>8))x=3; elsex=1; elsex=0; 五.程序阅读题 1.写出以下程序的运行结果。 main() {inta=1,b=2,c=3,d=4,m=1,n=1; ints; s=(m=a>b)&&(n=c>d); printf(“%d,%d,%d,%d,%d,%d”,a,b,c,d,m,n); printf(“%d\n”,s); } 2.写出以下程序的运行结果。 main() {inta=2,b=7,c=5; switch(a>0){ case1: switch(b<0){ case1: printf(“@”);break; case2: printf(“! ”);break; } case0: switch(c==5){ case1: pritnf(“*”);break; case2: printf(“#”);break; default: printf(“#”);break; } default: printf(“&”); } printf(“\n”); } 六.编程题 1.键盘输入三个整数a,b,c,输出值在中间(非最大,非最小)的数。 2.输入x,输出y值。 函数关系为: 3.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。 90分以上为’A’,80
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 各章 习题集
![提示](https://static.bdocx.com/images/bang_tan.gif)