二级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_…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
