没有合适的资源?快使用搜索试试~ 我知道了~
全国计算机二级考试C语言易错知识点汇总.doc
需积分: 5 0 下载量 143 浏览量
2022-07-18
15:12:37
上传
评论
收藏 75KB DOC 举报
温馨提示
试读
25页
全国计算机二级考试C语言易错知识点汇总.doc
资源详情
资源评论
资源推荐
1 / 25
计算二级 C 语言易错知识点
1. 指针是用来存放地址的变量,用(类型名 *指针变量名)的形式定义。赋值时
应将某个变量地址即&x 赋给指针变量
2.
设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp) 的返
回值为
A) 0
B) ' '
C) 非 0 值
D) NULL
【解析】本题考查文件的定位,feof 函数的用法是从输入流读取数据,如果到
达文件末尾(遇文件结束符),eof 函数值为非零值,否则为 0,所以选项 C 正
确。
3.
有以下程序
#include <stdio.h>
main()
{
int a=5,b=1,t;
t=(a<<2)|b;
printf("%d",t);
}
程序运行后的输出结果是
A) 1
B) 11
C) 6
D) 21
【解析】本题考查位运算,以与按位或操作,将 a 左移一位相当于是将 a 乘以了
4,所以 a<<2 等于 20,二进制表示为 00010100,与 b 按位或得到 00010101,即
21,所以选项 D 正确。
4.
有以下程序
#include <stdio.h>
#define N 5
#define M N+1
#define f(x) (x*M)
main()
2 / 25
{ int i1,i2;
i1=f(2) ;
i2=f(1+1) ;
printf("%d %d\n",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 <stdio.h>
#include <string.h>
struct A
{
int a;
char b[10];
double c;
};
void f(struct A t);
main()
{
struct A a={1001,"ZhangDa",1098.0};
f(a);
printf("%d,%s,%6.1f\n", a.a,a.b,a.c);
}
void f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
}
程序运行后的输出结果是
A) 1002, ZhangDa,1202.0
3 / 25
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.
以下结构体类型说明和变量定义中正确的是
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;
4 / 25
【解析】本题考查结构体的相关知识,选项 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 <stdio.h>
void fun(char *a,char *b)
{ while(*a=='*') a++;
while(*b=*a){ b++;a++;}
}
main()
{ char *s="*****a*b****" , t[80];
fun(s,t); puts(t);
}
程序的运行结果是
A) ab
B) a*b
C) *****a*b
D) a*b****
剩余24页未读,继续阅读
智慧安全方案
- 粉丝: 3648
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python 程序语言设计模式思路-行为型模式:策略模式:将算法封装成独立的类,并使它们可以互相替换及支付模式数据压缩
- main.py
- Last Loaded Test.DBK
- Screenshot_20240520_163011.jpg
- ubuntu-python3-whisper-tornado docker镜像 Dockerfile
- ubuntu-python3-whisper-tornado docker镜像07
- 新录音 8.m4a
- ubuntu-python3-whisper-tornado docker镜像
- ubuntu-python3-whisper-tornado docker镜像
- ubuntu-python3-whisper-tornado docker镜像09
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0