c语言程序的理解,对于c语言程序与设计的理解

对于计算机科学与技术这个学科来说,c和c++还有java都是其重要的语言基础,在大一刚开始两个多月对于c的学习,其中神奇之处深深的吸引了我,独特的编译方式引起了我的好奇心,也激起我想要征服这个学科的信念。我写下这篇博客来记录我认为c语言学习要点和易错点。  首先最先需要接触和学习的就是c语言的程序处理的数据有常量和变量两种类型

常量的类型包括"整形常量"“字符型常量”“字符串类型常量”等等。不同的类型常量也有不同的表达形式。例如单精度类型用float表示,双精度用double表示。

c语言中也包括了许多算数运算符如:一元运算符,二元运算符,三元运算符。整数除法和浮点数除法。自增运算符,自减运算符。还介绍了宏常量和宏替换。还有与其相似的const常量,都是定义一个常量来代表一个数。还有关于自动类型转换与强制类型转换符。

在单个字符的输入输出中。字符常量是用单引号括起来的一个字符。字符的输入输出是需要引入ACSII的内容,需要借助getchar()和putchar()来从终端键盘输入和输出。数据的格式化,常用于scanf和printf中用于表示数据类型的。常用的有%d表示十进制整数,%c表示输入一个字符,%f表示单精度类型,%lf表示双精度类型。

选择控制结构中包括单分支,双分支,多分支控制的条件语句。还有switch语句。

循环控制结构中包括三种类型。for语句(当型循环结构),while语句(当型循环结构),do while语句(直到型循环结构)。for语句中包括初始化表达式。循环控制表达式,循环增值表达式。一直循环到不符合循环控制表达式,停止循环。while语句与do while语句区别是前者是先判断再循环,后者是先循环再判断。

我用我们第一个接触的程序“Hello,world!”来介绍程序最基本的内容包括:

#include

using namespace std;

int main()

{

cout<

return 0;

}

其中#include尖括号里面表示的是头文件是一个程序最基础的部分。

using nameapace std;表示所有的标准函数都在标准命名空间std中进行了定义,以免发生了重名的问题。

int main()里就是函数名

cout之后便是我们要输出的内容。

不要忘记最后的return 0;用于停止程序。

在刚开始接触c语言,我们这些小萌新们经常会犯一些不起眼的错误。接着来我来给大家介绍一下我自己觉得应该注意的地方和易错点。

1  变量必须先定义后使用。

2  赋值运算符是将=右边的表达式的值赋值给左边表达式。

3  在定义变量的时候不能对多个变量进行连续赋初值。

4  求余运算限定参与运算的两个操作数必须为整数,不能对两个实型数据进行求余运算。

5   在printf和scanf中格式控制字符串忘记加双引号。

6   在scanf中忘记加取地址符。

7   if之后不能加分号。

8   if语句后的复合语句忘记花括号。

9   等号是==,=是赋值符。

10 在switch语句中 每一个case 分支后面缺少break语句。

11 while和for语句之后要加花括号。

12 while语句后不能加分号。

13 do while中while后忘记加分号。

14 要用分号分隔for语句中三个条件。

接下来给大家几个易错例题。

1

邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

输入

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

输出

输出一行,包含一个整数,表示邮费

答案

#include

#include

#include

using namespace std;

int main()

{

int a,c;

char x;

c=8;

cin>>a>>x;

if(a<=1000)

{

if(x=='y')

cout<<13;

else

cout<<8;

}

if(a>1000)

{

a-=1000;

c=a/500*4+c;

if(x=='y')

c+=5;

if(a%500!=0)

{

c=c+4;

cout<

}

if(a%500==0)

cout<

}

}

其中包括了if else循环结构 还有自增运算符。也考差了做题人的思维紧密性。和对程序结构的了解。

2

金中食堂做的蛋糕总是做成菱形,琪琪希望蛋糕上能裱上一圈小花,她想请你再帮个忙,用电脑画出用“*”号组成的裱花形状,这将是个空心的菱形。

输入

一个整数,n>0。

输出

由n*2-1层“*”号组成的空心菱形

答案

#include

using namespace std;

int main()

{

int n;

cin>>n;

for(int i=1;i<=2*n-1;i++)

{

for(int j=1;j<=2*n-1;j++)

if(i+j==n+1||i+j==3*n-1||i==j-n+1||j==i-n+1)

{

cout<

}

else

cout<

cout<

}

return 0;

}

这道题也是算是挺有难度的。需要也考虑每一条边对应的关系式。也用上了循环嵌套结构。先考虑每个边对i和j的表达式。也要考虑到n取不同值会不会出问题。

这些是我对这两个月学习来总结的问题和注意点。如有不足,请老师同学们指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值