书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型(完整版)C语言程序设计阅读程序题库及答案.docx

  • 上传人(卖家):刘殿科
  • 文档编号:5771783
  • 上传时间:2023-05-07
  • 格式:DOCX
  • 页数:43
  • 大小:25.70KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《(完整版)C语言程序设计阅读程序题库及答案.docx》由用户(刘殿科)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    完整版 语言程序设计 阅读 程序 题库 答案
    资源描述:

    1、阅读程序题导读:学会阅读程序对于初学者来说很重要,一方面可以 巩固所学的语法知识,另一方面通过阅读别人写好的程序 来打开自己的思路,就所谓见多识广。读者通过阅读理解 程序,从给出的四个备选参考答案中,选择程序的正确输 出。如果选择有误,就要认真分析原因,是概念方面的错 误还是对程序逻辑理解不对,从而加深对语法规则的理解, 提高程序设计能力。程序设计语言是开发程序的一个工具, 学习语言的目的是为了编写程序来解决实际问题,所以特 别提倡通过实际上机来检验备选答案,增强动手能力。习 题基本上是按照教材的章节来安排的,读者可以根据学习 的进度选择部分习题。【2.1】以下程序的输出结果是 。 main(

    2、 ) float a; a=1/100000000;printf(%g,a);A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0【2.2】下面程序的输出结果是。#include main( ) int x=10; int x=20;printf (%d,, x);printf(%dn, x);A) 10,20 B) 20,10 C) 10,10 D) 20,20【2.3】以下程序的输出结果是。main() unsigned int n; int i=-521; n=i;printf(n=%un,n);A) n=-521 B) n=521 C) n=65015 D

    3、) n=102170103【2.4】以下程序的输出结果是 。 main( ) int x=10, y=10; printf(%d %dn, x, y);A) 10 10 B) 9 9 C) 9 10 D) 10 9【2.5】以下程序的输出结果是。main() int n=1;printf(%d %d %dn,n,n+,n-);A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1【2.6】以下程序的输出结果是。main() int x=0x02ff,y=0x0ff00; printf(%dn,(x&y)4|0x005f);A) 127 B) 255 C) 128 D) 1【2.

    4、7】以下程序的输出结果是。main() int a=1; char c=a;float f=2.0; printf(%dn,(!(a=0),f!=0&c=A);A) 0 B) 1【2.8】下面程序的输出结果是。main() int a=1,i=a+1; do a+ ;while( !i+ 3); printf(%dn,a);A) 1 B) 2 C) 3 D) 4【2.9】下面程序的输出结果是。main() int a=111; a=a00; printf(%d,%on,a,a);A) 111,157 B) 0,0 C) 20,24 D) 7,7【2.10】下面程序的输出结果是。main() c

    5、har s12= a book; printf(%.4s,s);A) a book! B) a book!b)a=b; b=c; c=a;printf(a=%d b=%d c=%dn,a,b,c); A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50【2.13】以下程序的输出结果是 。 main() int a=0,b=1,c=0,d=20; if(a) d=d-10;else if(!b) if(!c) d=15; else d=25;printf(d=%dn,d);A) d=10 B) d=15 C

    6、) d=20 D) d=25【2.14】下面程序的输出结果为 。main() int a=1,b=0; switch(a) case 1: switch (b) case 0: printf(*0*); break; case 1: printf(*1*); break;case 2: printf(*2*); break;A) *0* B) *0*2* C) *0*1*2* D) 有语法错误【2.15】以下程序的输出结果是 。 main() char *s=12134211;int v1=0,v2=0,v3=0,v4=0,k; for(k=0;sk;k+) switch(sk) case 1

    7、: v1+; case 3: v3+;case 2: v2+; default: v4+;printf(v1=%d, v2=%d, v3=%d, v4=%dn,v1,v2,v3,v4);A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=8【2.16】下面程序的输出是 。main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break;case 2: a

    8、+;b+;break;printf(a=%d,b=%dn,a,b);A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2【2.17】下面程序的输出是。main() int num=0; while(num=2) num+; printf(%dn,num);A) 1 B) 1 C) 1 D) 12 2 23 34【2.18】下面程序的输出结果是。main() int a=1,b=0; do switch(a) case 1: b=1;break; case 2: b=2;break; default : b=0;b=a+b;while(!b); printf(a

    9、=%d,b=%d,a,b);A) 1,2 B) 2,1 C) 1,1 D) 2,2【2.19】从键盘上输入446755时,下面程序的输出是 。#include main() int c;while(c=getchar()!=n) switch(c -2) case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3); default: putchar(c+2);break;printf(n);A) 888988 B) 668966 C) 88898787 D) 66898787【2.20】下面程序的输出结

    10、果是。main() int k=0; char c=A; do switch(c+) case A: k+;break; case B: k-;case C: k+=2;break; case D: k=k%2;contiue; case E: k=k+10;break; default: k=k/3;k+;while(cC) ;printf(k=%dn,k);A) k=1 B) k=2 C) k=3 D) k=4【2.21】下面程序的输出结果是。main() int x,i; for(i=1;i=100;i+) x=i;if(+x%2=0) if(+x%3=0) if(+x%7=0)prin

    11、tf(%d ,x);A) 39 81 B) 42 84 C) 26 68 D) 28 70【2.22】下面程序的输出结果是。#include main( ) int i,k,a10,p3;k=5; for(i=0;i10;i+) ai=i; for(i=0;i3;i+) pi=ai*(i+1); for(i=0;i3;i+) k+=pi*2; printf(%dn,k);A) 20 B) 21 C) 22 D) 23【2.23】假定从键盘上输入3.6,2.4,下面程序的输出是。#include main() float x,y,z;scanf(%f,%f,&x,&y); z=x/y;while

    12、(1) if(fabs(z)1.0) x=y; y=z; z=x/y;else break;printf(%fn,y);A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000【2.24】下面程序的输出结果是。main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j-3;j+) if(j%2) continue; x+;x+;printf(x=%dn,x);A) x=4 B) x=8 C) x=6 D) x=12【2.25】下面程序的输出结果是。main() int i,j,k=10; for(i=0;i2;i+)

    13、k+; int k=0; for(j=0;j=3;j+) if(j%2) continue;k+;k+;printf(k=%dn,k);A) k=4 B) k=8 C) k=14 D) k=18【2.26】下面程序的输出结果是。#include main( ) int n33, i, j;for(i=0;i3;i+ ) for(j=0;j3;j+ ) nij=i+j; for(i=0;i2;i+ ) for(j=0;j2;j+ ) ni+1j+1+=nij;printf(%dn, nij);A) 14 B) 0 C) 6 D) 不确定【2.27】下面程序的输出结果是。#include main

    14、( ) int a45=1,2,4,-4,5,-9,3,6,-3,2,7,8,4;int i,j,n; n=9; i=n/5; j=n-i*5-1;printf(a%d%d=%dn, i,j,aij);A) 6 B) -3 C) 2 D) 不确定【2.28】下面程序的输出结果是。int m33= 1, 2, 3 ;int n33= 1, 2, 3 ;main( ) printf(%dn, m10+n00 ); /* */printf(%dn, m01+n10 ); /* */ A) 0 B) 1 C) 2 D) 3 A) 0 B) 1 C) 2 D) 3【2.29】下面程序的输出结果是。#in

    15、clude main( ) char s150=some string *,s2=test;printf(%sn, strcat(s1,s2);A) some string * B) testC) some stritest D) some string *test【2.30】下面程序的输出结果是。#include f(char *s) char *p=s;while(*p!=0) p+; return(p-s);main() printf(%dn,f(ABCDEF);A) 3 B) 6 C) 8 D) 0【2.31】下面程序的输出结果是。#include #include main( ) c

    16、har str100 =How do you do;strcpy( str + strlen(str)/2, es she); printf(%sn, str);A) How do you do B) es she C) How are you D) How does she【2.32】下面程序的输出结果是。#include func(int a,int b) int c;c=a+b; return(c);main() int x=6,y=7,z=8,r; r=func(x-,y+,x+y),z-); printf(%dn,r);A) 11 B) 20 C) 21 D) 31【2.33】下面程

    17、序的输出结果是。#include void fun(int *s) static int j=0;do sj+=sj+1;while(+j2);main() int k,a10=1,2,3,4,5;for(k=1;k3;k+) fun(a); for(k=0;k5;k+) printf(%d,ak);A) 35756 B) 23445 C) 35745 D) 12345【2.34】下面程序的输出结果是。#include int k=1;main( ) int i=4; fun(i);printf (n%d,%d,i,k); /* */fun(int m) m+=k;k+=m; char k=B

    18、;printf(n%d,k-A); /* */printf(n%d,%d,m,k); /* */ A) 4,1 B) 5,6 C) 4,6 D) A,B,C 参考答案都不对 A) 1 B) -59 C) -64 D) A,B,C 参考答案都不对 A) 5,66 B) 1,66 C) 5,6 D) A,B,C 参考答案都不对【2.35】下面程序的输出结果是。#include fun(int n, int *s) int f1, f2;if(n=1|n=2)*s=1; else fun(n-1, &f1);fun(n-2, &f2);*s=f1+f2;main() int x; fun(6, &x

    19、);printf(%dn, x);A) 6 B) 7 C) 8 D) 9【2.36】下面程序的输出结果是。int w=3; main() int w=10; printf(%dn,fun(5)*w);fun(int k) if(k=0) return(w); return(fun(k-1)*k);A) 360 B) 3600 C) 1080 D) 1200【2.37】下面程序的输出结果是。#include funa(int a) int b=0;static int c=3; a=c+,b+; return(a);main() int a=2,i,k; for(i=0;i2;i+) k=fun

    20、a(a+); printf(%dn,k);A) 3 B) 0 C) 5 D) 4【2.38】下面程序的输出结果是。#include void num() extern int x,y;int a=15,b=10; x=a-b; y=a+b;int x,y; main() int a=7,b=5; x=a-b; y=a+b; num();printf(%d,%dn,x,y);A) 12,2 B) 5,25 C) 1,12 D) 输出不确定【2.39】下面程序的输出结果是。main() int a=2,i;for(i=0;i3;i+) printf(%4d,f(a);f(int a) int b=

    21、0; static int c=3; b+;c+; return(a+b+c);A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9【2.40】下面程序的输出结果是。#include try( ) static int x=3;x+; return(x);main( ) int i, x;for(i=0; i=2; i+ )x=try( ); printf(%dn, x);A) 3 B) 4 C) 5 D) 6【2.41】下面程序的输出结果是。#include main( ) int x=1;void f1( ), f2( ); f1( );f2(x); printf(

    22、%dn, x);void f1(void) int x=3; printf(%d , x);void f2( x ) int x; printf(%d , +x);A) 1 1 1 B) 2 2 2 C) 3 3 3 D) 3 2 1【2.42】下面程序的输出结果是。#include #define SUB(X,Y) (X)*Y main() int a=3,b=4;printf(%dn,SUB(a+,b+);A) 12 B) 15 C) 16 D) 20【2.43】下面程序的输出结果是。main() int a=1,2,3,4,5,6;int *p; p=a;printf(%d ,*p);p

    23、rintf(%d ,*(+p); printf(%d ,*+p); printf(%d ,*(p-); p+=3;printf(%d %d ,*p,*(a+3);A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 5【2.44】下面程序的输出结果是。main() int a34=1,2,3,4,5,6,7,8,9,10,11,12;int *p=a; p+=6;printf(%d ,*p); /* */ printf(%d ,*(*(a+6); /* */printf(%d ,*(a1+=2); /* */printf(%d,*(

    24、&a00+6);/* */A) 7 7 7 7 B) 句语法错误 C) 句语法错误 D) 句语法错误【2.45】下面程序的输出结果是。#define FMT %Xn #include main( ) static int a 4 = 1,2,3,4,5,6,7,8,9,10,11,12 ;printf( FMT, a22); /* */ printf( FMT, *(*(a+1)+1) ); /* */ A) 9 B) 11 C) A D) B A) 6 B) 7 C) 8 D) 前面三个参考答案均是错误的【2.46】下面程序的输出结果是。#include main ( ) int a=1,

    25、2, 3, 4, 5 ;int x, y, *p; p=&a0; x=*(p+2); y=*(p+4);printf(%d,%d,%dn, *p, x, y);A) 1,3,5 B) 1,2,3 C) 1,2,4 D) 1,4,5【2.47】下面程序的输出结果是。void ive(x,n) int x,n; int t,*p; p=x+n-1; while(xp) t=*x;*x+=*p;*p-=t;return;main() int i,a=1,2,3,4,5,6,7,8,9,0;ive(a,10); for(i=0;i10;i+) printf(%d ,ai); printf(n);A)

    26、1 2 3 4 5 6 7 8 9 0 B) 0 9 8 7 6 5 4 3 2 1C) 1 3 5 7 9 2 4 6 8 0 D) 0 8 6 4 2 9 7 5 3 1【2.48】下面程序的输出结果是。#include string.h fun(char *w,int n) char t,*s1,*s2; s1=w;s2=w+n-1; while(s1s2) t=*s1+;*s1=*s2-;*s2=t;main() static char *p=1234567; fun(p,strlen(p); printf(%s,p);A) 7654321 B) 1717171 C) 7171717

    27、D) 1711717【2.49】下面程序的输出结果是。#include char *p = abcdefghijklmnopq ;main( ) int i=0;while( *p+!=e ); printf(%cn, *p);A) c B) d C) e D) f【2.50】下面程序的输出结果是。#include f(int x, int y) return (y-x);main( ) int a=5, b=6, c; int f(), (*g)()=f;printf(%dn, (*g)(a,b) );A) 1 B) 2 C) 3 D) 前面三个参考答案均是错误的【2.51】下面程序的输出结

    28、果是。#include main( ) int a=1,*p,*pp;pp=&p; p=&a;a+;printf (%d,%d,%dn, a,*p, *pp);A) 2,1,1 B) 2,1,2 C) 2,2,2 D) 程序有错误【2.52】下面程序的输出结果是。main()char*alpha7=ABCD,EFGH,IJKL,MNOP,QRST,UVW X,YZ;char *p;int i; p=alpha;for(i=0;i4;i+) printf(%c,*(pi); printf(n);A) AEIM B) BFJN C) ABCD D) DHLP【2.53】下面程序的输出结果是。#in

    29、clude char *pp23= abc, defgh, ijkl, mnopqr, stuvw, xyz;main ( ) printf(%cn,*(pp+1); /* */ printf(%cn,*pp0); /* */ printf(%cn,(*(*(pp+1)+1)4); /* */printf(%cn,*(pp12+2); /* */ printf(%sn,*(pp+1); /* */ A) a B) d C) i D) m A) a B) d C) i D) m A) h B) l C) q D) w A) k B) o C) u D) z A) ijkl B) mnopqr C

    30、) stuvw D) xyz【2.54】下面程序的输出结果是。#include stdio.h struct str1 char c5;char *s; main( ) struct str1 s12= ABCDEFGH,IJK,LMN ;struct str2 struct str1 sr; int d;s2=OPQ,RST,32767;struct str1 *p2; p0=&s10;p1=&s11; printf(%s,+p1-s); /* */ printf(%c,s2.sr.c2); /* */ A) LMN B) MN C) N D) IJK A) O B) P C) Q D) R

    31、【2.55】以下程序的输出结果是。struct st int x,*y;*p;int s=10,20,30,40;struct st a=1,&s0,2,&s1,3,&s2,4,&s3; main() p=a; printf(%dn,+(*(+p)-y);A) 10 B) 11 C) 20 D) 21【2.56】以下程序的输出结果是。#include main() union EXAMPLE struct int x,y;in; int a,b;e; e.a=1;e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b;printf(%d,%dn,e.in.x,e.in.y)

    32、;A) 2,3 B) 4,4 C) 4,8 D) 8,8【2.57】下面程序的输出结果是。#include main() union int i2; long k; char c4;r,*s=&r;s-i0=0x39; s-i1=0x38;printf(%cn,s-c0);A) 39 B) 9 C) 38 D) 8【2.58】下面程序的输出是 。main ( ) printf(%dn, EOF);A) -1 B) 0 C) 1 D) 程序是错误的参考答案【2.1】参考答案:D注释:程序中除法运算的两个操作数均是整型,运算结果也是整型。【2.2】参考答案:B注释:C 语言允许在程序块(分程序)中

    33、说明变量。【2.3】参考答案:C注释:变量 i 中的负号传送给变量 n 后,因 n 是无符号数, 已不作为负号处理。【2.4】参考答案:D注释:对变量 x 的操作是后缀形式,变量 x 的减 1 操作要在执行完printf 函数之后才进行,所以变量 x 的值在输出的时候仍然保持原值 10。【2.5】参考答案:B注释:C 语言在执行 printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理 n-,再处理 n+,最后处理 n,而且每一个表达式作为一个处理单元,也就是说在不同的表达式中自增自减运算是单独考虑的。【2.6】参考答案:A注释:变量 x 和变量 y 做按位与,结果为 0x020

    34、0,右移 4位为 0x0020,再与 0x005f 做按位或,最后结果为 0x007f。【2.7】参考答案:A注释:逗号表达式的结果是用逗号分开的最后一个表达式的值,此题由于 c=A的值是 0,所以逗号表达式的值为 0。【2.8】参考答案: B【2.9】参考答案: A【2.10】参考答案: C注释:在输出格式描述%m.ns中,m 是输出总长度,n 是实际字符的个数,这里 m 没有给出,则输出总长度就是实际输出字符的个数。【2.11】参考答案: C【2.12】参考答案:B【2.13】参考答案:C【2.14】参考答案:B【2.15】参考答案:D【2.16】参考答案:A【2.17】参考答案: C【2

    35、.18】参考答案:A【2.19】参考答案: C注释:在 switch 语句中,case 本身仅起到语句标号的作用, 不会改变语句的流程,执行 break 语句才能退出当前的switch 语句。【2.20】参考答案: D注释:siwtch 语句的表达式中,变量 c 是后缀的增一运算, 第一次执行 do-while 循环时,执行 case A后面的语句。【2.21】参考答案: D【2.22】参考答案: B【2.23】参考答案: B注释:fabs()是浮点数绝对值函数。【2.24】参考答案: A【2.25】参考答案: C注释:C 语言允许在程序块(分程序)内说明变量,如果在程序块内说明的变量和程序块

    36、外的变量同名,在块外说明的变量在块内是不可见的。可将此题和【2.11】进行比较, 加深理解。【2.26】参考答案: C【2.27】参考答案: B【2.28】参考答案: D A【2.29】参考答案:D【2.30】参考答案: B注释:输出结果为字符串长度。【2.31】参考答案: D注释:字符串拷贝函数 strcpy()要求的两个参数都是字符串首地址。本题中第二个参数是字符串常量,接受这个字符串的第一个参量不是直接给出字符数组名,而是进行了地址运算后的结果。由于 str 字符串的长度是 13,除 2 取整后是 6,第一个参数给出的地址是字符数组 str 的首地址加6,也就是原来字符串中第二个空格的位

    37、置,把es she从该处放入,字符串 str 变为How does she。【2.32】参考答案: C注释:main 函数调用 func 函数时,第一个实参使用的是逗号表达式的值,也就是 x+y 的结果。由于对变量 x、y、z 进行的是后缀运算,所以函数 func 的参数值是 13 和 8。【2.33】参考答案: C【2.34】参考答案: C A C【2.35】参考答案: C【2.36】参考答案: B注释:函数 fun 进行了递归调用,实际进行的运算是54321310。主函数内说明的局部变量 w 屏蔽了外部变量 w,所以在主函数中外部变量 w 是不可见的,在调用printf 函数时表达式fun

    38、(5)*w中 w 的值是 10。【2.37】参考答案: D注释:main 函数三次调用了函数 funa,在 funa 函数中的静态变量 c 仅在第一次调用时进行了初始化,再次调用时不再对静态变量赋初值。【2.38】参考答案: B注释:main 函数和 num 函数中都说明了变量 a 和 b,由于它们是内部变量,所以它们分别在说明它们的函数内有效。外部变量 x 和 y 在函数 num 之后被说明,而在 num 函数中又要引用它们,所以在 num 函数中用关键字extern说明变量 x 和 y 是一个外部变量,也就是通知计算机这两个变量在 fun 函数以外被说明,此处不是定义两个 int 型变量。

    39、【2.39】参考答案: D注释:函数 f 中的变量 c 是静态变量,仅在第一次调用函数f 时它被初始化为 3,第二次调用函数 f 时 c 的值是 4,第三次调用函数 f 时 c 的值是 5。【2.40】参考答案: D【2.41】参考答案: D注释:程序中有三个x分别在三个不同的函数中,这三个x都是自动变量,所以三个x分别局部于三不同的函数, 在三个函数中对x的操作互不影响。【2.42】参考答案: A【2.43】参考答案: A注释:*(+p)和*+p 都是指针变量值前加 1,第一次指向a1,第二次指向 a2;a+3 是 a3的地址。【2.44】参考答案: C注释:句没有语法错误,但是 a+6 指向数组之外,因为 a是 a0的地址,a+1 是 a1的地址,a+2 是 a2的地址,显然数组 a 没有 a6分量。句错误,因为 a1是地址常量, 它是 a10的地址,对于地址常量是不可以进行赋值运算的。【2.45】参考答案: D A注释:如果 FMT 定义为%xn,则输出的 16 进制数据用小

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:(完整版)C语言程序设计阅读程序题库及答案.docx
    链接地址:https://www.163wenku.com/p-5771783.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库