欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年全国计算机二级考试C语言易错知识点汇总 .pdf

    • 资源ID:30536502       资源大小:188.08KB        全文页数:26页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年全国计算机二级考试C语言易错知识点汇总 .pdf

    . . . . . 计算二级 C语言易错知识点1.指针是用来存放地址的变量,用( 类型名 * 指针变量名 ) 的形式定义。 赋值时应将某个变量地址即&x 赋给指针变量2.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp) 的返回值为 A) 0 B) 0 C) 非 0 值 D) NULL 【解析】本题考查文件的定位,feof 函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof 函数值为非零值,否则为0,所以选项 C正确。3.有以下程序#include main() int a=5,b=1,t; t=(a2)|b; printf(%dn,t); 程序运行后的输出结果是 A) 1 B) 11 C) 6 D) 21 【解析】本题考查位运算, 以及按位或操作, 将 a 左移一位相当于是将a 乘以了4,所以 a2等于 20,二进制表示为 00010100,与 b 按位或得到 00010101,即21,所以选项 D正确。4.有以下程序 #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - . . . . . #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2) ; i2=f(1+1) ; printf(%d %dn,i1,i2); 程序的运行结果是 A) 12 7 B) 12 12 C) 11 11 D) 11 7 【解析】本题考查宏定义的用法, 宏定义只是做个简单的替换,所以本题中执行f(2)=(2*N+1)=11,执行 f(1+1)=(1+1*N+1)=7 。选项 D正确。5.有以下程序#include #include struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=1001,ZhangDa,1098.0; f(a); printf(%d,%s,%6.1fn, a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,ChangRong); t.c=1202.0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - . . . . . 程序运行后的输出结果是 A) 1002, ZhangDa,1202.0 B) 1002,ChangRong,1202.0 C) 1001, ChangRong,1098.0 D) 1001,ZhangDa,1098.0 【解析】本题考查结构体的相关操作以及传值、传址的区别, 该题中调用 f 函数后,会生成参数 a 的一个副本,而不会改变a 的值,所以 a 值维持原值,选项D正确。6.假定已建立以下链表结构,且指针p 和 q 已指向如图所示的结点:则以下选项中可将q 所指结点从链表中删除并释放该结点的语句组是 A) p-next=q-next;free(q); B) p=q-next;free(q); C) p=q;free(q); D) (*p).next=(*q).next;free(p); 【解析】本题考查删除链表中的节点操作,其方法是将要删除节点的上个节点的下个节点指向要删除节点的下个节点, 然后释放该要删除节点, 所以选项 A正确。7.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - . . . . . 以下结构体类型说明和变量定义中正确的是 A) struct REC; int n;char c; REC t1,t2; B) typedef struct int n;char c; REC; REC t1,t2; C) typedef struct REC; int n=0; char c=A; t1,t2; D) struct int n;char c; REC; REC t1,t2; 【解析】本题考查结构体的相关知识,选项A中 struct REC 后面不能有分号, C选项中 typedef struct REC的后面也不能有分号,选项D中 REC已经是结构体变量,不能当做结构体类型来使用。8.下列函数的功能是void fun(char *a,char *b) while(*b=*a)!=0) a+;b+; A) 将 a 所指字符串赋给 b 所指空间 B) 使指针 b 指向 a 所指字符串 C) 将 a 所指字符串和 b 所指字符串进行比较 D) 检查 a 和 b 所指字符串中是否有 0 【解析】 While 循环条件为: (*b=*a)!=0,执行时先把指针a 所指向的字符赋给指针 b 所在存单元,如果该字符不是结束标识0 ,执行循环体 a+;b+; ,指针 a、b 分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针a 所指向的字符赋给指针b 所在存单元,直到遇到结束标识为止。因此A选项正确。9.有以下程序 #include void fun(char *a,char *b) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 26 页 - - - - - - - - - . . . . . while(*a=*) a+; while(*b=*a) b+;a+; main() char *s=*a*b* , t80; fun(s,t); puts(t); 程序的运行结果是 A) ab B) a*b C) *a*b D) a*b* 【解析】在函数 fun(char *a,char *b)中,while(*a *)a+的功能是:如果*a 的容为 *,则 a 指针向后移动,直到遇到非*字符为止,退出循环进入下一个 while 循环,在 while(*b *a)b ;a ; 中,把字符数组 a 中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的容为 a*b*。因此 D选项正确。10.以下关于字符串的叙述中正确的是 A) 空串比空格打头的字符串小 B) 两个字符串中的字符个数相同时才能进行字符串大小的比较 C) 可以用关系运算符对字符串的大小进行比较 D) C 语言中有字符串类型的常量和变量【解析】字符串比较大小是以第1 个不相同字符的大小为标准的, 跟长度没有关系,B选项不正确; 字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了, 而不能通过关系运算符来比较大小。因为字符串在表达式中相当于 const char* ,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。C选项不正确。 C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此 A选项是正确。11.以下程序中函数 f 的功能是:当 flag为 1 时,进行由小到大排序;当flag 为 0时,进行由大到小排序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 26 页 - - - - - - - - - . . . . . #include void f(int b,int n,int flag) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jbj:bibj) t=bi;bi=bj;bj=t; main() int a10=5,4,3,2,1,6,7,8,9,10,i; f(&a2,5,0); f(a,5,1); for(i=0;i10;i+) printf(%d,ai); 程序运行后的输出结果是 A) 1,2,3,4,5,6,7,8,9,10, B) 3,4,5,6,7,2,1,8,9,10, C) 5,4,3,2,1,6,7,8,9,10, D) 10,9,8,7,6,5,4,3,2,1, 【解析】本题重点考查函数的参数传递, 函数的参数传递分为传值和传地址两种情况。本题就是结合数组考查参数传递的情形。函数 f 完成的功能是对数据进行排序,语句 f(&a2,5,0)的作用是对从 a2 开始的 5 个元素进行从大到小排序。注意:这里传递的是地址&a2 ,所以排序操作可看作是直接对数组a 操作,执行后的结果为 5,4,7,6,3,2,1, 8,9,10 。语句 f(a,5,1)对数组 a 的前 5 个元素从小到大排序,排序后数组为:3,4,5,6,7,2,1, 8,9,10。因此 B选项正确。12.若有定义语句: int a23,*p3; 则以下语句中正确的是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 26 页 - - - - - - - - - . . . . . A) p=a; B) p0=a; C) p0=&a12; D) p1=&a; 【解析】 A选项错误,因为 p 是指向一个指针数组,作为数组名,不能指向别的地方。 B选项错误,因为p0 是一个 int指针,也就是 int* ;而 a 是一个指向指针的指针 int*。 C选项正确,因为 p0 是一个 int* , a12是 int , &a12是 int* ,类型吻合。 D选项错误,因为 a 作为数组名,不能取地址,即使能取,p1 是 int* ,&a是 int*,类型不对。因此C选项正确。13.以下叙述中错误的是 A) C 程序必须由一个或一个以上的函数组成 B) 函数调用可以作为一个独立的语句存在 C) 若函数有返回值,必须通过return语句返回 D) 函数形参的值也可以传回给对应的实参【解析】形参是函数定义时由用户定义的形式上的变量,实参是函数调用时, 主调函数为被调函数提供的原始数据。在 C语言中,实参向形参传送数据的方式是“值传递”。因此D选项正确。14.有以下程序 #include main() int a=1,b=2; for( ;a0|E0) B) (E=0) C) (! E=0) D) (E!=0) 【解析】 while 语句中条件表达式E的值不为 0 即为真,认为满足条件,所以与B选项中表达式的含义正好相反,选择B选项。16.若有定义: int a,b; 通过语句 scanf(%d;%d,&a,&b); 能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是 A) 3 5 B) 3,5 C) 3;5 D) 35 【解析】输入数据的格式必须与scanf() 的格式控制串完全匹配,所以输入时必须在 3 和 5 之间输入 ; 。17.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - . . . . . 以下关于 C语言的叙述中正确的是 A) C 语言的数值常量中夹带空格不影响常量值的正确表示 B) C 语言中的变量可以在使用之前的任何位置进行定义 C) 在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D) C 语言中的注释不可以夹在变量名或关键字的中间【解析】 C语言的数值常量中不能夹带空格,所以A错误。 C语言中的变量都必须先定义再使用, 对变量的定义通常放在函数体的前部,但也可以放在函数外部或复合语句的开头, 不能随便放置, 所以 B错误。在 C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误?18.一个教师可讲授多门课程, 一门课程可由多个教师讲授。 则实体教师和课程间的联系是 ( )。 A) 1 :1 联系 B) 1 :m联系 C) m :1 联系 D) m :n 联系【解析】因为一个教师可讲授多门课程, 而一门课程又能由多个老师讲授所以他们之间是多对多的关系,可以表示为m :n。19.负责数据库中查询操作的数据库语言是( ) 。 A) 数据定义语言 B) 数据管理语言 C) 数据操纵语言 D) 数据控制语言【解析】数据定义语言: 负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。20.下面描述中错误的是 ( ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - . . . . . A) 系统总体结构图支持软件系统的详细设计 B) 软件设计是将软件需求转换为软件表示的过程 C) 数据结构与数据库设计是软件设计的任务之一 D) PAD 图是软件详细设计的表示工具【解析】详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以 A)错误。21.某二叉树共有 7 个结点,其中叶子结点只有1 个,则该二叉树的深度为 ( 假设根结点在第 1 层)( ) 。 A) 3 B) 4 C) 6 D) 7 【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0 的叶子结点总比度为 2 的结点多一个, 所以本题中度为 2 的结点为 110 个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共 7 个结点共 7 层,即度为7。22.下列叙述中正确的是 ( ) 。 A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D) 以上说法均不正确解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。23.下列关于栈叙述正确的是( ) 。 A) 栈顶元素最先能被删除 B) 栈顶元素最后才能被删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - . . . . . C) 栈底元素永远不能被删除 D) 栈底元素最先被删除解析】栈是先进后出的数据结构, 所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A)。24.有以下程序:#include main() unsigned char a2,b 4,c 5,d; d a|b;d & c;printf(%dn,d); 程序运行后的输出结果是( ) 。 A) 3 B) 4 C) 5 D) 6 【解析】 & 按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为 0。| 按位或,两个相应的二进制位中只要有一个为1,该位的结果值为 1。2的二进制为 00000010,4 的二进制为 00000100, 所以做或运算结果为00000110,该数与 5 即 00000101做与操作结果为 00000100,即 4。25.以下叙述中错误的是 ( ) 。A) 使用三种基本结构构成的程序只能解决简单问题B) 结构化程序由顺序、分支、循环三种基本结构组成C) C 语言是一种结构化程序设计语言D) 结构化程序设计提倡模块化的设计方法正确答案: A 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 26 页 - - - - - - - - - . . . . . 答疑:【解析】使用顺序,选择 ( 分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。26.数据库应用系统中的核心问题是数据库的设计。27.耦合性和聚性是对模块独立性度量的两个标准。下列叙述中正确的是( ) 。A) 提高耦合性降低聚性有利于提高模块的独立性B) 降低耦合性提高聚性有利于提高模块的独立性C) 耦合性是指一个模块部各个元素间彼此结合的紧密程度D) 聚性是指模块间互相连接的紧密程度正确答案: B 答疑:【解析】模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高聚,低耦合, 即减弱模块之间的耦合性和提高模块的聚性,有利于提高模块的独立性,所以 A)错误,B)正确。耦合性是模块间互相连接的紧密程度的度量而聚性是指一个模块部各个元素间彼此结合的紧密程度,所以C)与 D)错误。28.软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A)错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划, 排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。29.编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。30.冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n1)/2 次,而堆排序在最坏情况下需要比较的次数是31.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是( ) 。A) 10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 26 页 - - - - - - - - - . . . . . B) 8 C) 6 D) 4 正确答案: C 答疑:【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0 的叶子节点总是比度为 2 的节点多一个,所以本题中是516 个。32.栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行, 这种调用符合栈的特点,因此本题的答案为A)。33.以下叙述中正确的是 ( ) 。A) 当对文件的读 ( 写) 操作完成之后,必须将它关闭,否则可能导致数据丢失B) 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C) 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D) C 语言中的文件是流式文件,因此只能顺序存取数据正确答案: A 答疑:【解析】B)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖, 也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用 fseek() 函数进行重新定位即可。D)选项中, C语言中的文件可以进行随机读写。34.有以下程序:#include #include main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 26 页 - - - - - - - - - . . . . . int *a,*b,*c; abc(int *)malloc(sizeof(int); *a1;*b 2;*c 3; ab; printf(%d,%d ,%dn,*a,*b,*c); 程序运行后的输出结果是( ) 。A) 1 ,1,3 B) 2 ,2,3 C) 1 ,2,3 D) 3 ,3,3 正确答案: D 答疑: 【解析】 malloc 函数动态分配一个整型的存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针, 再把它赋给 a,b,c,即让指针变量 a,b,c 都指向刚申请的存空间。所以只有最后一个赋值语句*c 3 的值保留在了该空间,因为 a,b,c 三个指针变量均指向该空间,所以打印该空间的数值为3。35.有以下程序:#include main() unsigned char a2,b 4,c 5,d; d a|b;d & c;printf(%dn,d); 程序运行后的输出结果是( ) 。A) 3 B) 4 C) 5 D) 6 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 26 页 - - - - - - - - - . . . . . 正确答案: B 答疑:【解析】 & 按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为 0。| 按位或,两个相应的二进制位中只要有一个为1,该位的结果值为 1。2 的二进制为 00000010,4 的二进制为 00000100,所以做或运算结果为00000110,该数与 5 即 00000101做与操作结果为 00000100,即 4。36.有以下程序:#include #define PT 3.5; #define S(x) PT*x*x ; main() int a1,b 2;printf(%4.1fn,S(ab); 程序运行后的输出结果是( ) 。A) 7.5 B) 31.5 C) 程序有错无输出结果D) 14.0 正确答案: C 答疑: 【解析】宏定义不是C语句,末尾不需要有分号。所以语句printf(%4.1fn ,S(ab) ;展开后为 printf(%4.1fn ,3.5;*ab*ab;) ;所以程序会出现语法错误。37.有以下程序:#include struct S int a,b; data210,100,20,200; main() struct S pdata1; printf(%dn,(p.a); 程序运行后的输出结果是( ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 26 页 - - - - - - - - - . . . . . A) 10 B) 11 C) 20 D) 21 正确答案: D 答疑: 【解析】声明 data 是结构 S 数组。初始化 data0.a10; data0.b100;data1.a20;data1.b200。主函数中 pdata1 ; 即 p.a data1.a;p.b data1.b;执行语句 printf(%dn,(p.a); 打印输出时 p.a 先增 1 再打印。 p.a data1.a20,先增 1 等于 21。38.以下叙述中错误的是 ( ) 。A) 可以通过 typedef 增加新的类型B) 可以用 typedef 将已存在的类型用一个新的名字来代表C) 用 typedef 定义新的类型名后,原有类型名仍有效D) 用 typedef 可以为各种类型起别名,但不能为变量起别名正确答案: A 答疑:【解析】关键字 typedef 的作用只是将 C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。39.在一个 C源程序文件中所定义的全局变量,其作用域为( ) 。A) 由具体定义位置和extern 说明来决定围B) 所在程序的全部围C) 所在函数的全部围D) 所在文件的全部围正确答案: A 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 26 页 - - - - - - - - - . . . . . 答疑: 【解析】全局变量的作用域是从声明处到文件的结束。所以选择A) 40.有以下程序:#include int fun() static int x1; x*2; return x; main() int i,s1; for(i1;i 3;i ) s*fun(); printf(%dn,s); 程序运行后的输出结果是( ) 。A) 10 B) 30 C) 0 D) 64 正确答案: D 答疑:【解析】本题目中静态局部变量x,在静态存储区分配存储单元,在程序整个运行期间都不释放。所以第一次循环s 的值为 2,第二次循环中,返回的x的值为 4,所以 s 的值为 8,第三次循环,返回的 x 的值为 8,所以 s 的值为 64。41.有以下函数:int fun(char *x,char *y) int n0; while (*x*y) & *x!0) x;y ;n ; return n; 函数的功能是 ( ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 26 页 - - - - - - - - - . . . . . A) 将 y 所指字符串赋给 x 所指存储空间B) 查找 x 和 y 所指字符串中是否有 0 C) 统计 x 和 y 所指字符串中最前面连续相同的字符个数D) 统计 x 和 y 所指字符串中相同的字符个数正确答案: C 答疑:【解析】本题中由循环条件可知遇到0或 x 与 y 所指的字符的值不等中的一个条件时就结束, 所以功能是统计 x 和 y 所指字符串中最前面连续相同的字符个数。42.有以下程序:#include void swap(char *x,char *y) char t; t *x;*x *y;*y t; main() char *s1abc, *s2123; swap(s1 ,s2);printf(%s,%sn,s1 ,s2); 程序执行后的输出结果是( ) 。A) 321 ,cba B) abc ,123 C) 123 ,abc D) 1bc ,a23 正确答案: D 答疑: 【解析】字符串是一个特殊的数组,所以按照数组的规则,s1 应该指向的是数组的首地址,即 abc 的第一个字符的地址。 s2 指向的是 123 的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符a 和1 的容,所以打印输出为D)。43.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 26 页 - - - - - - - - - . . . . . 以下不能将 s 所指字符串正确复制到t 所指存储空间的是 ( ) A) do*t *s ;while(*s ); B) for(i0;tisi;i); C) while(*t*s)t;s D) for(i0,j 0;ti sj ;); 正确答案: A 答疑: 【解析】 do*t *s;while(*s); 不能因为当 *s0时,while(*s)跳出循环,这样字符串结束标志0没有复制给 *t ,造成 *t 不完整。注意,*t *s 是先执行 t *s,然后才进行 t t 1,ss1。B),C),D)都能将 0复制过去。44.以下语句中存在语法错误的是( )。A) char ss620;ss1 right?; B) char ss()20right?; C) char *ss6;ss1 right?; D) char *ss()right?;正确答案: A 答疑:【解析】数组定义后,不可以对数组整体赋值, s 是二维数组,因 ss1是一维字符数组,即字符串,字符串赋值可以使用strcpy(ss1,right);这样的形式, 而选项 A)中对二维数组中的第 “1”维( 相当于一个一维数组 )赋值,是不可以的。选项 B)和 D)是定义时对数组初始化,这是可以的。选项C)中,将字符串在存中的首地址赋给指针数组的一个元素,这是可以的。45.#include main() int b330,1,2,0,1,2,0,1,2,i,j,t1; for(i0;i3;i) for(ji;ji;j) t bibji; printf(%dn,t);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 26 页 - - - - - - - - - . . . . . 程序运行后的输出结果是( ) 。A) 3 B) 4 C) 1 D) 9 正确答案: B 答疑: 【解析】每次循环只循环一次就结束, 第一次外循环时t t b0b001b00101;第二次外循环时t t b1b111b11112;第三次外循环时t t b2b222b22224。46.下列定义数组的语句中,正确的是( ) 。A) #define N 10 int xN; B) int N10; int xN; C) int x0.10; D) int x ; 正确答案: A 答疑: 【解析】数组说明的一般形式为:类型说明符数组名 常量表达式 。B)中 N是变量, 不能用变量定义数组长度。 C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。47.有以下程序:#include main() int n,*pNULL; *p&n; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 26 页 - - - - - - - - - . . . . . printf(Input n:);scanf(%d,&p);printf(output n:);printf(%dn,p); 该程序试图通过指针p 为变量 n 读入数据并输出, 但程序有多处错误, 以下语句正确的是 ( ) A) int n,*pNULL; B) *p &n; C) scanf(%d,&p) D) printf(%dn,p); 正确答案: A 答疑: 【解析】选项 B)的正确写法应为 p&n;选项 C)的正确写法应为scanf(%d,p);选项 D)的正确写法应为 printf(%dn,*p)。48.有以下程序:#include int add( int a,int b) return (ab); main() int k,(*f)(),a5,b 10; f add; 则以下函数调用语句错误的是( )。A) k f(a,b); B) k add(a,b); C) k (*f)(a,b); D) k *f(a,b); 正确答案: D 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 26 页 - - - - - - - - - . . . . . 答疑: 【解析】D)选项中 *f(a ,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。49.若有定义:float x1.5; int a1,b 3,c 2; 则正确的 switch 语句是 ( ) 。A) switch(ab) case 1 :printf(*n); case 2 1:printf(*n); B) switch(int)x); case 1 :printf(*n); case 2 :printf(*n); C) switch(x) case 1.0:printf(*n); case 2.0 :printf(*n); D) switch(ab) case 1 :printf(*n); case c :printf(*n); 正确答案: A 答疑: 【解析】 B)选项中 switch(int)x);语句中不应该有最后的分号。switch(expr1) 中的 expr1 不能用浮点类型或long 类型, 也不能为一个字符串,所以 C)错误。 case 后面常量表达式的类型必须与switch 后面表达式的类型一致,所以 D)错误。50.有以下程序:#include main() int x1,y 0; if(!x)y; else if (x0) if(x) y2; else y 3; printf(%dn,y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 26 页 - - - - - - - - - . . . . . 程序运行后的输出结果是( ) 。A) 3 B) 2 C) 1 D) 0 正确答案: D 答疑:【解析】在 if else 语句中 else总是与离它最近的if配对。本题目中 x为 1 所以!x 为 0,所以执行 else if语句中的容,判断 (x 0) 是否成立,因为x 为 1 所以条件不成立,所以else if 部的 if else 语句不再执行,所以y 的值还是初始值 0。51.若有定义 int x,y;, 并已正确给变量赋值,则以下选项中与表达式(x y)?(x ):(y ) 中的条件表达式 (x y) 等价的是 ( )。A) (x y0) B) (x y0) D) (x y0) 正确答案: A 答疑: 【解析】条件表达式: x表达式 1?表达式 2: 表达式 3 的含义是:先求解“表达式” 1,若为非 0( 真) ,则求解“表达式 2”,将“表达式 2”的值赋给x。若“表达式 1”的值为 0( 假) ,则求解“表达式 3”,将“表达式3”的值赋给 x。在本题中与“表达式1”:(x y) 等价的是 (x y0)。52.zx ,y , y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(z x),(y ),( y) 。然后从左向右先计算表达式zx,因为x先使用后自增,所以z 的值为 1,x 的值为 2。再计算逗号表达式第二个表达式y,此时y 的值为2,最后计算第三个表达式y,y 的值为 3。53.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 26 页 - - - - - - - - - . . . . . 设变量已正确定义并赋值,以下正确的表达式是( ) 。A) x yz5, y B) int(15.8%5) C) x y*5xz D) x 25%5.0 正确答案: A 答疑:【解析】 B)与 D)选项中取模运算符 % 的左右两个操作数均应为整数,所以B)、D)错误。 C)选项中不能将 xy 的值赋给表达式 y*5,所以 C)错误。54.C语言中标识符

    注意事项

    本文(2022年全国计算机二级考试C语言易错知识点汇总 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开