栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

【HNUMSC】C语言第二讲

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【HNUMSC】C语言第二讲

C语言第二课 循环

循环是重复执行其他语句(循环体)的语句。
C语言提供了三种重复语句:

  • while
  • do
  • for

水仙花数

while语句
while(i
  i=i+2;
  }
int i=5;
while(i>=1){
  printf("%dn",i);
  i--;
  }


do语句

do语句本质上就是while语句,只是控制表达式是在每次执行完循环体之后进行判定。

do语句while(表达式);

int i =10;
do{
printf("%dn",i);
i--;

}while(i>0);
for语句

for语句非常适合应用在使用“计数”变量的循环中。
for语句格式:

for(表达式1;表达式2;表达式3)语句

从0向上加到n-1:

int i;
for(i=0;i<10;i++)
   printf("i=%dn",i);

执行for语句时,变量i先初始化为0,接着判定i是否小于10。因为判定的结果为真,所以打印i=0,然后对变量i进行自增操作。随后再次对条件i>0进行判定,直到不满足条件(判定为false)为止。

for的省略表达式

C语言允许省略任意或者全部的表达式:

int i=0;
for(;i<10;i++)
   printf("i=%dn",i);
int i;
for(i=0;i<=10;){

   printf("i=%dn",i);
   i++; 
}

如果省略表达式2,那么它默认为真值,for语句不会终止,会无限循环。

for语句声明
int i=2;
for(int i=0;i<10;i++)
   printf("i=%dn",i);
printf("%d",i);

for语句声明的变量不可以在循环外访问。

循环中的break语句
int main(void)
{
int i=0;
for(;;i++){
   printf("i=%dn",i);
   if(i==5){
      break;
	}

}
	return 0;
}
continue语句

break语句会使程序跳出循环,而continue语句会把程序控制留在循环内。

//读入十个非零数后循环中止
int n=0;
int sum=0;
while(n<0){
scanf("%d",&i);
if(i==0)
  continue;//跳过读入的0
 sum +=1;
 n++;
}

基本类型 整数类型
  • int
  • long int
    整数溢出
    对整数进行算数运算时,其结果可能因为太大而无法表示。

例如,对两个int值进行算术运算时,结果必须仍然能用int类型来表示,否则会发生溢出。

long l;
scanf("%ld",&l);
printf("%ld",l);
浮点类型

C语言提供3种浮点类型,对应三种不同的浮点格式

  • float:单精度浮点数
  • double:双精度浮点数
  • long double:扩展精度浮点数
double d;
scanf("%lf",&d);
//printf函数格式中f可以用来写double类型(不能用lf)
字符类型

char类型,即字符类型

ASCII码

char类型的变量可以用任意单字符赋值:

char ch;
ch ='a';
ch ='A';
ch ='0';
ch =' ';//空格

ch =ch+1;

可以像比较数那样对字符进行比较

下面的if语句测试ch中是否含有小写字母,如果有,那么它会把ch转化成相应的大写字母。

int main(void)
{
char ch;
ch='f';
if ('a'<=ch && ch<='z') 

  ch =ch -'a'+'A';
printf("%c",ch);
	return 0;
}
getchar

可以使用getchar函数和putchar函数来读写字符。

putchar函数用于写单个字符

每次调用getchar函数时,它会读入一个字符并将其返回。

ch=getchar();//为保存这个字符,必须使用赋值操作将其储存到变量中
已知的最古⽼的⼀种加密技术是凯撒加密(得名于 Julius caesar)。该⽅法把⼀条消息中的每个字⺟⽤字⺟表中固定距离之后的那个字⺟来替代。(如果越过了字⺟Z,会绕回到字⺟表的起始位置。例如,如果每个字⺟都⽤字⺟表中两个位置之后的字⺟代替,那么Y就被替换为A,Z就被替换为B。)

编写程序⽤凯撒加密⽅法对消息进⾏加密。⽤户输⼊待加密的消息和移位计数(字⺟移动的位置数⽬):
Enter message to be encrypted: Go ahead, make my day.
Enter shift amount (1-25): 3
Encrypted message: Jr dkhdg, pdnh pb gdb.


注意,当⽤户输⼊26与移位计数的差值时,程序可以对消息进⾏解密:


Enter message to be encrypted: Jr dkhdg, pdnh pb gdb.
Enter shift amount (1-25): 23
Encrypted message: Go ahead, make my day


不是字⺟的那些字符不要改动。此外,加密时不要改变字⺟的⼤⼩写。


输出范例:


Enter message to be encrypted: Hello, world!
Enter shift amount (1-25): 3
Encrypted message: Khoor, zruog!


Enter message to be encrypted: Khoor, zruog!
Enter shift amount (1-25): 23
Encrypted message: Hello, world!
数组 一维数组

声明数组a有10个int类型的元素:

int a[10];

或者用宏定义:

#define N 10
int a[N];
数组下标

为了存取特定的数组元素,可以在写数组名的同时在后面加上一个用方括号围绕的整数值(对数组取下标或进行索引)

如果a是含有10个元素的数组,可以依此标记为a[0],a[1]…a[9]
数组索引从0开始

数列反向

#include 

#define N 10

int main(void)
{
  int a[N], i;

  printf("Enter %d numbers: ", N);
  for (i = 0; i < N; i++)
    scanf("%d", &a[i]);

  printf("In reverse order:");
  for (i = N - 1; i >= 0; i--)
    printf(" %d", a[i]);
  printf("n");

  return 0;
}

数组初始化

对数组使用sizeof运算符


多维数组

二维数组m有5行9列:

int m[5][9];


多维数组初始化


结构体 字符串





转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号