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.