欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    工学C语言综合练习题及详解.docx

    • 资源ID:13532299       资源大小:76.30KB        全文页数:37页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    工学C语言综合练习题及详解.docx

    1、工学C语言综合练习题及详解综合练习题一、从下列四个供选择的答案中选出正确的一个答案1、语句printf(“%d%d”, 123); 将输出: A) %123%d B) %d123 C) %d123 D)上述语句语法有错“%”格式表示输出一个“%”。2、执行下列程序段后, a值为: int a, b; a=15; b=12; a=(a- =b+)? a%5 : a/5; A) 0 B) 2.8 C ) 4 D) 2 先计算a-=b+的值: a-的值为15,执行后a=14;b+的值为12,执行后b=13;15=12为假执行a/5即14/5值为2结果: a = 23、判断字符变量c的值为数字(0-9

    2、)则返回1,否则返回0, 可用表达式: A) 0=c=9 B) 0=c & c=9 C) 0=c | c= 9 D)以上均不是4、对于int x, y; 语句 if (x=0) if (x) y=1; else y= -1; B) if (x!=0) if (x0) y=1; else y= -1; else y=0; C) if (x0) y=1; else y=0;语句if (x0) y= -1; else if (!x) y=0; else y=1; 等价于: if (x 0) y = -1; else if (!x) y = 0; else y = 1; 即: -1 x 05、循环 f

    3、or(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; do if (i%2) continue; else s+=i; while (-i); A) 15 B) 9 C) 6 D)

    4、 以上均不是写成规范形式: do if (i % 2) continue; else s += i; while (-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 % 2 = 1: i = 2i = 2, s = 4: i % 2 = 0: s = 4 + 2 = 6; i = 1i = 1, s = 6: i % 2 = 1: i = 07、对于int a,要使(11)|a)=a; 则a 可以是: A) 2 B) 6 C) 10 D) 2,6,10均可

    5、1: 0000 0000 0000 000112: 0000 0000 0000 010011: 0000 0000 0000 0010 (11) | 2: 0000 0000 0000 0010 (2)(11) | 6: 0000 0000 0000 0110 (6)(11) | 10: 0000 0000 0000 1010 (10)8、对于以下宏定义: #define SQ(x) x*x #define DD(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

    6、*3*2*3-2+3*2+3439、对于以下结构定义: struct int len; char *str; *p; *p-str+中的+加在A) 指针str上 B) 指针p上 C) str所指的内容上 D) 以上均不是优先级: “-” “*” = “+”, +是右结合*p-str+ *(p-str)+)例子: 假如有 plen 12str H e l l o , w o r l d ! 0 则*p-str+的值为 H, 执行后, str指向e单元.10、将s所指节点加到p所指节点之后(如下图), 其语句应为: next . . p next s A) s-next = p+1; p-next

    7、 = s; B) p-next = s; s-next = p-next; C) s-next=p-next; p-next=s-next;D) s-next = p-next; p-next = s;11、语句if (ab) k=0; else k=1; (int a, b, k) 等价于: A) k=(ab)?1:0; B) k=ab; C) k=a=b; D) 以上均不是12、对于int i; char c, s20;从输入序列123ab45efg中将123读入i; b读入c; “45efg”读入s, 则scanf语句应写为: A) scanf(“%da%c%s”, i, c, s) B

    8、) scanf(“%d%*c%c%s”,&i, &c, s); C) scanf(“%da%c%s”, &i,&c,&s) D) scanf(“%d%c%c%s”, &i, &c, s);13、若有以下说明和语句, 已知int和double类型分别占2和8个字节,则sizeof(st)的值为: struct st char a10; union int i; double y; ; A) 18 B) 20 C) 12 D) 以上均不是14、对于以下程序段, 运行后i值为: enum WEEKS 1,2,3,4,5,6,7 ; enum WEEKS a=1; int i=0; switch (a

    9、) case 1: i=1; case 2: i=2; default: i=3; A) 1 B) 0 C) 3 D) 上述程序有语法错误15、对于以下递归函数f, 调用f(4),其返回值为: int f(int n) return f(n-1)+n; A) 10 B) 11 C) 0 D) 以上均不是16、某一程序TEST.C,编译后运行:TEST 123 456 ABC 则相应的argc及argv3分别为:A) 3 “456” B) 3 “ABC” C) 4 “456” D) 4 “ ABC” argv0 “TEST” argv1 “123” argv2 “456” argv3 “ABC”

    10、 17、如下程序段: int c=1, 7, 12; int *k; k=c; printf(next k is %d,*+k);其输出应为: A) 2 B) 7 C) 1 D)以上均不对k 1 c07 c1 12 c218、如果变量xx有如下类型: struct char a1;1 int a2;2 xx;如果sizeof(xx)的值为3, 则: union char a1; int a2; int a3; yy;则sizeof(yy)函数的返回值应为: A) 2 B) 4 C) 5 D)定义有错19、对于enum RAIN, CLOUD, CLEAR weather;做如下操作: weat

    11、her=1; weather=CLOUD; 下列哪个说法是对的。A) 是错的 B) 是错的 C) 与是一样的 D)以上都错20、设 int a1=7, a2=1, xx; 进行如下操作xx = ( a1 1 )&( a22 )后 xx 的值为: A) 0 B) 1 C) 10 D) 以上都错7: 0000 0000 0000 011171: 0000 0000 0000 111012: 0000 0000 0000 0100(13) 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 =

    12、 (3/2 + 7/2) = 5) = (1+3) = 5) = (4 = 5) = 0;j = 1 + (21 = 14) = 1 + 0 = 124、如果char cc=12345,做sizeof(cc)后的返回值应为A) 2 B) 5 C) 6 D) 1sizeof()返回参数对象的字节数: 这里的参数是字符数组cc,有6个元素.25、如果 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;

    13、 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) auto 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

    14、= 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保持不变;第二次调用f(2): 开始时: b = 0, c = 4 执行: b = 0 + 1 = 1, c = 4 + 1 = 5; 返回: a+b+c=2+1+5=8; 调用结束后: 静态局部变量c=5保持不变;28、有一函数: int f(char *s) int k = 0; while (*s) k = k*10+*s+-0; retu

    15、rn(k); 调用f(“1234”)的返回结果是: A) “1234” B) 1234 C) “4321” D) 4321while循环等价于: while (*s) k = k * 10 + (*s+) 0;该函数的作用:将数字字符串转换成相应的整数.29、static int a = 1,2,3, *p, *q; p = a+1; q = p+;执行该程序段后, p和q所指向的单元的内容分别为: A) (*p) = 1, (*q) = 2 B) (*p) = 2, (*q) = 3 C) (*p) = 3, (*q) = 2 D) 以上都错 1 a0p 2 a1 3 a2a30、stati

    16、c struct int x, y3; a3 = 1,2,3,4,5,6,7,8,9,10,11,12, *p; p = a;则*(int *)(p+1)+2) = ?A) 3 B) 7 C) 10 D) 以上都错p 1a0 2 3 4p+1 5a1 67 8 9a2 10 11 12 二、填空题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

    17、(2) f(2) = 2 * f(1) = 2 * 3 = 6 所以 f(3) = 3 * 6 = 186、执行完下列语句段后, s和f值分别为: _”%s%lf”, 12.4_ char s20; double f; sscanf(“%s%lf 12.4%s%f12.5”, “%s %lf”, s, &f);函数sscanf()的一般形式: sscanf(char *buffer, char *format, var1, var2, var3, )它的含义:从缓冲区buffer中按照格式字符串format读入变量var1,var2,var3,的值。7、对于char c; 若已知其值为小写字母

    18、, 将其转换为相应大写字母的表达式为 _c a + A_8、将p说明为字符数组指针,数组大小为10,可写为:_char (*p)10;_9、用typedef定义类型CP,以表示一个指向含有10个字符型元素的指针数组类型。typedef char *CP10;四个步骤:(1) char *ptr10;(2) char *CP10;(3) typedef char *CP10;(4) CP *ptr10;10、如下函数 void f(char *s, char *t) int i; i=0; while (si=ti) i+; 等价于: void f(char *s, char *t) while

    19、 (_*s+_ = *t+); 11、int i=0, s=0; while (in) s+=i+;等价于 int i, s; for(_i=0,s=0; i next) s += _p-inf_;13、下列程序判断字符串s是否对称,对称则返回1,否则返回0; 如f(“abcba”)返回1, f(“abab”)返回0; int f(_char s_)a b c b a 0 int i=0,j=0; while(sj) j+; for ( j-; i=j_; 14、下面是用二分法从数组vn中查找数x的函数,返回值为x所在下标(若找到)或-1(没找到): binsearch(int x, int

    20、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 return _ 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

    21、; i=n-1; i+) if (!(n%i) break; return _ i=n_; main() int i, j; for (i=1 ; i=500; i+) for (j=1; j2*i; j+=2) if (_prime(j) & prime(2*i-j)_) printf(“%d = %d +%dn”, 2*i, j, 2*i-j); /*若2*i为两个素数之和 */ break; 16、对于整型变量i,j执行scanf(%d%*d%d,&i, &j);当输入2 3 4 5 6后 i=_ 2_ j= _4_17、对于 int *p, *q, i=5, j=6;执行: p = &

    22、i; q = p; p = &j;后 (*p)=_ 6_ , (*q)= _5_18、f( int m ) int i, j; for( i=0; i=0; j-) printf(“%1d%c,i+j, j?*:#); 如果调用f(3)将输出_2*1*0#3*2*1#4*3*2#_19、void f( int *a, int b ) static int k=0; *a += +k; b +=2; 若执行 i=2; j=4; f( &i, j ); f( &j, i ) 后 i= _3_, j= _6_ i 2 3 j 4 i 3 j 4 6 k 0 1 k 1 2 a b 4 6 a b 3

    23、 5 20、用for循环打印 0 1 2 0 1 2 0 1 2; for( i=1; i=9; i+ ) printf(%2d, _(i-1)%3_);21、定义一个返回整型的函数指针p,应写为 _int (*p)();_ 22、定义字符指针数组arr, 数组大小为20,应写为 _char *arr20;_23、程序 void f( char cc ) char ch; int i=0,j=0; while ( cci!=NULL ) i+; i -; for( ;ji; i-,j+ ) ch = ccj; ccj = cci; cci = ch; 等价于程序 void f( char *cc ) char *p1, *p2, ch; p1=p2=cc; while(_*p2_) p2+; p2 - -; while( p1p2 )


    注意事项

    本文(工学C语言综合练习题及详解.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开