Sauveur du langage C (mot-clé -- 2)

teneur

1. Chaîne

Le résultat du code suivant est : ( )

2. Mots clés

1. Mots-clés du langage C : identifiants du langage C définis par le langage C, avec des significations spécifiques et dédiés à des fins particulières, également appelés mots réservés

Exercice 1. Déterminer la taille de 2 nombres

Exercice 2. Calcul du score total et du score moyen

Exercice 3. Inverser la sortie d'un nombre à quatre chiffres

  variables locales modifiées statiques


1. Chaîne

Spécification du langage C : utilisez '\0' comme marqueur de fin d'une chaîne valide

Les indices de tableau commencent à 0.

#include <stdio.h>
#include <string.h>
int main()
{
    printf("%d\n", strlen("c:\test\121"))
    return 0;
}

strlen : obtient la longueur effective de la chaîne, à l'exclusion de '\0'

"c:\test\121" : dans cette chaîne, \t est un caractère de transition, tabulant horizontalement et sautant à la position de tabulation suivante ; et \121 signifie un caractère, ce qui signifie que 121 est considéré comme un tableau octal, Après conversion en 81 en décimal, le travail est le caractère de la valeur du code ASCII, c'est-à-dire : le caractère 'Q', donc la chaîne ci-dessus est en fait : "c esty", seulement 7 caractères valides

'\n' caractère d'échappement, représentant une nouvelle ligne

'\060' Caractère d'échappement, 060 données octales, décimal 48, signifie '0' dont le code ASCII est 48

'\b' caractère d'échappement, signifie retour arrière


Le résultat du code suivant est : ( )

#include <stdio.h>
#include <string.h>

int main()
{
    char arr[] = {'b', 'i', 't'};
    printf("%d\n", strlen(arr));
	return 0;
}

strlen est utilisé pour obtenir la longueur effective de la chaîne, le marqueur de fin '\0' n'est pas inclus.

Les règles obtenues par strlen sont très simples : vérifier d'avant en arrière, et terminer la détection jusqu'à ce que '\0' soit rencontré.

Dans le haut du corps, arr est un tableau de caractères, pas une chaîne valide, car il n'y a pas de '\0' derrière, donc quand strlen résout, après avoir détecté des caractères valides, il continuera à vérifier en arrière jusqu'à ce qu'il rencontre '\0 ' est seulement terminé, donc la réponse est indéterminée, cela dépend de l'endroit où se trouve le premier '\0' immédiatement après 't'.

2. Mots clés

1. Mots-clés du langage C : identifiants du langage C définis par le langage C, avec des significations spécifiques et dédiés à des fins particulières, également appelés mots réservés

Les mots clés ont une signification particulière et ne peuvent pas être utilisés comme noms de variables

(où définir n'est pas un mot-clé, il est implémenté par le compilateur et utilisé pour définir les instructions de prétraitement des macros, pas le contenu en langage C.)

Exemple


用在switch语言中的关键字不包含哪个?



  A.continue
  B.break
  C.default
  D.case
  
  答案是A

  switch是用来进行多分支选择的语句,一般结构是:

  switch(变量表达式)

  {

    case xx1:

     // ...

     break;

    case xx2

     // ...

     break;

    default:

      // ...

  }

  

当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句
break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。

当变量表达式的内容没有与那个case匹配,就会执行default下的内容。

switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。

continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。

Exercice 1. Déterminer la taille de 2 nombres

#include <stdio.h>
int main()
{
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF)
    {
        if (a > b)
            printf("%d>%d\n", a, b);
        else if (a < b)
            printf("%d<%d\n", a, b);
        else
            printf("%d=%d\n", a, b);
    }
    return 0;
}

Exercice 2. Calcul du score total et du score moyen

%3.2f signifie

%m.nf
m - Détermine la longueur totale des données de sortie, [chiffres entiers + chiffres décimaux + 1 point décimal] Si la longueur totale des données de sortie ne spécifie pas la longueur de sortie, elle sera remplie d'espaces à gauche côté des données. Non utilisé s'il est supérieur ou égal à la longueur de la sortie.

n - Détermine le nombre de chiffres pour la sortie du point décimal, arrondi au dernier chiffre. Si le nombre de décimales des données est inférieur au nombre de chiffres spécifié, ajoutez 0 à la fin.

int main()
{
    float a=0;
    float b=0;
    float c=0;
    scanf("%f %f %f",&a,&b,&c);
    float ret=a+b+c;
    float Average=(a+b+c)/3;
    printf("%3.2f ",ret);
    printf("%3.2f",Average);
    
     
    return 0;
}

Exercice 3. Inverser la sortie d'un nombre à quatre chiffres

Par exemple n=1234, premier 1234%10=4, n divisé par 10=123. 123%10=3, 123 divisé par 10=12

La boucle continue jusqu'à n=0, la boucle se termine et imprime 4 3 2 1

#include <stdio.h>
void Nixu(int n)
{
    while(n)
    {
    printf("%d",n%10);
    n/=10;
    }
   
}
int main()
{
    int n=0;
    scanf("%d",&n);
    Nixu(n);
    return 0;
}

En langage C, 0 signifie faux, non-0 signifie vrai

//#define 定义常量

#define MAX 1000

#define STR "hello bit"

int main()
{
	int m = MAX;
	printf("%d\n", m);
	printf("%s\n", STR);
	return 0;
}

variables locales modifiées statiques



void test()
{
	static int a = 5;
	a++;
	printf("%d ", a);
}

int main()
{
	int i = 0;
	while (i<10)
	{
		test();
		i++;
	}

	return 0;
}


static修饰局部变量,延长生命周期

Lorsque statique modifie une variable locale, la variable locale devient une variable locale statique hors de la portée locale et ne sera pas détruite

La prochaine fois que vous entrez dans la fonction, elle existe toujours parce que : Lorsqu'une variable locale modifiée statiquement est une variable locale modifiée statiquement stockée dans la zone statique, ce qui change réellement est l'emplacement de stockage de la variable

À l'origine, une variable locale était placée dans la zone de la pile, et elle était placée dans la zone statique après avoir été modifiée par static. Par conséquent, le hors champ d'application existe toujours et le cycle de vie ne se termine pas.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_63543274/article/details/123167313
conseillé
Classement