c语言经典练习题.docx
- 文档编号:9885648
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:78
- 大小:61.11KB
c语言经典练习题.docx
《c语言经典练习题.docx》由会员分享,可在线阅读,更多相关《c语言经典练习题.docx(78页珍藏版)》请在冰点文库上搜索。
c语言经典练习题
练习题汇编
习题一C语言概述
一、单项选择题
1.C语言的基本单位是。
A)标识符B)函数C)表达式D)语句
2.C程序是由构成的。
A)主程序与子程序B)主函数与若干子函数
C)一个主函数与一个其他函数D)主函数与子程序
3.下列字符属于键盘符号的是。
A)\nB)\C)\tD)\b
4.不是C语言提供的合法的关键字是。
A)CaseB)SwitchC)chherD)default
5.正确的标识符是。
A)b-2B)?
bC)b=3D)b·3
6.在C语言程序中,main函数的位置。
A)必须作为第一个函数B)必须作为最后一个函数
C)可以任意D)必须放在它所调用的函数之后
7.下列符号中,不属于转义字符的是。
A)\\B)\\x00C)\00D)\09
8.以下不是二进制代码文件
A)标准库文件B)目标文件C)源程序文件D)可执行文件
二、填空题
1.一个完整的C程序至少要有一个函数。
2.转义字符是由符号开始的单个字符或若干个字符组成的。
3.C语言的词类主要分为、、、、和
等6类。
4.C程序是由函数构成的,其中有并且只能有个主函数。
C程序的执行总是由
函数开始,并且总是在函数中结束。
5.ANSIC标准中规定了个关键字。
6.构造标识符的规则是。
三、应用题
1.写出一个C程序的构成。
2.C语言以函数为程序的基本单位,有什么好处?
3.编写一个程序,输入a,b,c三个值,输出其中的最大者。
4.什么叫程序流程图,用流程图描述算法有什么优点?
流程图符号使用时,应遵循什么规则?
5.求1+2+3+……+100。
用流程图描述算法。
6.判断一个数n能否同时被3和5整除,用流程图描述算法。
习题二数据类型和运算
一、选择题
1.下列标识符中不合法的是。
A)student_nameB)nameC)name8D)3DS
2.运行下面程序段的输出结果为。
a=15;b=5;
c=(a+b,a-b);
printf("c=%d",c);
A)c=20B)c=10C)c=30D)无具体输出
3.若a为整型变量则以下语句:
inta=-2L;
printf(″%d\n″,a);
则输出结果为________。
A)赋值不合法B)输出-2C)输出不确定D)输出2
4.若x,z均为int型变量,则执行下面语句后,z值为______
x=4;
z=——x*——x*——x;
A)64B)1C)6D)24
5.若int类型占两个字节,则执行以下语句输出为_______
intk=-1;
printf(″%d,%u\n″,k,k);
A)-1,-1B)-1,65536C)-1,32768D)-1,65535
6.设在C语言中,int类型数据占2个字节,则long类型占_____字节,unsignedint占_______个字节,short类型占________个字节。
A)4,2,2B)2,1,1C)4,2,1D)4,4,2
7.若x为float型变量,则以下语句_____
x=223.82748
printf(″%6.2f\n″,x);
A)输出为223.8B)输出为223.83C)不能输出D)输出为223.82
8.说明语句chars='\092′;使s包含了几个字符?
A)1个B)3个C)4个D)说明不合法,s值不确定
9.设x和y均为float型变量,则以下______语句是合法的赋值语句。
A)++xB)y=float(3)C)y=(x%2)/10D)*x=10
10.已知w=1,x=2,y=3,z=4,a=5,b=6,则执行下面语句a,b的值为________
(a=w>x)&&(b=y>z)
A)1和1B)0和6C)5和0D)0和0
11.设m,n,a,b,c,d均为0,执行“(m=a==b)||(n=c==d)”后,m,n的值是
12.若a,b,c均为int型变量,则执行以下语句后,a,b值分别为_________
a=b=c=1
++a‖++b&&++c;
A)1,1B)1,2C)2,1D)2,2
13.下列程序的输出结果为________
#include
main()
{intm=010,n=10;
printf(″%d,%d\n″,++m,n--);
}
A)11,10B)9,10C)010,9D)10,9
14.在下列运算符中,优先级别最高的运算符是。
A)=B)%C)>=D)&&
15.设整型变量x,y,z均为3,表达式x+++y+++z++的结果是.
A)9B)12C)11D)表达式出错
16.设a=1,b=2,c=3,d=4,则表达式a
a:
c a: d的结果是. A)4B)3C)2D)1 二、填空题 1.在C语言中的字符常量包括________、________和________等3种,其中,'\n′表示________、′\t′表示________、′\b′表示________、′\f′表示_______、′\a′表示________。 2.变量是在程序运行过程中________,变量的三要素是________、________和________等。 短整型变量是用________来说明的,其取值范围是________。 长整型变量是用________来说明的,其取值范围是。 无符号短整型变量是用________来说明的,其取值范围是________,无符号长整型变量是用来说明的,其取值范围是________。 3.具最高优先级的算术运算符是________,具有最低优先级的算术运算符有________,满足左结合的算术运算符有________,满足右结合的算术运算符有________。 4.数据类型的自动转换指的是________,强制类型转换的一般形式是________,其功能是. 5.已知a=6,b=4,计算下列表达式的值是________。 (1)b+=3;(6)a&&0 (2)a++(7)a‖b&&(a-b*2) (3)++a(8)! (a‖0) (4)10==a+b(9)a>=5&&b<3 (5)b=a+b(10)(a/2>=b)? 1: 0 三、运行程序题 1、下面程序的输出结果为_________ #include main() {intm=010,n=10 printf(″%d,%d\n″,++m,n--); } 2、下面程序的输出结果为_________。 #include main() {intm=7,n=4; floata=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf(″%f\n″,x) } 3、下面程序的输出结果为________。 #include #include main() {inta=1,b=4,c=2; floatx=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(″%f\n″,z); } 四、编写程序题 1.求下列表达式的值. (1)x+a%3*(int)(x+y)%2/4; 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y; 设a=2,b=3,x=3.5,y=2.5 2.写出下列表达式运算后的a的值,设原来a=12。 设a和n都已定义为类型变量。 (1)a+=a (2)a-=2 (3)a*=2+3(4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 3.编写求359÷8的商和余数的程序。 4.已知,为127,b为18,c为15,d为80,编写 值的程序。 5.从键盘输人三角形的三条边a,b,c,计算三角形的面积area的程序。 6.从键盘输入一个字符,找出它的前导字符和后继字符,并按ASCII值,从大到小顺序输出这3个字符及其对应的ASCII码值的程序。 习题三输入和输出 一、选择题 1.下列程序的输出是________。 #include main() {inta=1,b=2; printf(″%d\n″,a=a+l,a+6,b+2) } A)2B)3C)4D)1 2.若n为int变量,则执行以下语句后,其输出为________ n=32767; printf(″%010d\n″,n); printf(″%10d\n″,n); A)0000032767B)32767 32767000003276, C)32767D)输出格式描述符不合法 3276732767 3.设以下各变量均为int型变量,则以下函数调用不正确的是________。 A)getchar()B)putchar('\') C)putchar('\108′)D)scanf"%d%*2d",&a,&d) 4.若x为int型变量,y是float型变量,所谓用输入语句形式为: scanf(″x=%d,y=%f″,&x,&y); 则将使x=20,y=166.6,正确的输入是________ A)20166.6B)x=20y=166.6 C)20D)20,166.6 166 5.执行语句printf(″Hequestionisinc: \\tools\book.exe″);,其输出结果为________。 A)Hequestionisinc: \\tools\book.exe B)Hequestionisinc: oolsook.exe C)Hequestionisinc: \toolsook.exeD)出错,不能输出 6.若d1,d2,d3,d4均为char型变量,则下面语句执行后结果为, d1='1';d2='2'; d3='3';d4='4'; printf("%1c\n",d1); prinf("%2c\n",d2); printf("%3c\n",d3); printf("%4c\n",d4); A)1B)1C)1D)输出格式描述符不合法 2∪202 3∪∪3003 4∪∪∪40004 二、填空题 1.字符输入函数getchar()以键结束输入,它的返回值是。 其功能是。 2.标准格式输入函数的功能是,其中“%”号是,格式说明符是用来,“o”字符表示,“f”字符表示,“c”字符表示,“s”字符表示。 3.字符输出函数putchar()用于输出,使用该函数时,需要在程序头部写入 语句。 4.标准格式输出函数phintf()的功能是,其中“%”号是,格式说明符是用来,“o”字符表示,“f”字符表示,“c”字符表示,“s”字符表示“g”字符表示。 5.printf()函数中反斜杠字符常量“\n”表示、“\t”表示、“\v”表示、“\r”表示、“\f”表示。 三、运行程序题 1.有下面程序,运行结果是。 main() {inta,b,c; a=(b=(c=3)*5)*2-3; printf("a=%d;b=%d;c=%d\n",a,b,c); } 2.有下面程序,运行结果是。 #definesar(x)x*x main() {intp; p=50/sqr(50); print("p=%d\n",p); } 3.有下面程序,运行结果是。 main() {inta=5,b=10; floatx=34.73125; charc=‘A’; print("%3d%3d\n",a,b); print("%d,%f\n",a,x); print("%7.2f,%9.4f\n",x,x); print("%c,%d",c,c); print("%s,%10s\n","computer","computer");} 四、编写程序题 1.编写用scanf语句输入2个整数并求其积的C程序。 2.编写将b,e,i,j,i,n,g以单个字符赋给变量后显示beijing的C程序。 3.输入1个16进制数,并分别用16进制数和10进制数显示的C程序。 4.使用print()函数编制程序显示下列图形。 a bbb ccccc 5.用下面的scanf函数输入数据a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75, z=67.8,请问在键盘上如何输入数据? scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z); 习题四语句和流程控制 一、选择题 1.在C语言中,逻辑值“真”用什么表示? A)trueB)正数C)非0整数D)非0的数 2.若给定条件表达式(m)? (a++): (a——)则其中表达式m和________等价。 A)(m==0)B)(m==1)C)(m! =0)D)(m! =1) 3.在C语言的if语句中,用作判断的条件表达式为________。 A)算术表达式B)逻辑表达式C)关系表达式D)任意表达式 4.下面哪个表达式满足x为奇数时为真,x为偶数时为假。 A)x%2==0B)(x/2*2-x)==0C)! ! (x%2)D)! x%2! =0 5.下列说法中正确的是________。 A)在switch语句中一定要使用break语句 B)在switch语句中不一定要使用break语句 C)break语句是switch语句的一部分 D)break只能用于switch语句中 6.C语言中对于嵌套if语句规定else总是与什么配对? A)第1个ifB)与之前最近的if C)缩进位值相同的ifD)与之前最近的不带else的if语句 7.下列判断char类型变量c1是为数字的最简单且正确的表达式是________。 A)′0′<=c1<=′9′B)(cl>=′0′)&&(cl<=′9′) C)(cl>=O)&&(cl<=9)D)(′0′<=c1)&&(′9′>=c1) 8.下列if语句中,不正确的是________。 A)if(x>y); B)if(x==y)x+=y; C)if(x! =y)scanf(″%d″,&x)elsex=1 D)if(x 9.关于下面for循环语句描述正确的是: for(i=0,k=一1;k=1;i十十,k十十)printf(″*″); A)循环结束条件不合法B)循环是一个无限循环 C)循环体执行2次D)循环体执行1次 10.下面的for循环最多可执行________________次。 for(x=0,y=0;(y! =99)&&(x<4);x++); A)4次B)5次C)99次D)0次 11.设i,x都是int类型,则下面的for循环体可执行多少次? for(i=0,x=0;i<=9&&x! =876;i++)printf(″*″); A)9次B)876次C)10次D)无限循环 12.下列哪个循环不是无限循环。 A)for(y=0;x=1;++y);B)for(;;x=0); C)while(x=1){x=1;}D)for(y=0,x=1;x>++y;x+=1); 13.在C语言中,当while语句构成循环的条件为________时,结束循环。 A)0B)1C)trueD)非0 14.在C语言中,当do-while语句构成循环的条件为________时,结束循环。 A)0B)1C)trtleD)非零 15.下列循环体执行多少次? k=70; while(k=0)k—=1 A)70次B)69次C)无限次D)0次 16.while(! x)中的(! x)与下式中的________等价。 A)x==0B)x! =0C)x==1D)x! =1 17.若x,y均是int型变量,则执行以下语句后的结果是________。 for(x=l;x<5;x+=2) {for(y=l;y<5;y++) printf(″%2d″,x*y); if(y==5)printf(″\n″) } A)1234B)2345C)2346912D)234 369126912156912 101520 18.若x,y均是int型变量,则执行以下语句后,x,y值是_______。 for(y=1,x=1;y<=50;y++) {if(x>=l0)break; if(x%2==1) {x+=5;continue;} x-=3; } A)1,2B)10,6C)6,10D)10,8 二、填空题 1.do-While循环语句的执行过程是先________后________,而While循环的执行过程是先_____后运行________ 2.break语句可在或中使用,continue语句只能在中使用。 三、运行程序题 1.设a=3,b=4,c=5。 写出下面逻辑表达式的值。 (1)a+b>c&&b==c的值是。 (2)A||+c&&b-c的值是。 (3)! (a>b)&&! c||1的值是。 (4)! (x=a)&&(y=b)&&0。 (5)! (a+b)+c-1&&b+c/2。 2.巳知程序,运行结果是________。 main() {inti; for(i=1;i<6;i++) {if(i%2) printf("#"); elsecontinue; printf("$"); } printf("&\n"); } 3.已知下列程序,若输入1234,运行结果是。 #include main() {intc; while((c=getchar())! ='\n') switch(c-'2') {case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } printf("\n"); } 4.有下面的程序,程序的运行结果是。 main() {inti,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(""); for(k=0;k<=2*i;k++) printf("*"); printf(“\n”); } for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(""); for(k=0;k<=4-2*i;k++) printf("*"); printf("\n"); }} 四、完善程序题 1.利用公式: 求 的近似值,直到最后一项的绝对值小于 为止。 程序如下: #include main() {ints=1; floatn=1,t=1,pi=0; while(①>=le-6) {pi=pi+②; n=n+2; s=③; t=s/n;} pi=pi*4; pirntf("pi=%f\n",pi);} 2.用键盘输入一段文字,以“*”作为结束标志,请编写一个对行、单词和字符计数的程序。 其中,单词为一串不含空格、制表符或换行符的字符串。 程序如下: #include #defineYES1 #defineNO0 main() {intnl,nw,nc,inword; charc; inword=NO; nl=nw=nc=0; while((c=getchar())! ④) {++nc; if(c==''‖c=='\t'‖c==⑤) inword=NO; elseif(inword==NO) {inword=⑥;++nw;} nc--;} printf("%d\t%d\t%d\n",nl,nw,nc); } 五、编写程序题 1.有一函数: y= 编程序,输入x,输出y值。 2.输入三边a,b,c,判断是否能构成三角形,如能构成三角形,要用海伦公式计算其面积。 注: (1)海伦公式: s= 其中: p=(a十b十c)/2 (2)构成三角形的条件是: a+b>c,且︱a—b︱ 3.试编写运输公司对用户计算运费程序。 距离(S)越远,每公里运费越低。 标准如下: S<250km没有折扣 250≤S<5002%折扣 500≤S<10005%折扣 1000≤S<20008%折扣 2000≤S<300010%折扣 3000≤S15%折扣 设每公里每吨货物的基本运费为P(price的缩写),货物重为W(Weight的缩写),距离为S,折扣为d(discount的缩写),则总运费f(freight的缩写)计算公式为: f=p*w*s*(1-d) 4.求解满足条件1+2+3……n≥1000的最小n及和s的值。 5.利用循环语句求 (直到第100项的和) 6.输入一个整数,将其数值按小于10,10~99,100~999和1000以上分类并显示。 例如: 输入732时,显示732is100to999。 7.编写求S= 。 8.求ex的台劳级数展开式的前N项之和。 (-∞ 9.找出1—100之间的全部“同构数”。 所谓“同构数”是指一个数,它出现在它的平方数的右端。 如: 6的平方是36,6出现在36的右端,6就是同构数。 10.利用公式求cosx的近似值(精度为10-6): cosx= 11.打印输出以下图案: * *** ***** ******* ***** *** * 12.编写一个程序,模拟选举过程,共有n个人参加选举,候选人有4位,分别用字符A,B,C,D表示,选某位候选人时,直接键人其代号,若键入除A,B,C,D以外其他字符时为无效票。 选举结束后按得票多少的顺序输出候选人代号所得票敷。 13.打印输出由1,2,3,4四个数字组成的4位敷,并统计它的个数(允许该4位数中有相同的数字,例如: 1111,1122,1212等)。 14.打印出来所有的“水
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 练习题