C-Sprache – Tägliche Multiple-Choice-Fragen – Tag 58

Blogs zum Thema Zeiger

Die erste Aufnahme von Zeiger: Zeigerfamilie-CSDN-Blog

Vertiefendes Verständnis: Dereferenzierung und Hinzufügung von Zeigervariablen – CSDN-Blog

erste Frage

1. Welche der folgenden Zeichenkonstanten ist richtig ( )

A: „c“

B:'\\''

C:'n'

Tupfen'

Antwort und Analyse C

A: Fehler, A ist eine Zeichenfolge und keine Zeichenkonstante

B: Fehler, das Übertragungszeichen wird als „ \\ “ hervorgehoben, was bedeutet, dass es 2 Zeichen enthält und das Format falsch ist.

C: Richtig

D: Fehler, zwei Zeichen können nicht verwendet werden, das Format ist falsch

Frage 2

2. Der Typ des folgenden Funktionswerts ist ()

fun (float x)
{
    float y;
    y = 3 * x - 4;
    return y;
}

A:int

B: Nicht sicher

C: leer

D: schweben

Antwort und Analyse  A

In der C-Sprache ist kein Funktionsrückgabewerttyp geschrieben. Der Standardwert ist der Typ int. Der Funktionsrückgabewert unterliegt dem Funktionsrückgabewerttyp. Wenn der Rückgabetyp nicht mit dem Rückgabewerttyp übereinstimmt, erfolgt eine implizite Typkonvertierung.

Frage 3

3. Das Ausgabeergebnis nach der Ausführung des folgenden Programmsegments ist () (□ steht für ein Leerzeichen)

int a=3366;
printf("│%-08d│",a);

A:│-0003366│

B:│00003366│

C:│3366□□□□│

D: Das Ausgabeformat ist illegal

Antwort und Analyse C

Diese Frage testet das Drucken von %md. Das negative Vorzeichen stellt die Linksbündigkeit dar. Wenn die Zahl vor d größer als die Anzahl der zu druckenden Ziffern ist, füllen Sie die Leerzeichen aus.

Der Unterschied zwischen %md in der printf-Anweisung und der scanf-Anweisung – CSDN-Blog

Frage 4

4. Die Definition des Arrays a lautet: int a[3][4]; Welches der folgenden Elemente kann a[1][1] nicht darstellen? 

A:*(&a[0][0] + 5)

B:*(*(a + 1) + 1)

C:*(&a[1] + 1)

D:*(a[1] + 1)

Antwort und Analyse  C

Bevor Sie diese Frage stellen, können Sie die beiden Blogs oben lesen

Lassen Sie mich Ihnen eine Aufgabe geben. Zeichnen Sie Ihr eigenes Bild und posten Sie es im Kommentarbereich, um zu sehen, wie Sie die Zeiger verstehen.

Frage 5

5. Das folgende Programm ruft die Fun-Funktion auf und gibt den Maximalwert im Array und den Index des entsprechenden Elements aus. Fügen Sie () zur horizontalen Linie hinzu.

#include <stdio.h>
void fun(int *s, int n, int *k) 
{
    int i;
    for (i = 0, *k = i; i < n; i++)
        if (s[i] > s[*k])
            ________;
}
 
int main() 
{
    int a[5] = {1, 6, 2, 8, 0}, k;
    fun(a, 5, &k);
    printf("%d %d\n", k, a[k]);
}

A:*k = i

B:k = i

C:*k = i - s

D:k = i - s

Antwort und Analyse  A

        Diese Frage testet die Fähigkeit jedes Einzelnen, Code zu lesen. Sie ermöglicht es k, den Array-Index des Maximalwerts abzurufen. k ist ein Ausgabeparameter, der nach dem Aufruf der Funktion verwendet wird. Daher muss innerhalb des Funktionskörpers der Index von *k aktualisiert werden, und schließlich wird er zum Index des Maximalwerts. Es muss eine Aktualisierung von *k sein und BD schließt ihn aus. Wenn in der if-Anweisung s[i] größer als s[*k] ist, aktualisieren Sie *k = i.

Supongo que te gusta

Origin blog.csdn.net/2302_76941579/article/details/135140252
Recomendado
Clasificación