Ejercicio final de simulación "Programación en lenguaje C" de la Universidad de Qingdao, otoño de 2018, Parte I (70 minutos)

Ejercicio final de simulación "Programación en lenguaje C" de la Universidad de Qingdao, otoño de 2018, Parte I (70 minutos)
Hora de inicio 1/1/2016, 12:00:00 AM
Hora de finalización 18/01/2038, 12:00:00 AM
70 minutos para responder la pregunta
Candidato Xiaowang
Puntaje total 60

Puntaje total para preguntas de verdadero o falso: 20
1-1

El ciclo en el siguiente programa será un ciclo infinito, y el programa siempre se ejecutará y no se puede finalizar (asumiendo que el sistema informático que ejecuta el programa nunca se bloqueará o perderá energía debido a circunstancias inesperadas). (2 minutos)

       

#include "stdio.h"
int main(){
    for(long num=1; num>0; num++)
        printf("%ld\n", num);
    return 0;
}
1-2

Suponga que cierto lenguaje de programa C define dos variables a, by las dos variables no son 0, el a / bvalor de expresión de 0 no lo hará. (2 minutos)

       

1-3

Suponiendo que la definición es la siguiente: int array[5][10];la declaración define una matriz de matriz. En el que la matriz es un puntero a un tipo de puntero (dos punteros), a saber: int **. (2 minutos)

       

1-4

El siguiente código, el resultado de la impresión es 133. (2 minutos)

       

#include <stdio.h>
int main(){
    int a,b;
    a = 012;
    b = 123;
    printf("%d", a+b);
    return 0;
}
1-5

El siguiente fragmento de código no está estandarizado y el programa puede ejecutarse incorrectamente El motivo es: pacceso a variables locales a través de punteros tmpy tmpel espacio hohose ha liberado después de que se ejecuta la función . (2 minutos)

       

int* hoho(int n){
    int tmp;
    tmp += n;
    return &tmp;
}
/* 此处省略若干行代码 */
int main(){
    /* 此处省略若干行代码 */
    int *p;
    p = hoho(3);
    /* 此处省略若干行代码,且这些代码不会修改p的值 */
    *p = 6;
    return 0;
}

1-6

Con respecto a las operaciones de puntero en lenguaje C: los punteros solo tienen operaciones de suma y resta, no operaciones de multiplicación y división. Los punteros pueden sumar y restar constantes; los punteros del mismo tipo se pueden restar, pero no se pueden sumar. (2 minutos)

       

1-7

sizeof(int)Se puede calcular el número de bytes de memoria ocupados por enteros, pero no es sizeof( )una función, sino un operador (operador). (2 minutos)

       

1-8

Las variables globales definidas en lenguaje C se almacenan en el área de la pila y las variables locales se almacenan en el área del montón. (2 minutos)

       

1-9

C idioma, %es el módulo (resto) ojos del operador, sus dos operandos (operando) debe ser un número entero (por ejemplo int, short, charetc.), no puede flotar (por ejemplo double, float). (2 minutos)

       

1-10

El siguiente fragmento de código usa el %.2fformato para imprimir la intvariable sin conversión de tipo, y el resultado de la impresión no lo será 2019.00. (2 minutos)

       

#include <stdio.h>
int main(){
    int k=2019;
    printf("%.2f", k);
    return 0;
}
Puntaje total para preguntas de opción múltiple: 20
2-1

El siguiente código, la sintaxis es correcta: (2 puntos)

2-2

Los siguientes nombres no se pueden utilizar como identificadores de lenguaje C: (2 puntos)

2-3

Ejecute el siguiente procedimiento, el contenido de la impresión es: (2 puntos)

#include <stdio.h>
int x=5;
void incx( ){
    x++;
}
int main( ){
    int x=3;
    incx( );
    printf("%d\n", x);
    return 0;
}
2-4

Definición de variables int a;, expresión a = 3, 5;posterior a la ejecución, avalores y expresiones son: (2 minutos)

2-5

Considere que las siguientes variables están definidas, int a, k;luego la siguiente declaración no garantiza que el kvalor de la variable se convierta en cero: (2 puntos)

2-6

La definición de int score = 75;los 80 < score < 90valores de la expresión es: (2 minutos)

2-7

La asuma bde variables es un doubletipo, ay bla forma más adecuada de juzgar la igualdad con el valor es: (2 puntos)

2-8

Definido char a;, la siguiente declaración de asignación es inapropiada: (2 puntos)

2-9

Ejecute el siguiente segmento de programa, el contenido de la impresión es: (2 puntos)

#include <stdio.h>
void fun (int c, int *d) {
    c++;
    (*d)++;
}
int main ( ){
    int a=1, b=2;
    fun(a, &b);
    printf("%d, %d", a, b);
    return 0;
}
2-10

Para la definición char str[] = "abc\0def";(nota: donde 0es el número cero), encuentre la longitud len de la cadena str (es decir, llamando a la función de biblioteca estándar strlen :) len = strlen(str)y el tamaño de la matriz str (es decir size = sizeof(str)), len y size son respectivamente : (2 puntos)

Puntaje total para preguntas para completar en blanco: 10
4-1

Ejecute el siguiente procedimiento,

#include <stdio.h>
int main( ){
    int array[10]={2, 12, 24, 36, 48, 49, 2333, 6666, 23333, 99999};
    int key=2333, flag=0, low=0, m, h=9, times=0;
    while(low <= h){
        m = (low + h) / 2;
        times++;
        if(array[m] == key) {
            printf("Found-%d-%d", m, times);
            flag = 1;
            break;
        }
        else if(array[m] > key) h = m - 1;
        else low = m + 1;
    }
    if(flag == 0) printf("Not Found!");
    return 0;
}

El resultado de ejecutar el programa (es decir, lo que se imprime en la pantalla) es _____________ (5 puntos) .
(Nota: Debe completar las respuestas estrictamente de acuerdo con el formato impreso por el programa, incluyendo el caso de las letras, el número de espacios, el formato de guiones -y signos de exclamación !, etc. No agregue caracteres extraños como comillas , espacios, etc., o no recibirá una puntuación. Por ejemplo, el printf(“hello World”);contenido impreso es hello World, No. "hello World"Para evitar errores de formato, se recomienda copiar directamente parte del contenido relevante del código anterior).

4-2

Realice los siguientes procedimientos:

#include <stdio.h>
int main( ){
    int score, bonus;
    score = 60;
    bonus = 3;
    switch(bonus){
    case 1:
        score += 10;
    case 2:
        score += 20;
    case 3:
        score += 30;
    default:
        score -= 9;
    }
    printf("%d", score);
    return 0;
}

El resultado de ejecutar el programa (es decir, lo que se imprime en la pantalla) es _____________ (3 puntos) . (Nota: Debe completar las respuestas estrictamente de acuerdo con el formato impreso por el programa. No agregue caracteres extraños como comillas o espacios a voluntad, de lo contrario no recibirá una puntuación. Por ejemplo, el printf("hello World");contenido impreso es hello World, no "hello World".)

4-3

Realice los siguientes procedimientos:

#include <stdio.h>
int main( ){
    int num, r;
    num = 16;
    r = num % 2;
    if(r=0) printf("even");
    else printf("odd");
    return 0;
}

El resultado del programa (es decir, lo que se imprime en la pantalla) es (_____________ 2 puntos) . (Nota: Complete las respuestas estrictamente de acuerdo con el formato impreso por el programa, preste atención a las mayúsculas de las letras, y no agregue comillas, espacios y otros caracteres extraños a voluntad, de lo contrario no serán calificados. ejemplo, el printf("hello World");contenido impreso es hello World, no "hello World")

5-1

El siguiente programa imprime el dígito más alto del número entero ingresado (por ejemplo 321, si lo ingresa , se imprimirá 3; si -678se ingresa , se imprimirá 6). Por favor complete el código vacante.

#include <stdio.h>
int main(){
    int num;
    scanf("%d", &num);
    int digit=0;
    if( num < 0)  _____________(1分) ;
    while( _____________(1分) ){
        _____________(1分);
        num = _____________(1分) ;
    }
    printf("%d\n", digit);
    return 0;
}
5-2

El matemático Hilbert propuso una "conjetura de los primos gemelos" en el informe del Congreso Internacional de Matemáticos de 1900, es decir,
hay infinitos números primos p, de modo que p + 2 es un número primo. El par de números primos con una diferencia de 2 entre p y p + 2 se denomina "número primo gemelo".
Parece que esta conjetura es válida, siempre podemos encontrar muchos pares de primos gemelos, como 3 y 5, 5 y 7, 11 y 13 ... Esta conjetura aún no ha sido probada.
El siguiente programa para la entrada de números enteros n(n <100000), encuentra mayor que n el par más pequeño de primos gemelos py q(q = p + 2, y se cree que usted, que se puede encontrar dentro de un cierto rango de variables enteras Derecha py q).

int isPrime(int num){
    for(int i=2; i<=num/2; i++)
        if( _____________(2分) ) return 0;
    	return 1;
}
int main(){
    int n;
    for(int i=0; i<6; i++) {  // 总共寻找6次
        scanf("%d",&n);   //输入一个整数n
        if( _____________(2分)) printf("3 5\n");
        else{
            for(n++;  _____________(2分); n++);   //注意看清楚,此行代码中所要填的空之后带有分号
            printf("%d %d\n",n, n+2);
        }
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_42403632/article/details/104122252
Recomendado
Clasificación