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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2023年全国计算机二级c语言考试真题详细解答系列一.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2023年全国计算机二级c语言考试真题详细解答系列一.doc

1、 9月全国计算机等级考试二级C语言笔试试题 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构是(C) A)循环队列     B) 带链队列     C) 二叉树     D)带链栈 (2)下列数据结果中,可以根据“优异后出”标准存取数据是(B) A) 循环队列     B) 栈     C)队列     D)二叉树 (3)对于循环队列,下列叙述中对的是(D) A)队头指针是固定不变 B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针 D)队头指针可以大于队尾指针,也可以小于队尾指针

2、 (4)算法空间复杂度是指(A) A)算法在实行过程中所需要计算机存放空间 B)算法所解决数据量 C)算法程序中语句或指令条数 D)算法在实行过程中所需要临时工作单元数 (5)软件设计中划分模块一个准则是(B) A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 (6)下列选项中不属于结构化程序设计标准是(A) A) 可封装 D) 自顶向下 C) 模块化 D) 逐步求精 (7)软件具体设计产生图以下:   该图是(C) A) N-S图 B) PAD图 C) 程序环节图 D) E-R图 (8)数据库管理系统是(B)

3、A)操作系统一部分 B) 在操作系统支持下系统软件 C) 一个编译系统 D) 一个操作系统 (9)在E-R图中,用来表达实体联络图形是(C) A) 椭圆图 B) 矩形 C) 菱形 D) 三角形 (10)有三个关系R,S和T以下:       其中关系T由关系R和S通过某种操作得到,该操作为(D) A)     选择 B)      投影 C)     交 D)     并 (11)以下叙述中对的是      A)程序设计任务就是编写程序代码并上机调试      B)程序设计任务就是拟定所用数据结构      C)程序设计任务就是拟定所用算法     

4、D)以上三种说法所有不完整 解析:选D。原文见高教版二级教程P2,程序设计任务包含A、B、c及相关文档。   (12)以下选项中,能用作用户标记符是 A)void B)8_8 C)_0_ D)unsigned 解析:选C。标记符由字母或下划线开头,关键字不能用作标记符。     A、D为关键字,B以数字开头,所以所有是错误。   (13)阅读以下程序      #include      main()      { int case; float printF;        printf(“请输入2个数:”);        scanf(“

5、d %f”,&case,&pjrintF);        printf(“%d %f\n”,case,printF);      }      该程序编译时产生错误,其犯错因素是      A)定义语句犯错,case是关键字,不能用作用户自定义标记符      B)定义语句犯错,printF不能用作用户自定义标记符      C)定义语句无错,scanf不能作为输入函数使用      D)定义语句无错,printf不能输出case值 解析:选A。case是关键字,关键字不能用作标记符。C语言关键字见教材附录。 (注:标记符区分大小写,printf是关键字,可用作标记符,当

6、然printF也可以)   (14)表达式:(int)((double)9/2)-(9)%2值是      A)0       B)3       C)4       D)5 解析:选B。考点为运算符优先级。   括号>强制类型转换int>乘除>加减   (int)((double)9/2)一(9)%2=(int)(9.0/2)-(9)%2=(int)(4.5)-1=3   (15)若有定义语句:int x=10;,则表达式x-=x+x值为      A)-20     B)-10     C)0     D)10 解析:选B。考点为复合赋值运算符。(注意x+x作为一个整体

7、     x-=x+x→x=x-(x+x) →x=-x=-10     (16)有以下程序      #include      main()      { int a=1,b=0;        printf(“%d,”,b=a+b);        printf(“%d\n”,a=2*b);      }      程序运营后输出结果是      A)0,0       B)1,0       C)3,2       D)1,2 解析:选D。考点为赋值表达式使用,赋值表达式值和变量值是同样。     printf在输出赋值表达式值时,先赋值

8、再输出。     b=a+b=l+0=1    a=2*b=2   17)设有定义:int a=1,b=2,c=3;,以下语句中实行效果和其它三个不同样是      A)if(a>b) c=a,a=b,b=c;      B)if(a>b) {c=a,a=b,b=c;}      C)if(a>b) c=a;a=b;b=c;      D)if(a>b) {c=a;a=b;b=c;} 解析:选C。考点为if句和逗号表达式使用。 逗号运算符也称为顺序求值运算符,依次实行逗号表达式中每个表选式。逗号表达式是一个整体,复合语句也是一个整体,当a>b时,A、B、D中if后语句可以作为

9、整体被实行,把a、b值互换。C等价语句形式为:    if(a>b)   c=a;     a=b;b=c;    不能实现a、b值互换。   (18)有以下程序      #include      main()      { int c=0,k;        for (k=1;k<3;k++)        switch (k)        { default: c+=k          case 2: c++;break;          case 4: c+=2;break;        }        printf(“%d\

10、n”,c);      }      程序运营后输出结果是      A)3       B)5       C)7       D)9 解析:选A。考点为switch语句使用。 switch语句中case和default顺序可以任意,不影响程序结果。switch语句在循环中被实行2次。 k=l时,  c+=k   c=0+1=1    无break,继续实行 c++   c=2    有break,终止switch  k=2时,c++  c=3        有break,终止switch ,循环结束,输出c。      (19)以下程序段中,和语句:k=a>b?(b>c

11、1:0):0;功效相同是      A)if((a>b)&&(b>c)) k=1;         else k=0;      B)if((a>b)||(b>c) k=1;         else k=0;      C)if(a<=b) k=0;         else if(b<=c) k=1;      D)if(a>b) k=1;         else if(b>c) k=1;          else k=0; 解析:选A。考点为条件表达式使用。 语句功效为:   a>b且b>c时,k=l   a>b且b<=e时,k=0   a<=b时,k=

12、0 符合语句功效只有A。   20)有以下程序      #include      main()      { char s[]={“012xy”};int i,n=0;       for(i=0;s[i]!=0;i++)         if(s[i]>=’a’&&s[i]<=’z’) n++;       printf(“%d\n”,n);      }      程序运营后输出结果是      A)0       B)2       C)3       D)5 解析:选B。考点为字符数组使用。C语言用字符数组存放字符串,用\O作为结束标志

13、\0是ASCII码值为0字符,也即数值0)程序功效为记录字符数组s中小写字符个数,n为计数器。   (21)有以下程序      #include      main()      { int n=2,k=0;        while(k++&&n++>2);        printf(“%d %d\n”,k,n);      }      程序运营后输出结果是      A)0 2       B)1 3       C)5 7       D)1 2 解析:选D。考点为while语句使用。该while(k++&&n++>2);循环体为空语句

14、所以程序是输出退出while循环后k、n值。k++为先使用k值再增1。先使用k值,k=0,逻辑和结果为。,第一次实行while循环时条件就不成立,直接退出循环,k值增1,n值没有任何改变。   (22)有以下定义语句,编译时会出现编译错误是      A)char a=’a’;      B)char a=’\n’;      C)char a=’aa’;      D)char a=’\x2d’; 解析:选C。考点为字符型变量赋值和基础概念。字符型为单引号括起一个字符。 A为标准字符型赋值方法, B为把一个转义字符赋值给字符变量,也是对的。 C为单引号括起两个字符,不符

15、合字符型定义。 D表面看上去是错误,其实是对的,也是一个转义字符。 ‘/x2d’表达ASCII码值为16进制数2d字符,即‘-’号。   (23)有以下程序 #include main() { char c1,c2;   c1=’A’+’8’-‘4’;   c2=’A’+’8’-‘5’;   printf(“%c,%d\n”,c1,c2); } 已知字母AASCII码为65,程序运营后输出结果是      A)E,68       B)D,69       C)E,D       D)输出无定值 解析:选A。考点为字符型数据使用和基础知识。字符型

16、数据在内存中存放是字符ASCII码值,可以作为整型数据来解决。英文字符和数字在ASCII码表中是按顺序排列。  c1=‘A’+‘8'-‘4’=‘A’+‘4’=E               c2=‘A’+‘8’-‘5’=‘A’+3=‘D’   (24)有以下程序      #include      void fun(int p)      { int d=2;        p=d++; printf(“%d”,p);}      main()      { int a=1;       fun(a); printf(“%d\n”,a);}     

17、程序运营后输出结果是      A)32       B)12       C)21       D)22 解析:选C。考点为函数参数传输。c语言中函数参数传输是值传输,是把实参值传给形参,是单向传输,形参改变不会影响到实参值。程序中,把实参a值传给形参p,p=1,然后p=d++,再次赋值后p=2.输出p值2。返回到主程序中,输出a值1。(形参p改变不会影响到实参a值,a值仍为1)   (25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功效 #define MIN -      int findmax (int x[],int n)

18、      { int i,max;        for(i=0;i

19、当放在循环内,而应当放到for循环前面。先让max取最小整数,这么第1次循环时max就可以取得第1个数组元素值,然后在循环中把后面数组元素依次和max比较,让max取大值。   (26)有以下程序      #include      main()      { int m=1,n=2,*p=&m,*q=&n,*r;        r=p;p=q;q=r;        printf(“%d,%d,%d,%d\n”,m,n,*p,*q);      }      程序运营后输出结果是      A)1,2,1,2       B)1,2,2,1     

20、  C)2,1,2,1       D)2,1,1,2  解析:选B。考点为指针基础概念。 p、q为指针,初始化时p指向m,q指向n。实行r=p; p:q;q:r;后,p和q值互换,从而p指向n,q指向m。指针改变不会影响m、n值,最终*p和*q值为n、m值。   (27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误赋值是      A)p=a      B)q[i]=a[i]      C)p=a[i]      D)p=&a[2][1] 解析:选A。考点为指向二维数组指针使用方法。   p为基类型为int指针,指向一个整型数据,也就可咀

21、指向一个数组元素,所以D对的。  a是二维数组名,存放二维数组首地址,但二维数组名是一个行指针,其基类型为具有10个元素一维数组。所以A错误,两者基类型不一致(p+1指向下一个元素,而a+l指向二维数组下一行)。假如p定义为int(*p)[10],才可以赋值p=a。在C语言中,二维数组a[4][10]可以看做是由4个元素组成一维数组,这4个元素为a[0]、a[l]、a[2]、a[3],而其中每个元素又是由10个元素组成维数组。  在这里,a[i]也是一个数组名,可以表达一维数组首地址,但a[i]是一个列指针,基类型为int.指向一维数组第1个元素。同时,指针数组q每个数组元素q[i]基类型也为

22、int,所以p、a[i]、q[i]基类型一致,选项B、C是对的。   (28)有以下程序      #include      #include      main()      { char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];        printf(“%d,”,strlen(p));printf(“%s\n”,p);      }      程序运营后输出结果是      A)9,One*World      B)9,One*Dream      C)10,O

23、ne*Dream      D)10,One*World 解析:选C。考点为二维字符数组使用和strlen()函数使用。 初始化p=str[l]后,p指向第二个字符串“One*Dream!”。strlen()函数计算字符串长度时不包含结束标志,所以strlen(p)=10。   (29)有以下程序      #include      main()      { int a[ ]={2,3,5,4},i;        for(i=0;i<4;i++)        switch(i%2)        { case 0:switch(a[i]%2)

24、               {case 0:a[i]++;break;                case 1:a[i]--;               }break;          case 1:a[i[=0; } for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”); }      A)3 3 4 4      B)2 0 5 0      C)3 0 4 0      D)0 3 0 4 解析:选C。考点为switch语句。 外部switch语句在循环中被实行4次。i=0时,实行case 0.  内部swit

25、ch语句也实行case 0,  a[i]++    a[0]=3   i=1时,实行case 1,a[l]=0  排除法,只有C对的。 i=2时,实行case 0.  内部switch语句实行case 1.  a[i]--    a[2]=4 i=3时,实行case 1,a[3]=0  最终依次输出为:3 0 4 0   (30)有以下程序      #include #include      main() { char a[10]=”abcd”;   printf(“%d,%d\n”,strlen(a),sizeof(a));

26、} 程序运营后输出结果是      A)7,4        B)4,10        C)8,8        D)10,10 解析:选B。考点为strlen()函数和sizeof()运算符使用。     strlen()函数计算字符串长度时,碰到结束标志为止,且长度不包含结束标 志,所以strlen(a)=4,排除法选B。     sizeof()运算符操作数可以是类型名或变量名、数组名等,当操作数是数组名时,其结果是数组总字节数,所咀sizeof(a)=10。   (31)下面是相关C语言字符数组描述,其中错误是      A)不可以用赋值语句给字符数组名赋字符串

27、     B)可以用输入语句把字符串整体输入给字符数组      C)字符数组中内容不一定是字符串      D)字符数组只能存放字符串 解析:选D。考点为字符数组使用。 字符数组名是数组首地址,是常量,不能被重新赋值,所以A对的。可以用scanf(“%s”,str)对字符串整体输入,str可以是字符数组名或字符指针,所以B对的。C和D说法对立,肯定有一个对的,用排除法A、B选项主线不用看。字符数组所有元素可以只存放一般字符,不存放结束标志。所以D错误。   (32)下列函数功效是      fun(char * a,char * b)      { while((*b=*a)

28、’\0’) {a++,b++;} }      A)将a所指字符串赋给b所指空间      B)使指针b指向a所指字符串      C)将a所指字符串和b所指字符串进行比较      D)检查a和b所指字符串中是否有’\0’  解析:选A。考点为指针概念及while循环。 While循环条件为:(*b=*a)!='\0’,实行时先把指针a所指向字符赋给指针b所在内存单元,假如该字符不是结束标志“\0”,实行循环体a++;b++;,指针a、b分别指向下一个字符单元。再鉴定循环条件,假如成立,继续把指针a所指向字符赋给指针b所在内存单元,直到碰到结束标志为止。所以对的答案为A。

29、  (33)设有以下函数        void fun(int n,char * s) {……}      则下面对函数指针定义和赋值均是对的是      A)void (*pf)(); pf=fun;      B)viod *pf(); pf=fun;      C)void *pf(); *pf=fun;      D)void (*pf)(int,char);pf=&fun; 解析:选A。考点为指向函数指针使用方法。 函数名代表函数入口地址。指向函数指针应当定义为void(*pf)( )。假如定义为void *pf( ),则表达函数pf返回值为一个基类型为void指

30、针。综上,所以对的答案为A。   (34)有以下程序      #include      int f(int n);      main()      { int a=3,s;        s=f(a);s=s+f(a);printf(“%d\n”,s);      }      int f(int n)      { static int a=1;        n+=a++;        return n;      }      程序运营以后输出结果是      A)7        B)8        C)9        D)

31、10 解析:选C.考点为静态局部变量使用。     主函数和f函数中a所有为局部变量,作用域所有在本函数之内,互不影响。f函数中a为静态局部变量,占用固定内存单元,下一次调用时仍可保存上次调用时值。也就是说,假如数次调用f函数,a定义只在第一次调用时有效,从第二次调用开始,a定义相称于不存在,直接使用a值。主函数中调用了2次f(a),第一次调用,s=f(a)=f(3)  f函数:n=3  a=l    n=n+(a++)=4  a=2  返回n,主函数s=4。第二次调用,s=s+f(a)=4+f(3)(a值为主函数中a值)  f函数n=3  a=2    n=n+(a++)=5  a=3 

32、 返回n,主函数s=4+f(3)=4+5=9  最终输出s值为9。   (35)有以下程序      #include      #define f(x) x*x*x      main()      { int a=3,s,t;        s=f(a+1);t=f((a+1));        printf(“%d,%d\n’,s,t);      }      程序运营后输出结果是      A)10,64        B)10,10        C)64,10       D)64,64 解析:选A。考点为带参数宏定义。 宏定义中参数

33、授有类型,仅为字符序列,不能当作表达式运算。宏展开时,把实参字符串原样写在替换文本中。s=f(a+l)=a+l*a+l*a+l=10 t=f((a+1))=(a+1)*(a+1)*(a+1)=64   (36)下面结构体定义语句中,错误是      A)struct ord {int x;int y;int z;}; struct ord a;      B)struct ord {int x;int y;int z;} struct ord a;      C)struct ord {int x;int y;int z;} a;      D)struct {int x;int

34、 y;int z;} a; 解析:选B。考点为结构体变量定义。 可以先定义结构体类型,再定义结构体变量,如A。 可以在定义结构体类型同时定义结构体变量,如C。 可以直接定义结构体变量,没有类型名,如D。 B选项错误,定义结构体类型同时使用这类型。   (37)设有定义:char *c;,以下选项中可以使字符型指针c对的指向一个字符串是     A)char str[ ]=”string”;c=str;     B)scanf(“%s”,c);     C)c=getchar();     D)*c=”string”; 解析:选A。考点为字符指针使用。 选项A为对的使用

35、方法。先将字符串存于字符数组中,然后将数组名赋给字符指针。(数组名代表数组首地址,定义数组时为其分派拟定地址)选项C错误。getchar( )函数输入个字符给字符型变量,而不是字符指针。选项B和D有类似错误,两个选项并无语法错误,但运营时也许会出现问题。 因素:在选项B和D中,字符指针没有被赋值,是个不拟定值,指向一个不拟定内存区域,这个区域也许存放有用指令或数据。在这个不拟定区域重新存放字符串,也许会发生无法预知错误。   (38)有以下程序     #include     #include     struct A     { int

36、 a; char b[10]; double c;};     struct A f(struct A t);     main()     { struct A a={1001,”ZhangDa”,1098.0};     a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);     }     struct A f(struct A t)     ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )     程序运营后输出结果是     A)1001,ZhangDa,1098

37、0     B)1001,ZhangDa,1202.0     C)1001,ChangRong,1098.0     D)1001,ChangRong,1202.0 解析:选D。考点为结构体类型在函数中应用。 由于使用结构体变量,程序看似很杂乱。但在使用中,结构体变量和一般变量作用是同样。假如这么看,程序实行环节以下:函数调用f(a)将实参a传给形参t,函数内部对t重新赋值,然后返回t;主函数a=f(a),把返回值t赋给a,然后输出a,其实就是t值。   (39)若有以下程序段     int r=8;     printf(“%d\n”,r>>1);     输出结果

38、是     A)16     B)8     C)4     D)2 解析:选C。考点为位运算中右移运算符使用。   每右移一次,相称于除以2。本题中,r=(8)10=(0000 1000)2   r>>1后,r=( 0000 0100)2 =(4)10   (40)下列相关C语言文献叙述中对的是     A)文献由一系列数据依次排列组成,只能组成二进制文献     B)文献由结构序列组成,可以组成二进制文献或文本文献     C)文献由数据序列组成,可以组成二进制文献或文本文献     D)文献由字符序列组成,其类型只能是文本文献 解析:选C。C语言中依据数据组织

39、形式,分为二进制文献和ASCII码文本文献。一个C文献是一个字节序列或二进制序列,而不是一个记录(结构)序列。   二、填空题(每空2分,共30分) (1)某二叉树有5个度为2结点和3个度为1结点,则该二叉树中共有 14 个结点。 解析:度为2结点有5个,则度为0结点(叶子结点)为5+1=6个,度为1结点有3个,总结点数位5+6+3=14个。   (2)程序环节图中菱形框表达是 逻辑条件 。 (3)软件开发过程关键分为需求分析、设计、编码和测试四个阶段,其中 需求分析阶段产生“软件需求规格说明书。 (4)在数据库技术中,实体集之间联络可以是一对一或一对多或多对多,那么“学生”和

40、可选课程”联络为 多对多 。 解析:一个学生可以选多门功课,一门功课可以多个学生选择。   (5)人员基础信息通常包含:身份证号,姓名,性别,年纪等。其中可以作为主关键字是 身份证号码 。 解析:关键字值不能反复,只能是唯一。   (6)若有定义语句:int a=5;,则表达式:a++值是 5 。 解析:a++先使用a值再增长1。   (7)若有语句double x=17;int y;,当实行y=(int)(x/5)%2;以后y值为 1 。 解析:y=(int)(3.  )%2=3%2=1。   (8)以下程序运营后输出结果是 1  0 。 #include

41、dio.h> main() { int x=20;   printf(“%d”,0 main() { int a=1,b=7;   do {       b=b/2;a+=b;      } while (b>1);  

42、 printf(“%d\n”,a);} 解析:考点为do while语句使用方法。 程序实行环节:a=l b=7 实行循环体,b=b/2=3  a=4;b>l条件成立,再实行循环体,b=b/2=1 a=5;此时,b>l条件不成立,输出a值5。   (10)有以下程序 #include main() { int f,f1,f2,i;   f1=0;f2=1;   printf(“%d %d”,f1,f2);   for(i=3;i<=5;i++)   { f=f1+f2; printf(“%d”,f);     f1=f2; f2=f;   }

43、  printf(“\n”); } 程序运营后输出结果是 0  1  123 。 解析:程序实行环节:     fl=0 f2=1输出:0 1 For循环变量中i只起到控制循环次数作用,循环3次。 i=3  f=f1+f2=0+1=1输出1;       f1=f2=1  f2=f=l i=4  f=f1+f2=1+1=2输出2;       f1=f2=1  f2=f=2 i=5  f=f1+f2=1+2=3输出3;       f1=f2=2  f2=f=3 注意循环内输出格式控制符没有空格,所以123连续输出。   (11)有以下程序 #include

44、tdio.h> int a=5; void fun(int b) { int a=10;   a+=b;printf(“%d”,a); } main() { int c=20;   fun(c);a+=c;printf(“%d\n”,a); } 程序运营后输出结果是 3025 。 解析:考点为全局变量和局部变量使用方法。 全局变量作用域为定义开始到文献结束。局部变量作用域为定义其函数内部。当局部变量和全局变量同名时,在局部变量作用域内,全局变量不起作用。 程序实行环节:调用函数fun(c),实参c传给形参b,b=20,局部变量a起作用,a=10,a+=b  a=a+b

45、10+20=30,输出a值30。返回到主函数:a+=c  此时a为全局变量。a=a+c=5+20=25,输出a值25。注意格式控制符无空格,所以连续输出。   (12)设有定义: struct person { int ID;char name[12];}p; 请将scanf(“%d”, &p.ID );语句补充完整,使其可认为结构体变量p成员ID对的读入数据。 解析:考点为结构体成员引用方法。 结构体变量成员引用方法: 结构体变量.成员名   (13)有以下程序 #include main() { char a[20]=”How are you?

46、b[20];   scanf(“%s”,b);printf(“%s %s\n”,a,b); } 程序运营时从键盘输入:How are you?<回车> 则输出结果为 How are you?  How 。 解析:考点为字符串输人输出。 c语言中用字符数组存放字符串,此题中字符数组a赋值和输出属于正常使用方法。关键是字符数组b输入,C语言把空格作为字符串输入分隔符,所以字符数组b只能接受到How。(具体参考教材P145页)   (14)有以下程序 #include typedef struct { int num;double s}REC; voi

47、d fun1( REC x ){x.num=23;x.s=88.5;} main() { REC a={16,90.0 };   fun1(a);   printf(“%d\n”,a.num);} 程序运营后输出结果是  16  。 解析:考点为函数参数传输。C语言中函数参数传输是值传输,是把实参值传给形参,是单向传输,形参改变不会影响到实参值。此程序特殊地方是实参和形参所有是结构体变量,使用方法和一般变量是同样。   (15)有以下程序 #include fun(int x) { if(x/2>0) run(x/2);   printf(“%d ”,x);} main( ) { fun(6);printf(“\n”); } 程序运营后输出结果是 1  3  6 。 解析:考点为函数递归调用。程序实行过程是先递推、后递归过程。当x=1时,条件不成立,递归终止。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服