C语言程序设计练习题75806

上传人:xinsh****encai 文档编号:27947838 上传时间:2021-08-21 格式:DOC 页数:18 大小:120KB
收藏 版权申诉 举报 下载
C语言程序设计练习题75806_第1页
第1页 / 共18页
C语言程序设计练习题75806_第2页
第2页 / 共18页
C语言程序设计练习题75806_第3页
第3页 / 共18页
资源描述:

《C语言程序设计练习题75806》由会员分享,可在线阅读,更多相关《C语言程序设计练习题75806(18页珍藏版)》请在装配图网上搜索。

1、C语言程序设计练习题一、选择题(每小题2分,共40分,答案必须填写半角大写字母ABCD)1. 若a是float型变量,b是unsigned型变量,以下输入语句( C )是合法的。A) scanf(%6.2f%d,&a,&b)B) scanf(%f%n,&a,&b)C) scanf(%f%3o,&a,&b)D) scanf(%f%f,&a,&b)2. 设以下变量均为int类型,则值不等于7的表达式是( C )。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) (x=6,x+1,y=x,y+1)3.设变量a是整型,b是实型,c是双

2、精度型,则表达式10+a+b*c值的数据类型为( C )。A) int B)float C)double D)不确定4. 设有说明:char w; int x; float y; double z; 则表达式w*x+z-y 值的数据类型为( D )。P54 必定的转换:char,shortint floatdouble 而int类型级别比double低,所以转换int也要转换成double然后运算,最后结果为double型。A)floatB) charC) intD) double5.若给定条件表达式(x)? (a+):(a-), 则表达式x ( C )。A) 和(x=0)等价B) 和(x=1

3、)等价C) 和(x!=0)等价D) 和(x!=1)等价6. C语言中while和do-while循环的主要区别是( A )A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循控制条件严格 C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合句7. 若有说明:int a10;,则对a数组元素的正确引用是( D )A) a10B)a3.5 C)a(5) D)a10-109.设i和x 都是int类型,则以下for循环( A )。for(i=0,x=0;i=0);A) 3B) 4C)5D)不定26.以下叙述正确的是( C

4、)。A) 在C语言中,每行只能写一条语句。B) 若X是实型变量,C语言中允许赋值X=100,因此实型变量中允许存放整型变量。C) 在C程序中,%只能用于整数运算的运算符。D) 在C程序中,无论是整数还是实数,都能被准确无误地表示。27.若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A)。 A) 2.500000B) 2.750000C) 3.500000D) 0.0000028.下面程序段的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。 ( B )#includemain() i

5、nt a,b,t; scanf(%d,%dn,a,b); while_ if(ab) t=a; a=b; b=t; printf(%d,%dn,a,b); scanf(%d%d,&a,&b); A) !a=bB)a!=b C)a=b D)a=b把选项放到题目里,试运行一下!29.若调用一个函数,且函数中没有return语句,则正确的说法是( D )。A) 该函数没有返回值B) 返回若干个系统默认值C) 能返回一个用户所希望的函数值D) 返回一个不确定的值31.以下不正确的语句(设有 int q,p)是( D )。 A) p*=3; B) p/=q; C) p+=3; D) p&=q; 32.设

6、int n=3,则+n的结果是( C )。 A) 2 B) 3 C) 4 D) 5 +- 在右:用老值 +- 在左:用新值+i和i+的作用相当于i=i+133.在执行 int a3=1,2,3,4,5,6;语句后,a10的值是( A )。 A) 4 B) 1 C) 2 D) 5 35.以下对一维整型数组a的正确说明是( A )。A) int a(10); B) int n=10, an;C) int n; scanf(%d,&n); int a10;D) #define max 10 int amax;37.若a=1,b=2,c=3,d=4,则条件表达式 a=0);A) 3B) 4C)5D)不

7、定51.设变量a是整型,b是实型,c是双精度型,则表达式10+a+b*c值的数据类型为( C )。A) int B)floatC)doubleD)不确定56.在C语言中,int型数据在内存中的存储形式是( A )。A) 补码B) 反码C)原码D)ASC|码57.在C语言中,当while语句中的条件为( A )时,结束该循环。A)0B)1C) trueD)非067.以下程序的输出结果是( A )。#includemain() int i=0,j=0,a=6; if(+i0)|(+j0) a+; printf(i=%d,j=%d,a=%dn,i,j,a);A) i=0,j=0,a=6 B) i=1

8、,j=1,a=7C) i=1,j=0,a=7 D) i=0,j=1,a=775.若有说明 int a3=1,2,3,4,5,6,7;,则a数组第一维的大小是( B )。A) 2 B)3 C)4 D)无确定值76.下列四组选项中,均不是C语言关键字的选项是( A )。A) define of type B) getc char printf C) include scanf caseD) if struct type86.设n=10,i=4,则赋值运算 n%=i+1执行后,n 的值是( B )。 A) 0 B) 3 C) 2 D) 1 若有说明:static int a34;,则数组a中各元素(

9、 C )A)可在程序运行阶段得到初值0B)可在程序编译阶段得到初值0C)不能得到确定的初值D)可在程序的运行或编译阶段得到初值0static型数组不进行初始化时,如果是数值类型数组(如整型、实型)默认值为0;如果是字符型数组默认值为空字符0(ASCII码为零的字符)。若a=1,b=2,c=3,d=4,则条件表达式 a=b?a:c=d?c:d的值为( A )。 A) 1 B) 2 C) 3 D) 4 首先判断条件a =b,如果成立则取a的值,不成立则取(c =d?a:d)的值对于c =d?c:d,先判断c =d,如果成立则取c的值,不成立则取d的值所以,很明显,你的表达式里一开始a y&7的值为

10、_0_假_ 4、执行语句int a=2; a+=a-=a*a;后,a的值是Error! Reference source not found.。 5、若 int i,j,k; 则计算表达式 x=(i=4,j=16,k=32)后,x的值为_32_。6、设 a 和 n 为整型变量,a=10,n=5,则表达式 a+=n/2的值为Error! Reference source not found.。 7、以下程序的输出结果为Error! Reference source not found.。#define s 5.5#define f(x) s*x*xmain() int a=1,b=2; prin

11、tf(%4.1fn,f(a+b);8、设x=1,y=2,z=3,则表达式 !y&(x=z) 的值为Error! Reference source not found.。 10、设 a 和 n 为整型变量,a=10,n=5,则表达式 a-=5 的值为Error! Reference source not found.。12、若x,y均为int型变量,则以下语句的输出为Error! Reference source not found.。main() int x=017,y=111; printf(%d,+x); printf(%xn,y+); 13、若外部变量定义在主函数之后,一般应该用Erro

12、r! Reference source not found.来进行外部变量说明。 14、以下程序的输出结果为Error! Reference source not found.。 main() int a, b, c = 450; a=c/100%8; b=(-2)&3; printf(c=%dn,a+b+c); 15、若a为整型变量,a=10,表达式a+=a+1的值为Error! Reference source not found.。5、若有定义和语句:char c1=b,c2=e;printf(%d,%cn,c1-c2,c2-a+A);则输出结果是_。1、若有定义 char c=0100

13、0,则变量c中包含的字符个数为Error! Reference source not found.个。 2、下面的程序的输出是Error! Reference source not found.。main() int x=10; while(x-); printf(%dn,x); 3、执行下列程序段后,k的值是Error! Reference source not found.。k=1; n=263;dok*=n%10;n/10;while(n); 1、若a是int 整型变量,且a 的初始值为6,则计算表达式a + = a - = a * a后的值为_-24?_ 3、若 char str10=

14、computer0;则执行 strlen(str)的结果是_。 三、程序改错并得到答案(10分)1. 求 s=1!+4!+7!+ +(3n+1)!。程序中有一处错误。 (1) 输入原程序并运行,输入4,记录运行结果,将结果填入答题窗口的。(程 序名由考生自定) 6230654665 (2) 更正程序中的错误,运行更正后的程序,输入10,记录运行结果,将结果填 入答题窗口的。 #include stdio.h main() long s,f,n; int I,j; printf(Enter a number: n); scanf(%ld,&n); s = 0; for (I=1; I= n; I

15、+=3) f = 1; for (j=1; j=I; j+) f = f*I; s += f; printf(%ldn,s); 错误程序的结果为:Error! Reference source not found.更正后的结果为:Error! Reference source not found.2.已知 f(n)=f(n-1)+2f(n-2)-5f(n-3), f(0)=1,f(1)=2,f(2)=3, 求 f(0)+f(1)+f(20)。程序中有一处错误。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。 (程序名由考生自定) (2) 更正程序中的错误,运行更正后的程序,记录

16、运行结果,将结 果填入答题窗口的。 #include stdio.hmain() long f0=1,f1=2,f2=3,f,s,I; s=f0+f1+f2; for (I=1; I=2)编写程序求f(8)的值,并将结果以二进制形式在考生目录下写入文件“sj279.c”。 #includeint f(int a,FILE *p) if(a/2=0) return a%2; else fprintf(p,%d,f(a/2,p); return a%2; int main() FILE *p; int a30=0,1,2; int i; p=fopen(F:sj279.c,w+); for(i=2

17、;i10;i+) ai+1=2*ai+ai-1*ai-2; printf(%dn,a8); f(a8*2,p); fclose(p); return 0;3. 求解方程 x2- 7912x +12976 = 0 的最大实根。 程序中有一处错误。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。(程序名由考生自定) (2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的。 #include stdio.h #include math.h main() float b,c,d,x; b=-7912.0; c=12976.0; d=b*b-4*c; d=sqrt

18、(d); x=(-b-d)/2; printf(%8.2fn,x); 错误程序的结果为:Error! Reference source not found.更正后的结果为:Error! Reference source not found.1.以下程序求1,700之间能被3或5整除的数之和。 程序中有一处错误。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。(程序名由考生自定) (2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的。 #include stdio.h #include math.h main() int i; long sum; sum

19、=0; for(i=1;i=700;i+) if(fmod(i,3)=0)|(fmod(i,5)=0) sum+=i; printf(%dn,sum); 错误程序的结果为:Error! Reference source not found.更正后的结果为:Error! Reference source not found.6. 下列程序中fun()函数的功能是通过形参得到圆的面积。试求半径为13.437 的圆的二分之一面积。 程序中有一处错误。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。(程序名由考生自定) (2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填

20、入答题窗口的。 #include stdio.h #include math.h double fun(double r) double s; s=1/2*3.14159*r*r; return(s); main() double r=13.437; printf(%10.4fn,fun(r); 错误程序的结果为:更正后的结果为:Error! Reference source not found.7. 下列程序的功能是:已知a、b、c,求二元一次方程 ax2+bx+c=0的最大的 根的程序。 程序中有一处错误。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。(程序名由考生自定)

21、 (2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题窗口的。 #include stdio.h #include math.h #define a 1.3 #define b -4 #define c -11 main() double x; double d; d=sqrt(b*b-4*a*c); x=-b+d; if (x-b-d) x=-b-d; x=x/2*a; printf(%10.4fn ,x); 错误程序的结果为:Error! Reference source not found.更正后的结果为:Error! Reference source not fou

22、nd.8. 以下程序求1,700之间能被3 或5整除的数之和。 (1) 输入原程序并运行,记录运行结果,将结果填入答题窗口的。(程序名 由考生自定) (2) 更正程序中的错误,运行更正后的程序,记录运行结果,将结果填入答题 窗口的。 #include stdio.h #include math.hmain() int I; long sum; sum=0; for ( I=1;I=700;I+) if ( fmod(I,3)=0)|(fmod(I,5)=0) sum+=I; printf(%dn,sum);错误程序的结果为: 更正后的结果为: 四、程序填空并得到答案(10分)1. 下面程序的功

23、能是求1-100之间的能被9除余8的数之和,请补充程序并将运行结果填空:main()int n, sum=0;for(n=1;n=100;n+)if( ) sum=sum+n;printf(%d,sum);程序的结果为: 2. 下面的程序段功能是统计100-999之间所有满足三个数字之积为24,三个数字之和为12的数的个数,请补充程序并将运行结果填空:main()int x,y,z,count=0;for(x=1;x=9;x+)for(y=0;y=9;y+) for(z=0;z=9;z+) if( ) count+;printf(%d,count);程序的结果为: 4.鸡兔共有30只,脚共有9

24、0只,下面的程序段是计算鸡兔各有多少只,请补充程序并将运行结果填空:(注:x代表兔子,y代表鸡) main()int x,y;for(x=1;x=30;x+)y=30-x;if( ) printf(%d,%dn,x,y);程序的结果为: #include#define MAX 10int main()int i,n,aMAX;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;i=1e-6) pi= ; n=n+2; s= ; t=s/n;printf(%10.6fn,4*pi);程序的结果为:Error! Reference source not

25、 found.7. 下面的程序段功能是求满足方程:x*x+y*y+z*z=88*88(注:要求xyz)的方程的整数解的个数(包括负整数),请补充程序并将运行结果填空。#include stdio.h#include math.hmain()int x,y,z,count=0;for(x=-88;x=88;x+)for(y=-88;y x;y+) for(z=-88;z y;z+) if(x*x+y*y+z*z=88*88) ;printf(%d,count);程序的结果为:Error! Reference source not found.8. 下面的程序段功能是:求所有符合算式ij*ji=1

26、855的最小数ij(即:i*10+j);其中i,j是1-9之间的一位整数,请补充程序并将运行结果填空。main()int i,j;for(i=1;i=9;i+)for(j=1;j=9;j+) if( ) printf(%d%d,i,j); return; 程序的结果为:Error! Reference source not found.9. 下面的程序段功能是统计100-999之间所有满足三个数字之积为24,三个数字之和为12的数的个数,请补充程序并将运行结果填空:main()int x,y,z,count=0;for(x=1;x=9;x+)for(y=0;y=9;y+) for(z=0;zbc,且a+b+cbc,且a+b+c30,求满足条件1/(a2)+1/(b2)=1/(c2)的共有多少组。2编写程序,求200到800之间素数的个数3编写程序,求共有几组I、j、k符合算式ijk+kji=2333,其中I、j、k是09之间的一位整数。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!