c语言作业答案.docx
- 文档编号:9979419
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:19
- 大小:25.68KB
c语言作业答案.docx
《c语言作业答案.docx》由会员分享,可在线阅读,更多相关《c语言作业答案.docx(19页珍藏版)》请在冰豆网上搜索。
c语言作业答案
No.:
Name:
第1讲C语言概述
注:
本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。
一、选择题
1.一个C程序的执行是从A。
A)本程序main函数开始,到main函数结束
B)本程序文件第一个函数开始,到最后一个函数结束
C)本程序文件第一个函数开始,到本main函数结束
D)本程序main函数开始,到本程序文件最后一个函
数结束
2.以下叙述不正确的是D。
A)一个C源程序必须包含一个main函数
B)一个C源程序可由一个或多个函数组成
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
3.以下叙述正确的是C。
A)在对一个C程序进行编译的过程中,可发现注释中
的拼写错误
B)在C程序中,main函数必须位于程序的最前面
C)语言本身没有输入输出语句
D)C程序的每行中只能写一条语句
4.一个C语言程序是由B。
A)一个主程序和若干个子程序组成
B)函数组成
C)若干过程组成
D)若干子程序组成
5.以下叙述中正确的是C。
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为
语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
6.下列叙述中正确的是D。
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义
D)C语言的函数可以嵌套调用
7.以下叙述中正确的是A。
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
8.C语言规定,在源程序中,main函数的位置C。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
9.下列选项中不是结构化程序基本结构的是B。
A)顺序结构B)分支结构
C)选择结构D)循环结构
10.下列四组选项中,均不是C语言关键字的是A。
A)defineIFtypeB)getccharprintf
C)includecasescanfD)whilegopow
11.下列四组选项中,均是不合法的标识符的是B。
A)WP0doB)b-agotoint
C)floatla0AD)-123abcTEMP
12.下列可用于C语言标识符的一组是B。
A)void,define,WORDB)a3b3,123,Car
C)For,-abc,IFCaseD)2a,DO,sizeof
13.以面的C程序中,错误的是D。
A)main()B)main()
{intx,y,z;{intx,y,z;
x=0;y=x-1;x=0;y=x+1;
z=x+y;}z=x+y;}
C)main()D)main()
{intx,z;{intx,y,z;
inty;x=0;y=x+1;
x=0;y=x+1;z=x+y,}
z=x+y;}
14.C语言中的标识符只能由字母,数字和下划线三种字符
组成,且第一个字符C。
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母,数字和下划线中任一字符
15.下面各选项中,均是C语言标识符的选项组是B。
A)33weautoB)23me3ew
C)433eelseD)ER-DF32
二、填空题
1.国际上C语言常见的三个标准是:
标准C、ANSIC和ISOC。
2.C语言源程序的文件格式为*.c和*.h。
3.请描述C程序中main函数的作用:
接受系统调用,开始程序的执行,直至程序结束。
三、程序编写题(请在本页背面作答)
1.编写一个C程序,输出以下信息
*******************************
VeryGood!
*******************************
2.编写程序,实现求整数10、20和35的平均值(提示:
注意给出的是三个整数,求出的平均值不是整数)
1
No.:
Name:
第2讲C语言基本数据类型
一、选择题
1.若x、i、j、k都是int型变量,则计算下面表达式
后,x的值为C。
x=(i=4,j=16,k=32)
A)4B)16C)32D)52
2.下列四组选项中,均是合法转义字符的是A。
A)‘\"’‘\\’‘\n’B)‘\’‘\017’‘\"’
C)‘\018’‘\f’‘xab’D)‘\\0’‘\101’‘xlf’
3.下面正确的字符常量是D。
A)"c"B)‘\\’’C)‘’D)‘K’
4.以下叙述不正确的是D。
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,MAX和max是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后,
b中的值将放入a中,b中的值不变
D)从键盘输入数据时,对于整型变量只能输入整型
数值,对于实型变量只能输入实型数值
5.以下叙述正确的是C。
A)在C程序中,每行只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此
实型变量中允许存放整型数
C)在C程序中,%是只能用于整数运算的运算符
D)在C程序中,无论是整数还是实数,都能被准确
无误地表示
6.已知字母A的ASCII码为十进制数65,且c2为字符型,
则执行语句c2=‘A’+‘6’-‘3’后,c2的值为A。
A)DB)68C)不确定的值D)C
7.sizeof(float)是B。
A)一个双精度型表达式B)一个整型表达式
C)一种函数表达式D)一个不合法的表达式
8.设C语言中,一个int型数据在内存中占2个字节,
则unsignedint型数据的取值范围为C。
A)0~255B)0~32767
C)0~65535D)0~2147483647
9.设有说明:
charw;intx;floaty;doublez;则
表达式w*x+z-y值的数据类型D。
A)floatB)charC)intD)double
10.设以下变量均为int类型,则值不等于7的表达式
是C。
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
11.C语言中的基本数据类型包括B。
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)字符型、实型、逻辑型
12.若变量已正确定义并赋值,以下符合C语言语法的表达
式是B。
A)a:
=b+1B)a=b=c+2
C)int18.5%3D)a=a+7=c+b
13.C语言中运算对象必须是整型的运算符是A。
A)%=B)/C)=D)<=
14.若变量a,i已正确定义,且i已正确赋值,合法的语句
是B。
A)a==1B)++i;C)a=a++=5;D)a=int(i);
15.inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)
(x+y)%2/4的值是A。
A)2.500000B)2.750000
C)3.500000D)0.000000
16.在16位C编译系统上,若定义longa;,则能
给a赋40000的正确语句是D。
A)a=20000+20000;B)a=4000*10;
C)a=30000+10000;D)a=4000L*10L;
17.设有intx=11;则表达式(x++*1/3)的值是A。
A)3B)4C)11D)12
18.下列数据中,不合法的C语言实型数据的是C。
A)0.123B)123e3C)2.1e3.5D)789.0
19.若变量a是int类型,并执行了语句:
a=‘A’+1.6;,则正
确的叙述是D。
A)a的值是字符C
B)不允许字符型和浮点型相加
C)a的值是浮点型
D)a的值是字符‘A’的ASCII值加上1
20.设变量n为float类型,m为int类型,则以下能实现
将n中的数值保留小数点后两位,第三位进行四舍五
入运算的表达式是B。
A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0
21.下面四个选项中,均是不正确的8进制数或16进制数的
选项是D。
A)0160x8f018B)0abc0170xa
C)010-0x110x16D)0a127ff-123
22.以下选项中,与k=n++完全等价的表达式是A。
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
23.下面均是合法整型常量的选项是A。
A)160-0xffff011B)-0xcdf01a0xe
C)-019860120668D)-0x48a2e50x
24.假定x和y为double型,则表达式x=2,y=x+3/2的值
是D。
A)3.500000B)3C)2.000000D)3.000000
25.以下变量x,y,z均为double类型且已正确赋值,不能
正确表示数学式子x÷y÷z的C语言表达式是A。
A)x/y*zB)x*(1/(y*z)C)x/y*1/zD)x/y/z
26.已知intk,m=1;执行语句k=-m++;后,k的值是A。
A)-1B)0C)1D)2
27.已知intm;floatk;正确的语句是D。
A)(intk)%mB)int(k)%m
C)int(k%m)D)(int)k%m
28.不能进行++和--运算的数据类型为D。
A)指针B)整型C)长整型D)常量
2
No.:
Name:
29.putchar函数可以向终端输出一个D。
A)整型变量表达式B)实型变量值
C)字符串D)字符或字符型变量值
30.printf函数中用到格式符%5s,其中数字5表示输出的字
符串占用5列。
字符串长度大于5,则输出按方式B;
如果字符串长度小于5,则输出按方式C。
A)从左起输出该字符串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字符串,左补空格
D)输出错误信息
31.阅读以下程序,当输入数据的形式为:
25,13,10ê,则
正确的输出结果为D。
main()
{intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n",x+y+z);}
A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定
32.根据下面的程序及数据的输入和输出形式,程序中输入
语句的正确形式应该为A。
main()
{charch1,ch2,ch3;
输入语句
printf("%c%c%c",ch1,ch2,ch3);}
输入形式:
ABC
输出形式:
AB
A)scanf("%c%c%c",&ch1,&ch2,&ch3);
B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);
C)scanf("%c%c%c",&ch1,&ch2,&ch3);
D)scanf("%c%c",&ch1,&ch2,&ch3);
33.已知ch是字符型变量,下面不正确的赋值语句是A。
A)ch=‘a+b’;B)ch=‘\0’;
C)ch=‘7’+‘9’;D)ch=5+9;
34.若变量已正确说明为float型,要通过语句scanf
("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋
予33.0,下列不正确的输入形式是B。
A)10ê22ê33B)10.0,22.0,33.0ê
C)10.0ê22.033.0êD)1022ê33ê
35.下列程序段的输出结果是:
C。
inta=1234;floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A)无输出B)12,123.5,12345.5
C)1234,123.5,12345.5D)1234,123.4,1234.5
36.已有定义inta=-2;和输出语句printf("%8lx",a);以
下正确的叙述是D。
A)整型变量的输出形式只有%d一种
B)%x是格式符的一种,可适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,
但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字
段的宽度
二、填空题
1.若有定义:
intm=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16。
2.在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768˜32767。
3.若a是int型变量,则计算表达式a=25/3%3后a的值为2。
4.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10,n的值为6。
5.若有定义:
charc="\0108F\0";则字符串c中包含的字符个数为5。
6.定义inta=5,b;,则执行表达式b=++a*--a之后,变量b的值为25。
7.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为102或‘f’。
8.以下程序段的输出结果是i:
dec=-4,oct=177774,hex=fffc,unsigned=65532。
main(){shorti;i=-4;printf("\ni:
dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);}
9.假设变量a和b均为整型,请填空使得以下语句可以不借助任何变量把a、b中的值进行交换。
a+=b;b=a-b;a-=b;
10.有一输入语句scanf("%d",k);则不能使float类型变量k得到正确数值的原因是:
(1)k应该加上取地址符号&,成为&k和
(2)float型数据不能用%d格式来输入。
三、程序编写题(请在本页背面作答)
1.输入圆半径(5)和圆心角(60_C),输出圆的周长、面积和扇形周长、面积。
2.输入一个华氏温度,要求输出摄氏温度。
公式为C_5
9pF_32q,输出要有文字说明,取2位小数。
3
No.:
Name:
第3讲算法与程序基本结构
一、选择题
1.如下程序的输出结果是A。
main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;}
printf("a=%d,b=%d\n",a,b);}
A)a=2,b=1B)a=1,b=1
C)a=1,b=0D)a=2,b=2
2.以下程序执行后输出结果是C。
main()
{inti=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);}
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
3.如下程序的输出结果是C。
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
A)0.000000B)0.250000
C)0.500000D)1.000000
4.设intx=1,y=1;表达式(!
x||y--)的值是B。
A)0B)1C)2D)-1
5.若运行时给变量x输入12,则以下程序的运行结果
是A。
main()
{intx,y;
scanf("%d",&x);
y=x>12?
x+10:
x-12;
printf("%d\n",y);}
A)0B)22C)12D)10
6.在C程序中,判逻辑值时,用”非0”表示逻辑值”真”,
又用”0”表示逻辑值”假”。
在求逻辑值时,逻辑表达式
值为”真”和”假”分别用A表示。
A)1和0B)0和1C)非0和非0D)1和1
7.以下4个选项中,不能看做一条语句的是D。
A);B)a=5,b=2.5,c=3.6;
C)if(a<5);D)if(b!
=5)x=2;y=6;
8.能正确表示逻辑关系:
"a≥10或a≤0"的C语言表达式
是D。
A)a>=10ora<=0B)a>=0|a<=10
C)a>=10&&a<=0D)a>=10||a<=0
9.如下程序的输出结果是C。
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);}
A)0B)1C)2D)3
10.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面
表达式中,值为0的表达式D。
A)x&&yB)x<=y
C)x||++y&&y-zD)!
(x z||1) 11.若有条件表达式(exp)? a++: b--,则以下表达式中能完 全等价于表达式(exp)的是B。 A)(exp==0)B)(exp! =0) C)(exp==1)D)(exp! =1) 12.以下程序的输出结果是A。 main() {inta=4,b=5,c=0,d; d=! a&&! b||! c; printf("%d\n",d);} A)1B)0C)非0的数D)-1 13.设有inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&& (n=c>d)后n的值是B。 A)1B)2C)3D)4 14.下面程序D。 main() {inta=5,b=0,c=0; if(a=b+c)printf("***\n"); elseprintf("$$$\n");} A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$ 15.当k的值不为0时,在下列选项中能够将k的值赋给变 量m和n的是B。 A)m=k=nB)(m=k)&&(n=k) C)(m=k)||(n=k)D)(k=m)&&(n=k) 16.已知intt=0;while(t=1){...}则以下叙述正确的 是B。 A)循环控制表达式值为0B)循环控制表达式值为1 C)循环控制表达式不合法D)以上说法都不对 17.下面程序输出结果是B。 main() {intn=9; while(n>6){n--;printf("%d",n);}} A)987B)876C)8765D)9876 18.在下列程序段中,没有构成死循环的是D。 A)B)C)D) inti=10;for(;;);intk=10;ints=36; while (1)do{k++;}while(s) {i=i%3+1;while(k>10);--s; if(i>10) break;} 19.以下程序段的描述,正确的是C。 x=-1;do{x=x*x;}while(! x); A)是死循环B)循环执行两次 C)循环执行一次D)有语法错误 4 No.: Name: 20.在下述程序中,判断i>j共执行的次数是D。 main() {inti=0,j=10,k=2,s=0; {for(;;) {i+=k; if(i>j){printf("%d",s);break;} s+=i;}} A)4B)7C)5D)6 21.下面程序的功能是把316表示为两个加数的和,使两个 加数分别能被13和11整除,请选择填空。 满足题意的选 项是B。 #include main() {inti=0,j,k; do{i++;k=316-13*i;}while(); j=k/11; printf("316=13*%d+11*%d",i,j);} A)k/11B)k%11C)k/11==0D)k%11==0 22.下面程序的运行结果是B。 #include main() {inta=1,b=10; do{b-=a;a++;}while(b--<0); printf("a=%d,b=%d\n",a,b);} A)a=3,b=11B)a=2,b=8 C)a=1,b=-1D)a=4,b=9 23.执行语句for(i=1;i++<4;);后变量i的值是C。 A)3B)4C)5D)不定 24.关于程序段intk=10;while(k=0)k=k-1;下面描述 中正确的是C。 A)while循环执行10次B)循环是无限循环 C)循环体语句一次也不执行D)循环体语句执行一次 25.表达式for(表达式1;;表达式3)可理解为B。 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 26.以下程序的输出结果是B。 main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<3;j++){if(j%2)continue;x++;} x++;} printf("x=%d\n",x);} A)x=4B)x=8C)x=6D)x=12 27.以下描述中正确的是C。 A)因do-while循环中循环体语句只能是一条可执行语句, 所以循环体内不能使用复合语句 B)do-while循环由do开始,用while结束,在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 答案