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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言综合练习题精选及详解Word文件下载.docx

1、 if (x 0) y = -1; else if (!x) y = 0; else y = 1; 即: -1 x 5、循环 for(i=0, j=5; +i!=-j; ) printf(“%d %d”, i, j); 将执行 A) 6次 B) 3次 C) 0次 D) 无限次i = 0, j = 5, (+i1) != (-j4) 成立: i = 1, j = 4i = 1, j = 4, (+i2) != (-j3) 成立: i = 2, j = 3i = 2, j = 3, (+i3) != (-j2) 成立: i = 3, j = 26、下列程序段执行后s值为: int i=5, s=0

2、; do if (i%2) continue; else s+=i; while (-i); A) 15 B) 9 C) 6 D) 以上均不是写成规范形式: do if (i % 2) continue; else s += i;i = 5, s = 0: i % 2 = 1: i = 4i = 4, s = 0: i % 2 = 0: s = 0 + 4 = 4; i = 3i = 3, s = 4: i = 2i = 2, s = 4: s = 4 + 2 = 6; i = 1i = 1, s = 6: i = 08、对于以下宏定义: #define SQ(x) x*x #define D

3、D(x,y) SQ(x)-SQ(y) 宏调用DD(2*3, 2+3)执行后值为: A) 43 B) 11 C) 25 D) 以上均不是DD(2*3,2+3)SQ(2*3)-SQ(2+3)2*3*2*3-2+3*2+34311、语句if (ab) k=0; else k=1; (int a, b, k) 等价于: A) k=(ab)?1:0; B) k=ab; C) k=a3) if ( i8) ? 14:21) = 14); 后变量i,j的值应为: A) i=0 j=1 B) i=1 j=1 C) i=0 j=2 D) i=1 j=2i = (3/2 + 7/2) = 5) = (1+3) =

4、 5) = (4 = 5) = 0;j = 1 + (21 = 14) = 1 + 0 = 125、如果 int i=16, j=23 ; 执行 printf(%x-%o,i, j)后输出为: A) 10-23 B) 10-27 C) 16-23 D) 16-2726、执行下列程序: #define MA(x, y) (x)*(y) int i = 2; i = 3/MA(i, i+1)+5; printf(“%dn”, i); A) 5 B) 8 C) 0 D) 以上都错3/MA(i,i+1)+5 3/(i)*(i+1)+5 3/2*3+5 827、有一函数: int f(int a) au

5、to int b = 0; static int c = 3; b = b+1; c = c+1; return(a+b+c); 如果有int i, j; 则执行两次调用:i=f(2); j=f(2) 后, i, j值为: A) i = 7, j = 7 B) i = 7, j = 8 C) i = 8, j = 7 D) i = 8, j = 8 注意静态局部变量static int c;的含义第一次调用f(2): 开始时: b = 0, c = 3 执行: b = 0 + 1 = 1, c = 3 + 1 = 4; 返回: a+b+c=2+1+4=7; 调用结束后: 静态局部变量c=4保持

6、不变;第二次调用f(2): b = 0, c = 4 b = 0 + 1 = 1, c = 4 + 1 = 5; a+b+c=2+1+5=8; 静态局部变量c=5保持不变;二、填空题1、用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为: for (i=1; i0)? x*f(x-1):3); i=f(f(1);调用f(1):(10) 成立,执行1*f(0)=f(0), 调用f(0) = 3所以,f(1)=3;调用f(3): f(3) = 3 * f(2) f(2) = 2 * f(1) = 2 * 3 = 6 所以 f(3) = 3 * 6 = 187、对于ch

7、ar c; 若已知其值为小写字母, 将其转换为相应大写字母的表达式为 _c a + A_11、int i=0, s=0; while (in) s+=i+;等价于 int i, s; for(_i=0,s=0; i =j_;14、下面是用二分法从数组vn中查找数x的函数,返回值为x所在下标(若找到)或-1(没找到): binsearch(int x, int v, int n) int low, high, mid; low=0; high=n-1; while (low=high) mid = _ (low+high)/2_; if (xvmid) low = mid +1; else re

8、turn _ mid_; return -1;15、下面程序验证哥德巴赫猜想, 即寻找2到1000间满足“偶数=素数1+素数2”(如10=3+7)的所有偶数。素数指只能被1和自身整除的正整数,如1,2,3,17等。 #include #define MAX 500 int prime(int n) /* 判断n是否为素数 */ int i; for (i=2;=n-1; i+) if (!(n%i) break; return _ i=n_; main() int i, j; for (i=1 ;=500; for (j=1; j=0; j-) printf(“%1d%c,i+j, j?*:#

9、); 如果调用f(3)将输出_2*1*0#3*2*1#4*3*2#_20、用for循环打印 0 1 2 0 1 2 0 1 2; for( i=1; i+ ) printf(%2d, _(i-1)%3_);24、程序: int f( int n ) if(n=2_) t = _t0+t1_; t0 = t1; t1 = t; n - -; return _t_;26、下列函数f(A, n, x)将正整数x插入已从小到大排序好的数组A中. 数组A当前分量个数为n. 例如, 当A的前5个分量为(2,3,9,12,15), n=5时, 调用f(A,n,10)后, n变为6, A的前6个量为:(2,3

10、,9,10,12,15)。 A0 A1 A2 A3 A4A5 void f(_int A, int n, int x_) 2 3 9 12 15 x int t, i; i=n; An+1=_ x_; i while (i=0) & (_AiAi+1_) t=Ai; Ai=Ai+1; Ai+1=t; i - -; n+;三、程序阅读理解,并回答相应问题3、#include int a25; void p1(int v) int i, j, temp; for (i=1;5; for(j=i-1;=0 & vjvj+1; j-) temp=vj; vj=vj+1; vj+1=temp; void

11、 p2(int v1, int v2) int i=0, j=0; while (iv2j) printf(%d , v1i+); else printf(, v2j+);5) printf( while (j, v1j+); printf(n int i,j; for (i=0;2; for(j=0; j+) scanf(%d, &aij); p1(a0); p1(a1); printf(, aij); p2(a0, a1); 问题: 当输入5 9 1 12 10 7 3 11 4 10时, 上述程序运行后, 第一行将输出_12 10 9 5 1 11 10 7 4 3_ 第二行将输出_12

12、 11 10 10 9 7 5 4 3 1_函数p1()的功能:将参数数组的每个元素按从大到小的顺序排列。函数p2()的功能:将两个参数数组中的每个元素(已经降序排列)混合在一起,并按从大到小的顺序输出。6、 #include #define F(k) k+3.14 #define P(a) printf(a=%dn, (int)(a) #define P1(a) P(a);putchar(n #define P2(a, b) P(a);p1(b); main() int x = 1; int x = 2; P(x*F(2); for (; x 10; x += 50) P2(x, 9.15*

13、x+32); 请写出该程序中有关宏定义的展开式,并给出该程序的运行结果。有关展开:P(x*F(2); printf(“a=%dn”,(int)(x*F(2); printf(“a=%dn”,(int)(x*2+3.14);P2(x, 9.15*x+32); P(x);P1(9.15*x+32);P(x); printf(“a=%dn”,(int)(x);P1(9.15*x+32) P(9.15*x+32);putchar(n);P(9.15*x+32); printf(“a=%dn”,(int)(9.15*x+32);printf(“a=%dn”,(int)(9.15*x+32);全部展开,并整理,得:main() int x = 2; printf(“a=%dn”,(int)(x*2+3.14); for (;x10;x+=50) printf(“a=%dn”,(int)(x); printf(“a=%dn”, (int)(9.15*x+32); putchar(n);运行结果:a=7a=1a=498

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

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