c同步练习330份.docx
- 文档编号:10428339
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:123
- 大小:154.76KB
c同步练习330份.docx
《c同步练习330份.docx》由会员分享,可在线阅读,更多相关《c同步练习330份.docx(123页珍藏版)》请在冰豆网上搜索。
c同步练习330份
第一章计算机基础
易错题型分析
C语言的基本单位是()
A函数B过程C子程序D子例程
答案:
(A)
[分析考点]C语言是函数式的语言,它的基本单位是函数,在C语言中任何程序都是由一个或多个函数构成。
2.C语言源程序文件的后缀是____,经过编译后,生成文件的后缀是______,经过连接后,生成文件的后缀是______
答案:
____.C____.obj____.exe__
[分析考点]C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成文件的后缀是.exe
3.N----S流程图里不包含有()
A判断框B流程线C矩形框D文字描述
答案:
(B)
[分析考点]N---S流程图是把一个个矩形直接连接起来,中间没有流程线,判断框、矩形框、文字描述是N—S流程图从传统的流程图继承下来的,是不可缺少的,
[历年考试回顾]
[06/09]下列叙述正确的是
A.每个C程序文件中都必须有一个main()函数
B.在C程序中mian()函数的位置是固定的
C.C程序中所有函数之间都可以相互调用,与函数的位置无关
D.在C程序中不能定义另一个函数
[07/04]以下叙述中错误的是
A.计算机不能直接执行用C语言编写的源程序
B.C程序经C编译程序编译后,生成后缀为。
OBJ的文件是一个二进制文件
C.后缀为。
Obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D后缀为.obj和.exe的二进制文件都可以直接运行
[07/09]C语言源程序名的后缀是
A.exeB.cC.objD.cp
第二章数据类型
知识体系:
一:
什么是标识符
1.组成:
字母,数字,下划线。
2.由字母,或下划线开头。
3.区分大小写:
page和Page是两个不同的标识符
4.长度:
有编译系统确定的,
二:
分类:
1.关键字:
系统给好的,规定好的,
2.预定义标识符:
printfscanfdefine
3.用户自定义标识符:
除上两种外其他合法的标识符都是用户标识符。
三:
整型数据、实型数据和字符型数据。
常量A)定义:
程序运行中,不能被改变的量。
B)分类:
1)整型常量1,23...
2)实型常量3.0,15.3...
3)字符型常量'a','b','12'
4)字符串常量"chenzhe","zhangsan"
C)符号常量:
看下面的一段程序:
#include
#definePI3.14159/*定义符号名PI为3.14159*/
voidmain()
{doubler,s;
r=5.0;
s=PI*r*r;
printf("s=%lf\n",s);}
变量:
A)定义:
在程序中其值可以改变的量,
B)变量的实质:
代表内存中的存储单元。
C)变量应先定义后使用。
D)特性:
1.凡未被事先定义的,不能作为变量名。
2.每一变量被指定为一确定类型,在编译时就能为其分配相同的存储单元。
3.指定每一变量属于一类型,这就便于在编译时,根据此检查该变量所进行的运算是否合法。
二:
AA整型常量
1.整型常量的表示方法:
十进制、八进制、十六进制
2.三种进制的表示方法:
1).十进制数:
用一串连续的数字来表示,中间不准许有空格或其他字符。
如12、23、54
2).A)八进制数:
用数字"0"开头(注意:
不是字母"o")如:
011、027...
B)八进制只能用合法的八进制数字表示,数字“0--7”,但当输入非法数字时候,C程序不会提示,只是得不到正确的结果。
C)十六进制数:
十六进制数用数字"0"和字母"x"开头,十六进制只能含有合法的十六进制数字,字母"a--f"数字"0-9"如0x11
3.进制之间的转化(略)
4.整型常量分类:
短整型、基本整型、长整型、无符号型
BB整型变量:
1.分类:
短整型、基本型、长整型、无符号型
2.整型变量的定义:
1)基本整型变量用类型名关键字int进行定义。
2)一个定义语句必须用分号“;”结束。
在一个定义语句中可以同时定义多哥变量,变量之间用“,”隔开。
3)一般计算机为基本类型开辟4个字节的存储单元,基本整型准许存放的数值范围是:
---
4)当程序中用以上方式定义变量时,i,j,k时,编译程序会为变量i,j,k都开辟存储单元,但并没有在存储单元中存放任何初值,因此这些存储单元中原有的信息垃圾并没有被清楚,这时,变量中的值是无意义的,称变量值“无意义”
5)C语言规定,可以在变量定义的同时给变量赋初值,也称为变量的初始化。
二:
AA实型常量
1.表示形式:
1)小数形式
例如:
12.3、0.214、12.、.23、…..
2)指数形式
注意:
1)C语言语法规定,字母E或e之前后必须有数字,且e或E后面的指数必须为整数,字母或前后以及数字之间不得有空格
2.BB实型变量
1)C语言中实型变量分为:
单精度和双精度两类,分别用类型名”float”和“double”.
例如:
单精度定义:
floati,j;
易错题型分析
合法的关键字是()
AintegerBsinCstringDvoid
答案(D)
分析:
本题考察了关键字,参考课本附录一
不合法的用户标识符()
APRLNTFBMainCfileDxyz.c
答案(D)
分析:
C语言中使用了”.”是不对的。
用户标识符只允许出现“数字、字母和下划线“
以下不能定义为用户标识符的是()
AscanfBVoidC_3com_Dint
答案(D)
分析:
int是C语言的关键字,关键字不能作为用户标识符,void是C语言的关键字,但是Void却不是。
因为在C语言中区分大小写。
以下正确的整型常量是()
A34.1B-80C2,000D123
答案(B)
分析:
选项A后边有小数点,C后边有逗号,D后边有空格这些都是不对的
不正确的实型常量
A7.374E-1B0.1254E2C-44.44D123e-2
答案(B)
分析:
字母E的前后都不能有空格
下列叙述不正确的是()
A在C程序中,%是只能用于整型运算符的
B在C程序中,无论是整数还是实数都能无误的表示
C若a是实型变量。
C程序中a=20是正确的,因此实型变量允许被整型数赋值的。
D在C程序中,语句之间必须用分号“;“分隔
答案(B)
分析:
选项B只对了一半,整数可以无误的表示,而实数并不都是正确无误的
若变量已正确赋值,下面的表达式正确的是
Aa=a+7;Ba=7+b+c
Cint(12.3/4)Da=a+7=c+d
答案(B)
分析:
A选项后面不应该有分号,C选项(int)—类型名缺少括号,D选项C中规定在赋值号的左边应当是一个变量或是一个代表存储单元的表达式,但是在a+7=c+b中,赋值号的左边出现了一个算术表达式a+7;所以只有答案B是正确的。
结果正确的是()
mian()
{inta=3;
printf(“%d,%d,%d,%d\n”,++a,--a,a++,a--);
}
A3,2,2,3B4,3,3,4C3,3,3,2D4,3,3,4
答案(A)
分析:
a=3,执行printf语句,其求值是自右向左运算,先计算a--;a的值是3,再计算a++,a的值是2,依次向后。
。
。
。
。
。
++i,--i(在使用前,先使i的值加减1,在使用此表达式的值参加运算)
i++,i--(在使用后,使i的值加减1,在使用此表达式的值参加运算)
[历年考试回顾]
[06/09]下列定义的语句错误的是()
Aint_int;Bdoubleint_;CcharFor;Dfloatus$;
[06/09]若变量x,y已经正确定义并赋值,正确的表达式是
A++x,y=x--Bx+1=yCx=x+10=x+yDdouble(x)/10
[07/04]按照C语言规定的用户标识符命名规则,不能出现在标识符中的是
A大写字母B连接符C数字字符D下划线
[07/04]若有代数式(其中e仅代表自然对数的数,不是变量),则以下能够正确表示该代数式的C语言表达式是()
A)sqrt(abs(n^x+e^x))B)qrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x)))
D)sqrt(fabs(pow(x,n)+exp(x)))
[07/04]设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是
A)k++B)k+=1C)++kD)k+1
[07/04]以下关于long、int和short类型数据占用内存大小的叙述中正确的是
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
[06/09](19)有以下程序,其中%u表示按无符号整数输出(B)
main()
{unsignedintx=0xFFFF;/*x的初值为十六进制数*/
printf(“%u\n”,x);
}程序运行后的输出结果是
A)-1B)65535C)32767D)0xFFFF
[06/09](6)执行以下程序后的输出结果是____a=14____
main()
{inta=10;
a=(3*5,a+4);printf(“a=%d\n”,a);
}
第二部分:
上机题
根据课本例题2.1的模式:
1.已知长方体的,长a=1、宽b=2、高c=3、编写程序:
求他的表面积s,和体积v
2.已知圆环的内半径r0=1;外半径r=3.4,编写程序,求圆环的面积s;(∏=3.141593)
3.课后习题2.24、2.25
经典例题
练习1:
给出程序的输出结果
main()
{inti=010,j=10;
printf("i=%d\nj=%d\n",i,j);
}
练习2:
给出程序的输出结果
main()
{floatx;
inti;
x=3.6;
i=(int)x;
printf("x=%f,i=%d",x,i);
}
练习3:
给出程序的输出结果
main()
{
printf("%d,%d",5%-3,-5%3);
}
第三章顺序结构
知识体系:
一:
基本概念:
1.按他们在程序中出现的顺序逐条执行,由这样的语句构成的程序结构,称为顺序结构。
2.把数据从计算机内部送到计算机外部设备上的操作叫做"输出";从计算机外部设备将数据送入计算机内部的操作叫做"输入";
3.C语言本身不提供用于输入和输出的语句。
在C语言程序中,可以通过调用标准库函数提供的输入和输出函数来实现数据的输出和输入;
二:
printf函数
A)1.printf函数是C语言提供的标准输出函数,它的作用是在终端设备上按指定的格式输出。
2.printf函数的一般调用形式:
printf(格式控制,输出项表)如果在printf函数之后加上";",就构成了输出语句。
例如:
printf("a=%d,b=%d",a,b);
1.printf是函数名,
2."a=%d,b=%d"是格式字符串
3.a,b是输出项表中的输出项。
B:
格式控制的作用
1。
它总是由“%”开始,进跟其后的是格式描述符。
2。
为各输出提供格式转换说明
3。
提供需工原样输出的文字或字符。
a:
在格式控制内,除格式说明外的其它字符,一律原样输出.例:
printf("a=%d",a);"a="原样输出。
b:
printf("%%%");
三:
printf函数中常用的格式说明
1。
格式字符:
(见表3。
1)
2。
修饰符(位于%和格式字符之间)
A:
l长dldflf
h短hd
+使输出的数字总是有“+”或“-”
-左对齐
0前导0
#在输出的八进制或十六进制前加前导“0”或“0x”,在其他进制前无效。
B)输出数据所占宽度;(m。
n)
(1)对整数指定宽度:
(d)
m:
当变量的实际宽度小于m时,在边多佘位置补空格;当变量的实际宽度大于m时,按实际输出。
n:
当变量的实际宽度大于n时,按实际输出;当变量的实际宽度小于n时,左边多余位置补0;
(2)对实数指定宽度:
(m.n)
m:
用于指定实数的总体宽度。
包括小数点
当实数的总体宽度小于m时,在数据左侧补空格;当实数的总体宽度大于m时候,m无效。
n:
用于指定实数的小数部分的宽度;
当实数的小数部分小于n时,在数据右侧补0;当实数的小数部分大于n时候,将小数的多余部分四舍五入。
第二部分:
输入函数:
1.定义:
2.scanf函数的一般调用形式:
1.scanf(格式控制,输出项表)如果在scanf函数后加上";"就构成了输入语句:
例如:
scanf("%d%d",&a,&b);求地址运算符
scanf函数名;
“%d%d”格式控制
&a,&b是输入项表中的两个输入项;
三:
格式说明:
A格式控制串的作用是指定输入时的数据转换格式;既格式转换说明
B格式转化说明符是由"%"开始其后是格式描述符
C输入项表中的各输入项用逗号隔开,各输入项只能是合法的地址表达式。
四:
scanf函数中常用的格式字符
c字符
d十进制整数
i输入整形数,可以是带前导0的八进制数,也可以是带前导0x的十六禁止数;
o以八进制形式输入整形数,可以带前导0,也可以不带前导0
x以十六禁止形式输入整形数,可以带前导0x也可以不带前导。
u无符号十进制数
f(lf)输入单晶度(双精度)数
s输入字符串
二练习部分《考点分析》:
1.已有定义:
intx;执行以下语句后的输出结果是___
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
2.有以下程序段
inta=0,b=0,c=0;
scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);
执行以上语句时从键盘输入:
22
则变量a中的值是__b中的值是__c中的值是___
3.以下合法的C语言赋值语句是______
Aa=b=51Bk=int(a+b);Ca=51,b=51D--i;
4.若变量已正确定义,要将a和b中的数值进行交换,下面的选项中不正确的是()
A、a=a+b,b=a-b,a=a-b
B、t=a,a=b,b=t;
C、a=t;t=b;b=a;
D、t=b;b=a;a=t;
易错题型分析
下列选项中不是C语言语句的是
A:
{inti;i++;printf(“%d”,i);}B:
;
C:
a=5,c=10D{;}
[答案]C
[分析]:
A中用一对花括号把若干语句括起来,按语法规定这是一个复合语句。
B中只有一个;这是一个空语句。
D是一个复合语句,C是一个逗号表达式,最后没有分号。
因此不是语句。
若有以下程序字段
intm=0xabc,n=0xabc;
m-=n;
printf(“%X\n”,m);
A0X0B0x0C0D0XABC
[答案]C
[分析]:
格式字符x或X是以十六进制无符号形式输出整型数(不带前导0x或0X),对于x用abc输出,X用ABC输出。
若有说明:
doublea;则正确的输入语句为
Ascanf(“%lf”,a);Bscanf(“%f”,&a);
Cscanf(“%lf”,&a)Dscanf(“%le”,&a);
[答案]D
[分析]:
A变量不变量的地址。
B因为double格式为%lf或%leC语句末没有加分号
有以下程序段:
intm=0,n=0;charc=’c’;
scanf(“%d%c%d”,&m,&c,&n);
printf(“%d,%c,%d\n”,m,c,n);
若从键盘上输入10A10(回车),则输出结果是
A10,A,10B10,a,10C10,a,0D10,A,0
[答案]D
[分析]:
在scanf语句,键盘输入时,使用的间隔符应与输入项之间的间隔符一致
[历年考试回顾]
[07/04]:
设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(注:
□代表空格字符)(D)
A10□X□20□Y〈回车〉B10□X20□Y〈回车〉
C)10□X〈回车〉D)10X〈回车〉
20□Y〈回车〉20Y〈回车〉
[07/04]:
有以下程序,其中%u表示按无符号整数输出
main()
{unsignedintx=0xFFFF;/*x的初值为十六进制数*/
printf(“%u\n”,x);
}程序运行后的输出结果是
A)-1B)65535C)32767D)0xFFFF
[07/09]:
以下关于long、int和short类型数据占用内存大小的叙述中正确的是
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
[07/09]:
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;
[07/09]有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为
A)55566.0B)566.0C)7777.0D)566777.0
[07/09]:
执行以下程序时输入1234567
#include
main()
{inta=1,b;
scanf("%2d%2d",&a&b);printf("%d%d\n",a,b);
}
[07/04]:
执行以下程序后的输出结果是a=14
main()
{inta=10;
a=(3*5,a+4);printf(“a=%d\n”,a);
}
[08/04]有以下程序段:
charch;intk;
ch='a';k=12;
printf("%c,%d",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是:
A因变量类型与格式描述符的类型不匹配输出无定值
B输出项与格式描述符的个数不符,输出为零值或不定值
Ca,97,12k=12
Da,97,k=12
第二部分上机
编写程序。
输入两个整数:
1500和250,求出他们的商和余数并进行输出。
编写程序,读入三个双精度的数,求出他门的平均值,并保留2位小数,(用两中方法来完成:
提示:
I模仿例题3.2II利用宽度控制说明)
编写程序:
读入三个整数,a,b,c然后交换他们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a,b,c;(用多种方法)
Si
第4章选择结构练习题
一、填空题
1、下面程序的输出结果是()
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
2、下列程序的运行结果是()
main()
{inti=1,j=2,k=3;
if(i++&&k--==j)
printf("%d,%d,%d",i++,j,k);
else
printf("%d,%d,%d",++i,++j,k--);
}
3、下面程序的运行结果是()
main()
{intx=5,y=9,z;
z=(x==y?
x:
(y=7));
printf("\n%d,%d",x,y);
}
4、下面程序的输出结果是()
main()
{inta=0,b=0,c=0;
if(++a>0||++b>0)
++c;
printf("\na=%d,b=%d,c=%d",a,b,c);
}
5、下面程序的运行结果是()
main()
{intx;
scanf("%d",&x);
if(x++>5)
printf("%d",x);
else
printf("%d\n",x--);
}
6、下面程序的运行结果是()
main()
{intx,y=1;
if(y!
=0)
x=5;
printf("%d\t",x);
if(y==0)
x=3;
else
x=5;
printf("%d\t\n",x);
}
8、下面程序的运行结果是()
main()
{intc,x,y;
x=1;y=1;c=0;
c=x++||y++;
printf("\n%d%d%d\n",x,y,c);
}
9、下面程序的运行结果是()
main()
{intx=100,a=10,b=20,c=5,d=0;
if(a
if(b!
=15)
if(!
c)
x=1;
elseif(d)x=10;
x=-1;
printf("%d\n",x);
}
10、下面程序的运行结果是()
main()
{intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf("x=1y=0\n");break;
case1:
printf("y=1\n");break;
}break;
case2:
printf("x=2\n");
}
}
易错题型分析
下面错误的语句是()
A)if(a>b)printf(“%d”,a);B)if(&&);a=m;
C)if
(1)a=m;elsea=n;D)if(a>0);else{a=n;}
[答案]B
[分析]本题考察了if语句和关系运算的知识,&&不能作为表达式。
以下程序的输出结果是()
#include“stdio.h”
main()
{inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf(“a=%d,b=%d,c=%d”,a,b,c);}
Aa=10,b=50,c=10Ba=10,b=30,c=10
Ca=50,b=30,c=10Da=50,b=30,c=50
[答案]A
[分析]本题考察了if语句的执行流程。
首先要注意到“a=b,b=c;”是一条语句,因为a>b的值是假,if语句什么都不能做。
在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同步 练习 330