快来检测一下你是否真的学会了C语言,保证你看完后收获满满!!

news2025/1/18 6:43:55

文章目录

  • 每日一言
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 结语

每日一言

人生而自由,却无往不在枷锁中。 --社会契约论


1

以下程序段的输出结果是?

char s[]="\\141\141abc\t";
printf("%d\n",strlen(s));

A. 9
B. 12
C. 13
D. 14

正确答案:
A

解析:
\算一个转义字符,代表
1算一个字符
4算一个字符
1算一个字符
\141算一个字符
a算一个字符
b算一个字符
c算一个字符
\t算一个字符

2

下列叙述中,错误的是?

A. 计算机不能直接执行C语言编写的源程序
B. C程序经编译后,生成的扩展名为.obg的文件是一个二进制文件
C. 扩展名为.obj的文件,经链接程序生成扩展名为.exe的文件是一个二进制文件
D. 扩展名为.obg和.exe的二进制文件都可以直接运行

正确答案:
D

解析:
用C语言解决实际问题时,从编程到运行一般要经过以下几个步骤:编写源程序形成.c结尾的文本文件;通过编译器编译,检查语法词法错误后,形成.obj结尾的目标文件;通过链接动态库,形成最终可执行的以.exe结尾的二进制文件。D选项中.obj是无法直接运行的,所以答案是D

3

以下程序的输出为?

#include<stdio.h>

int main()
{
	int i = 1;
	sizeof(i++);
	printf("%d\n",i);
	return 0;
}

A. 1
B. 4
C. 2
D. 8

正确答案:
A

解析:
这道题,首先要知道的点在于sizeof是一个操作符,不是函数,那么其实它括号里面的内容是不会去计算的,所以这里虽然用了后置++,但是i的值是不会发生变化的,还是保持最开始的1

4

以下叙述中正确的是?

A. 由printf输出的数据都隐含左对齐
B. scanf和printf是C语言提供的输入和输出语句
C. 赋值语句是一种执行语句,必须放在函数的可执行部分或全局区域
D. 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的

正确答案:
C

解析:
printf输出的数据都隐含右对齐,所以A错
scanf和printf是C语言提供的输入输出函数,所以B错误
printf输出数据所占的宽度由系统决定,所以D错误

5

有以下程序

	#include<stdio.h>
	int main()
	{
	int a=2,c=5;
	printf("a=%%d,b=%%d\n",a,c);
	}

则程序的输出结果是?

A. a=2,b=5
B. a=%2,b=%5
C. a=%d,b=%d
D. a=%%d,b=%%d

正确答案:
C

解析:
C语言中用“%%”打印输出字符“%”,所以%%d,输出为%d两个普通字符,而不是格式控制符“%d”的含义,所以打印结果为C

6

以下程序输出结果是?

	int main()
	{
		int m = 5;
		if (m++>5)
			printf("%d\n",m);
		else
			printf("%d\n",m--);
	}

A. 7
B. 6
C. 5
D. 4

正确答案:
B

解析:
第一行给m赋值为5,第二行进行if条件的判断。因为m++是先取m的值拿来用然后m的值自增1,所以if(m++>5)printf(“%d\n”,m);首先判断if条件不成立,m值自增1后等于6,然后再执行else分支的内容,这是后置–,将m的值打印出来后,m再自减。故打印结果就是6

7

已有定义“int x = 12,y = 15,z;” 则执行表达式“z = (x||(y -= x))”后,变量y和变量z的值分别为?
A. 3 , 1
B. 15 , 12
C. 3 , 12
D. 15 , 1

正确答案:
D

解析:
C语言中规定:
对于或运算而言,如果左边的表达式值为1,那么整个逻辑运算结果就是1,不会对右侧表达式进行运算了
如果左边的表达式为0,那么就需要继续看右边的表达式到底为0还是为1,这个时候右边表达式或者变量的结果,就会决定整个表达式的结果
(x||(y -= x)),这个时候x的值为真,整个表达式的结果就是真的,同时右边的表达式不会再进行任何的操作。

8

循环语句 while (!E); 中的表达式 !E 等价于?

A. E!=0
B. E!=1
C. E0
D. E
1

正确答案:
C

解析:
对于 while (!E) 来讲,只有E为假的时候,条件才为真,所以就等同于E==0,所以答案选C

9

当 x=3 y=1 z=0 时,表达式 x<=y<=z 的结果为?

A. 1
B. 0
C. 3
D. 其他都不对

正确答案:
A

解析:
<=为关系运算符且它的结合性是从左到右,故上式等价于 (x<=y)<=z
又因为 x=3 y=1,所以 x<=y 的结果为0(代表假),然后 0<=z 的结果为1(代表真)

10

下面程序执行的结果为?

	int main()
	{
		char ch1,ch2;
		ch1='D'+'8'-'3';
		ch2='9'-'1';
		printf("%c %d\n",ch1,ch2);
		return 0;
	}

A. l ‘8’
B. l 8
C. G ‘8’
D. 其他几项都不对

正确答案:
B

解析:
ch1=‘D’+‘8’-‘3’,首先数字字符的ASCII码值从0~9是依次递增的,同时相邻两个数字字符之间的ASCII码值的差值为1,那么 ‘8’-‘3’ 的值就是5。‘D’ + 5 的意思就是从字符D开始往后数5个字母,最后得到的结果就是 l,ch2=‘9’-‘1’,同时以%d的格式输出,最后得到的结果就是数字8,而不是字符8

11

下面四个选项中,均是合法整形常量的选项是?

A. 160 -0xffff 011
B. -0xcdf 01a 0xe
C. -01 986,012 0668
D. -0x48a 2e5 0x

正确答案;
A

解析;
A中160是十进制数,-0xffff 是十六进制数,011 是八进制数,均合法
B中01a非法,因为a不是二进制数码
C中 986,012 非法,不能包含“,”,0668非法,因为8不是八进制数码
D中0x非法,因为后面没有有效的十六进制数码。
所以选A

12

下述程序执行后的输出结果是?

	#include<stdio.h>
	int main()
	{
		int x='f';
		printf("%c\n",'a'+(x-'a'+1));
		return 0;
	}

A. g
B. H
C. I
D. J

正确答案;
A

解析:
首先变量x的值被赋值为了字符f,那么字符f和字符a之间的差值为5,然后再进行+1的操作,可以得出结果就是6,然后字符a+6的结果就是字母a往后数6个字母,结果就是g

13

下面代码段的输出结果为?

 #define MOD(x,y) x%y
 int a=13,b=94;
 printf("%d\n",MOD(b,a+4);

A. 5
B. 7
C. 9
D. 11

正确答案:
B

解析:
宏替换是直接替换的,所以这里替换后应该是b%a+4,先算%后算+,也就是3+4得7。

14

int x[6][4],(*p)[4];
p = x;

则*(p+2)指向哪里?

A. x[0][1]
B. x[0][2]
C. x[1][0]
D. x[2][0]

正确答案;
D

解析:
p是指向int[4]类型的指针,p=x,指向x的首地址。
p+2,即加上2个指向类型的大小,即 2*4=8 个int,所以*(p+2)指向x[2][0]

15

以下程序的输出结果是?(@表示一个空格)

int main()
{
	printf("s1=|%15s|s2=|%-5s|","chinabeijing","chi");
	return 0;
}

A. s1=|chinabeijing@@@|s2=|chi|
B. s1=|chinabeijing@@@|s2=|chi@@|
C. s1=|@@@chinabeijing|s2=|@@chi|
D. s1=|@@@chinabeijing|s2=|chi@@|

正确答案:
D

解析:
%15s表示输出占15个空格的位置,并且右对齐,左边多余的位置补空格,因为“chinabeijing”包含12个字符,所以输出时,左边要补上3个空格,%-5s表示输出占5个空格的位置,并且左对齐,右边多余的位置补空格,因为“chi”包含3个字符,所以输出是,右边要补上2个空格。所以正确的答案是D

16

已知有职工情况结构变量emp定义为:

struct Date
	{
		int year;
		int month;
		int day;
	};
struct Employee
	{
		char name[20];
		long code;
		Date brith;
	};Employee emp;

下列对emp的birth正确赋值方法是?
A. year=1980;month=5;day=1;
B. birth.year=1980;birth.month=5;birth.day=1;
C. emp.year=1980;emp.month=5;emp.day=1;
D. emp.birth.year=1980;emp.birth.month=5;emp.birth.day=1;

正确答案:
D

解析:
“Employee”定义一个变量名为emp的Employee型结构体变量,由于变量birth是属于emp中的一个数据元素,且变量birth的是Date型变量、本身也是一个结构体,故要想给变量birth中数据元素赋值,应当是使用“.”运算符,即emp.birth.year=具体数值;emp.birth.month=具体数值;emp.birth.day=具体数值;

17

C语言中,若有int a[5]={12,34,56,78,90},*p=a;则*p++==13.

A. 正确
B. 错误

正确答案:
B

解析:
*p++相当于*(p++),因为p++先返回p的值然后再自加,所以*p++相当于*p,所以本题中*p++的值为12,而不是13

18

若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是?

A. for(i=1,p=1;i<=5;i++) p*=i;
B. for(i=1;i<=5;i++) { p=1; p*=i; }
C. i=1;p=1;while(i<=5){ p*=i;i++; }
D. i=1;p=1;do{ p*=i; i++; }while(i<=5);

正确答案:
B

解析
每执行一次循环时,p又被赋值为1

19

下面这段C代码的输出是?

int f(int n)
{
	if(n<=1)
		return 1;
	if(n%2==0)
		return f(n/2);
	return f(n/2)+f(n/2+1); 
}

int main()
{
	printf("%d",f(11));
	return 0;
}

A. 运行出错,栈溢出
B. 3
C. 4
D. 5

正确答案;
D

解析;
递归的诉求是将大问题拆分成更容易解决的小问题,f11最终拆为多个1的求和,如图最终为1+1+1+2得5
在这里插入图片描述
f0=1 f1=1 f2=f1=1 f3=f1+f2=2 f4=f2=1 f5=f2+f3=3 f6=2 f11=f5+f6=5

20

假定s被定义为指针类型char* 的变量,初始指向的字符为“Hello world!”,若要使变量p指向s所指向的字符串,则p应定义为?

A. char*p=s
B. char*p=&s
C. char*p;p=*s
D. char*p;p=&s

正确答案:
A

解析:
B、D:指向字符串的指针,初始化赋值时,前面不需要加上取地址运算符&
s指向字符串首元素的地址,类型为char*,那么则&s的类型为char**,而指针p也为char*类型的指针,所以二者并不相等。
C:*s只能取得字符串首元素的值,并不能获取整个字符串的值


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


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

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

相关文章

华为发布的工业软件三大难题:适用于CAD领域的NURBS裁剪曲面自交快速检测

以下内容转载&#xff1a; 自相交&#xff0c;在几何图形有效性验证中的一个错误类型&#xff0c;面要素的自相交在原始数据中是最常见的&#xff0c;这种错误有些可以人工发现&#xff0c;但有些就需要借助程序来发现。 发生自相交的根本原因情况比较多&#xff0c;有些是因为…

LOAM: Lidar Odometry and Mapping in Real-time 论文阅读

论文链接 LOAM: Lidar Odometry and Mapping in Real-time 0. Abstract 提出了一种使用二维激光雷达在6自由度运动中的距离测量进行即时测距和建图的方法 距离测量是在不同的时间接收到的&#xff0c;并且运动估计中的误差可能导致生成的点云的错误配准 本文的方法在不需要高…

第七课:计算机网络、互联网及万维网(WWW)

第七课&#xff1a;计算机网络、互联网及万维网&#xff08;WWW&#xff09; 第二十八章&#xff1a;计算机网络1、局域网 Local Area Networks - LAN2、媒体访问控制地址 Media Access Control address - MAC3、载波侦听多路访问 Carrier Sense Multiple Access - CSMA4、指数…

Rust开发⼲货集(1)--迭代器与消费器

本内容是对 Rust开发干货集[1] 的实践与扩展. iter() 不转移所有权 先简单解释下什么叫"转移所有权": 在 Rust 中&#xff0c;"转移所有权"&#xff08;Ownership Transfer&#xff09;是一种核心概念&#xff0c;它涉及变量和数据的所有权从一个实体转移…

C/C++ BM3 链表中的节点每k个一组翻转

文章目录 前言题目思路阐述代码总结 前言 这道题的关键是理解链表指针的位置&#xff1b; 在BM2的区间翻转基础上&#xff0c;多了个指针偏移&#xff0c;博客里面我贴图阐述一下。 题目 思路阐述 这道题的翻转过程参考BM2的题解&#xff0c;这里主要阐述一下指针移动和整体思…

redhat 8 安装openstack

redhat 8 安装openstack 1、安装文档2、redhat 8 安装openstack3、使用openstack 1、安装文档 openstack官方安装文档 https://docs.openstack.org/install-guide/ 2、redhat 8 安装openstack 3、使用openstack

【C/C++笔试练习】sort排序、STL容器、vector的特性、一级容器、迭代器失效、异常捕获、动态转换、统计每个月兔子的总数、字符串通配符

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;sort是不稳定排序&#xff08;2&#xff09;存放即有序的STL容器&#xff08;3&#xff09;连续储存的STL容器&#xff08;4&#xff09;vector的特性&#xff08;5&#xff09;一级容器&#xff08;6&#xff09;unorde…

2、gdb常用功能2

1.4、线程 程序避免不了涉及到多线程.常用指令如下. 命令简写形式说明info thread显示当前进程内所有线程信息thread 切换到num线程thread find 寻找regexp在gdb中的idinfo address 结合上述图片理解&#xff0c;第一列的id是gdb内部为线程排序的一个id&#xff0c;第三列中…

Redis:原理速成+项目实战——Redis的Java客户端

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis常见命令&#xff08;数据结构、常见命令总结&#xff09; &#x1f4da;订阅专栏&…

算法基础之最短编辑距离

最短编辑距离 核心思想 &#xff1a; 线性dp 集合定义 &#xff1a; f[i][j]为操作方式的最小值 集合计算 : 三种操作 取最小 ① 删除 : 将a[i]删掉 使ab相同 –> f[i-1][j] 1 f[i][j]② 增添 : 在a[i]后加上一个数 使ab相同 –> f[i][j-1] 1 f[i][j]③ 替换 : 将a[…

【unity学习笔记】捏人+眨眼效果+口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型&#xff08;.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。&#xff08;VRM-0.116.0_0f6c&#xff09; 3.将univrm导入到工程中&#xff08;assets&#xff09;。 三…

基于FPGA的数字电路(PWM脉宽调制)

一.PWM的制作原理 假如我们有一个锯齿波&#xff0c;然后在锯齿波上设置一个阈值&#xff08;黑色水平虚线&#xff09;&#xff0c;凡是大于该阈值时输出均为高电平&#xff0c;反之则为低电平&#xff0c;这样我们是不是就得到一个PWM信号呢&#xff1f;如果我们想调整它的占…

数据治理:释放数据价值的关键

随着数字化时代的到来&#xff0c;数据已成为组织和企业最重要的资产之一。然而&#xff0c;数据的快速增长和复杂性也给数据管理带来了巨大的挑战。为了确保数据的质量、安全性和合规性&#xff0c;数据治理已成为组织和企业必须面对的重要问题。数据治理是数据要素市场建设的…

OSG绘制视锥体(升级版)

OSG绘制视锥体&#xff0c;这一篇增加设置相机参数接口&#xff0c;支持通过eye、center、up设置相机参数。 代码如下&#xff1a; #include "stdafx.h" #include <osgViewer/Viewer> #include <osg/ShapeDrawable> #include <osg/Geode> #includ…

SkyWalking UI 修改发布Nginx

文章目录 SkyWalking UI修改图标修改路由发布到Nginx添加认证修改路由模式vite.config.ts添加baseNginx配置 SkyWalking UI skywalking-booster-ui下载地址 修改图标 替换 logo.svg 修改路由 router - data - index.ts 发布到Nginx 添加认证 # 安装 yum install -y h…

电子学会C/C++编程等级考试2022年12月(八级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:生理周期(2022.12) 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容…

【网络安全常用术语解读】SCAP详解

本文主要介绍什么是SCAP&#xff0c;SCAP的产生背景是怎样的&#xff0c;SCAP有什么用途&#xff0c;有哪些组件&#xff0c;各个组件的用途是什么&#xff1f; SCAP产生背景 由于计算机和网络技术的快速发展&#xff0c;越来越多的软件和系统被应用到企业和机构中&#xff0c…

安装与部署Hadoop

一、前置依赖1、java 一、前置依赖 1、java 需要安装java rz tar -zxvf jdk-8u381-linux-x64.tar.gz -C / ln -s /jdk1.8.0_381/ /jdk # rm jdk-8u381-linux-x64.tar.gzvim /etc/profile export JAVA_HOME/jdk export PATH$PATH:$JAVA_HOME/bin # source /etc/profile ln -s…

Strateg策略模式(组件协作)

策略模式&#xff08;组件协作&#xff09; 链接&#xff1a;策略模式实例代码 注解 目的 正常情况下&#xff0c;一个类/对象中会包含其所有可能会使用的内外方法&#xff0c;但是一般情况下&#xff0c;这些常使用的类都是由不同的父类继承、组合得来的&#xff0c;来实现…

2023.12.30 Pandas操作

目录 1. pandas基础 1.1 pandas的基本介绍 1.2 pandas基础使用 2. pandas的数据结构 2.1 series对象 2.2 使用列表,自定义索引,字典,元组方式创建series对象 2.3 Series对象常用API 2.4 Series 对象的运算 1. pandas基础 1.1 pandas的基本介绍 Python在数据处理上独步天下…