中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
二级C语言实例解答
作者:山东 崔永良 时间:2006-10-04 11:54 出处:ccidnet.com 责编:月夜寒箫
              摘要:二级C语言实例解答

C语言牵涉的概念比较复杂,规范繁多,使用灵活,容易出错,不少初学者感到困难,下面通过几个实例的分析来说明c语言学习中容易混淆的几个问题,以期抛砖引玉,对初学者有所帮助。

问题1:下面的程序

int a=3,b=4;
            char str=’c’;
            printf(“%d,%d”,a,b,str);

执行后, 输出结果为:
(A)3,4,c (B)3 4 c
(C)3,4 (D)程序出错

分析:在格式输出时一般要求格式说明符与输出项相一致,当输出项多余格式说明符时多余的输出项不输出,所以答案为C。

问题2:有下面的程序段

char a[3],b[]=“china”;
              a=b;
              printf(“%s”,a);

则输出结果为:
(A)运行后输出china (B)运行后输出ch (C) 运行后输出chi (D)编译出错

分析:这个题容易错选a实际答案为d,由于定义了字符数组后,数组名作为数组的首地址,是一个常量,给一个常量赋值的语句是错误的,换句话说,不能用赋值语句将一个字符常量或字符数组直接赋值给一个字符数组,以答案选D。

问题3:下列说明不正确的是:

(A)char a[10]=“china” (B)char a[10],p=a;p=“china” (C)char p;p=“china”(D)char a[10],p;p=a=“china”;

分析:此题易知A是正确的,D是错误的,对于B、C就很难选择了。有人认为p是一个字符变量,以为把”china”赋给该字符变量是不对的,实际上它是一个指针变量,只能指向一个字符变量或其他字符类型数据,不是把”china”存放到p中(指针变量只存放地址),只是把
“china”的首地址赋给指针变量 p,所以B,C也是正确的。

问题4:下面的程序执行结果是:

main()
            {int x[5]={2,4,6,8,10},ppp;
              p=x;
              pp=&&p;
              printf(“%d”,(p++));
              printf(“%d\n”,pp);
              }

  (A)4 4 (B)2 4 (C)2 2 (D)4 6

分析:在此题中p++是后加方式,先输出p的值,p再自加,pp是二级指针,指向一级指针p,执行第一条输出语句前后,存在下列指向关系:


所以本题应选b

问题5:下列输出语句执行后结果为:

 
 int i=3;
              printf(“%d”,-i++);

  (A)3 (B)4 (C)-3 (D)-4

分析:此题考查运算符的优先级,负号运算符和++运算符同优先级,而结合方向为“自左至右”,即-i++相当于-i++,所以先取出i的值3,输出-i的值-3,然后i增值为4,而不是i先增值为4,然后输出-4,所以答案选择C。

问题6:设有以下语句,

 
 struct st
              {int n;
              struct st next;
              };
              static struct st a[3]={5,&&a[1],7,&&a[2],9,’\0’},p;

则以下表达式的值为6的是:
(A)p++→n (B)p→n++ (C)(p).n++ (D)++p→n

分析:此题也是考查运算符的优先级,→优先级高于++,结合方向为自左至右,而后者结合方向为自右至左,A答案相当于p++→nB答案相当于p→n++所以A、B、C表达式值均为5,D答案相当于++p→n自加方式为前加方式,所以其值为6。

上面是我在教学过程中学生一些比较集中的问题,只要认真的体会和总结,加强上机实践,对自己C语言的学习会大有裨益。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有