【C语言编程之旅 4】刷题篇-关键字

发布时间:2024年01月19日

第一题

在这里插入图片描述

解析

C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字

A:错误,关键字是语言自身定义的

B:正确

C:错误,关键字具有特殊含义,不能作为变量名

D:错误,typedef是用来给类型取别名的关键字

因此,选择B

第二题

在这里插入图片描述

解析

答案解析:本题主要考察static的特性

  1. static修饰变量

a. 函数中局部变量:

  声明周期延长:该变量不随函数结束而结束

  初始化:只在第一次调用该函数时进行初始化

  记忆性:后序调用时,该变量使用前一次函数调用完成之后保存的值

  存储位置:不会存储在栈上,放在数据段

b. 全局变量

 改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用

c. 修饰变量时,没有被初始化时会被自动初始化为0

  1. static修饰函数

改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用

A:正确,原因参考上述注解

B:正确,原因参考上述注解

C:错误,const修饰的变量不能改变

D:正确,原因参考上述注解

因此:选择C

第三题

在这里插入图片描述

解析

本题主要考察static修饰局部变量的特性,static修饰局部变量,该变量不会随函数的结束而消失,并且只在第一次调用时进行初始化,后序调用该函数时,使用的都是上次结束前该变量的值。

第一次循环:a=2 b=5 c=1 a+b+c=8

第二次循环:a=2 b=7 c=1 a+b+c=10

第二次循环:a=2 b=9 c=1 a+b+c=12

第二次循环:a=2 b=11 c=1 a+b+c=14

第二次循环:a=2 b=13 c=1 a+b+c=16

因此:选择B

第四题

在这里插入图片描述

解析

switch是用来进行多分支选择的语句,一般结构是
在这里插入图片描述
当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句,break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。

当变量表达式的内容没有与那个case匹配,就会执行default下的内容。

switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。

continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。

因此:选择A

第五题

在这里插入图片描述

解析

答案解析:本题主要考察指针的相关特性

A:错误,指针是一种复合数据类型,指针变量内容是一个地址,因此一个指针可以表示该系统的整个地址集合,

故按照32位编译代码,指针占4个字节,按照64位编译代码,指针占8个字节(注意:不是64位系统一定占8个字 节,关键是要按照64位方式编译)

B:正确

C:错误,参考A选项解释

D:错误,该条描述比较模糊 指针可以认为是一种数据类型,也可以认为是定义出来的指针变量

因此,选择B

第六题

在这里插入图片描述

解析

C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字

define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。

int、struct和continue都是C语言中包含的关键字。

因此:选择C

第七题

在这里插入图片描述

解析

#include <stdio.h>

int main() {
   int n=0;
   int sum=0;
   int num=0;
   scanf("%d\n",&n);
   if(n<12){
        sum=2;
   }else{
        num=n/12;
        sum=num*4+2;
   }
    printf("%d\n",sum);
}

第八题

在这里插入图片描述

解析

#include <stdio.h>

int main() {
   int arr[4]={0}; 
   for(int i=0;i<4;i++){
    scanf("%d ",&arr[i]);
   }
   int max=arr[0];
   for(int i=1;i<4;i++){
        if(arr[i]>max||arr[i]==max){
            max=arr[i];
        }
   }
   printf("%d\n",max);
    return 0;
}

第九题

在这里插入图片描述

解析

#include <stdio.h>


int main()
{
    int score = 0;
    scanf("%d", &score);
    if(score<0 || score>100)
        printf("F\n");
    else if(score >= 90 && score<=100)
        printf("A\n");
    else if(score >= 80 && score <= 89)
        printf("B\n");
    else if(score >= 70 && score <=79)
        printf("C\n");
    else if(score >= 60 && score <= 69)
        printf("D\n");
    else
        printf("E\n");
    return 0;
}

第十题

在这里插入图片描述

解析

#include <stdio.h>

int main() {
    printf("%c%c%c%c%c%c%c%c%c%c%c%c",73,32,99,97,110,32,100,111,32,105,116,33);
    return 0;
}

第十一题

在这里插入图片描述

解析

#include <stdio.h>


int main()
{
    int i = 0;
    int positive = 0;
    int negative = 0;
    int tmp = 0;
    for(i=0; i<10; i++)
    {
        scanf("%d", &tmp);
        if(tmp>=0)
            positive++;
        else
            negative++;
    }
    printf("positive:%d\n", positive);
    printf("negative:%d\n", negative);
    return 0;
}

第十二题

在这里插入图片描述

解析

#include <stdio.h>


int main()
{
    int n = 0;
    int max = 0;
    int min = 100;
    scanf("%d", &n);
    int i = 0;
    int tmp = 0;//存放内次读取的成绩
    for(i=0; i<n; i++)
    {
        scanf("%d", &tmp);
        if(tmp > max)
            max = tmp;
        if(tmp < min)
            min = tmp;
    }
    printf("%d\n", max-min);
    
    return 0;
}
文章来源:https://blog.csdn.net/qq_66238381/article/details/135674706
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。