• C练习题_14


    一、单项选择题(本大题共 20小题,每小题 2分,共 40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

    1. 以下叙述不正确的是()

    A.一个C源程序可由一个或多个函数组成
    B.一个C源程序必须包含一个main函数
    C.C程序的基本组成单位是函数
    D.在C程序中,注释说明只能位于一条语句的后面

    2.以下C语言用户标示符中,不合法的是()

    A._1
    B. Aa
    Bc
    C. a_b
    D. a-b

    3.编写好的 C 程序一般需要经过编译、连接、调试等步骤后才能运行成功。连接后产生的文件的后缀名一般是()

    A…c
    B…obj
    C…exe
    D…h

    4,下面4个选项均是合法整型常量的选项是()

    A. 160 xf 011
    B. Oxcdf 018 Oxel
    C. 123 2.le+8 3.14
    D. -0x88g 2e5 32467

    1. 达式5>3>1 值是( )。

    A.0
    B.1
    C.3
    D.表达式语法错误

    6.设a为整型变量,不能正确表达数学关系:10

    A.10 B.a1illa12 ll a13 Il a14
    C. a>10 && a<15
    D. !(a<=10) &&!(a>=15)

    7.定义int score = 75;则表达式 80 < score < 90 的值是()

    A.1
    B.0
    C. true
    D. false

    8.下列运算符优先级最高的是()。

    A.=
    B.%
    C.&&
    D.<=

    9.假设有变量定义如下int a,k;则以下哪条语句不能确保将变量k的值变为

    A.k=a±a+1;
    B.kk:
    C. k = k >> 16;
    D. k=k &-k;

    10.字符串"\128"ABC"\"的长度是()

    A.1
    B.8
    C.5
    D.3

    1. 下列程序段的输出结果是()
      int main()
      {
      int x = 1, a = 0, b = 0;
      switch(x){
      case 0: b++;case 1: a++;
      case 2: a++; b++;
      }
      printf(“a=%d,b=%dln”,a,b);
      return 0;
      }
      A.a=2,b=1
      B.a=1,b=1
      C. a=1,b=0
      D. a=2,b=2

    12.设i,x都是int类型,则下面的for循环体可执行多少次(for (i=0, x=0;i<= 9 && x!= 876; i++))。printf(“*”);

    A.9次
    B.10次
    C. 876次
    D.无限循环

    13.若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。

    A. a[0][4]
    B. a[1][3]
    C. a[0][3]
    D.a[1][4]

    14,若有定义:int a[2][3];以下选项中对数组元素正确引用的是()

    A. a[2][0]
    B.a[2][3]
    C. a [0][3]
    D. a[1>2][1]

    15,下面程序段运行时输出结果是()char s[18]= “a book! “;printf(”%.4s”,s);

    A. a book!
    B. a book!
    C. a bo
    D.格式描述不正确,没有确定输出

    1. 以下叙述中不正确的是()。

    A.在不同的函数中可以使用相同名字的变量
    B.函数中的形式参数是局部变量
    C.在一个函数内定义的变量只在本函数范围内有效
    D.在一个函数内的复合语句中定义的变量在本函数范围内有效

    17,对函数形参的说明有错误的是()。

    A. int a(int x],int n)
    B. int a(int *x,int n)
    C. int a(int x]], n)
    D. int a(int x,int n)

    1. 下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()

    A. int a, *x= a;
    B. int a, *x= &a;
    C. int *x= &a, a;
    D. int a, x= a;

    19.若有以下宏定义:
    #define N 2
    #define Y(n) ((N+1)n)则执行语句“z=2(N+Y(5));”后的结果是()

    A.语句有错误
    B.z=34
    C. z=70
    D.z 无定值

    20.若有以下语句,则下面表达式的值为1002的是()
    struct student
    { int age;
    int num;};
    struct student stu(3)=((1001,20),(1002,19),(1003,2));
    struct student *p;
    p=stu;

    A. (p++)->num
    B. (p++)->age
    C. (p).num
    D.(
    ++p).age

    二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。
    1_______

    #include 
    
    #define MOD(a, b) a % b
    
    void main() {
        int x = 4, y = 15, z;
        z = MOD(y, x + 2);
        printf("%d\n", z++);
    }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2__________

    #include 
    int func(int a, int b) {return (a +b);) 
    void main()int x=2, y =5, z=8,r, r = func (func (x, y), z); printf ("%d\n", r);
    
    • 1
    • 2
    • 3

    3_________

    #include 
    
    union memb {
        float v;
        int n;
        char c;
    };
    
    int main() {
        union memb tag, Sval;
        tag.n = 37;
        Sval = tag;
    
        printf("The value of Sval is: %d\n", Sval.n);
    
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    4__________

    #include 
    
    void fun(int *s, int nl, int n2) {
        int i, j, t;
        i = nl;
        j = n2;
    
        while (i < j) {
            t = *(s + i);
            *(s + i) = *(s + j);
            *(s + j) = t;
            i++;
            j--;
        }
    }
    
    int main() {
        int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
        int i, *p = a;
    
        fun(p, 0, 2);
        fun(p, 5, 9);
        fun(p, 0, 9);
    
        for (i = 0; i < 10; i++) {
            printf("%d ", *(a + i));
        }
    
        printf("\n");
    
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    5________

    #include 
    int main()
    {
    
    char str[80];
    scanf("%s",str);
    printf("%s",str);
     return 0;
     }
     //abcd12345 xyz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三、程序填空题(共40分。请将答案填写在答题纸的相应位置上。)

    1,程序功能:输出所给的一些字符串中最小的字符串。

    #include 
    #include 
    int main(){
    char "all={"bag","good"."This","are","Zoo","park"); char*min;
    int i;
    min=______________;
    for(i=1;i<6;i++)
    if(stremp(__________)<0) min=a[i};
    printf("%\n",_______); 
    return 0;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2,输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数setgrade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。

    #include
    #define MAXN 100
    struct student{
    char name[20];
    int score;
    char grade;
    };
    void set_grade( struct student *p, int n);
     int main(){
     int i, n;
     struct student stu[MAXN];
     scanf("%d", &n);
     for(i = 0; i<n; i++){
     scanf("%s%d",stu[i].name,&stuli].score);
     }
     set_grade(stu, n);
     for(i= 0; i<n; i++)
     printf("%s %cln", stuli].name, stu[i].grade); return 0;
     }
     void set_grade(struct student *p, int n)
     {
     struct student *q = p + n - 1;
     while(_______){
     	if(________)___________;
     	else__________;
     	p++;
     	}
     }
     	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
    1.编写程序读入N个学生的百分制成绩,统计等级制成绩的分布(即各等级的人数)。百分制成绩到等级制成绩的转换规则:大于等于 90分为 A;小于90且大于等于80为B;小于80且大于等于70为C;小于 70 且大于等于60为D;小于60为E。

    1. 编写程序,输出空心菱形。
      在这里插入图片描述
      3.红星商场新进商品若干,请帮助他们进行统计。下面给出了main)函数,请将其他函数补充完整,即写出 void readprice(float price[8]); float averPrice(float price[8]): float highPrice(float price8)float lowePrice(float price[8]; void prtprice(float price[8].foat ave);函数的定义。
      #include
      void readprice(float price[8); /输入商品的价格/
      float averPrice(float price[8); /计算商品的平均价格/float highPrice(float price[8]😕找出最高价的商品/foat lowePrice(float price[8)😕找出最低价的商品/void prtprice(float price[8].foat ave)😕输出高于平均价格的商品/
      int main){
      float price[8]:
      float average,highestP,lowestP;readprice(price): /输入商品的价格/
      average=averPrice(price); /计算商品的平均价格/highestP=highPrice(price); /找出最高价的商品/lowestP=lowePrice(price); /找出最低价的商品/printf(“The highest Price=%6.20n”,highestP); printf(“the lowest Price=%6.20n”,lowestP); printf(“The average Price=%6.2fn”,average);
      prtprice(price,average); /输出高于平均价格的商品/
      return 0;
  • 相关阅读:
    办公神器!2024年值得拥有的10款在线画板软件!
    Wald检验与p值
    docker搭建fastdfs环境
    【牛客-剑指offer-数据结构篇】JZ32 从上往下打印二叉树 Java实现
    10月26日,起立&LG新品首发第五代OLED透明显示屏
    Spring 观察者模式 EventListener
    DF-GAN实验复现——复现DFGAN详细步骤 及使用MobaXtem实现远程端口到本机端口的转发查看Tensorboard
    基于SSM的二手车交易网站的设计与实现
    【触想智能】工业触摸显示器在户外使用需要注意哪些问题?
    ubuntu20 安装 cmake 3.27
  • 原文地址:https://blog.csdn.net/weixin_47431459/article/details/134500182