爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

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

      首页 知识中心 软件开发 文章详情页

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

      2024-11-04 09:33:23 阅读次数:28

      字符

      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. E==0
      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. *(p+2)指向哪里?

      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
      快来检测一下你是否真的学会了C语言,保证你看完后收获满满!!
      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只能取得字符串首元素的值,并不能获取整个字符串的值



      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/qrwitu142857/article/details/135309228,作者:月临水,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:深入Spring Boot的Bean生命周期管理

      下一篇:JavaEE: 线程安全

      相关文章

      2025-05-19 09:04:14

      C语言字符函数和字符串函数--(超全超详细)

      C语言字符函数和字符串函数--(超全超详细)

      2025-05-19 09:04:14
      函数 , 字符 , 字符串
      2025-05-14 10:02:58

      超级好用的C++实用库之字符编码转换

      字符编码转换是指将文本数据从一种字符集编码格式转换为另一种字符集编码格式的过程。

      2025-05-14 10:02:58
      buffer , Unicode , 字符 , 字符集 , 编码
      2025-05-14 09:51:15

      java String 去掉特殊字符之前的内容

      为了去除字符串中某个特殊字符之前(包括该特殊字符本身)的所有内容,我们可以使用Java中的String类的substring和indexOf方法。

      2025-05-14 09:51:15
      字符 , 字符串 , 正则表达式 , 示例
      2025-05-13 09:53:13

      计算机萌新的成长历程9——注释

      计算机萌新的成长历程9——注释

      2025-05-13 09:53:13
      内容 , 字符 , 打印 , 注释 , 长度
      2025-05-13 09:50:17

      统计特殊字母的数量Ⅱ。用go语言,给定一个字符串 word,统计其中存在特殊字母的数量。特殊字母指的是同时出现某个字母 c 的小写形式和大写形式,且每个小写形式的 c 都出现在第

      统计特殊字母的数量Ⅱ。用go语言,给定一个字符串 word,统计其中存在特殊字母的数量。特殊字母指的是同时出现某个字母 c 的小写形式和大写形式,且每个小写形式的 c 都出现在第一个大写形式的 c 之前的字母 c。

      2025-05-13 09:50:17
      word , 字母 , 字符 , 字符串 , 特殊
      2025-05-13 09:50:17

      java实现6. Z 字形变换

      将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。

      2025-05-13 09:50:17
      字符 , 字符串 , 数组
      2025-05-13 09:50:17

      java实现-13. 罗马数字转整数

      罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

      2025-05-13 09:50:17
      map , 字符 , 字符串 , 数字 , 罗马数字 , 表示
      2025-05-13 09:50:17

      java实现3. 无重复字符的最长子串

      给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 

      2025-05-13 09:50:17
      HashMap , 复杂度 , 字符 , 字符串 , 数组 , 算法
      2025-05-12 08:58:16

      编辑距离

      给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数

      2025-05-12 08:58:16
      lt , 字符 , 示例
      2025-05-08 09:04:15

      统计特殊字母的数量Ⅰ。

      用go语言,给定一个字符串 word,统计其中具有大写和小写形式同时存在的字母的数量。

      2025-05-08 09:04:15
      word , 字母 , 字符 , 字符串
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5266190

      查看更多

      最新文章

      C语言字符函数和字符串函数--(超全超详细)

      2025-05-19 09:04:14

      超级好用的C++实用库之字符编码转换

      2025-05-14 10:02:58

      统计特殊字母的数量Ⅱ。用go语言,给定一个字符串 word,统计其中存在特殊字母的数量。特殊字母指的是同时出现某个字母 c 的小写形式和大写形式,且每个小写形式的 c 都出现在第

      2025-05-13 09:50:17

      统计特殊字母的数量Ⅰ。

      2025-05-08 09:04:15

      两个字符串的排列差。

      2025-05-08 09:03:57

      分割字符频率相等的最少子字符串。

      2025-05-08 09:03:57

      查看更多

      热门文章

      Java判断字符是否是中文字符

      2023-04-11 10:15:33

      leetcode(Java版)-第3题-无重复字符的最长子串

      2023-04-07 06:44:05

      【c语言】基础数据类型

      2024-12-05 08:49:34

      Python3bytes转16进制字符(例如:b\"111111\"转\\x8c\\x8c\\x8c\\x8c\\x8c\\x8c)

      2024-04-17 02:53:19

      【C++滑动窗口】1358包含所有三种字符的子字符串数目|1646

      2025-02-21 08:58:56

      C语言解题||字符串左旋

      2024-03-26 08:11:30

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      算法题 75. 颜色分类,76. 最小覆盖子串,77. 组合

      python相关岗位算法面试题总结(持续更新)

      C语言之字符逆序

      【字符串】【C++算法】828.统计子串中的唯一字符

      【C++栈】2434. 使用机器人打印字典序最小的字符串|1953

      JavaScript 中的 Math 对象与字符串操作详解

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号