首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>cc++>正文

二级C语言实例解答

http://www.oklinux.cn  2008-03-07  来源: 赛迪网-中国电脑教育报 山东 崔永良   会员收藏  游客收藏  【 】 

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语言的学习会大有裨益。


上一篇:一种被忽视的构造和整数溢出重现   下一篇:JDK核心API--实际例子学正则表达式


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·一种被忽视的构造和整数溢出重现
·Visual C# 常见问题
·轻轻松松C to C
·使用智能设备扩展在C#中开发自定义控件
·VS:针对Java开发人员的C#编程语言
·与用于 C 的ISO标准保持一致
·在 Linux 中使用共享对象
·用C 的托管扩展针对Windows编程
·运行时和编译时的安全性检查
·用Eclipse平台进行C/C 开发
·轻轻松松C to C (二)
·轻轻松松C to C (三)
·Web Browser Express 概述
·例解用 VC 6.0 实现 JNI
·送给初学者的礼物:游戏编程起源连载二
·送给初学者的礼物:游戏编程起源连载一
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·用Eclipse平台进行C/C 开发
·在 Linux 中使用共享对象
·VS:针对Java开发人员的C#编程语言
·使用智能设备扩展在C#中开发自定义控件
·Visual C# 常见问题
·一种被忽视的构造和整数溢出重现
·轻轻松松C to C
·与用于 C 的ISO标准保持一致
·用C 的托管扩展针对Windows编程
·运行时和编译时的安全性检查
·轻轻松松C to C (二)
·轻轻松松C to C (三)
  阅读排行
·c/c++ 学习-read 函数和 write 函数
·程序员眼中的qmail(qmail源代码分析)
·Awk 基础入门:Awk 实例编程
·autoconf 和automake生成Makefile文件
·Linux下的多进程编程
·入门文章:教你学会编写Linux设备驱动
·C++自动化(模板元)编程基础与应用
·使用 GDB 调试多进程程序
·Qt 不规则窗体的实现
·嵌入式程序员应知道的几个基本问题
·Linux操作系统中GCC的应用介绍
·C语言中的指针和内存泄漏
·用GNU profiler提高代码运行速度
·vi 中的正则表达式 (Regular Expressio
·Linux 套接字编程中的 5 个隐患
网摘收藏: