C语言分章节知识点及典型试题_第1页
C语言分章节知识点及典型试题_第2页
C语言分章节知识点及典型试题_第3页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章数据类型与表达式1 知识点.C语言的特点:语言简洁、紧凑,使用方便、灵活;运算符丰富;数据结构丰富;具有结构化控制语句; 语法限制不太严格,程序设计自由度大; 可以进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作; 生成的目标代码质量高,程序执行效率高;程序的移植性好。2 .C程序的组成:C程序是由函数构成的;一个函数包括函数的首部即函数的第一行和函数体即花括号部分;函数体一般包括声明部分和执行部分;一个C程序总是从main函数开始执行,从main函数结束;C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;每个语句和数据定义的最后必须有一个分号;C语言本身没

2、有输入输出语句,是通过函数实现输入输出的;可以用/*/对C程序的任何部分作注释。.C语言程序的运行:源程序文件的扩展名为.c,目标程序文件的扩展名为.obj,可执行程序文件的扩展名为.exe。.C的数据类型:基本、构造、指针和空类型,char、int、short、long、unsigned、float>double、enum、struct、union、typedef。5. 常量与变量的概念,注意符号常量的定义与使用;整型、实型、字符型常量的表示,注意整型常量的十进制、八进制、十六进制的书写。7 .变量的定义,C的标识符包括关键字、预定义标识符、用户定义标识符;用户定义标识符的可用字符为字

3、母、数字、下划线,第一个字符为字母或下划线。8 .常见数据类型的取值范围,int为-32768+32767,unsignedint为065535。12 .转义字符:n、t、b、r、f、'、”、ddd、xhh不同数值型数据的混合运算,低级类型转换为高级类型运算C的运算符:注意结合方向和运算的优先级.算术运算符:+、-、*、/、+、-,注意自加、减运算符分前缀和后缀两种方式。其中前缀方式为先自加、减,后引用;后缀方式为先引用,后自加、减;运算符要求运算量为整数,运算结果也为整数。注意除运算时,假设运算量为整型时,其运算结果也是整型的规则。13 .赋值类运算符:=、+=、-=、*=、/=、=

4、,注意含义和数据类型的转换。14.逗号运算符的使用,注意逗号运算符的运算规则。练习.填空题:1. 在TURBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。.C语言源程序文件的后缀是_£_,经过编译后,生成文件的后缀是.obj,经过连接第1页共39页后,生成文件的后缀是.exe。2 .结构化程序由顺序、选择分支、循环三种基本结构组成。.假设k为整型变量且赋值11。请写出运算k+后表达式的值11和变量的值12。3 .假设x为double型变量,运算x=3.2,+x后表达式的值4.2和变量的值4.2。.函数体由符号二开始,用符号一结束。函数体的前面是定义部分,其后是

5、执行部分。4 .C语言中的标识符可分为关键字、用户标识符和预定义标识符三类。.在C语言程序中,用关键字int定义基本整型变量,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量。5 .把a1、a2定义成单精度实型变量,并赋初值1的定义语句是floata1=1.0,a2=1.0;。6 .C程序中定义的变量,代表内存中的一个存储空间。11.表达式3.5+1/2的计算结果是3.5。13. 12.写出数学表达式史29三个等价的C语言表达式a*b/(c*d)、a/(c*d)*b、b/(c*d)*a。c?d通常一个字节包含8个二进制位。.当电脑用两个字节存放一个整数时,能存放的最

6、大十进制整数是216-1(65535)、最小十进制整数是-215(-32768)。14 .在C语言中整数可用十进制数、八进制数和十六进制数三种数制表示。16. C语言中,int型数据占2个字节,long型数据占4个字节,unsignedint型数据占2个字节,short型数据占个字节,float型数据占4个字节,double型数据占8_个字节,char型数据占1个字节。.选择题:1 .组成C语言程序的是C。2 A.子程序B.过程C.函数D.主程序和子程序.以下表达中正确的选项是(C)。A.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B.C程序由主函数组成。C. C程序由

7、函数组成。D. C程序由函数和过程组成。3 .以下选项中正确的整型常量是(B)。4 A.12.B.-20C.1,000D.456.以下选项中正确的实型常量是(D)。5 A.0B.3.1415C.0.329X102D.871.以下选项中不合法的用户标识符是(C)。6 A._123B.printfC.A$D.Dim.C语言中运算对象必须是整型的运算符是(A)。A.%B./C.!D.*7.可在C程序中用作用户标识符的一组标识符是(B)oA.voidB.as_b3C.ForD.2cdefine_123-abcDOWORDIfcaseSIG8.假设变量已正确定义并赋值,符合C语言语法的表达式是(B)。A

8、.a=a+7;B.a=7+b+c,a+C.int12.3%4D.a=a+7=c+b9.不合法的八进制数是(B)。A.0B.028C.077D.019 .不合法的十六进制数是(A)(零X)。A.oxffB.0XabcC.0x11D.0x19.程序设计题:1 .编写一个C程序,输入a、b、c三个数,输出其中最大者。#include<stdio.h>voidmain()inta,b,c,max;printf(input3num:n");scanf(%d%d%d”,&a,&b,&c);max=a;if(b>max)max=b;if(c>max)

9、max=c;printf(%d”,max);第二章算法与顺序结构I 一.知识点.算法:为解决一个问题而采取的方法和步骤。2. 算法的分类:数值算法、非数值算法。3. 算法的特点:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。4 .算法描述方法:自然语言、流程图、改进流程图、NS流程图、伪代码、电脑语言。5 .C语句的类型:控制语句、函数调用语句、表达式语句、空语句、复合语句。6. 输入输出的概念:输入输出是相对主机而言,C语言是由函数来实现输入输出的。9 字符数据的输入/输出:getchar、putchar格式输入/输出:scanf、printf.printf的格式符:d、i,o

10、,x、X,u,c,s,f,e、E,g、G;l,m,n,-。.scanf的格式符:d、i,o,x、X,u,c,s,f,e、E,g、G;l,m,*;&。注意输入数据时数据流的分隔符,系统默认的分隔符为空格、tab键和回车。II .顺序结构的设计思想:声明变量、输入数据、处理、输出结果。.练习.填空题£=-2001.以下程序段执行后的输出结果是:2002500i=-200,j=2500F25Einti=-200,j=2500;printf"%d%d”,i,j;printf"i=%d,j=%dn”,i,j;printf"i=%dnj=%dn",

11、i,j;2 .复合语句在语法上被认为是一条语句。空语句的形式是;。3 .C语句的最后用;结束。4 .以下程序段的输出结果是x=127,x=177,x=7f,x=127。intx=0177;printf"x=%6d,x=%6o,x=%6x,x=%6un",x,x,x,x;.以下程序段的输出结果是a=513.789215,a=513.79,a=513.78921500,a=531.78921500。5 doublea=513.789215;printf"a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lfn”,a,a,a,a;.以下程序段的输出结果是8

12、,3。a=3+5,a*4;x=11/3;printf"%d,%dn”,a,x;以下程序输入三个整数值给a、b、c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。请填空:#include<stdio.h>maininta,b,c,m:printf"Entera,b,c:";scanf"d,%d,%d”,&a,&b,&c;m=a;a=b;b=c;c=m;printf"a=%d,b=%d,c=%dn",a,b,c;8.以下程序不借助任何变量把a、b中的值进行交换。请填空:#

13、include<stdio.h>maininta,b;printf"Inputa,b:";scanf"d,%d",&a,&b;a+=b;b=a-b;a=a-b;printf"a=%d,b=%dn",a,b;.选择题:1.假设a、b、c、d都是int型变量且初始值为0,以下不正确的赋值语句是(C)。A.a=b=c=100;B.d+;C.c+b;D.d=c=22-b+;2.以下选项中不是C语句的是(C)。A.3.A.4.A.inti;i+;printf"%dn”,i;以下合法的C语言赋值语句是k=in

14、ta+b;(C)。C.3B.;(D)。C.a=5,c=105.A.C.6.A.C.a=b=58B.以下程序的输出结果是0B.1mainintx=10,y=3;假设变量已正确说明为reada,b,c;scanf“D%D%Dprintf"dnint类型,要给”,”,C.a=58,b=58D.不确定的值a、D.-i;y=x/y;b、c输入数据,正确的输入语句是B.scanf"d%d%d”,a,b,c;D.scanf"d%d%d”,&a,&b,&c;CoDo假设变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是a=a+b,b=a-b,a

15、=a-b;B.t=a,a=b,b=t;a=t;t=b;b=a;D.t=b;b=a;a=t;假设变量已正确定义,以下程序段的输出结果是7.输出格式说明与输出项不匹配,输出无定值B.5.1700DoC.5.16800x=5.16894;printf"fn”,int执行以下程序段后,c3中的值是0B.1/2C.0.5intc1=1,c2=2,c3;c3=c1/c2执行以下程序段后,其输出结果是0,0,-10B.0,0,3inta=0,b=0,c=0;c=a-=a-5,printf"d,%d,%dn10.以下程序的输出结果是A.a=%2,b=%5B.a=2maininta=2,b=

16、5;printf8.A.9.A.”,a,b,Do,b=5D.5.16900x*1000+0.5/float“a=%dAoBoC.-10,3,-10a=b,b+3;c;C.a=%db=%d1000;D.a=%d,b=%d,b=%dn.假设int型占两个字节,以下程序段的输出是A.-1,-1B.-1,32767inta=-1;printf"d,%un.以下程序段的输出结果是A.|3.1415|B.|3.0|floata=3.1415;printf"|%6.0f|n13.以下程序段的输出结果是A.98B.89”,a,CoC.-1a;”,C.|a;a,b;Do32768D.-1,6

17、55353|3.|BoC.6D.以上三个都不对#include<math.h>maindoublea=-3.0,b=2;15 printf"3.0f%3.0fn”,powb,fabsa,powfabsa,b;14.假设a为整型变量,则以下语句BoD.输出值为2A.赋值不合法B.输出值为-2C.输出为不确定值a=-2L;printf"dn”,a;.假设有定义chars='092'则该语句B。16 A.使s的值包含1个字符B.定义不合法,s的值不确定C.使s的值包含4个字符D.使s的值包含3个字符.假设k、g均为int型变量,则以下语句的输出为D。A

18、.15B.16C.15D.1617. 6f70716fk=017;g=111;printf"dn”,+k;printf"xn”,g+;已知字母a的ASCII十进制代码为97,执行以下语句后的输出为C。A.b,cB.a-运算不合法,故有语法错误C.98,cD.格式描述和输出项不匹配,输出无定值chara='aa-;printf"d,%cn”,a+'2'-'0a+'3'-'0';.以下程序的输出为AoA.27.000000B.27.500000C.28.000000D.28.500000#include&

19、lt;stdio.h>mainintm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf"fn",x;.以下程序的输出结果是CoA.18B.9C.-18D.-9maininta=9;a+=a-=a+a;printf"dn”,a;.以下程序的输出结果是AoA.0B.5C.1D.不确定值maininta=7,b=5;printf"dn”,b=b/a;.以下程序的输出结果是CoA.12B.11C.10D.9maininta=011;printf"dn",+a;.程序设计题:用NS图表示以

20、下问题:1 .有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换。2 编写程序.依次将10个数输入,要求将其中最大的数打印出来。3 #include<stdio.h>main()inti,a,max;scanf("%d”,&max);for(i=1;i<=9;i+)(scanf("%d",&a);if(a>max)max=a;printf("%d”,max);.有3个数a、b、c,要求按从大到小的顺序把它们打印出来。4 main()(floata,b,c,t;scanf("%f,%f,%f",&

21、amp;a,&b,&c);if(a>b)t=a;a=b;b=t;/*实现a和b的互换*/if(a>c)t=a;a=c;c=t;/*实现a和c的互唤*/if(b>c)t=b;b=c;c=t;/*实现b和c的互换*/printf("%5.2f,%5.2f,%5.2fn”,a,b,c);.求1+2+3+100。#include<stdio.h>intmain()inti,sum=0;i=1;while(i<=100)sum=sum+i;5 i=i+1;printf(%d",sum);.判断一个数n能否同时被3和5除。6 #inc

22、lude<stdio.H>main(void)(intn;scanf("%d”,&n);if(n%3=0&&n%5=0)printf("%d能否同时被3和5整除n",n);elseprintf("%d不能否同时被3和5整除n",n);return0;.将100200之间的素数打印出来。7 #include<stdio.h>intisPrime(intn)(inti;for(i=2;i*i<=n;i+)if(n%i=0)return0;return1;intmain()(inti;for(i=

23、100;i<=200;i+)(if(isPrime(i)printf("%dn",i);.求两个整数m和n的最大公约数和最小公倍数。main()(inta,b,num1,num2,temp;printf("pleaseinputtwonumbers:n");scanf("%d,%d”,&num1,&num2);if(num1(temp=num1;num1=num2;num2=temp;a=num1;b=num2;while(b!=0)/*利用辗除法,直到b为0为止*/(temp=a%b;a=b;b=temp;printf(

24、"gongyueshu:%dn”,a);printf("gongbeishu:%dn”,num1*num2/a);.求方程ax2+bx+c=0的根#include<stdio.h>#include<math.h>/用到平方根函数voidmain()(floata,b,c,x1,x2,p,q,m;scanf("%f%f%f",&a,&b,&c);if(a=0.0)&&(b=0.0)&&(c!=0.0)printf("novalue!");elseif(a=0

25、.0)&&(b=0.0)&&(c=0.0)printf("anyvalue!");elseif(a=0.0)&&(b!=0.0)printf("x1=x2=%f",-c/b);elsem=b*b-4.0*a*c;if(m>=0)x1=(-b+sqrt(m)/(2.0*a);x2=(-b-sqrt(m)/(2.0*a);printf("x1=%fn",x1);printf("x2=%fn",x2);elsep=-b/(2.0*a);q=sqrt(-m)/(2.0*

26、a);printf("x1=%f+%fin”,p,q);printf("x2=%f-%fin",p,q);7. 编写程序,输入两个整数1500和350,求出它们的商和余数并进行输出。第9页共39页8. #include<stdlib.h>#inclued<stdio.h>voidmain()(inta;intb;intc,d;a=1500,b=350;c=a/b;/商数d=a%b;/余数pritf("商数为:%dn”,c);printf("余数为:%dn",d);return0;编写程序,读入三个双精度数,求它

27、们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。#include<stdio.h>main()(doublea,b,c,d;printf(-输入三个双精度数n");scanf("%lf%lf%lf",&a,&b,&c);d=(a+b+c)/3;printf("%.1fn",d);.求三角形的面积:a,b,c是边长,p是半边长,s是面积,则s=p(p-a)(p-b)(p-c)1/2#include<stdio.h>#include<math.h>ma

28、in。10 (floata,b,c,p,s;printf("input3num:");scanf("%f%f%f",&a,&b,&c);p=(a+b+c)/2;s=p*(p-a)(p-b)(p-c);s=pow(s,0.5);printf("s=%f",s);.输入一个华氏温度,要求输出摄氏温度。公式为:c=5f-32/9。#include<stdio.h>main()(doubletem_c,tem_f;puts("=华氏温度至摄氏温度转换程序=");printf(-请输入华氏

29、温度:");scanf("%lf",&tem_f);tem_c=(tem_f-12)*5.0/9.0;printf("%f对应的摄氏温度为.2f",tem_f,tem_c);renturn0;第三章选择结构程序设计1 一.知识点.关系运算符、逻辑运算符、逻辑值的表示与含义;注意&&、|的运算规则。.三种if语句.选择结构的嵌套,注意if与else的配对;4.条件运算符:?:6. 5.switch语句,注意其执行过程;选择结构程序设计思想。二.练习.填空题:1 .C语言中用非0表示逻辑值“真”,用0表示逻辑值“假”.C语言

30、中的关系运算符按优先级别是、答案:、=、=、=、!=.C语言中的逻辑运算符按优先级别是、。2 答案:!、&&、|.C语言中的关系运算符和逻辑运算符的优先级别是、!、=、=、=、!=、&&、|.C语言中逻辑运算符的_!优先级高于算术运算符。3 .将以下数学式改写成C语言的关系表达式或逻辑表达式:4 a=b或aca=b|ac|x|4x4|x-4.以下程序的输出结果1Qmain(inta=100;ifa>100printf"dn”,a>100;elseprintf("%dn”,a<=100);8.假设已知a=10、b=15、c=1

31、、d=2、e=0,请分别给出以下表达式的运算结果:a*b&&c1a+b>10|a+b<01e0c=b>e1!a<e0(6)a+&&e+&&c+0!e&&e=b=+c1(0<a)&&(a<2)0(9)1.234&&5.9821(10)(b=10)&&(a=10)_0(11)!0|d&&a=c+d1(12)(a+c=b)=(b+d=a)|(c=b+a)>(d=c+b)19.当a=1、b=2、c=3时,执行以下if语句后,a=3、b

32、=1、c=1ifa>c;b=a;a=c;c=b;10.当a=1、b=2、c=3时,执行以下if语句后,a=3、b=2、c=2ifa>cb=a;a=c;c=b;11.当a=1、b=2、c=3时,执行以下if语句后,a=1、b=2一、c=2_ifa>cb=a,a=c;c=b;12 .将以下两条if语句合并为一条if语句:。ifa>bscanf"d”,&x;elsescanf"d”,&y;ifa<=bi+;elsej+;13 答案:ifa>bscanf"d”,&x;j+;elsescanf"d”,&a

33、mp;y;i+;.将以下嵌套的if语句改写成不嵌套的if语句:。ifw<0k=0;elseifw<=100k=1;elsek=0;答案:ifw>=0&&w<=100k=1;elsek=0;.以下程序判断输入的一个整数是否能被3或7整除,假设能整除,输出“YES”,假设不能整除,输出“NO”。请填空:#include<stdio.h>main14 intk;printf"Enteraintnumber:";scanf"d”,&k;ifk%3=0|k%7=0printf"YESn”;elseprin

34、tf"NOn”;.在switch语句中,当执行到break语句时,使流程跳出开关语句。.选择题:1.假设给定条件表达式M?a+:a-,则和表达式M等价的表达式为CoA.M=0B.M=1C.M!=0D.M!=12 .为表示关系x>y>z,应使用的C语言表达式是A。3 A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D.(x>=y)&(y>=z).以下程序的输出结果是D。A. 0B.1C.2D.3main4 inta=2,b=-1,c=2;ifa<bifb&l

35、t;0c=0;elsec+=1;printf"dn”,c;.以下程序的输出结果是AoA.1B.2C.3D.4main5 (intw=4,x=3,y=2,z=1;printf"dn”,w<x?w:z<y?z:x;.假设执行以下程序时,从键盘上输入3和4,则输出结果是BoA.14B.16C.18D.20main(inta,b,s;scanf"d%d”,&a,&b;s=a;ifa<bs=b;s*=s;printf"dn”,s;.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。A.只能用逻辑表达式B. 只能用关

36、系表达式6 C.只能用逻辑表达式或关系表达式D.可用任意表达式.以下程序段运行后,x的值是D。A.14B.4C.15D.3ok1=1;ok2=2;ok3=3;x=15;if!ok1x-;elseifok2ifok3x=3;elsex=4;.在C语言中,switch语句后一对圆括号中exp的类型。AA.可以是任何类型B.只能为int型C.可以是整型或字符型D.只能是整型或实型9.以下各组运算符中,优先级最高的分别为BCCD。A.?:B.+C.&&D.+=A.*=B.>=C.类型D.,A.|B.%C.!D.=A.=B.!=C.*(乘)D()10.假设a为整型变量,b为字符型变

37、量,则以下正确的switch语句是AoA.switchintx/10B.switchb(case1:a+;break;(case'042'x=a/b;break;case2:b+;break;case,6,;x=a*b;break;case3:c+;break;case'010'x=a+c;break;C.switchintx/10;D.switcha/100+10(case0:a+;break;(case2:x=a/b;1break;default:b+;break;case6:x=a*b;break;case3+1:c+;break;case8:x=a+c;

38、break;case3:d+;break;case10:x=a-c;break;.程序设计题:1.从键盘输入一个字母,假设是大写字母,要求改用小写字母输出。第13页共39页#include<stdio.h>voidmain()(charvar;var=getchar();if(var>=65&&var<=90)var=32+var;putchar(var);2.求ax2+bx+c=0的根。a、b、c由键盘输入,设b2-4ac>=0.#include<stdio.h>#include<math.h>voidmain()(flo

39、ata,b,c,p,x1,x2;printf("input3numbers:n");scanf("%f%f%f",&a,&b,&c);if(b*b-4*a*c>=0)(p=pow(b*b-4*a*c,0.5);x1=(-b+p)/2;x2=(-b-p)/2;printf("x1=%f,x2=%f",x1,x2);else(p=pow(-b*b+4*a*c,0.5);printf("x1=%f+%fi,x2=%f-%fi",-b/2,p/2,-b/2,p/2);第四章循环结构程序设计一.

40、知识点.循环的概念,C实现循环的方法;.goto语句,注意标号的书写;.while语句,注意条件表达式的设计;.dowhile语句,注意条件表达式的设计,及while之后的分号;.for语句,注意for中三个表达式的一般含义;6.循环的嵌套;.break与continue语句,注意二者之间的区别;8.循环结构程序设计思想二.练习.填空题:1 .以下程序段的输出结果。y=7,x=21x=y=0;whilex<20y+,x+=3;2 printf"y=%d,x=%dn”,y,x;.当执行以下程序段后,i的值是、j的值是、k的值是。5、4、6inta,b,c,d,i,j,k;a=10

41、;b=c=d=5;i=j=k=0;for;a>b;+bi+;whilea>+cj+;3 dok+;whilea>d+;.以下程序段的输出结果。死循环没有输出结果intk,m,n;n=10;m=1;k=1;4. whilek<=nm*=2;printf"dn”,m;以下程序的输出结果-1。mainintx=2;whilex-;printf"dn",x;5.以下程序段的输出结果11Q6. inti=0,sum=1;dosum+=i+;whilei<5;printf"dn”,sum;有以下程序段:s=1.0;fork=1;k<

42、;=n;k+s=s+1.0/k*k+1;printf"fn",s;要使下面的程序段的功能与上面程序段的功能相同,请填空:s=0.0;k=0;d=1.0;dos=s+d;k+;d=1.0/k*k+1;whilek<=n;7. printf"fn”,s;以下程序的功能是:从键盘上输入假设干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空:main7 floatx,amax,amin;scanf"f”,&x;amax=x;amin=x;whilex>=0ifx>amaxamax=x;ifx<aminamin

43、=x;scanf"f”,&x;printf"namax=%fnamin=%fn”,amax,amin;.以下程序段的输出结果。a=12,y=12/a=16,y=28/a=16,y=44/a=16,y=60a=10;y=0;doa+=2;y+=a;printf"a=%d,y=%dn”,a,y;ify>50break;whilea=14;第15页共39页8 .以下程序段中,for循环的循环次数为。1098769 a=2;b=10;fori=b;i<=a;i-,a+printf"3d”,i;.以下程序段的输出结果。8*6*4*2*0/8*6

44、*4*2*0fori=0;i<3;i+,i+forj=10;j>0;j-ifj+i%2j-;printf"*%d",j;continue;-j;-j;printf"d”,j;printf"n”;A.9B.1intk,j,s;fork=2;k<6;k+,C.11D.10k+s=1;forj=k;j<6;j+s+=j;2 .以下程序段的输出结果是。CA.12B.15C.20D.25inti,j,m=0;fori=1;i<=15;i+=4forj=3;j=19;j+=4>m+;printf"%dn”,m;3 .以下

45、程序段的输出结果是。BA.10B.9C.10D.99898878776intn=10;whilen>7n-;printf"dn",n;4 .以下程序段的输出结果是。CA.1B.30C.1-2D.死循环intx=3;doprintf"3d",x-=2;while!-x;5 .以下程序的输出结果是。CA.15B.14C.不确定D.0maininti,sum;fori=1;i<6;i+sum+=sum;printf"%dn”,sum;6.以下程序的输出结果是A.741B.852maininty=10;for;y>0;y-if。BC.

46、963D.875421y%3=0printf"%d”,-y;continue;7.假设x是int型变量,以下程序段的输出结果是。D.选择题:1.以下程序段的输出结果是DoA.*3B.#3C.#3D.*3#4#4*4*4#5*5*5#5forx=3;x<6;x+printfx%2?"*%d":"#%dn",x;.以下程序的输出结果是。AA.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$maininti;fori=1;i<=5;i+ifi%2printf"*”;elsecontinue;printf"#

47、”;printf"$n”;.以下表达正确的选项是。DA.do_while语句构成的循环不能用其它语句构成的循环来代替。B.do_while语句构成的循环只能用break语句退出。C. 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。D. 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。.以下程序的输出结果是。DA.3981B.4284C.2668D.2870mainintx,i;fori=1;i<=100;i+x=i;if+x%2=0if+x%3=0if+x%7=0printf"d”,x;printf"

48、;n”;.对下面程序段描述正确的选项是。CA.while循环执行了10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次intx=10;whilex=0x=x-1;.以下关于for循环的正确描述是。DA.for循环只能用于循环次数已确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来.以下程序段中是死循环的是。CA.intn=1;while!nn+;B.intn=1;don-;whilen;C.intn=1;don+;whilen;D.forn=5;n&

49、lt;1;;14.以下能正确计算1乂2X3X"-X10的程序段是。CA.dok=1;n=1;n=n*k;k+;whilek<=10;B.dok=1;n=0;n=n*k;k+;whilek<=10;C.k=1;n=1;don=n*k;k+;whilek<=10;第17页共39D.k=1n=0do(n=n*kk+whilek<=10.程序设计题:1. 编写程序,求1-3+5-7+-99+101的值。2 #include"math.h”#include"stdio.h"voidmain()(inti;doublesum=0.0;for(

50、i=0;i<=50;i+)(sum=sum+pow(-1,i)*(i*2+1);printf("1-3+5-7+-99+101=%0.0f",sum);或者#include"math.h"#include"stdio.h"voidmain()(inti,k=1;longsum=0;for(i=1;i<=51;i+)(sum+=k*(i*2-1);k=-k;printf("1-3+5-7+-99+101=%ld",sum);.求1+2+3+100的值。#include<stdio.h>intm

51、ain()(inti,sum=0;i=1;while(i<=100)(sum=sum+i;i=i+1;3 printf(%d",sum);.把100200之间的不能被3整除的数输出。4 #include<stdio.h>voidmain()intn;for(n=100;n<=200;n+);if(n%3!=0)printf("%d”,n);printf("n");.求Fibonacci数列前20个数。#include<stdio.h>voidmain()inta20,i;a0=1;a1=1;for(i=2;i<=

52、19;i+)ai=ai-1+ai-2;printf("n");for(i=0;i<20;i+)5. printf("%d,”,ai);打印1000以内的所有素数。#include"stdio.h"voidmain()inta1001,i,j;a0=a1=0;for(i=2;i<=1000;i+)ai=i;for(i=2;i<1001;i+)if(ai!=0)for(j=i+1;j<1001;j+)if(j%i!=0);elseaj=0;printf("n");for(i=0;i<1001;i+)

53、(if(ai!=0)printf("%d,”,ai);第五章数组及其应用知识点.数组的概念与定义数组的初始化数组元素的引用字符数组的定义、使用、字符串处理函数数组数据的一般处理方式练习.填空题:1 .假设有定义:doublew10;贝Uw数组元素下标的上限是9、下限是0。2 .以下程序的输出结果是12qmain(intarr10,i,k=0;fori=0;i<10;i+arri=i;fori=0;i<4;i+k+=arri+i;printf"%dn”,z;3.以下程序的输出结果是300,0,2。main(inti,j,row,col,m;intarr33=(10

54、0,200,300,28,72,-30,-850,2,6;m=arr00;fori=0;i<3;i+4 forj=0;j<3;j+ifarrij<mm=arrij;row=i;col=j;printf"d,%d,%dn”,m,row,col;.在C语言中,二维数组元素在内存中的存放顺序是按行存放。5 .假设二维数组a有m列,则计算任一元素aij在数组中相对位置的公式为i*m+j+1。6 .假设有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是0,a21得到的初值是6。.假设有说明chars20;如果想从键盘上把字符串"Thi

55、sisabook."输入到数组s中,应当调用的函数是strcpy_;函数调用语句的形式是strcpy(s,"Thisisabook)。".假设有charstr120="agood",str="student"能把str2中的字符串接到str1中的字符串后面的函数调用语句是strcat(str1,str)。7 .以下findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。findmaxints,inttintk,p;forp=0,k=p;p<t;p+ifsp>skp=k;returnp;.以

56、下程序统计从终端输入的字符中每个大写字母的个数,num0中统计字母A的个数,其它依次类推。用#号结束输入,请填空。#include"stdio.h"#include"ctype.h"mainintnum26=0,i;charc;whilec=getchar()!='#'ifisuppercnumc-'A=1;fori=0;i<26;i+ifnumiprintf"c:%dn”,i+'Anumi;.选择题:1 .以下程序的输出结果是。AA. 不确定的值B.3C.2D.1mainintn2=0,i,j,k=2;f

57、ori=0;i<k;i+forj=0;j<k;j+nj=ni+1;2 printf"%dn”,nk;.以下对一维数组a的正确说明是。DA. chara10;B.inta;3 C.intk=5,ak;D.chara='a'b','c'.假设有说明语句:inta24;贝|对a数组元素的正确引用是。A4 A.a03B.a04C.a22D.a22+1.以下能对二维数组y进行正确初始化的语句是。BAinty2=1,0,1,5,2,3;Binty3=1,2,3,4,5,6;第21页共39页C.inty24=1,2,3,4,5,6;5. D.inty3=1,0,1,0,1,1;假设有说明语句:inty4=0,0;则下面不正确的表达是。DA. 数组y的每个元素都可以得到初值0;B. 二维数组y的行数为1;C.该说明等价于inty4=0;1 D.只有元素y00和y01可得到初值0,其余元素均得不到初值0;。A.假设有说明语句:inta3=1,2,3,4,5,6,7,8;贝"a数组的行数为2 A.3B.2C.无确定值D.1.假设二维数组y有m列,则在yij前的元素个数为。B3 A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1.假设有以下语句,则正确的描述是。Bcharx="1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论