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

文章目录

  • 每日一言
  • 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只能取得字符串首元素的值,并不能获取整个字符串的值


结语

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


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

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

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


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序的编译、链接

目录 前言&#xff1a; 前置知识回顾 宏 宏定义常量 宏定义语句 宏定义函数 条件编译 应用场景 编译过程概览 预编译阶段 编译阶段 汇编阶段 链接阶段 前言&#xff1a; 在ANSI C的任何一种实现中&#xff0c;存在两种不同的环境&#xff0c;第1种是翻译环境&#x…

go module本地包导入

go module本地包导入 本文目录 go module本地包导入启用go mod主项目工作目录本地module目录发布和使用模块 golang 1.11之后加入了go mod来替代GOPATH 官方文档参考&#xff1a;https://golang.google.cn/doc/tutorial/call-module-code 启用go mod 开启 Go modules # 临时开…

一文带你了解大模型的RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)

针对大型语言模型效果不好的问题&#xff0c;之前人们主要关注大模型再训练、大模型微调、大模型的Prompt增强&#xff0c;但对于专有、快速更新的数据却并没有较好的解决方法&#xff0c;为此检索增强生成&#xff08;RAG&#xff09;的出现&#xff0c;弥合了LLM常识和专有数…

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

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

自动驾驶学习笔记(二十三)——车辆控制模型

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 运动学模型 动力学模型 总结…

Java进阶(第八期): Java中递归的的使用和递归解决一些算法问题 Java中的异常机制、异常的处理逻辑 自定义异常

文章目录 一、递归1.1 递归的介绍1.2 递归的简单练习1.3 图解递归执行流程&#xff1a;1.4 使用递归完成悲波那契数列1.5 猴子吃桃子问题 二、异常三 、异常的处理逻辑3.1 try catch 捕获异常3.2 throws抛出异常 四、自定义异常 Java进阶&#xff08;第八期&#xff09; 一、递…

如何安装、配置、启动及访问Nacos

准备 JDK 17.0&#xff1a;https://www.bilibili.com/video/BV1ig4y1k7Bq?p2 MySQL 8.0&#xff1a;https://www.bilibili.com/video/BV1QU4y117Vn Navicat Premium&#xff1a;https://www.bilibili.com/video/BV1F94y1A7nC 1、安装Nacos a、地址 网址&#xff1a;http…

ElasticSearch 架构设计

介绍 ElasticSearchMySQLIndexTableDocumentRowFieldColumnMappingSchemaQuery DSLSQLaggregationsgroup by&#xff0c;avg&#xff0c;sumcardinality去重 distinctreindex数据迁移 ElasticSearch 中的一个索引由一个或多个分片组成 每个分片包含多个 segment&#xff08;分…

用 Node.js 写一个爬虫

自己设计一个网站&#xff0c;然后去爬取别人家页面的数据来做一个自己的网站。哈哈哈&#xff0c;如果自己写着玩可能没啥事&#xff0c;但如果用这个网站来获利&#xff0c;你可能就要被寄律师函了&#xff0c;毕竟这有点‘刑’。这篇文章呢&#xff0c;就带大家爬取豆瓣TOP2…

HDMI2.1输入转4Port MIPI/LVDS输出,嵌入式SPI闪存固件存储,VR和AR应用首选国产芯片方案-LT6911GXC

描述 LT6911GXC是一款高性能的HDMI2.1到MIPI或LVDS芯片&#xff0c;用于VR/显示应用。 HDCP RX作为HDCP中继器的上游&#xff0c;可配合其他芯片的HDCPTX实现中继器功能。 对于HDMI2.1输入&#xff0c;LT6911GXC可以配置为3/4通道。自适应均衡使其适合于长电缆应用&#xff0c;…

申请虚拟VISA卡Fomepay教程

fomepay 用下面的注册链接直达 https://gpt.fomepay.com/#/pages/login/index?dS21BA1 或者扫描下面图片的二维码直达注册 注册后尽量随用随充值不建议放大量现金在里面。

【论文解读】用于概念标定的逻辑强化大模型LEFT(NeurIPS 2023)

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2310.16035 开源代码&#xff1a;https://github.com/joyhsu0504/LEFT 摘要&#xff1a; VisProg 和 ViperGPT 等最新研究成果巧妙地组成了视觉推理的基础模型-…

vscode配置python环境,步骤以及 chatgpt和csdn AI创作助手回答对比

1解决步骤 参考地址 解决步骤 vscode 安装 python插件&#xff0c;并重启vscode&#xff0c;前提是电脑已经配置了python环境&#xff0c;我的电脑已经安装了anaconda 也有python3 新建文件夹 pythonTst &#xff0c;vscode中菜单栏 File --Add folder toWordSpace — 弹出框…

PNG免抠素材库,免费下载,可商用~

本期分享5个高质量PNG素材网站&#xff0c;让你在工作中大大提高效率&#xff0c;节省更多的时间&#xff0c;赶紧收藏起来吧~ 1、菜鸟图库 https://www.sucai999.com/searchlist/66008----all-0-1.html?vNTYxMjky 网站主要分享设计素材为主。像平面海报、免抠元素、背景图片…

常见推断方法一览:极大似然估计、最大后验估计、期望最大化、贝叶斯推断、马尔科夫链蒙特卡洛方法、变分推断

常见推断方法一览 推断方法区别频率派极大似然估计 MLE最大后验估计 MAP期望最大化 EM 贝叶斯推断 Bayesian马尔科夫链蒙特卡洛方法 MCMC变分推断 VI 推断方法区别 极大似然估计 (Maximum Likelihood Estimation, MLE): 解释: 假设你有一堆骰子&#xff0c;你投掷它们很多次&am…

行车记录仪变清晰,变高清的办法一定要收藏

有时候我们会发现行车记录仪拍摄的视频不够清晰&#xff0c;特别是出现事故需要视频为证的时候&#xff0c;如果视频太模糊&#xff0c;很难获得交警的支持&#xff0c;那么如何让行车记录仪拍摄的视频变得更加清晰呢&#xff1f; 小编给大家分享几个办法&#xff0c;建议收藏…

Getway介绍和使用

Getway 入门简介 网关搭建步骤&#xff1a; 创建项目&#xff0c;引入nacos服务发现和gateway依赖 配置application.yml&#xff0c;包括服务基本信息、nacos地址、路由 路由配置包括&#xff1a; 路由id&#xff1a;路由的唯一标示 路由目标&#xff08;uri&#xff09;…

openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读

文章目录 openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读180.1 升级方案180.2 升级前的版本要求180.3 升级影响和升级约束 openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读 180.1 升级方案 本节为指导用户选择升级方式。 用户根据openGauss提供的…

按摩上门预约小程序源码系统 开发组合:PHP+MySQL 附带完整的搭建教程

现代生活节奏的加快&#xff0c;人们越来越注重健康与放松。按摩作为传统的舒缓方式&#xff0c;市场需求逐年上升。然而&#xff0c;传统的按摩服务预约方式较为繁琐&#xff0c;用户需拨打热线电话或前往实体店进行预约&#xff0c;这无疑增加了用户的操作成本。因此&#xf…

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