二级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);
相关文章:
二级C语言笔试2
(总分100,考试时间90分钟) 一、选择题 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 1. 下列叙述中正确的是( )。 A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 …...

如何计算两个指定日期相差几年几月几日
一、题目要求 假定给出两个日期,让你计算两个日期之间相差多少年,多少月,多少天,应该如何操作呢? 本文提供网页、ChatGPT法、VBA法和Python法等四种不同的解法。 二、解决办法 1. 网页计算法 这种方法是利用网站给…...

再识C语言 DAY13 【递归函数(超详细)】
文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言,感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 (函数自…...

【Linux】权限管理
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一 、Linux中的用户1.1 Linux用户分类1.2 用户转换1.3 指令提权 二、Linux权限管…...

地理坐标系、空间坐标系、epsg查询网站
坐标系可用范围和详细信息的查询网站 简介 epsg.ruiduobao.com是一个可以查询gdal中所有坐标系信息的网站,可查询到坐标系的基准面、椭球体、中央子午线等相关信息,并对每个坐标系的可用范围在地图中进行了显示。详细信息可以看操作视频: e…...

docker 容器指定主机网段
docker 容器指定主机网段。 使用macvlan网络模式可以让Docker容器直接连接到物理网络,而不需要通过NAT或端口映射的方式来访问它们。可以提高网络性能和稳定性,同时也可以使容器更易于管理。 1、查询网卡的名称:使用ifconfig命令查看网卡名…...

零基础Vue框架上手;git,node,yarn安装
项目搭建环境: git安装:Git - 安装 Git (git-scm.com)(官网) 下载路径:Git - Downloading Package (git-scm.com);根据自己电脑下载相对应的安装包 点next 点next,点到最后安装就行。…...

十分钟学会用springboot制作微信小程序富文本编辑器
1.1 富文本模型设计 在构建富文本编辑器系统时,首先需要设计一个合适的富文本模型。 CREATE TABLE IF NOT EXISTS rich_texts (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255),content TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );这个表包括…...
【BBF系列协议】TR181-1 TR069的设备数据模型
TR-069的TR-181设备数据模型 执行摘要 TR-181定义了TR-069 [2]设备数据模型的版本1(设备:1)。设备:1数据模型仅适用于启用TR-069的终端设备,不适用于互联网网关设备或其他网络基础设施设备。启用TR-069的基础设施设备改为使用TR-098 [4]互联网网关设备数据模型或未来设备…...
Elasticsearch(简称ES)性能优化 实践
Elasticsearch(简称ES)性能优化主要包括以下几个方面: 索引优化: 选择合适的分片数:根据业务需求和数据量合理设置分片数,避免过多或过少分片造成性能问题。分片数过多会导致创建分片速度变慢、集群易崩溃…...
《跨越阶层,小白选专业的逻辑:揭秘家庭背景与个人发展的秘密联系》
文章目录 底层最好的专业 小康最好的专业 中产最好的专业 巨富最好的专业 总结 一个人选专业选的好不好,不在于专业本身,而在于你的出身,你的起点,你的家庭;你需要读懂你的原生家庭的文化才能改变自己。换句话说就是&a…...
Python调用pyspark报错整理
前言 Pycharm配置了SSH服务器和Anaconda的python解释器,如果没有配置可参考 大数据单机学习环境搭建(8)Linux单节点Anaconda安装和Pycharm连接 Pycharm执行的脚本 执行如下 pyspark_model.py 的python脚本,构建SparkSession来执行sparksql "&qu…...

快递员的烦恼 - 华为OD统一考试
OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 快递公司每日早晨,给每位快递员推送需要淡到客户手中的快递以及路线信息,快递员自己又查找了一些客户与客户之间的路线距离信息࿰…...

css1基础选择器
大纲 一.标签选择器 比较简单,前面直接写目标标签 二.类选择器 应用 例子 三.多类名选择器(调用时中间用空格隔开) 四.id选择器 应用 五.通配符选择器 应用 六.总结...
【C语言】内联函数总结
内联函数定义 inline关键字是C99标准的型关键字,其作用是将函数展开,把函数的代码复制到每一个调用处。这样调用函数的过程就可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。可以节省时间,也会提高程序的执行速度。 …...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItemGroup组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、MenuItemGroup组件 该组件用来展示菜单MenuItem的分组。 子组件 无 接…...
【Linux多线程编程】互斥锁及其使用
1、互斥锁 用于解决竞争问题的一种机制。 什么是竞争,竞争就是多个实体同时获取一个资源,例如多个线程写一个全局变量。 2、Linux如何使用互斥锁 以pthread为例,锁的创建和使用如下: /* 创建锁 */ pthread_mutex_t lock PTHR…...

RabbitMQ_00000
MQ的相关概念 RabbitMQ官网地址:https://www.rabbitmq.com RabbitMQ API地址:https://rabbitmq.github.io/rabbitmq-java-client/api/current/ 什么是MQ? MQ(message queue)本质是个队列,FIFO先入先出,只不过队列中…...
【linux】docker下homeassistant和nodered安装及配置
1、homeassistant安装 从 Docker Hub 上拉取 Home Assistant 的镜像文件 docker pull homeassistant/home-assistant 是运行 Home Assistant 容器 docker run -id --name"homeassistant" --privileged --restart always -p 8123:8123 -e TZAisa/Shanghai --nethost…...

Qt扩展-muParser数学公式解析
muParser数学公式解析 一、概述1. 针对速度进行了优化2. 支持的运算符3. 支持的函数4. 用户定义的常量5. 用户定义的变量6. 自定义值识别回调7. 其他功能 二、内置函数三、内置二元运算符四、三元运算符五、内置常量六、源码引入1. 源码文件2. 编译器开关1. MUP_BASETYPE2.MUP_…...

算法-集合的使用
1、set常用操作 set<int> q; //以int型为例 默认按键值升序 set<int,greater<int>> p; //降序排列 int x; q.insert(x); //将x插入q中 q.erase(x); //删除q中的x元素,返回0或1,0表示set中不存在x q.clear(); //清空q q.empty(); //判断q是否为空&a…...

【Netty系列】Reactor 模式 2
目录 流程图说明 关键流程 以下是 Reactor 模式流程图,结合 Netty 的主从多线程模型,帮助你直观理解事件驱动和线程分工: 流程图说明 Clients(客户端) 多个客户端(Client 1~N)向服务端发起连…...

CTFHub-RCE 命令注入-过滤运算符
观察源代码 代码里面可以发现过滤了运算符,我们可以尝试分号; 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1;ls 打开flag文件 cat这个php文件 127.0.0.1;cat flag_257413168915334.php 可是发现 文本内容显示…...
unix/linux source 命令,其历史争议、兼容性、生态、未来展望
现在把目光投向unix/linux source命令的历史争议、兼容性、生态和未来展望,这能让我们更全面地理解一个技术点在更广阔的图景中所处的位置。 一、历史争议与设计权衡 虽然 source (或 .) 命令功能强大且不可或缺,但在其发展和使用过程中,也存在一些微妙的争议或设计上的权衡…...

使用 C++/OpenCV 制作跳动的爱心动画
使用 C/OpenCV 制作跳动的爱心动画 本文将引导你如何使用 C 和 OpenCV 库创建一个简单但有趣的跳动爱心动画。我们将通过绘制参数方程定义的爱心形状,并利用正弦函数来模拟心跳的缩放效果。 目录 简介先决条件核心概念 参数方程绘制爱心动画循环模拟心跳效果 代码…...

vue+threeJs 绘制3D圆形
嗨,我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目,主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义:是 Three.js 中用于从 2D 路径形状(…...

CI/CD 持续集成、持续交付、持续部署
CI/CD 是 持续集成(Continuous Integration) 和 持续交付/持续部署(Continuous Delivery/Deployment) 的缩写,代表现代软件开发中通过自动化流程快速、可靠地构建、测试和发布代码的实践。其核心目标是 减少人工干预、…...

阿里云服务器-解决宝塔登录不成功
出现问题: This site can’t be reached XX.XX.XXX.XXX took too long to respond. Try: Checking the connection Checking the proxy and the firewall Running Windows Network Diagnostics ERR_CONNECTION_TIMED_OUT 可能是端口未开放 原因:服务器…...

不动产登记区块链系统(Vue3 + Go + Gin + Hyperledger Fabric)
好久没有介绍过新项目的制作了,之前做的一直都是Fisco Bcos的项目,没有介绍过Hyperledger Fabric的项目,这次来给大家分享下。 系统概述 不动产登记与交易平台是一个基于Hyperledger Fabric的综合性管理系统,旨在实现不动产登记…...

【Qt】构建目录设置
问题 ProjectRoot/├── src/ # 源代码│ ├── project1│ └── project2├── build/ # 构建目录│ ├── build-PCIeDemoApp-Desktop_Qt_5_9_7_MSVC2015_64bit-Debug/│ └── build-PCIeDemoApp-Desktop_Qt_5_9_7_MSVC2015_64bit-Rele…...