二级C语言笔试2

(总分100,考试时间90分钟)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 下列叙述中正确的是(   )。
    A) 算法的效率只与问题的规模有关,而与数据的存储结构无关
    B) 算法的时间复杂度是指执行算法所需要的计算工作量
    C) 数据的逻辑结构与存储结构是一一对应的
    D) 算法的时间复杂度与空间复杂度一定相关
2. 栈和队列的共同点是(   )。
    A) 都是先进后出    B) 都是先进先出
    C) 只允许在端点处插入和删除元素    D) 没有共同点
3. 下列关于队列的叙述中正确的是(   )。
    A) 在队列中只能插入数据    B) 在队列中只能删除数据
    C) 队列是先进先出的线性表    D) 队列是先进后出的线性表
4. 下面概念中,不属于面向对象方法的是(   )。
    A) 对象    B) 继承    C) 类    D) 过程调用
5. 软件是指(   )。
    A) 程序    B) 程序和文档
    C) 算法加数据结构    D) 程序、数据与相关文档的完整集合
6. 信息隐蔽的概念与下述哪一种概念直接相关(   )。
    A) 软件结构定义    B) 模块独立性    C) 模块类型划分  D) 模块耦合度
7. 下列选项中,不属于模块间耦合的是(   )。
    A) 数据耦合    B) 标记耦合    C) 异构耦合    D) 公共耦合
8. 对于现实世界中事物的特征,在实体—联系模型中使用(   )。
    A) 属性描述    B) 关键字描述    C) 二维表格描述  D) 实体描述
9. 下列数据模型中,具有坚实理论基础的是(   )。
    A) 层次模型    B) 网状模型    C) 关系模型    D) 以上三个都是
10. 关系表中的每一横行称为一个(   )。
    A) 元组    B) 字段    C) 属性    D) 码
11. 用C语言编写的代码程序(   )。
    A) 可立即执行    B) 是一个源程序
    C) 经过编译即可执行    D) 经过编译解释即可执行
12. 以下叙述中正确的是(   )。
    A) 构成C程序的基本单位是函数    B) 可以在一个函数中定义另一个函数
    C) main()函数必须放在其他函数之前    D) 函数定义的格式是K&R格式
13. 以下叙述中正确的是(   )。
    A) C程序中的注释只能出现在程序的开始位置和语句的后面
    B) C程序书写格式严格,要求一行内只能写一个语句
    C) C程序书写格式自由,一个语句可以写在多行上
    D) 用C语言编写的程序只能放在一个程序文件中
14. 有以下程序:
    #include <stdio.h>
    main() 
        int x=1, y=2, z=3; 
    if (x>y) 
    if (y<z) printf("%d", ++z); 
    else printf("%d", ++y); 
    printf("%d\n", x++); 
  
    程序的运行结果是(    )。
    A) 331    B) 41    C) 2    D) 1
15. 下列程序的运行结果是(   )。
    #include <stdio.h>
    main() 
        int x=-9, y=5, z=8; 
    if(x<y) 
    if(y<0) z=0; 
    else z+=1; 
    printf("%d\n", z); 
    A) 6    B) 7    C) 8    D) 9
16. 在嵌套使用if语句时,C语言规定else总是(   )。
    A) 和之前与其具有相同缩进位置的if配对
    B) 和之前与其最近的if配对
    C) 和之前与其最近的且不带else的if配对
    D) 和之前的第一个if配对
17. 有以下程序:
    #include <stdio.h>
    main() 
    char k; int i; 
    for(i=1; i<3; i++) 
    scanf("%c",&k); 
    switch(k) 
    case '0': printf("another\n"); 
    case '1': printf("number\n"); 
    
    
  
    程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是(   )。
    A) another
    number
    B) another
    number
    another
    C) another
    number
    number
    D) number
    number
18. 有以下程序:
     #include <stdio.h>
         main() 
        int i; 
     for(i=0; i<3; i++) 
    switch(i) 
        case 0: printf("%d", i); 
    case 2:printf("%d", i); 
    default: printf("%d", i); 
    
  
    程序运行后的输出结果是(   )。
    A) 022111    B) 021021    C) 000122    D) 012
19. 以下选项中不属于字符常量的是(   )。
    A) 'C'    B) "C"    C) '\xCC'    D) '\072'
20. 有以下程序:
    #include <stdio.h>
    main() 
    char c1, c2, c3, c4, c5, c6; 
    scanf("%c%c%e%c", &c 1, &c2, &c3, &c4); 
    c5=getchar(); c6=getchar(); 
    putchar(c1); putchar(c2); 
    printf("%c%c\n", c5, c6); 
  
    程序运行后,若从键盘输入(从第1列开始) :
    123<回车>
    45678<回车>
    则输出结果是(   )。
    A) 1267    B) 1256    C) 1278    D) 1245
21. 在C语言中,函数返回值的类型最终取决于(   )。
    A) 函数定义时在函数首部所说明的函数类型
    B) return语句中表达式值的类型
    C) 调用函数时主调函数所传递的实参类型
    D) 函数定义时形参的类型
22. 下面的函数调用语句中func函数的实参个数是(   )。
    func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8) ) ); 
    A) 3    B) 4    C) 5    D) 8
23. 有以下程序:
    #include <stdio.h>
    void f(intv, intw) 
        int t; 
    t=v; v=w; w=t; 
    
    main() 
    int x=1, y=3, z=2; 
    if(x>y) f(x, y); 
    else if(y>z) f(y, z); 
    else f(x, z); 
    printf("%d, %d, %d\n", x, y, z); 
    
    执行后输出结果是(   )。
    A) 1, 2, 3    B) 3, 1, 2    C) 1, 3, 2    D) 2, 3, 1
24. 设有以下定义和语句:
    int a[3][2]=1, 2, 3, 4, 5, 6, *p[3]; 
    p[0]=a[1]; 
    则*(p[0]+1) 所代表的数组元素是()。
    A) a[0][1]    B) a[1][0]    C) a[1][1]    D) a[1][2]
25. 若有定义:int a[2][3]; ,以下选项中对a数组元素正确引用的是(   )。
    A) a[2][1]    B) a[2][3]    C) a[0][3]    D) a[1>2][!1]
26. 下列程序的输出结果是(   )。
    #include<stdio. h>
    #define  N 3
    #define  M 3
    void fun(int a[M][N]) 
     printf("%d\n", *(a[1]+2) ); 
    main() 
        int a[M][N]; 
    int i, j, 
    for(i=0; i<M; i++) 
    for(j=0; j<N; j++) 
    a[i][j]=i+j-(i-j); 
    fun(a); 
    A) 3    B) 4    C) 5    D) 6
27. 若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是(   )。
    A) *(*w+3)         B) *(w+1) [4]      C) *(*(w+1) )      D) *(&w[0][0]+1)
28. 下列程序执行后的输出结果是(   )。
    #include <stdio. h>
    main() 
      int a[3][3],*p, i; 
    p=&a[0][0]; 
    for(i=1; i<9; i++) p[i]=i+1; 
    printf("%d\n", a[1][2]); 
    A) 3    B) 6    C) 9    D) 随机数
29. 有以下程序:
    #include <stdio.h>
    int fun(int(*s) [4], int n, int k) 
        int m, i; 
    m=s[0][k]; 
    for(i=1; i<n; i++) if(s[i][k]>m) m=s[i][k]; 
    return m; 
    
    main() 
    int a[4][4]=1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34; 
    printf("%d\n", fun(a, 4, 0) ); 
    
    程序的运行结果是(   )。
    A) 4    B) 34    C) 31    D) 32
30. 下面程序段的运行结果是(   )。
    char *p=" 123defgh"; 
    p+=3;
    printf("%d\n", strlen(strcpy(p, " ABCD") ) ); 
    A) 8    B) 12    C) 4    D) 7
31. 对下述程序的判断中,正确的是(   )。
    #include<stdio.h>
    void main() 
     char*p, s[128]; 
    p=s; 
    while(strcmp(s, "End") ) 
     printf("Input a string:"); gets(s); p=s; 
    while(*p) 
    putchar(*p++); 
    A) 此程序循环接收字符串并输出,直到接收字符串“End”为止
    B) 此程序循环接收字符串,接收到字符串“End”则输出,否则程序终止
    C) 此程序循环接收字符串并输出,直到接收字符串“End”为止,但因代码有错误,程序不能正常工作
    D) 此程序循环接收字符串并将其连接在一起,直到接收字符串“End”为止,输出连接在一起的字符串
32. 阅读下列程序,当运行函数时,输入asd af aa z67,则输出为(   )。
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    int fun (char *str) 
        inti, j=0; 
    for(i=0; str[i]!='\0'; i++) 
    if(str[i]!=' ') str[j++]=str[i]; 
    str[j]='\0'; 
    
    main() 
    char str[81]; 
    int n; 
    printf("Input a string:"); 
    gets(str); 
    puts(str); 
    fun(str); 
    printf("%s\n", str); 
  
    A) asdafaaz67    B) asd af aa z67    C) asd    D) z67
33. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则(   )。
    A) 称为函数的直接递归调用    B) 称为函数的间接递归调用
    C) 称为函数的循环调用    D) C语言中不允许这样的递归调用
34. 有以下程序:
    #include <stdio.h>
    int fun(int x[], int n) 
        static int sum=0, i; 
    for(i=0; i<n; i++) sum+=x[i]; 
    return sum; 
    
    main() 
      int a[]=1, 2, 3, 4, 5, b[]=6, 7, 8, 9, s=0; 
    s=fun(a, 5) +fun(b, 4); printf("%d\n", s); 
  
    程序执行后的输出结果是(   )。
    A) 45    B) 50    C) 60    D) 55
35. 以下程序的输出结果是(   )。
    #include<stdio.h>
    int a[3][3]=(1, 2, 3, 4, 5, 6, 7, 8, 9), *p; 
    main() 
        p=(int*) malloc(sizeof(int) ); 
    f(p, A); 
    printf(; % d\n", *p); 
    free(p); 
    f(int *s, int p[][3]) 
    *s=p[1][1]; 
    A) 1    B) 4    C) 7    D) 5
36. 有以下程序:
    struct STU
    char name[10]; 
    int num; 
    ; 
    void f1(struct STU c) 
        struct STU b="LiSiGuo", 2042; 
    c=b; 
    
    void f2(struct STU *c) 
        structSTU b="SunDan", 2044; 
    *c=b; 
    
    main() 
        struct STU a="YangSan", 2041, b="WangYin", 2043; 
    f1(a); f2(&b); printf("%d, %d\n", a.num, b.num); 
    
    程序执行后的输出结果是(   )。
    A) 2041 2044    B) 2041 2043    C) 2042 2044    D) 2042 2043
37. 设有如下说明:
    typedef struct ST
    long a; int b; char c[2]; NEW; 
    则下面叙述中正确的是(   ) 
    A) 以上的说明形式非法    B) ST是一个结构体类型
    C) NEW是一个结构体类型    D) NEW是一个结构体变量
38. 设有以下语句:
    char x=3, y=6, z; 
    z=x^y<<2; 
    则z的二进制值是(   )。
    A) 00010100    B) 00011011    C) 00011100    D) 00011000
39. 表达式0x13&0x17的值是(   )。
    A) 0x17    B) 0x13    C) 0xf8    D) 0xec
40. 以下叙述中错误的是(   )。
    A) gets函数用于从终端读入字符串
    B) getchar函数用于从磁盘文件读入字符
    C) fputs函数用于把字符串输出到文件
    D) fwrite函数用于以二进制形式输出数据到文件
二、程序填空题
给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h<
    #include <ctype.h<
    char *fun(char *s)
        inti, j, k, n; char *p, *t; 
    n=strlen(s)+1; 
    t=(c har*)malloc (n*sizeof(char)); 
    p=(char*)malloc(n*sizeof(char)); 
    j=0; k=0; 
    for(i=0; i<n; i++)
        if(isdigit(s[i]))
    /******************found*******************/
    p[  (1)  ]=s[i]; j++; 
    else
    t[k]=s[i]; k++; 
    
   /******************found*******************/
    for(i=0; i<  (2)  ; i++)p[j+i]=t[i]; 
    p[j+k]=0; 
   /******************found*******************/
    return  (3)  ; 
    
    main()
    
    char s[80]; 
    printf("Please input:"); 
    scanf("%s", s); 
    printf("\nThe result is: %s\n", fun(s)); 
    
1. 
2. 
3. 
三、程序改错题
1. 给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,c所指数组中的内容应该为“lg2f3e4dcba”。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include <stdio.h>
    #include <string.h>
    void fun (char*a, char*, char *c)
    
    inti, j; char ch; 
    i=0; j=strlen(b)-1; 
    /******************found*******************/
    while(i>j)
        ch=b[i]; b[i]=b[j]; b[j]=ch; 
    i++; j--; 
    
    while (*a|| *b)
    /******************found*******************/
    If(*a)
    *c=*a; c++; a++; 
    if(*b)
    *c=*b; c++; b++; 
    
    *c=0; 
    
    main()
    
    char s1[100], s2[100], t[200]; 
    printf("\nEnter s1 string:"); scanf("%s", s1); 
    printf("\nEnter s2 string:"); scanf("%s", s2); 
    fun(s1, s2, t); 
    printf("\nThe result is: %s\n", t); 
    
四、程序设计题
1. 函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
    注意:部分源程序给出如下。
    请勿改动mam函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
    #include <stdio.h>
    #include <string.h>
    void fun(char *s, char t[])
    
    
    main()
    
    char s[100], t[100]; 
    printf("\nPlease enter string S:"); 
    scanf("%s", s); 
    fun(s, t); 
    printf("\nThe result is:%s\n", t); 
    
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2V2无人机红蓝对抗仿真

两架红方和蓝方无人机分别从不同位置起飞,蓝方无人机跟踪及击毁红方无人机 2020a可正常运行 2V2无人机红蓝对抗仿真资源-CSDN文库

Android电动汽车充电服务vue+uniAPP微信小程序

本系统利用SSM和Uniapp技术进行开发电动汽车充电服务系统是未来的趋势。该系统使用的编程语言是Java,数据库采用的是MySQL数据库,基本完成了系统设定的目标,建立起了一个较为完整的系统。建立的电动汽车充电服务系统用户使用浏览器就可以对其…

Python爬虫urllib详解

前言 学习爬虫,最初的操作便是模拟浏览器向服务器发出请求,那么我们需要从哪个地方做起呢?请求需要我们自己来构造吗?需要关心请求这个数据结构的实现吗?需要了解 HTTP、TCP、IP 层的网络传输通信吗?需要知…

mongodb数据库集合(表)的创建和数据修改

文章目录 前言发现宝藏一、集合的创建二、集合的修改三、数据插入数据库四、清空数据库集合数据 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作…

华清远见嵌入式学习——春节作业——2.4日

作业要求: 编写程序实现二叉树的创建,三种遍历自己销毁 作业答案: 作业代码截图 作业代码效果图 作业代码 #include "myhead.h"// 定义二叉树节点结构体 struct Tree {int value; //编号(值)struct Tree* left; //左子树stru…

C语言代码审查:解析与应对策略

在C语言编程的世界中,代码审查是一项至关重要的任务,它旨在发现并修复潜在的错误、改进代码质量,并强化开发者的编码规范。本文将详尽阐述C语言代码审查过程中常见的错误类型及其深层原因,同时提供针对性的解决策略和最佳实践。 …

idea创建spring项目

一、环境 window10 IDEA 2022.2.3 maven-3.8.6 二、创建spring项目 1、新建Maven项目 File -> New -> Project 然后如下图选中Maven Archetype,在Archetype,选中maven-archetype-webapp,点击Create 2、配置maven 默认是使用IDEA内…

管理类联考-复试-英语-听力

文章目录 准备工作1.如何准备英语听力?2.听力学习注意事项一:培养良好的听音习惯,听读顺序要合理3.听力学习注意事项二:边听边记关键词 训练短期记忆能力4.听力学习注意事项三:熟记语篇衔接词把握信息走向5.听力学习注…

少儿编程 中国电子学会图形化编程2022年1月等级考试Scratch三级真题解析(选择题、判断题)

1.默认小猫角色和气球角色都是显示状态,小猫程序如下图所示,气球没有程序,点击绿旗,舞台上最终显示的效果是?( ) A:可能出现6个不同位置的小猫和6个小球 B:可能出现6个…

Multisim14.0仿真(四十九)共阴极/阳极7段数码管驱动设计

一、74LS47/48简介: 74LS47/48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中. 二、74LS47/48引脚说明及定义: 7段显示译码器74LS47/48是输出低/高电平有效的译码器,74LS47/48除了有实现7段显示译码器基本功能的输入(DCBA)和输出(Ya…

Unity类银河恶魔城学习记录1-9 PlayerWallSilde源代码 P36

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; us…

eCos flash模拟EEPROM实现NV系统

Flash需要擦除的原因&#xff1a;先擦除后写入的原因是为了工业上制作方便&#xff0c;即物理实现方便。 #include <cyg/infra/diag.h> #include <cyg/io/flash.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> // SPI flash…

gerrit 安装插件

1.插件下载 gerrit 3.9 插件&#xff0c;打开链接去右上角搜索插件名称&#xff0c;找到合适的版本&#xff0c;由于我这儿需要安装gerrit 3.9.1 的 autosubmitter 插件&#xff0c;但是好像没有 3.9 的&#xff0c;有下面这俩 上面那个可以理解为基于插件的主分支代码进行构…

java.lang.NoClassDefFoundError: org/springframework/aot/AotDetector 240204

springboot3.2.2改为2.7.18后 控制台异常显示: java.lang.NoClassDefFoundError: org/springframework/aot/AotDetector at org.mybatis.spring.mapper.ClassPathMapperScanner.(ClassPathMapperScanner.java:91) ~[mybatis-spring-3.0.3.jar:3.0.3] at org.mybatis.spring.m…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之MenuItemGroup组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItemGroup组件 该组件用来展示菜单MenuItem的分组。 子组件 无 接…

高通android设备themal读取cpu温度

以msm8953的themal分布信息&#xff0c;主要是下图的位置&#xff1a; 这其中 cpu相关的themal的位置有&#xff1a; 读取thermal 温度数据可以通过以下几个步骤&#xff1a; 获取sensor_info rootmsm8953_64:/ # cat /sys/module/msm_thermal/sensor_info tsens:tsens_tz_se…

2024.1.30 Spark SQL的高级用法

目录 1、如何快速生成多行的序列 2、如何快速生成表数据 3.开窗函数 排序函数 平分函数 聚合函数 向上向下窗口函数 1、如何快速生成多行的序列 -- 需求: 请生成一列数据, 内容为 1 , 2 , 3 , 4 ,5 仅使用select语句 select explode(split(1,2,3,4,5,,)) as num;-- 需…

我用全志V851s做了一个魔法棒,使用Keras训练手势识别模型控制一切电子设备

这是一个可以直接启动原神的魔法棒~ 原神&#xff0c;启动&#xff01; 这是一个万全的解决方案&#xff01;只需要花80元再动动手&#xff0c;就可以将哈利波特的魔杖与人工智能结合到一起&#xff01;它就是用全志V851s做的赛博魔杖&#xff01; 这个魔法手杖有啥亮点 手势…

Linux mount命令教程:如何挂载文件系统(附案例详解和注意事项)

Linux mount命令介绍 mount命令在Linux中用于挂载Linux系统外的其它文件系统&#xff0c;每个设备在使用前都必须先挂载。此命令通常用于挂载文件系统。 Linux mount命令适用的Linux版本 mount命令在所有的Linux发行版中都是可用的&#xff0c;包括Debian、Ubuntu、Alpine、…

oracle 热备份和冷备份的优缺点

Oracle的热备份和冷备份是两种不同的备份策略&#xff0c;各有其优缺点。 热备份的优点包括&#xff1a; 可快速备份数据&#xff0c;备份时间短。备份时数据库仍可使用。可达到秒级恢复&#xff0c;即恢复到某一时间点上。可对几乎所有数据库实体进行恢复。恢复快速&#xf…