ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:33.99KB ,
资源ID:12056313      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12056313.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言习题课附答案.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言习题课附答案.docx

1、C语言习题课附答案C语言习题课一、单项选择题: 1.以下 A 是C语言中有效的变量名称。A_abc B2abc Cchar Da#3 变量名只能以下划线和字母开头2.下面四个说法中错误的是 B 。Afor循环不仅可以和for循环嵌套,而且可以和While循环嵌套。B当在循环体内执行continue语句的时候,将结束整个循环。Cwhile循环最少循环0次,do-while循环最少循环1次。Dgoto语句也可以实现循环的功能。3.在while ( x )中的x与下面条件表达式等价的是 D Ax = = 0 Bx= = 1 Cx! = 1 Dx ! = 04.为表示关系xyz,应使用C语言表达式 A

2、 A(x=y)&(y=z)B(x=y)AND(y=z)C(x=y=z)D(x=y)&(y=z)5.设有如下定义:int x=9,y=2,z;则语句printf(“%dn”,z= x/y);的输出结果是 C A1 B4.5 C4 D3整形中的“/”是整除6.若有以下语句:static char x =”12345”;static char y =1,2,3,4,5;则正确的说法是 B 。Ax数组和y数组的长度相同 Bx数组的长度大于y数组的长度Cx数组的长度小于y数组的长度 Dx数组与y数组等价字符串后有一个“0”7.已知有定义:char ch;则下面正确的赋值语句为 A 。Ach=X Bch=

3、55 Cch=M Dch=558.以下说法中正确的是 C AC语言程序总是从第一个的函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行DC语言程序中的main()函数必须放在程序的开始部分9.C语言中,形参的缺省存储类型说明是: A A.auto B.static C.register D.extern10.C语言中的简单数据类型有: B A整型 实型 逻辑型B整型 实型 字符型C整型 字符型 逻辑型D整型 实型 逻辑型 字符型11.以下程序段的输出结果是: C A1 int x=3;B3 0 doC1 -2 printf(%3d,

4、x-=2);D死循环 while(!(-x);12.以下非法的赋值语句是: A An=(i=2,+i); Bj+; C+(i+1); Dx=y0;13.设a和b均为double型变量,且a5.5,b=2.5,则表达式(int)a+b/b的值是: D A6.500000 B6 C5.500000 D6.00000014.已知x=3,y=2,则表达式x*=y+8的值为: C A3 B2 C30 D10y+8是一个整体15.设x,y,z均为int型变量,则执行以下语句后,t的值为: C x=y=z=1; t=+x|+y&+z;A不定值 B2 C1 D016.为了测试字符串的实际长度,C语言规定了一个

5、“字符串结束标志”,这个结束标志字符是: B An B0 Cx D917.C程序的三种基本结构是: A A顺序结构、选择结构、循环结构 B逻辑结构、层次结构、网状结构C顺序结构、逻辑结构、选择结构 D层次结构、顺序结构、循环结构18.若int i=10;执行完下面程序判断后,变量i的正确结果是 D 。A10 switch ( i ) B11 C12 case 7: i+=1;D13 case 10: i+=1; case 17: i+=1; default: i+=1; case后有break,结束跳出结果,没有break,继续执行 具体见书本105页19.下列关于C语言注释的描述中,错误的是

6、: D 。AC语言中用/*/表示注释部分B注释只是给人看的,对编译和运行不起作用C注释可以加在程序中的任何位置DC语言中用*表示注释部分20.下列关于C程序的描述中,错误的是: D 。AC程序是由函数构成的B一个C程序总是从main函数开始执行CC程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上DC语言中是利用输入/输出运算符构成输入/输出语句完成输入/输出操作的21.C源程序的后缀名默认为: B 。AcppBcCobjDexe C语言的默认后缀名是.c,在C+中才是cpp22.以下不属于C语言的基本数据类型的是: B 。A整型B布尔型C字符型D实型23.下列标识符中,符合C

7、语言语法规范的是: C 。AM.D.JohnB$123C_nameD3D6424.下列选项中,不是C语言中的关键字的是: C 。AautoBifCVOIDDbreak25.下列常量中,合法的长整型常量是: A 。A0LB4962710000C0.05472D2e+2 长整型的范围是 -2147483648214748364726.设int型变量m,n,a,b,c,d均为0,执行表达式(m=a=b)|(n=c=d)后,m和n的值是: C 。A0,0B0,1C1,0D1,1 当在“或”的前面为1,后面不再执行。在“与”前面为0,后面也不在执行,出现“短路”现象。27.若a为int类型,且其值为3,

8、则执行完表达式a+=a-=a*a后,a的值是: C 。A3B9C12D628.假设double型变量x,y已经正确定义,则表达式x=1,y=x+3/2的值是: D 。A1B2.0C2D2.529.已知A的ASCII码为65,则下列程序的运行结果为: A 。main()char ch1=A;char ch2=ch1+3;printf(“%d,%cn”,ch1,ch1);printf(“%d,%c”,ch2,ch2);A65,A 68,DBA,65 D,68CA,D 65,68DD,68 A,6530.以下关于while语句的叙述正确的是BAwhile语句构成的循环必须用break语句才能退出Bw

9、hile循环语句中,当while子句中的表达式值为零时,结束循环C不能使用while语句来构成循环结构Dwhile语句的循环体至少被执行一次二、填空题: 1.程序段float x=165.323; printf(“x=%-10.2f”,x);执行时输出的结果为: 165.32 p762.设x,y,z,k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为: 32 3.要将两个字符串连接成一个字符串,可以使用的标准库函数名为: strcat P1474.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch结构,应该使用语句 break p105。5.若有

10、定义int a34=1,2,3,4,5,6,7,8,9,10,11,12,则a12 7 p1376.C语言中,结束本轮循环,将循环是否继续交给循环判断条件确定的语句是: continue 。7.设x2.5,a=7,y=4.7,则算术表达式x+a%3*(int)(x+y)%2/4的值为: 2.5 8.C语言中,函数是程序的基本构成单元,其中 main 函数是必须的,且唯一。9.在C语言程序中,用关键字 float 定义单精度实型变量。10.设有语句“int i=1,s=1;for(;s+iy)&(-x0)”后x的值为1。12.多分支选择结构中,若在执行某一个case语句后,使流程跳出switch

11、结构,应该使用语句 break p10513.C语言中的if语句属于三种基本结构中的选择结构的语句。14.若变量ch为char类型,判断ch为数字字符的表达式是 ch0& ch9 。15.设x2.5,a=7,y=4.7,则算术表达式x+a%3*(int)(x+y)%2/4的值为: 2.5 16.continue语句只能用在三种基本结构中的循环结构的语句中。17.如果在用户的程序中要使用C库函数中的数学函数时应在该源文件中使用的include命令是: math.h 18.若有定义:int x5; 则访问x数组中的元素时,下标的上限为: 4 。19.C语言中,函数是程序的基本构成单元,其中 mai

12、n 函数是必须的,且唯一。20.C语言本身没有输入输出语句,格式化的标准输出是借助库函数 实现。三、程序阅读题: 1.阅读下列程序,并给出程序运行的结果。void main() int n,d,k;n=263;d=1;k=1; do k*=n%10; n/=10; printf(%d, d); d+; while(n); printf(n); printf(%dn,k); printf(%dn,n);运行结果:1,2,3 36 02.阅读下列程序,并给出程序运行的结果。void main() int x=2345,t; int sum,muti;sum=0;muti=1; printf(数字为

13、:%dn,x); while (x!=0) t=x%10; sum+=t; muti*=t; x=x/10; printf(构成数字的和:%dn,sum); printf(构成数字的乘积:%dn,muti);运行结果:数字为:2345 构成数字的和:14 构成数字的乘积:1203.阅读下列程序,并给出程序运行的结果。void main( ) int x=20,y=30,z60; while(xy)xx+4; yy+4; zz/2; printf(“dn”,x); printf(“dn”,y); printf(“dn”, z);运行结果:32 34 304.阅读下列程序,并给出程序运行的结果。v

14、oid main()int i,j,l,m,a10=9,8,7,6,5,4,3,2,1,5;for(i=0;i=8;i+)l=i; for(j=i+1;j=9;j+) if(ajal) l=j; if(l!=i) m=ai;ai=al;al=m; for(i=0;i=9;i+) printf(%d ,ai); if(i%3=0&i!=0)printf(“n”); 运行结果:1 2 3 4 5 5 6 7 8 9四、编程题:(8分每题,共16分)1.写一个函数,输入一个四位数字,要求输出这4个数字字符,但每两个数字间空一个空格。例如输入1990,应该输出“1 9 9 0”。算法一:# inclu

15、de void main( ) int a,b,c,d,e; /定义四个数,a是一个四位数,b是它的千位,c是百位,d是十位,e是个位 printf(“请输入一个四位数:”); scanf(“%d”,&a); b=a/1000; /获取它的千位 c=(a-b*1000)/100; /获取它的百位 d=(a-b*1000-c*100)/10; /获取它的十位 e=a-b*1000-c*100-d*10; /获取它的个位 printf(“%d %d %d %dn”,b,c,d,e); /将它的每一位重新排序输出算法二:# include /这方法与第3题类似void main()char c;pr

16、intf(“请输入数字:”); /提示while(c=getchar()!=n) /逐个获取数字(当然字母也可以,n个数都可以)printf(“%c ”,c); /逐个数字输出(数字与数字之间有空格)printf(“n”); 算法三:# include void main() int a10,n,i=0; printf(“请输入一个数:”); scanf(“%d”,&n); while(n!=0) ai+=n%10; n/=10;for (i-;i=0;i-) printf(“%d ”,ai); printf(“n”);2.编写程序,用公式1-+-+-+求的近似值,直到最后一项小于10-5为止

17、。解法一:#include #include void main() double x=1,i=1; /定义x=1/i (i是分数的分母) int j=1; /定义该数列有j项 double p=0; /定义p是该数列的和,初始为0 while(x1e-5) /在该条件下循环 x=1/i; /x是每一项的值 i+=2; /数列的分母+2 if(j%2!=0) /奇数项相加,偶数项相减获得p的值 p为/4 p+=x; if(j%2=0) p-=x; j+; p=p*4; /获得的值 printf(=%lfn,p); /输出值解法二: # include # include void main()

18、 int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; do pi+=t; n+=2; s=-s; t=s/n;while(fabs(t)1e-5); pi*=4; printf(“=%.5fn”,pi); 3.输入一行字符(不超过100),将其中的大写字符变成小写,小写字符变成大写,其余字符不变。解法一:# include void main() char c; while(c=getchar()!=n) /获得字符 if (c=a&c=A&c=Z) /大写字母变小写字母 c=c+32; printf(%c,c); else /其他字符不变 printf(%c,c

19、); printf(n);解法二: # include void main() int i=0; char a100,c; printf(请输入字符串的内容:t); do scanf(%c,&ai); c=ai; i+; while(c!=n); ai=0; i=0; printf(输入字符串的内容为:t); while(ai!=0) printf(%c,ai); i+; printf(转换后字符串的内容为:t); i=0; while (ai!=0) c=ai; if(c=a&c=A&c=Z) ai+=32; printf(%c,ai); i+; 4.以下程序把100200之间不能被3整除的

20、数输出# include void main() int i; for (i=100;i=200;i+) /100到200之间循环 if (i%3!=0) /排除能被3整除的数(余数不为0) printf(%dn,i);5.输入3个数,按从小到大的顺序输出。 方法一:# include void main() int x,y,z,t; printf(请输入要比较的三个数:); scanf(%d %d %d,&x,&y,&z); if (xy) t=x; x=y; y=t; if(yz) t=z; z=y; if (xt) y=t; else y=x; x=t; printf(%d %d %dn

21、,x,y,z); 方法二: # include /此题使用了冒泡排序的方法void main( ) int a3; /定义3个数 int temp,i,j,k; printf(请输入3个数:); /提示输入 for(i=0;i3;i+) scanf(%d,&ai); /给输入的3个数进行编号 for (j=0;j2;j+) /进行2次循环 for(k=0;kak+1) /进行比较把大的数放到最后 temp=ak; ak=ak+1; ak+1=temp; for(i=0;i3;i+) /将排好序的3个数重新编号 printf(%d ,ai ); /输出3个数 printf(n); 方法三: #

22、include /这种方法比较麻烦,需要一一列出来 void main () int a,b,c,d,e,f; printf(“请输入3个数:”); scanf(“%d %d %d”,&a,&b,&c); /获取3个数a,b,c if(a=b&b=c) /a=b=c的情况 printf(“%d %d %dn”,c,b,a); /重新排序输出 else if(a=c&c=b) / a=c=b的情况 printf(“%d %d %dn”,b,c,a); /重新排序输出 else if(b=a&a=c) / b=a=c的情况 printf(“%d %d %dn”,c,a,b); /重新排序输出els

23、e if(b=c&c=a) / b=c=a的情况 printf(“%d %d %dn”,a,c,b); /重新排序输出else if(c=b&b=a) /c=b=a的情况 printf(“%d %d %dn”,a,b,c); /重新排序输出else if(c=a&a=b) /c=a=b printf(“%d %d %dn”,b,a,c); /重新排序输出6. 以下程序用while语句计算式子方法一:用while计算# include /此题要算从1加到100void main()int s=0,n=1; while(n=100) /n从1到100之间循环 s+=n; n+; printf(%d

24、n,s); 方法二:用for计算# include void main()int s=0,n; /s为累加的初始值for (n=1;n=100;n+) /n从1到100之间循环 s=s+n; printf(%dn,s);7.求100200间的全部素数。 方法一: # include void main() int i , n ; for(n=101 ;n 200;n+=2) for(i=2;i=n-1;i+) if(n%i=0) break; if(i= n ) printf(%5dn,n); 方法二:# include # include void main() int m,i,k,n=0;

25、 for(m=101 ;m=200;m+=2) k=sqrt(m); for(i=2;i=k+1) printf(%dn,m); n+=1; printf(n);8.函数pi()的功能是根据以下公式求值, =1+直到最后一项小于10-5为止。#include double jiecheng1(int x) /定义一个函数 阶乘1,可以得到一个从1乘到x的值 double s=1; for(int i=1;i=x;i+) s=s*i; return(s);double jiecheng2(int x) /定义一个阶乘2函数 可以得到一个从3*5*7*。*2x-1的值 double s=1; for(int i=1;i=x;i+) s=s*(2*i+1); retu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1