Réponses aux exercices de conception du langage C de Tan Haoqiang (4)

Utilisez la fonction scanf suivante pour saisir des données, de sorte que a=3, b=7, x=8,5, y=71,82, c1='A', c2='a'. Comment taper sur le clavier ?

#include<stdio.h>

int main()

{     int a,b;     flotter x, y ;     caractère c1,c2;     scanf("a=%db=%d",&a,&b);     scanf("%f %e",&a,&y);     scanf("%c%c",&c1,&c2);     printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);     renvoie 0 ; }








répondre:


a=3 b=7
8,5 71,82Aa

Veuillez écrire un programme pour traduire "Chine" en mot de passe. La règle du mot de passe est la suivante : remplacez la lettre originale par la quatrième lettre après la lettre originale. Par exemple, si la quatrième lettre après la lettre « A » est « E », utilisez « E » au lieu de « A ». Par conséquent, « Chine » devrait être traduit par « Glmre ». Utilisez la fonction putchar et la fonction printf pour afficher respectivement ces 5 caractères afin de terminer ce programme.


#include <stdio.h>

int main() {

    char text[] = "Chine"; // Texte original

    char password[6]; // Tableau pour stocker les mots de passe, une position supplémentaire est utilisée pour stocker le terminateur de chaîne '\0'

    int shift = 4; //Nombre de lettres à reculer

    pour (int je = 0; je < 5; i++) {

        char originalChar = text[i]; // caractère original

        mot de passe[i] = shift + originalChar ;

    }

    password[5] = '\0'; // Ajout d'un terminateur de chaîne

    printf("Utiliser la fonction putchar pour afficher le mot de passe : ");

    pour (int je = 0; je < 5; i++) {

        putchar(mot de passe[i]);

    }

    putchar('\n');

    printf("Utiliser la fonction printf pour afficher le mot de passe : %s\n", mot de passe);

    renvoie 0 ;

}

//以下是一个C程序,将"China"翻译成密码并使用 putchar 函数和 printf 函数输出这 5 个字符:

#include <stdio.h>

int main() {
    char text[] = "China"; // 原始文本
    char password[6]; // 存储密码的数组,多一个位置用于存储字符串结束符'\0'
    int shift = 4; // 后移的字母数

    for (int i = 0; i < 5; i++) {
        char originalChar = text[i]; // 原始字符

        // 判断字符是否是大写字母
        if (originalChar >= 'A' && originalChar <= 'Z') {
            password[i] = ((originalChar - 'A' + shift) % 26) + 'A';
        }
        // 判断字符是否是小写字母
        else if (originalChar >= 'a' && originalChar <= 'z') {
            password[i] = ((originalChar - 'a' + shift) % 26) + 'a';
        }
        // 如果不是字母,直接复制
        else {
            password[i] = originalChar;
        }
    }

    password[5] = '\0'; // 添加字符串结束符

    printf("使用 putchar 函数输出密码: ");
    for (int i = 0; i < 5; i++) {
        putchar(password[i]);
    }
    putchar('\n');

    printf("使用 printf 函数输出密码: %s\n", password);

    return 0;
}


//这个程序首先定义了一个原始文本 "China" 和一个存储密码的字符数组 password,然后使用循环对//每个字符进行后移操作,根据字符是大写字母、小写字母还是其他字符,进行相应的处理,最后输//出密码。

Supposons que le rayon du cercle r = 1,5 et la hauteur du cylindre h = 3. Trouvez la circonférence, l'aire du cercle, la surface de la sphère, le volume de la sphère et le volume du cylindre. Utilisez scanf pour saisir des données et afficher les résultats du calcul. La sortie nécessite une description textuelle et deux chiffres après la virgule décimale. Veuillez écrire un programme C.


Vous trouverez ci-dessous un programme C qui calcule la circonférence et l'aire des cercles et des cylindres ainsi que l'aire et le volume d'une sphère pour un rayon et une hauteur donnés. Le programme utilise la fonction « scanf » pour saisir les valeurs de rayon et de hauteur, puis calcule et affiche les résultats :

```c
#include <stdio.h>
#include <math.h>

int main() {     double r, h;     const double pi = 3,14159265359 ;

    // Saisissez le rayon du cercle et la hauteur du cylindre
    printf("Veuillez saisir le rayon du cercle (r) et la hauteur du cylindre (h) :");
    scanf("%lf %lf", &r , & h);

    // Calculer la circonférence et l'aire d'un cercle
    double circle_circumference = 2 * pi * r;
    double circle_area = pi * pow(r, 2);

    // Calculer la surface et le volume de la sphère
    double sphère_surface_area = 4 * pi * pow(r, 2);
    double sphère_volume = (4.0 / 3.0) * pi * pow(r, 3);

    // Calculer le volume du cylindre
    double cylindre_volume = circle_area * h;

    // Afficher le résultat du calcul
    printf("La circonférence du cercle est : %.2lf\n", circle_circumference);
    printf("L'aire du cercle est : %.2lf\n", circle_area);
    printf( "La surface de la sphère est :%.2lf\n",sphere_surface_area);
    printf("Le volume de la sphère est : %.2lf\n",sphere_volume);
    printf("Le volume du cylindre est : %.2lf\n", cylindre_volume);

    renvoie 0 ;
}

```

Vous pouvez exécuter ce programme, suivre les invites pour saisir le rayon du cercle et la hauteur du cylindre, et le programme calculera et affichera les résultats souhaités.

Écrivez un programme et utilisez la fonction getchar pour lire deux caractères dans c1 et c2, puis utilisez la fonction putchar et la fonction printf pour afficher respectivement ces deux caractères. Considérez les questions suivantes :

(1) Les variables c1 et c2 doivent-elles être définies comme des caractères ou des entiers ? Ou les deux?

(2) Comment gérer la demande de sortie du code ASCII des valeurs c1 et c2 ? Utiliser la fonction putchar ou la fonction printf ?

(3) Les variables entières et les variables de caractères peuvent-elles se substituer les unes aux autres en toutes circonstances ? comme:

char c1,c2 et int c1,c2;

Sont-ils inconditionnellement équivalents ?


(1) Les variables `c1` et `c2` peuvent être définies comme type de caractère. Les variables de caractère sont généralement utilisées pour stocker un seul caractère et peuvent être déclarées avec le type `char`.

```c
char c1, c2;
```

(2) Pour afficher les codes ASCII de « c1 » et « c2 », vous pouvez utiliser la fonction « putchar » ou la fonction « printf ». Voici des exemples des deux méthodes :

Utilisez la fonction `putchar` :

```c
#include <stdio.h>

int main() {     char c1, c2;     printf("Veuillez saisir deux caractères :");     c1 = getchar();     c2 = getchar();

    


    putchar(c1);
    putchar(c2);

    printf("\nLe code ASCII de %c est : %d\n", c1, c1);
    printf("Le code ASCII de %c est : %d\n", c2, c2);

    renvoie 0 ;
}

```

Utilisez la fonction `printf` :

```c
#include <stdio.h>

int main() {     char c1, c2;     printf("Veuillez saisir deux caractères :");     c1 = getchar();     c2 = getchar();

    


    printf("Le code ASCII de %c est : %d\n", c1, c1);
    printf("Le code ASCII de %c est : %d\n", c2, c2);

    renvoie 0 ;
}

```

Les deux peuvent afficher le code ASCII des caractères.

(3) Les variables entières et les variables caractères ne peuvent pas être substituées dans tous les cas. Bien que le type « char » soit couramment utilisé pour représenter des caractères dans le langage C, il s'agit en fait d'un type entier qui peut être utilisé pour stocker des valeurs entières, mais sa plage est plus petite. Le type `int` est utilisé pour représenter des entiers, généralement avec une plage plus grande.

Dans certains cas, le type `char` peut être implicitement converti en type `int`, par exemple :

```c
char c = 'A';
int i = c; // char peut être assigné à int

```

Cependant, vous devez faire attention à la plage lors de la conversion explicite du type « int » en type « char ». Si la valeur de « int » dépasse la plage du type « char », une troncature ou des résultats inattendus peuvent en résulter.

```c
int i = 1000;
char c = i; // Remarque : peut provoquer

une troncature```

Par conséquent, il est généralement recommandé d'utiliser le type `char` lorsqu'il s'agit de caractères, et le type `int` lorsqu'il s'agit d'entiers. Selon la situation, la conversion de type doit être effectuée avec prudence.

Je suppose que tu aimes

Origine blog.csdn.net/qq_50942093/article/details/132981437
conseillé
Classement