La position actuelle:Accueil du site>Langue C - quelques exercices classiques de langue C
Langue C - quelques exercices classiques de langue C
2022-07-23 10:12:48【Les cheveux n'ont pas beaucoup de code】
Exercices1 Le plus petit nombre d'étapes de la série Fibonacci
FibonacciC'est comme ça que les tableaux sont définis:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
Donc,,FibonacciLa séquence est comme:0, 1, 1, 2, 3, 5, 8, 13, ...,InFibonacciLes nombres dans les colonnes sont appelésFibonacciNombre.Pour toiN,Tu veux en faire unFibonacciNombre,À chaque étape, vous pouvez mettre les chiffres actuelsXDevientX-1OuX+1,Je vais te donner un numéroNTrouver le nombre minimum d'étapes nécessaires peut devenirFibonacciNombre.Description des entrées:
Saisissez un entier positifN(1 ≤ N ≤ 1,000,000)
Description des produits:
La sortie d'un nombre minimum d'étapes devientFibonacciNombre"
(Trouver un nombre et le plus petit nombre d'étapes d'un élément dans la séquence Fibonacci)
Cliquez ici,Saut à la question
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=0;
int b=1;
int c=a+b;
int n;
scanf("%d",&n);
while(1)
{
if(a==n||b==n)
{
printf("%d",0);
break;
}
else
{
if(n>a&&n<b)
{
if(abs(n-a)>abs(b-n))
printf("%d",abs(n-b));
else
printf("%d",abs(n-a));
break;
}
}
a=b;
b=c;
c=a+b;
}
return 0;
}absFonctions
Fichier d 'en - tête#include<stdlib.h>
int abs(int x)x -- Valeur complète
Valeur de retour:Cette fonction renvoie x Valeur absolue de
Exercices2 Remplacement des espaces
Veuillez implémenter une fonction,Remplacer chaque espace dans une chaîne par“%20”.Par exemple,Quand la chaîne estWe Are Happy.La chaîne remplacée estWe%20Are%20Happy.
class Solution {
public:
void replaceSpace(char *str,int length) {
int i=0;
int count=0;
while(str[i]!='\0')
{
if(str[i]==' ')
{
count++;
}
i++;
}
i=length-1;
int j=length-1+count*2;
for(i=length-1,j=length-1+count*2;i>0,j>0;i--,j--)
{
if(str[i]!=' ')
str[j]=str[i];
else
{
str[j--]='0';
str[j--]='2';
str[j]='%';
}
}
}
};Comment résoudre le problème: Calculez d'abord le nombre d'espaces , Chaque espace est ensuite modifié en 3Caractères, Cela signifie que deux caractères sont ajoutés à chaque espace , Nombre d'espaces *2, Ensuite, ajoutez cette longueur à l'arrière du tableau ( Allongez le tableau ), Et puis commencer à traverser d'avant en arrière , Convertir sur demande après avoir rencontré un espace
Choix des questions
Première question unsigned char Examen de la plage de valeurs
#include<stdio.h> int main(){ unsigned char i = 7; int j = 0; for(;i > 0;i -= 3){ ++j; }p rintf("%d\n", j); return 0; }Quelle est la sortie du programme ()
A 2
B Cycle mort
C 173
D 172Explication du problème:unsigned charPlage de valeurs0-255
iPlage de variation:7,4,1,254-2(Au milieujPlus maintenant.84Une fois,2Quandj Encore une fois, c'est 85Une fois),255-0(Au milieujPlus maintenant.85Une fois)
Deuxième question Opérations de bits
L'une des options suivantes doit permettre deflagLe deuxièmebitPosition0() A.flag&=~2 B.flag|=2 C.flag^=2 D.flag>>=2A 2Binaire de0010
Après avoir pris le non 1100
Le deuxièmebitBitwise0, Avec n'importe quel nombre et le résultat est 0
L'une des options suivantes doit permettre deflagLe deuxièmebitPosition0()
int fun(int a){ a^=(1<<5)-1; return a; }F(21)Les résultats de
A.10B.5C.3D.8A,1Binaire de000001
Cinq à gauche 100000
Moins1 011111
Et21XOR 010101
001010
Les résultats sont les suivants:10
Question n° 3 Conversion de cas
#include <stdio.h> int main() { char a = 0, ch; while ((ch = getchar()) != '\n') { if (a % 2 != 0 && (ch >= 'a' && ch <= 'z')) ch = ch - 'a' + 'A'; a++; putchar(ch); }p rintf("\n"); return 0; }Le programme suivant s'exécute,Si vous entrez1abcedf2df<Retour à la voiture>Le résultat est()
A.1abcedf2dfB.1ABCEDF2DFC.1AbCeDf2dFD.1abceDF2DFC, Le titre convertit les caractères minuscules en majuscules , Et cette lettre ASCII La valeur du Code ne peut pas être 2Nombre entier de fois de
Question n° 4 Alignement de la mémoire structurelle
struct One{ double d; char c; int i; } struct Two{ char c; double d; int i; }Les deux structures suivantes
In#pragma pack(4)Et#pragma pack(8)Dans le cas de,Les dimensions des structures sont respectivement()
A.16 24,16 24B.16 20,16 20C.16 16,16 24D.16 16,24 24A
Question 5 Cycle
int x = 1; do{ printf("%2d\n",x++); }while(x--);
A.1B.Aucune sortieC.2D.Dans le cycle de la mortD
Question 6 Opération
#include<stdio.h> #include<stdlib.h> void main() { int a = -3; unsigned int b = 2; long c = a + b; printf("%ld\n", c); }
A.-1B.4294967295C.0x7FFFFFFFD.0xFFFFFFFFA
Question 7 Fonctionnement du pointeur
Avec définitionchar *p[]={"Shanghai","Beijing","Honkong"};Le résultat estjL'expression du caractère est
A.*p[1] +3B.*(p[1] +3)C.*(p[3] +1)D.p[3] [1]B
À propos de"Pointeur"La description incorrecte de()
A.Lorsqu'il est utiliséfreeAprès avoir libéré le contenu d'un pointeur,La valeur de la variable pointeur est définie àNULLB.32La longueur de n'importe quel type de pointeur sous le système bit est4OctetsC.Le type de données du pointeur indique le type de données que le pointeur pointe réellement vers le contenuD.Un pointeur sauvage est un pointeur vers une adresse mémoire non assignée ou déjà libéréeA
Question 8 Récursion de la fonction
int f(int x){ return ((x>2) ? x*f(x-1) : 3); } int i; i=f(f(2));
Après avoir exécuté la fonction ci - dessus . iLa valeur de()
A.30B.Récursion infinieC.9D.2160C
Question 9 Tableau bidimensionnel
int p[][4] = { {1}, {3, 2}, {4, 5, 6}, {0}};Moyenne,p[1][2]La valeur de()
A.1B.0C.6D.2B
Question 10 Macro - définition
À propos deC/C++Macro - définition pour,C'est faux.()
A. La définition de macro ne vérifie pas l'exactitude des paramètres ,Il y aura des risques pour la sécuritéB. Les constantes définies par macro sont plus faciles à comprendre , Si vous pouvez utiliser des macros pour définir des constantes ,Évitez l'utilisationconstConstanteC. Trop de définitions imbriquées de macros peuvent affecter la lisibilité du programme ,Et c'est facile de faire des erreurs.D. Par rapport à l'appel de fonction , La macro - définition peut améliorer l'efficacité du programmeAvec les définitions de macro suivantes:
#define N 3+1
#define Y(n) ((N+1)*n)
Exécutez l'instruction z=2*(N+Y(5+1))Après,z La valeur de()
A.60B.190C.248D. Aucune des réponses ci - dessus n'est correcteA
Question 11 Compilation du programme
Composé de plusieurs fichiers sourcesCProcédure,édité、Prétraitement、Compiler、Les étapes telles que le lien produisent l'exécutable Final.Laquelle des étapes suivantes peut découvrir que la fonction appelée n'est pas définie()
A.PrétraitementB.CompilerC.LiensD.Mise en œuvreC
Question n° 12 Conversion implicite
char a; int b; float c; double d;Alors l'expression a*b+d-c Le type de valeur est()
A.floatB.intC.charD.doubleD
Mentions de copyright
Auteur de cet article [Les cheveux n'ont pas beaucoup de code],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/204/202207230323382507.html
Recommandé par sidebar
- Comment le détournement de DNS peut - il être parfaitement réparé? Comment résoudre le problème du détournement de DNS
- Flask Cross - Domain
- Mise en œuvre de la pile de chaînes (langage c)
- Lire attentivement le document DETR et analyser la structure du modèle
- [FPGA]: IP Core - - DDR3
- L'applet Wechat ne peut pas lire la propriété 'setdata' de NULL Error
- Buctf passing Diary - - [Netting Cup 2020 Qinglong Group] areuserialz
- Notes d'apprentissage du système intégré
- Cartesi mars 2022 Review
- Double pointeur quotidien leetcode - 7
Devinez que vous aimez
Ji Yuan Community ai Weekly # 90: Ma Yi pense que l'intelligence ne peut pas dépendre d'une grande puissance de calcul; Hugging face blog pour découvrir les détails de la formation bloom; Annonce du prix ICML pour la meilleure thèse
Typescript
Outils open source Introduction aux outils SAP ui5
Guide du tutoriel Lark
Sécurité du réseau - pénétration à l'aide d'une vulnérabilité de sécurité d'accès physique Evil Maid
Sécurité du réseau - pénétration et renforcement à l'aide d'une vulnérabilité locale Ubuntu
Rédaction de la classe d'outils jwt
Boom 3D Serial Number Licensing superbes Sound Enhancement and player Tools
Day1 Running SUMM of 1D Array / find pivot index / queue with two Stacks
Introduction de l'API commune de programmation de socket et mise en œuvre de socket, select, Poll et epoll
Recommandé au hasard
- Approfondir la file d'attente des conteneurs
- Méthode de rappel d'initialisation pour Bean et méthode de rappel pour libérer les ressources
- Enregistrer les données crawler dans la base de données MySQL
- Distribution des données via SQL
- Comment renouveler automatiquement les serrures distribuées redis (solution classique)
- Hongke Dynamics | cippe2022 est sur le point de se tenir, l'inscription est en cours
- Classe interne anonyme de kotlin (objet: XXXX)
- Interview raid: 6 grandes différences entre truncate, delete et Drop
- Ubuntu installe docker et les commandes de base de docker installent MySQL
- Leetcode - - Stack and queue articles
- Déploiement du cluster etcd
- Dix problèmes dans la famille de protocoles TCP / IP
- 【 stm32 learning】 (21) stm32 Implementing Stepper Motor
- Dessiner le tableau [grafana] avec les variables des critères de requête
- Reconnaître les interfaces
- LabVIEW: créer un VI
- Cadre de développement de l'interface devextreme Gantt Control - Exporter PDF, trier les tâches
- Exportation et importation de bases de données et de tableaux de données en ligne de commande MySQL
- Easyeeagle, une plate - forme intelligente d'exploitation et de maintenance avec plusieurs plateformes de base de données massives
- Vous souvenez - vous de offsetwidth, clientwidth, width, scrollwidth, clientx, screenx, offsetx, pagex dans JS?
- 【 Azure Event center】 Azure Event hub New Function attempt - GEO Disaster Recovery
- Quels sont les facteurs qui influent sur la prestation continue?
- 【 Tutoriel de démarrage rapide 7】 utilisation et introduction de l'ordinateur hôte de la station au sol de l'UAV en formation de coquille folle · Open Source
- Détails de la configuration redis
- Docker installe MySQL, redis
- Le circuit de limitation d'amplitude et le circuit de serrage utilisent la conductivité unidirectionnelle de la diode
- [carte des connaissances] cql et py2neo notes d'apprentissage
- C apprentissage des langues
- Application combinée de la ligne de transfert de colonne et de l'ensemble de données dans le scénario d'affaires
- Configuration SSL MySQL 5.6 / 5.7
- [apprentissage profond] fonction de perte (erreur absolue moyenne, erreur carrée moyenne, perte de lissage, entropie croisée, entropie croisée pondérée, perte de dé, focalloss)
- Optimisation de précision * stratégie d'optimisation 1: Réseau + optimiseur Sam
- Détails du Protocole Axi
- JS - - date Object & Ternary expression
- Leetcode - 494. Objectifs et
- L'interface utilisateur 3D ou le modèle dans l'unit é fait toujours face à la caméra et tourne avec l'angle de vue de la caméra 丨 l'angle de vue suit 丨 l'angle de vue fixe
- Discussion préliminaire sur JVM
- Déploiement de l'environnement appium pour les tests mobiles [à poursuivre]
- À propos du montage de fond, de la gestion des processus
- Lire la lecture efficace - l'auto - investissement le plus rentable