【摘要】本文结合C语言的教学实践,讲解了C 语言基础知识的几个难点,是教学过程中学生较难掌握和容易出错的重要知识点。希望可以对学习C语言的读者提供参考,能更好地理解C程序设计的思想、编写出优秀的C程序。

【关键词】C语言;整形数据;溢出;运算符;自增自减 switch;循环语句

C语言作为国际上最流行的、应用最广泛的编程语言之一,一方面它具有高级语言的优点,另一方面又有着低级语言的特性,既适合编写操作系统、编译器等系统软件,同时也适用编写各种应用软件。因此,C语言越来越多地成为高等院校计算机专业的学生学习程序设计的首选课程。《C语言程序设计》是计算机专业的一门重要的基础课程,也是《C++程序设计》、《数据结构》等专业课的前导课程。笔者结合自己的教学实践,谈谈C语言基础知识的几个难点。

一、整型数据的范围

不同类型的数据在内存中占用的存储单元长度不同,以VC++6.0的编译环境为例,基本整型(int)数据分配4个字节,短整型(short int)数据分配2个字节。我们以short int为例。1个字节为8个二进制位,每个短整型数据分配2个字节,即16位。对于有符号位的短整型(signed short int,默认的),最左面一位作为符号位,0表示正,1表示负。即能存储的最大数为0111111111111111,第一位是0,表示正数,后边15位都是1,转换为十进制为32767;最小数为1000000000000000,转换为十进制为-32768。超出此范围,即为“溢出”。例如:

short int a,b,c,d; a=32767;b=a+1; c=-32768;d=b-1;

printf("b=%d\t",b); printf("d=%d\n",d); 输出结果为b=-32768 d=32767

对于无符号的短整型(unsigned short int),最小为0000000000000000,最大为1111111111111111,范围0~65535。例如:

unsigned short int e=65535,f; f=e+1;

printf("f=%d\n",f); 输出结果为f=0

二、运算符

算术运算符有+,-,*,/,%,++,--。其中,*号在表达式中不可以省略,如b2-4ac,写成表达式为b*b-4*a*c。/和%要区分好,/为商,%为余。如a可以被b整除,表示为a%b==0。++,--的使用方法有两种:一种i++,i--,先使用i原值,再使i的值加或减1;第二种++i,--i,先使i的值加或减1,再使用i的新值。例如:

int i=11; printf("%d\n",i++ * 1/3); 输出结果为3。

int i=11; printf("%d\n",++i * 1/3); 输出结果为4。

自加自减运算符在后边的学习中会经常用到,要好好理解。

逻辑运算符有&&,||,!。在逻辑表达式中,不是所有的逻辑运算符都执行,只在必须执行下一个逻辑运算符才能求出表达式的解的时候,才执行该运算符。a && b只有a为真时,才判断b的值。换句话说,a如果为假,b就不执行。同理,a || b,a如果为真,b就不用执行。例如:

int m=1,n=1,a=1,b=1;

printf(“表达式=%d\t”,(m=a>b)&&(n=a>b)); printf("m=%d,n=%d\n",m,n);

输出结果为 表达式=0 m=0,n=1

常用的运算符的优先级别从高到低排序为:!,算术运算符(++,--高于*,/,%高于+,-),关系运算符(>,>=,

三、比较数的大小

例如:编写程序,输出三个整数的最大值。刚接触C语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。调整算法思路,便于以后程序的编写。

main( )

{ int a,b,c,max; max=a;

if(b>max) max=b; if(c>max) max=c; printf("max=%d\n",max);}

同理,编写程序,输出10个整数的最大值。

main( )

{ int a[10],max,i; for(i=0;i<=9;i++) scanf("%d",&a[i]);

max=a[0]; for(i=1;i<=9;i++) if(a[i]>max) max=a[i];

printf("max=%d",max); }

四、switch语句

处理选择结构有if语句和switch语句。switch语句用于处理多分支选择结构,在使用时有多个注意点,这里强调两点。

1.case后边的常量,不能写成表达式。

例如:编写程序,评判学生成绩score的等级grade,90~100为A,80~90为B,70~80为C,60~70为D,60以下为E。

c语言基础知识难点,C语言基础的几个难点解析相关推荐

  1. C语言入门知识1(零基础新手适用)

    C语言入门知识1(零基础新手适用) #程序语言 1.机器语言 机器语言是低级语言,是用01码来编写的二进制代码语言 2.汇编语言 汇编语言也是低级语言,是用英文字母和符号串编写的 3.高级语言 由于汇 ...

  2. 全国计算机等级考试一本通关六合一,2014年全国计算机等级考试一本通关六合一 二级公共基础知识与C语言程序设计 无纸化考试专用...

    <2014年全国计算机等级考试一本通关六合一 二级公共基础知识与C语言程序设计 无纸化考试专用> 前言 最新版考试大纲 各考点考核命题分析表 第1章 公共基础知识 知识清单1 考点1 算法 ...

  3. Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。

    Linux基础知识学习 C语言作业:将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印. #include <stdi ...

  4. 计算机基础知识应用文档,计算机基础知识与应用

    计算机基础知识与应用Tag内容描述: 1.计算机应用基础知识计算机应用基础知识点计算机应用基础知识话题计算机应用基础知识计算机基础知识电子商务单击第一章计算机基础知识1.1946年2月15日世界上第一 ...

  5. 硬件工程师入门基础知识(一)基础元器件认识(二)

    硬件工程师入门基础知识 (一)基础元器件认识(二) 1.二极管 2.三极管 3.MOS管 4.IGBT 5.晶振 tips:学习资料和数据来自<硬件工程师炼成之路>.百度百科.网上资料. ...

  6. 硬件工程师入门基础知识(一)基础元器件认识(一)

    硬件工程师入门基础知识 (一)基础元器件认识(一) 今天水一篇hhh.介绍点基础但是实用的东西. tips:学习资料和数据来自<硬件工程师炼成之路>.百度百科.网上资料. 1.贴片电阻 2 ...

  7. 清华计算机文化基础网站,数据库基础知识清华大学计算机文化基础

    <数据库基础知识清华大学计算机文化基础>由会员分享,可在线阅读,更多相关<数据库基础知识清华大学计算机文化基础(32页珍藏版)>请在人人文库网上搜索. 1.第三部分数据库基础( ...

  8. 计算机信息处理的基础知识,计算机和信息处理基础知识.ppt

    第一章 计算机与信息处理基础知识 1.1 计算机概述 1.2 电子计算机的发展 1.3 计算机系统的组成 堪庭锨婆铝胰饼箱娘窜禁磁括痢若互腆怖筏溺橡般颂骆桑猴溅躺怖摄滓现计算机与信息处理基础知识计算机 ...

  9. 股票基础知识—K线图基础知识

    股票基础知识-K线图基础知识 文章目录 股票基础知识-K线图基础知识 一.K线概述 1.k线的历史 2.k线基本组成 3.k线分类 4.k线画法 5.阴阳线 6.实体大小 7.影线长短 8.K线类型 ...

  10. JavaSE——Day1——计算机基础知识、Java语言基础、JRE与JDK

    计算机基础知识 什么是计算机? 计算机全称:电子计算机,俗称电脑.是一种能够按照程序原乡,自动.告诉处理海量数据的现代化只能电子设备.计算机由软件和硬件组成,没有安装任何软件的计算机称为课机.常见的形 ...

最新文章

  1. XiaoluD的留言板
  2. 莫比乌斯函数+莫比乌斯反演
  3. linux脚本获取当前用户,bash shell 获取当前正在执行脚本的绝对路径
  4. C++ 中的引用 和指针的区别
  5. 糖果传递 (数学题)
  6. spring 事务说明
  7. MOSS 2007 User Profile 系列 索引
  8. Dapr牵手.NET学习笔记:发布-订阅
  9. android中文离线api_比林肯法球Linken sphere浏览器更多更新指纹的国产防关联软件-VMLogin中文版浏览器...
  10. 安卓USB开发教程 一 USB Host 与 Accessory
  11. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...
  12. Feign Client 原理和使用
  13. Linux服务器文件同步(NFS服务)
  14. 【10.9】每日NLP学术论文推荐
  15. 数据分析中会常犯哪些错误,如何解决? 五
  16. H3C/ 华为 路由交换基础知识官方 PPT
  17. 工程目录结构模板设计
  18. java seo优化_java的seo优化-SEO技能未来发展前景
  19. 利用OD去软件弹窗广告教程-[WinRAR_3.9]为例
  20. 【色彩管理】Lab色彩模式详解

热门文章

  1. java memcached incr_Memcached incr/decr 命令
  2. python中函数用法教程_Python中zip()函数用法实例教程
  3. (第八章)左右外连接
  4. 当前操作系统缺少黑体等字体_2020世界互联网大会:360视觉、360守望领域、360城市运营操作系统齐亮相...
  5. tensorflow sigmoid 如何计算训练数据的正确率_“来自蒙娜丽莎的凝视”— 结合 TensorFlow.js 和深度学习实现...
  6. 软件工程导论 07章软件测试
  7. Progressive Scramble 复杂模拟
  8. Python os.mkdir() 和os.makedirs()方法➡创建目录
  9. OpenCV——读取图片的数据类型必须是int8类型吗?
  10. 【已解决】罗技K380蓝牙键盘可以连接电脑,但无法输入怎么办?