c/c++从入门到入土(2)

开始时间2023-04-13 23:02:34

结束时间2023-04-14 01:26:05

前言:如果第一天没把你劝退,恭喜你!通过今天的学习你就能半步踏进编程的大门了!今天让我们来学习一下基本数据类型和运算符的相关知识。以下是自制思维导图参考于苏小红C语言程序设计(第四版):

作业2 数据类型及运算

【C0033】下面四个选项中,均是不合法的用户标识符的选项的是_______。
A.A p_o do B.float lao _A C.b-a goto int D._123 temp INT

答案:C

体会:变量名命名规则:(1)标识符只能由英文字母、数字和下划线组成,建议使用见名知意的名字为变量命名,可以使用英文单词大小混写或中间加下划线的方式,而不要使用汉语拼音;

(2)标识符必须以字母或下划线开头;

(3)不允许使用C关键字为标识符命名;

(4)标识符可以包含任意多个字符,但一般会有最大长度限制,与编译器相关,不过大多数情况不会达到此限制。

【C0034】以下选项中可以作为C语言中合法整数的是_______。
A.10110B B.0386 C.0Xffa D.x2a2

答案:C

体会:最常用整数表达形式为十进制、二进制、八进制和十六进制。

十进制,以10为基的数值系统,由0~9的数字序列组成,数字前可带正负号;

二进制,以2为基的数值系统,由0/1数字序列组成;

八进制,以8为基的数值系统,八进制整数由数字0开头后跟0~7(可用三位二进制表示)的数字序列组成;

十六进制,以16为基的数值系统,十六进制整数由数字0加字母x(或X)开头,后跟0~9,a~f或A~F(可用四位二进制表示)的数字序列组成。

【C0035】以下选项中合法的实型常数是_______。
A.5E2.0 B.E-3 C.2E0 D.1.3E

答案:C

体会:十进制小数形式与惯用形式相同;指数形式以e或者E来表示以10为底的指数,其中e的左边是数值部分(有效数字),可以表示成整数或者小数形式,它不能省略,e的右边是指数部分,必须是整数形式;单精度实型常量由常量值后跟F或f来表示;实型常量隐含按双精度型处理;长双精度型常量由常量值后跟L或l来表示。

【C0036】以下选项中可作为C语言合法常量的是_______。
A.-80 B.-080 C.-8e1.0 D.-80.0e

答案:A

体会:有符号整型常量,默认的int型定义为有符号整数,因此对int型无需使用signed;无符号常量,由常量追后跟U或u来表示,不能表示成小于零的数,如-30u是不合法的;长整型常量,由后跟L或l来表示;

无符号长整型常量,由常量值后跟LU、Lu、lU、或lu来表示。

【C0037】下面四个选项中,均是合法转义字符的选项是_______。
A.'\' ' \\' '\n' B.'\'' '\017' '\t' C.'\018' ' \f' '\xab' D.'\\0' '\101' 'x1f'

答案:B

体会:

合法的转义字符如下:

1、八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'

\0:空字符

2、Unicode转义字符:\u + 四个十六进制数字;0~65535

\u0000:空字符

3、特殊字符:就3个

\":双引号

\':单引号

\\:反斜线

4.控制字符:5个

\' 单引号字符

\\ 反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格

【C0038】下面不正确的字符串常量是_______。
A.'abc' B."12’12" C."0" D." "

答案:A

体会:用双引号(“”)括起来的0个或者多个字符组成的序列

【C0039】以下选项中不属于C语言的类型的是_______。
A.signed short int B.unsigned long int C.unsigned int D.long short

答案:D

体会:c语言类型——基本整型(int)、长整型(long)、长长整型(long long)、短整型(short)、无符号整型(unsigned)、单精度实型(float)、双精度实型(double)、长双精度实型(long double)、字符型(char)、枚举类型(enum)、结构体(struct)、共用体(union)、无类型(void)。

【C0040】在C语言中,要求运算数必须是整型的运算符是_______。
A./ B.++ C.!= D.%

答案:D

体会:要求运算必须是整数的运算是求余运算。

【C0041】以下运算符中优先级最低的是_______。
A.&& B.<= C.|| D.==

答案:C

体会:查优先级表

【C0042】以下运算符中优先级最高的是_______。
A.&& B.<= C.|| D.==

答案:B

体会:同上

【C0043】若x = 2 , y=3,则x && y的结果是_______。
A.0 B.1 C.2 D.3

答案:B

体会:&&运算为“条件与”:x和y均为true,取值是true,否则取值是false。也就是说a&&b,如果a,b都不为零,则为真;如果a,b中至少有一个为零,结果才为假。

【C0044】若x,i,j和k都是int型变量,则计算表达式x = ( i = 4 , j = 16 , k = 32 )后,x的值为_______。
A.4 B.16 C.32 D.52

答案:C

体会:x=(i=4,j=16,k=32)中的i=4,j=16,k=32构成一个逗号表达式,整个表达式的值取最后一项的值,即32

【C0045】若有定义:int a = 7 ; float x = 2.5 , y = 4.7 ; ,则表达式x + a % 3 * ( int )( x + y ) % 2 / 4的值是_______。
A.2.500000 B.2.750000 C.3.500000 D.0.000000

答案:A

体会:根据运算符结合性和优先级计算

【C0046】若有以下类型说明语句:char w ; int x ; float y ; double z ; ,则表达式w * x + z - y的结果为_______类型。
A.float B.char C.int D.double

答案:D

体会:c编译器在对操作数进行运算之前将所有操作数都转换成取值范围较大的操作数类型,称为类型提升。

【C0047】已有定义:int x = 3 , y = 4 , z = 5 ; 则表达式!( x + y ) + z – 1 && y + z / 2的值是_______。
A.6 B.0 C.2 D.1

答案:D

体会:根据运算符结合性和优先级计算

【C0048】以下选项中非法的表达式是_______。
A.0 <= x < 100 B.i = j == 0 C.( char )( 65 + 3 ) D.x + 1 = x + 1

答案:D

体会:表达式具有左值属性

【C0049】设a、b、c、d、m、n均为int型变量,且a = 5、b = 6、c = 7、d = 8、m = 2、n = 2,则逻辑表达式( m = a > b ) && ( n = c > d)运算后,n的值为_______。
A.0 B.1 C.2 D.3

答案:C

【C0050】若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.'a' <= c <= 'z' B.( c >= 'a' ) || ( c <= 'z' ) C.( 'a' <= c ) and ( 'z' >= c ) D.( c >= 'a' ) && ( c <= 'z' )

答案:D

体会:A表达式错误B范围过大C呃离谱D正确

【C0051】若x和y代表整型数,以下表达式中不能正确表示数学关系|x―y|<10的是_______。
A.abs( x – y ) < 10 B.x – y > -10 && x – y < 10 C.!( x – y ) < -10 || !( y – x ) > 10 D.( x – y ) * ( x – y ) < 100

答案:C

体会:这是接近算法的一个问题,abs为绝对值数学函数,B是定义,D是初中知识,C“||”左边的式子如为真,将不再判断其后的表达式的值

【C0052】C语言中的标识符只能由三种字符组成,它们是数字、字母和下划线。(请按照ASCII码递增顺序填写)
【C0053】在C语言中(以32位PC机为例),一个char型数据在内存中所占的字节数为1,一个int型数据在内存中所占的字节数为4,一个float型数据在内存中所占的字节数为4,一个double型数据在内存中所占的字节数为8。
【C0054】有以下定义int m = 5,y = 2;则计算表达式y += y -= m *= y后的y值是-16。
【C0055】若定义:int a = 2,b = 3;float x = 3.5,y = 2.5;则表达式( float )(a + b ) / 2 + ( int ) x % ( int ) y的值是3.5。
【C0056】x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式x %= ( n %= 2 )后x的值为0。
【C0057】设所有变量均为整型,则表达式( a = 2 , b = 5 , a++ , b++ , a + b )的值为9。
【C0058】a、b和c均是int型变量,则计算表达式a = ( b = 4 ) + ( c = 2 )后,a值为6,b值为4,c值为2。
【C0059】a是int型变量,且a的初值为6,则计算表达式a += a -= a * a后a的值为-60。
【C0060】设y是int型变量,请写出判断y为奇数的关系表达式y%2==1。
【C0061】若a,b,c均为整型变量,则执行以下语句a = b = c = 0 ; a++ && ++b || c++ ; 后,a的值为1,b的值为0,c的值为1。
【C0062】下面程序的运行结果是b。
#include<stdio.h>
int main( ){
char m ;
m = 'B' + 32 ;
printf( "%c\n" , m ) ;
return 0 ;
}

分析:最后输出m的字符形式,已知ascll中‘B’为66加32为98为‘b’,很明显知道大写字母和小写字母之间的差距为32.

【C0063】下面程序的运行结果是 0。
#include<stdio.h>
int main( ){
int x = 3 , y = 5 ;
printf( "%d\n" , x / y ) ;
return 0 ;
}

分析:最后输出x/y的基本整型形式,3/5除不尽,为0.

【C0064】下面程序的运行结果是0。
#include<stdio.h>
int main( ){
int m = 0xabc , n = 0xabc ;
m -= n ;
printf( "%x\n" , m ) ;
return 0 ;
}

分析:最后输出m的十六进制输出整数,首先m=0xabc是2748,n也是这个数,m-=n的意思是m的值是m-n,既然m=n不用想就是0

【C0065】下面程序的运行结果是10,2。
#include<stdio.h>
int main( ){
int x = 10 , y = 3 ;
printf( "%d,%d\n" , x++ , --y ) ;
return 0 ;
}

分析:最后有两个输出一个是x的基本整型,一个y-1的基本整型,很明显是10,2(其中输出格式%d,%d表示两数之间以逗号分隔)

【C0066】下面程序的运行结果是3,20,30,1。
#include<stdio.h>
int main( ){
int a = 2 , b=20 , c=30 , d ;
d = ++a <= 10 || b-- >= 20 || c++ ;
printf( "%d,%d,%d,%d\n" , a , b , c , d ) ;
return 0 ;
}

分析:最后有四个输出分别为abcd的基本整型,重点在 d=++a<=10||b-->=20||c++; 这句,里边是||运算符,从开始往后计算,碰到一个为真的表达式,后边的表达式就不计算了。
++a <=10 先++,再去比较,为真
所以后边b-- >= 20和c++没有运算。所以a经过++a运算变为3,b和c不变,d为真值1

总结:真正学明白数据类型和基本算术运算,你已有能力进行简单的编程,你的程序已经有可以帮小学生检查作业的水平!

c/c++零基础坐牢第二天的更多相关文章

  1. 零基础学python》(第二版)

    ---恢复内容开始--- 零基础学python>(第二版) python学习手册 可以离线下载,  .chn格式, 插入小幽默笑话,在学习累的时候看看笑话 放松一下 欢迎下载转载,请注明出处,谢 ...

  2. 零基础学Java第二节(运算符、输入、选择流程控制)

    本篇文章是<零基础学Java>专栏的第二篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 第一章 运算符 1.1 算术运算符的概述和用法 运算符 对常量和变 ...

  3. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  4. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  5. 狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(2)

    前文链接:狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(1) 小甲鱼在很多情况下是跟着谭浩强鹦鹉学舌,所以谭浩强书中的很多错误他又重复了一次.这样,加上他自己的错误,错谬之处难以胜数. 由于拙 ...

  6. MongoDB实战开发 【零基础学习,附完整Asp.net示例】

    MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用Mo ...

  7. Qt零基础教程(四)QWidget详解(3):QWidget的几何结构

    Qt零基础教程(四)  QWidget详解(3):QWidget的几何结构 这篇文章里面分析了QWidget中常用的几种几何结构 下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Wind ...

  8. 从零基础入门JavaScript(1)

    从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了j ...

  9. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...

  10. 【视频】零基础学Android开发:蓝牙聊天室APP(二)

    零基础学Android开发:蓝牙聊天室APP第二讲 2.1 课程内容应用场景 2.2 Android UI设计 2.3 组件布局:LinearLayout和RelativeLayout 2.4 Tex ...

随机推荐

  1. home:76 Uncaught TypeError: AMap.MouseTool is not a constructor

    利用高德地图API标记已知点并测量已知点之间的距离,在调用高德地图的类方法的时候会遇到这样的问题 home:76 Uncaught TypeError: AMap.MouseTool is not a ...

  2. K8S—dashboard ui部署

    一.Dashboard UI概述 仪表板是基于Web的Kubernetes用户界面.您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随 ...

  3. [Windows] Visual Studio 类库Xml文档免费翻译工具 《Xml文档翻译器2.1》

    谷歌Chrome翻译功能失效用不了,我们一起来恢复翻译功能! 可用的谷歌国内 IP: 142.250.4.90 translate.googleapis.com 142.250.30.90 trans ...

  4. sql 查询大数据 常用 50列优化

    大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到. 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能 ...

  5. 1.1 [zabbix5.4]-部署

    一.从容器安装 1.0 官网 https://www.zabbix.com/documentation/5.0/zh/manual/installation/containers   # 官方文档 h ...

  6. spring-mvc.xml

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  7. GameObject.Find()、Transform.Find()查找游戏对象

    GameObject.Find 按广度进行查找 GameObject.Find("GameObject"); GameObject.Find("GameObject/Ch ...

  8. ASP.NET Web应用程序(.NET Framework)开发网站

    1.创建项目 2.控制器脚本说明 [FromBody]JObject value:JObject此类型默认为string,但是string无法正常解析复杂类型的Json数据,所以修改为JObject类 ...

  9. ESP32开发环境搭建 IDF3.3.5+VScode

    1.  软件准备: ① ESP-IDF:包含ESP32 API和用于操作工具链的脚本. ②工具链msys32:用于编译ESP32应用程序. ③编辑工具Visual Studio Code 注意:工具链 ...

  10. 通用图像分割任务- 使用 Mask2Former 和 OneFormer

    本文介绍两个领先的图像分割神经网络模型: Mask2Former 和 OneFormer.相关模型已经在 Transformers 提供. Transformers 是一个开源库,提供了很多便捷的先进 ...