C语言易错题
更新时间:2024-04-07 08:04:01 阅读量: 综合文库 文档下载
易错题整理
1. void main() {
float y=3.667;
printf(\}
结果:* 4*
2.void main() {
int x=1,y=2;
printf(\ printf(\ printf(\}
结果:1, 3, 2,3
3.void main()
{ int x=0,y=0,z=0; do {
switch(y++) {
case 1:x++;break; case 3:x+=3;break;
default:x=x%2;continue; } z++; }
while(y<5);
printf(\}
结果:x=0, y=5, z=2
4. 若有定义和语句:double x=34213.6894; printf(\则下列说法真确的是:
A. 输出值为*3.42e+04* B. 输出值为*3.42e+004*
C. 输出值为*34.21e+04* D. 输出格式符宽域不够,不能输出值 答案:B
5. void main() {int a=2,b=5;
printf(\
1
}
结果为:
A. a=%2,b=%5 B. a=2,b=5
C. a=%%d,b=%%d D. a=%d,b=%d 答案:D
6. 以下叙述中正确的是
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出
7. 结构化程序由三种基本结构组成,三种基本结构组成的算法
A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务
8.以下选项中可作为C语言合法常量的是 A)-80. B)-080
C)-8e1.0 D)-80.0e01 9.将十进制数23588转化成二进制: 错:#include
void main() {
unsigned long a=23588,n=0;/*数据类型长度可能不够*/ while(a)
{n=10*n+a%2; /*首次a%2可能为0 */ a=a/2;
}
while(n)
{printf(\ n=n/10; }
printf(\}
对:#include
void main() {
int a=23588,n=0,b[20]; while(a)
{b[n++]=a%2; a/=2; }
2
for(n--;n>=0;n--)
printf(\ printf(\}
10.设有如下函数: func(float a)
{printf(“%d\\n”,a*a); }
则函数的类型是:
A.无法确定 B.int C.float D.void (在C语言中,若对函数类型未加显示地说明,则函数的隐含类型为int型)
11. 宏定义#define E 2.71828中,宏名“E”代替一个 字符串 。
12.下面的叙述中,错误的是:
A.#include命令可以包含扩展命名为“.c”的文件
B.#include“test\\\\test.h”是一个正确的文件包含命令 C.#include>中可以包含路径
D.使用#include>比#include“?”节约编译时间
(#include命令的包含文件可以带目录,并且目录的书写格式必须符合操作系
统的习惯,由于它不是C语言的字符串,不能用“\\\\”来表示“\\”)
13.下列程序的结果是: #include
{int a=1,b=2; PR(D1,a); PR(D2,a,b); }
A. 1 B. 1 C. 1 D.程序错误,值为任意值 12 1 2 12
3
14. 下列程序的结果是: #include
#define PR(a) printf(\ #define PRINT(a) PR(a);printf(\ main()
{int i,a=1;
for(i=0;i<3;i++) PRINT(a+i); printf(\ }
结果为:1 2 3 ok!
15.以下可以讲char型变量s中的大小写字母进行转化(即大写改小写,小写改大写)的语句是:
A.s=s^32 B.s=s&32 C.s=s|32 D.s=s+32
16.以下程序的输出结果是: main()
{char a=0xf0,b=03,c; c=~a&020>>b;
printf(\ }
结果:2 (注意运算符优先级高低)
17.若有以下定义和语句: int *p,i=1;
double *w,a=3.5; p=&i; w=&a;
在执行了p=(int *)w;语句后,*p的值为:
A.4 B.3.5 C.3 D.一个整数 注意:double类型的数据与int类型数据存放的机制不同,因此无法估计此证书的确切值
18.已知函数说明语句:void *f();则它的含义是: A.函数f的返回值是一个通用型指针
B.函数f的返回值可以是任意的数据类型 C.函数f无返回值
D.指针f指向一个函数,该函数无返回值
19.已知int a[]={1,2,3,4},y,*p=&a[1]; y=(*--p)++;则y的值是
4
A.1 B.2 C.3 D.4
20.函数的功能是交换变量x和y的值,且通过正确调用返回交换结果,能正确执行此功能的函数是: A.funa(int *x,int*y) {int *p;
*p=x;*x=*y;*y=*p; }
B.funb(int x,int y)
{int t;
t=x;x=y;y=t; }
C.func(int *x,int *y)
{*x=*x+*y;*y=*x-*y;*x=*x-*y; }
D.fund(int *x,int *y)
{*x=*y;*y=*x; }
21.设有如下定义 struct sk {int n; float x; }data,*p;
若要使p指向data中n域,真确的赋值语句是:
A.p=&data.n; B.*p=data.n;
C.p=(struct sk *) &data.n; D.p=( struct sk *) data.n;
22.以下程序的输出结果是 256 。 union
{char m[2]; int k;} mk; main()
{mk.m[0]=0; mk.m[1]=1;
printf(\} 解:char占一个字节,int占两个字节,共用体变量mk的两个成员共占用存储单元,给数组赋值后,存储状况如下图:
5
23.下列叙述中正确的是:
A. C语言中既有逻辑类型也有集合类型 B. C语言中没有逻辑类型但有集合类型 C. C语言中有逻辑类型但没有集合类型
D. C语言中既没有逻辑类型也没有集合类型
24.以下程序的输出结果是: main()
{int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) k=k+p[i++]; printf(\}
A.58 B.56 C.45 D.24
25.以下程序段中,能过通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元是:
A.int fun(int *p) B.int fun(int **p) {int s; p=&s;} {int s; *p=&s;} main() main() {int *p; {int *p; fun(p); fun(&p); } }
C.#include
{*p=(int *)malloc(2);} {p=(int *)malloc(sizeof(int));} main() main() {int *p; {int *p; fun(&p); fun(p);
答案: C
26.以下叙述中不正确的是:
A. C语言中的文本文件以ASCⅡ码形式存储数据 B. C语言中对二进制文件的访问速度比文本文件快 C. C语言中,随机读写方式不适用于文本文件 D. C语言中,顺序读写方式不适用于二进制文件
27.设有以下定义: struct ss
{int info; struct ss *link;} x,y,z; 且已建立如下图所示链表结构: 请写出删除点y的赋值语句是 x.link = y.link 。
6
x y z
28.下列选项中非法的表达式是:
A.0<=x<100 B.i=j==0 C.(char) (65+3) D.x+1=x+1;
29.若已定义的函数有返回值,则以下关于该函数的调用的叙述中错误的是: A. 函数调用可以作为独立的语句存在 B. 函数调用可以作为一个函数的实参 C. 函数调用可以出现在表达式中
D. 函数调用可以作为一个函数的形参
30.有以下函数定义:
void fun(int n,double x) { ?? } 若下列选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是: A.fun(int y,double m); B.k=fun(10,12.5); C.fun(x,n); D.void fun(n,x);
31.有以下程序的输出结果是: void fun(char *a,char *b) {a=b; (*a)++;} main()
{char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(\}
A.Ab B.aa C.Aa D.Bb
32.若程序中包含头文件stdio.h ,以下选项中,正确运用指针变量的程序段是 A.int *i=NULL; B.float *f=NULL; scanf(\C.char t='m', *c=&t; D.long *L; *c=&t; L='\\0';
33.有以下程序执行的结果是: char fun(char x,char y) {if (x main() 7 {char a='9',b='8',c='7'; printf(\ } A.函数调用出错 B.8 C.9 D.7 34.有以下程序执行后输出结果是 #include int f(int *a) {return (*a)++;} main() {int s=0; {int a=5; s+=f(&a); } s+=f(&a); printf(\} A.10 B.9 C.8 D.7 35.有以下程序执行后输出结果是 #define f(x) x*x main() {int i; i=f(4+4)/f(2+2); printf(\} A.28 B.64 C.4 D.3 36. 有以下程序执行后输出结果是 #include {char name[10]; int num; int score; }; main() {struct STU s[5]={{\ 0043,680},{\ int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score > p[j]->score) 8 {t=p[i];p[i]=p[j];p[j]=t;} printf(\} A.550 550 B.680 680 C.580 550 D.580 680 37.下面程序的运行结果是: int f(int a[],int n) {if(n>1) return a[0]+f(&a[1],n-1); else return a[0]; } main() {int aa[3]={1,2,3},s; s=f(&aa[0],3); printf(\} 答案: 6 38.结构化程序有三种基本结构组成,三种基本结构组成的算法: A. 可以完成任何复杂的任务 B. 只能完成部分复杂的任务 C. 只能完成符合结构化的任务 D. 只能完成一些简单的任务 39.有以下程序运行后输出结果是 main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q; *q=*p+5; printf(\} A.运行后报错 B.6 6 C.6 11 D.5 10 注:(指针q无指向) 若是 main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q; q=p+5; printf(\ %d\\n\} 则答案为C 9 40.有以下程序运行后输出结果是 main() {char s[]=\ puts(ps+4); *(ps+4)=0; puts(s); } A.n/No B./No C.n/No D. Yes Yes Yes /No /No Yes 注: 在C语言中,所有指针变量都可以赋予“空”值,以下语句是等价的: p=NULL;p=0;p='\\0'; *(ps+4)=0;等价于*(ps+4)= '\\0'或*(ps+4)= NULL; 41.以下程序中,for循环体执行的次数是 4 。 #define N 2 #define M N+1 #define K M+1*M/2 main() {int i,n=0; for(i=1;i 42.执行下面的程序段后,变量k中的值为 A) 不定值 B) 0 C) 30 D) 10 int k=3, s[2]; s[0]=k; k=s[1]*10; 43.在C程序中,可把整型数以二进制形式存放到文件中的函数是 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数 44.下列程序执行后的输出结果是 A) -32767 B) FFFE C) -1 D) -32768 10 main() { char x=0xFFFF; printf(\ 45.若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); { case 1.0: printf(\ case 2.0: printf(\} } C) switch(b) D) switch(a+b); { case 1: printf(\default: printf(\case 1+2: printf(\} } 46.以下程序段的执行结果是 A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24 int a, y; a=10; y=0; do { a+=2; y+=a; printf(\if(y>20) break; } while(a=14); C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 11 47.语句printf(\的输出结果是 (说明:'\\b'是退格符←) A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bou C) re'hi'you D) abre'hi'y\\bou 12
正在阅读:
C语言易错题04-07
人教版 成才之路数学A版选修(2-3)1-2-2-203-28
中考复习 二次函数与三角形综合问题--06-10
UG教程—实体造型功能04-29
金属热处理期末复习05-12
宇昌水土保持方案实施工作总结报告06-01
游上海科技馆作文500字07-16
植物与植物生理 教案10-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 错题
- 语言
- 江苏省常州市2018届九年级《数学》上学期十月月考试题新人
- 完整版采区设计说明书
- 数字电路与逻辑设计试题与答案
- 2014年教师招聘考试1654道经典题型
- 敏捷供应链下物流管理
- Windows文件共享原理
- 虾蟹肝胰腺组织学研究进展
- 无线电台站频率占用费年度收费标准表
- 地方信访工作机构信访数据统计表
- 数学建模实验报告4
- 案例:百联西郊的商业定位和布局
- 中国梦 青春美 - 海利杯首届湛江市青年“创业希望之星”征文演讲
- 桐乡市新居民积分制管理暂行办法 - 图文
- 万古江河中国历史简介 - 图文
- 不良贷款责任追究办法
- 江苏省徐州市、连云港市、宿迁市2018-2019学年高考数学三模试卷
- 重要-信令分析 - 图文
- DLT645-2007通讯规约说明
- 2015年浙江中考科学模拟试卷7
- 黑龙江省农村信用社个人贷款管理实施细则