c语言答案.docx
- 文档编号:30185248
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:51
- 大小:45.04KB
c语言答案.docx
《c语言答案.docx》由会员分享,可在线阅读,更多相关《c语言答案.docx(51页珍藏版)》请在冰豆网上搜索。
c语言答案
习题一
一、选择题
1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符
2.C语言规定,在一个源程序中,main函数的位置C。
A.必须在最开始 B.必须在系统调用的库函数后面
C.可以任意 D.必须在最后
3.C程序中的变量(B)。
A.不用说明B.先说明后引用
C.先引用后说明D.引用和说明顺序无关
4.变量的说明在(B)。
A.执行语句之后B.执行语句之前
C.执行语句当中D.位置无关
5.C语言是一种(C)。
A.机器语言B.符号语言
C.高级语言D.面向对象的语言
6.能将高级语言编写的源程序转换成目标程序的是B。
A.编辑程序B.编译程序
C.解释程序D.连接程序
7.下列各选项都是在C语言程序段中增加的注释,其中注释方法错误的是B。
A.voidmain()/*主函数*/B.voidmain()
{}{pri/*remark*/ntf("student!
");}
C.voidmain()D.voidmain()
{intx/*=10*/;{intx=10;
printf("%d",x);/*printf("%d",x);*/
}}
8.以下叙述中,正确的是C。
A.C程序的基本组成单位是语句B.C程序中的每一行只能写一条语句
C.C语句必须以分号结束D.C语句必须在一行内写完
9.以下叙述中,正确的是A。
A.C程序中,注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
10.以下叙述中,正确的是C。
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的一切优点
二、填空题
1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
8.C语言中常用的预处理命令有三类,分别是文件包含、宏定义和条件编译。
9.C语言源程序文件的扩展名是c,经过编译后,所生成文件的扩展名是obj,经过连接后,所生成的文件扩展名是exe。
10.C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。
习题二
一、选择题
1.下列数据中属于字符串常量的是(B)。
A.ABCB."ABC"C.'abc'D.'A'
2.在计算机内存中,'\n'占用的字节数是(C)。
A.4B.3C.1D.2
3.字符串"ABC"在内存中占用的字节数是(D)。
A.6B.8C.3D.4
4.在C语言中,合法的长整型常数是(B)。
A.568701400B.0LC.0.03546287D.2.654e11
5.char型常量在内存中存放的是(A)。
A.ASCII代码值B.BCD代码值
C.十进制代码值D.内码值
6.下列各项中正确的标识符是(D)。
A.?
bbB.a=8C.b.βD.b_4
7.下列选项中,合法的C语言关键字是D。
A.VARB.cherC.integerD.default
8.下列不正确的转义字符是D。
A.\\B.\0C.\"D.0x4
9.在C语言中,要求运算对象必须是整型的运算符是D。
A./ B.&& C.!
=D.%
10.若有声明语句:
“charc=256;inta=c;”,则执行该语句后a的值为A。
A.256B.65536C.0D.-1
11.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为B。
A.0B.1C.2D.3
12.设a、b均为整型变量,a的值为5,执行下列语句后,b的值不为2的是C。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=(float)a/2
13.执行语句x=(a=3,b=a--)后,x、a、b的值依次是C。
A.3,3,2B.3,2,2C.3,2,3D.2,3,2
14.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是D。
A.3B.0C.9D.-12
15.在下列运算符中,优先级最高的是B。
A.&&B.%C.=D.>=
16.设整型变量a的值为3,则计算表达式a---a后,表达式的值为B。
A.1B.0C.2D.表达式出错
17.设整型变量a、b、c的值均为2,表达式(a--)-(b++)+c++的结果是C。
A.6B.9C.2D.表达式出错
18.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是D。
A.1B.2.5C.2D.2.0
19.下列表达式中符合C语言语法的赋值表达式是C。
A.a=4+b++c=a+8B.a=4+b++=a+8
C.a=(4+b,b++,a+8)D.a=4+b,c=a+8
20.若有以下定义:
chara;intb;floatc;doubled;,则表达式a*b+d-c的值的类型为D。
A.intB.floatC.charD.double
二、填空题
1.在内存中存储"A"要占2个字节,存储'A'要占1个字节。
2.符号常量的定义方法是#define常量名常量。
3.无符号基本整型的数据类型符为unsignedint双精度实型数据类型符为double,字符型数据类型符为char。
4.十进制数673的二进制、八进制和十六进值数分别为1010100001、1241和2A1。
5.在C语言中,书写八进制数时必须加前缀0;书写十六进制数时必须加前缀0x。
6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占2字节、2字节、4字节、4字节和8字节。
7.设有下列运算符:
<<、+、++、&&、>=,其中优先级最高的是++,优先级最低的是&&。
8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。
9.设整型变量x、y、z均为5,则:
①执行x-=y-z后,x的值为5。
②执行x%=y+z后,x的值为5。
10.数学式
的C语言表达式为a/b*c)。
11.设x是int型变量,判断x为偶数的关系表达式为x%2==0。
12.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=′a′+′8′-′3′的值为102。
13.0≤a≤10的C语言表达式为a>=0&&a<=10。
14.若已有声明"intx=4,y=3;",则表达式"x x++: y++"的值是3。 15.有声明"floaty=3.14619;intx;",则计算表达式"x=y*100+0.5,y=x/100.0;"后y的值是3.15119。 三、程序阅读题 1.若从键盘输入3,7<回车>,写出下面程序的运行结果。 C=3 #include voidmain() {inta,b,c; scanf("%d,%d",&a,&b); c=a; if(a&&b)printf("c=%d\n",c); elseprintf("c=%d\n",c--); } 2.写出下面程序的运行结果。 #include voidmain()a2=0 {inta=12,a1,a2,a3;a3=0 a1=(a*=2+5); a2=(a/=a+a); a3=(a+=a-=a*=a); printf("a1=%d\na2=%d\na3=%d\n",a1,a2,a3); } 3.若从键盘输入2,3,4.5,1.6<回车>,写出下面程序的运行结果。 #include voidmain()表达式的值为: 2.500000 {inta,b; floatx,y; scanf("%d,%d,%f,%f",&a,&b,&x,&y); printf("表达式的值为: %f\n",(float)(a+b)/2+(int)x%(int)y); } 4.若从键盘输入3.5,5,6.7<回车>,写出下面程序的运行结果。 #include voidmain()表达式的值为: 3.500000 {inta; floatx,y; scanf("%f,%d,%f",&x,&a,&y); printf("表达式的值为: %f\n",x+a%3*(int)(x+y)%2/4); } 5.若从键盘输入7<回车>8<回车>,写出下面程序的运行结果。 #include voidmain() {inta,b,c; printf("enterfirstinteger: "); scanf("%d",&a); printf("entersecondinteger: "); scanf("%d",&b); c=a+b; printf("\na+b=%d\n",c); } 6.先心算出下面程序的输出,然后再执行程序,对照自己的计算结果是否正确,找一找还有哪些不对的地方? #include voidmain() {inta=0,b=1,c=2,d=3; b=a++&&c++; d=a++||++c; printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); } 7.写出下面程序的运行结果。 #include voidmain() {charch=′*′;* printf("%3c\n",ch);** printf("%2c%c%c\n",ch,ch,ch);***** printf("%c%c%c%c%c\n",ch,ch,ch,ch,ch); } 8.写出下列程序的运行结果。 #include voidmain() {charc1=′A′,c2=′B′,c3=′C′,c4=′\101′,c5=′\x42′; printf("A%cb%c\t%c\tabc\n",c1,c2,c3); printf("\t\b%c%c",c4,c5);AAbBCabc }AB 9.写出下面程序的运行结果。 #include voidmain() {inti,j,m,n;6,5,6,5 i=5; j=6; m=++i; n=--j; printf("%d,%d,%d,%d",i,j,m,n); } 10.写出下面程序的运行结果。 #include voidmain() {inta,b,c; floatx,y;a=3,b=7,c=3,x=7.8 x=3.6; y=4.2; a=(int)x; b=(int)(x+y); c=a%b; x=x+y; printf("a=%d,b=%d,c=%d,x=%f\n",a,b,c,x); } 习题三 一、选择题 1.printf()函数输出实数时,使用的格式字符是(C)。 A.%dB.%cC.%fD.%o 2.下面变量说明中(C)是正确的。 A.char: a,b,c;B.chara;b;c; C.chara,b,c;D.chara,b,c 3.putchar()函数可以向终端输出一个(D)。 A.整型变量表达式值B.实型变量值 C.字符串D.字符或字符型变量值 4.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是C。 A.inta=b=c=5;B.inta,b,c=5; C.inta=5,b=5,c=5;D.a=b=c=5; 5.若变量a是int类型,并执行了语句: a='A'+1.6;,则正确的叙述是D。 A.a的值是字符CB.a的值是浮点型 C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCII码值加上1 6.已知ch是字符型变量,下面正确的赋值语句是B。 A.ch='a+b';B.ch='\x7f';C.ch='\08';D.ch="\"; 7.设x、y均为float型变量,则以下不合法的赋值语句是A。 A.++x;B.y=((int)x%2)/10;C.x*=y+8;D.x=y=0; 8.以下格式符中,不能用来输入实型数的是D。 A.fB.e(E)C.g(G)D.x 9.若floatnum=123.456,以%+10.4f的格式输出,结果正确的是D。 A.123.456000B. 123.4560C.123.4560D. +123.4560 10.以下说法正确的是D。 A.输入项可以是一个实型常量 B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d"); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f); D.当输入数据时,必须指明变量的地址,如scanf("%f",&f); 11.阅读以下程序,当输入数据的形式为: 25,13,10〈CR〉,正确的输出结果为A。 #include voidmain() {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.不确定值 12.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋值10.0,b赋值22.0,c赋值33.0,不正确的输入形式是C。 A.10<回车>B.10.0<回车> 22<回车>22.033.0<回车> 33<回车> C.10.0,22.0,33.0<回车>D.1022<回车> 33<回车> 13.已知i、j、k为int型变量,若从键盘输入"1,2,3<回车>",使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是C。 A.scanf("%2d%2d%2d",&i,&j,&k);B.scanf("%d%d%d",&i,&j,&k); C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k); 14.若有以下程序段(n所赋的是八进制数) intm=32767,n=032767; printf("%d,%o\n",m,n); 执行后的输出结果是A。 A.32767,32767B.32767,032767 C.32767,77777D.32767,077777 15.下列程序段 inta=1234; printf("%2d\n",a); 的输出结果是C。 A.12B.34C.1234D.提示出错,无结果 16.设定义: longx=-123456L,则下列能够正确输出变量x值的语句是B。 A.printf("x=%d\n",x);B.printf("x=%ld\n",x); C.printf("x=%8dL\n",x);D.printf("x=%LD\n",x); 17.下列程序 #include voidmain() {printf("%d\n",NULL);} 运行后的输出结果是A。 A.0B.1C.-1D.NULL没定义,出错 18.下列程序 #include voidmain() {charx=0xFFFF;printf("%d\n",x--);} 执行后的输出结果是C。 A.-32767B.FFFEC.-1D.-32768 19.设有如下程序段 intx=2002,y=2003; printf("%d\n",(x,y)); 则以下叙述中正确的是D。 A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B.运行时产生出错信息 C.输出值为2002D.输出值为2003 20.有以下程序段 intm=0,n=0;charc='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入: 10A10<回车>,则输出结果是A。 A.10,A,10B.10,a,10C.10,a,0D.10,A,0 二、填空题 1.以下程序的输出结果是x=1y=2*sum*=3 10squaredis: 100。 main() {intx=1,y=2; printf("x=%dy=%d*sum*=%d\n",x,y,x+y); printf("10squaredis: %d\n",10*10); } 2.以下程序的输出结果是a=325x=3.14。 main() {inta=325;doublex=3.1415926; printf("a=%2dx=%7.2f\n",a,x); } 3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。 请填空: a+=b;b=a-b;a-=b; 4.若x为int型变量,则执行以下语句后x的值是-14。 x=7; x+=x-=x+x; 5.C语句可以分为五类,含7种控制语句、声明语句、表达式语句、空语句和复合语句。 6.赋值语句是由赋值表达式加上一个分号构成。 7.a=12,n=5,表达式a%=(n%=2)值是0。 8.有一个输入函数scanf("%d",k);则不能使float类型变量k得到正确数值的原因是k前无& 和%d与k的类型不一致。 9.putchar()函数可以向终端输出一个字符。 10.已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是-12C410.34。 scanf("%o%x%e",&i,&j,&x); 11.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则按实际宽度输出。 12.使用getchar()和putchar()函数必须在源程序中加#include"stdio.h"。 13.下面程序的功能为: 输入三角形的三边长,输出三角形的面积。 请将程序填写完整。 #include voidmain() {floata,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%7.2f\n",area); } 14.请写出下列程序的输出结果1,2,3。 #include voidmain() {inta=2,b=1,c=3,t; if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;} printf("%d,%d,%d",a,b,c); } 15.若执行以下程序时,从键盘上输入了5和6,则输出的结果是c=5 1。 #include voidmain() {int a,b,c; scanf("%d%d",&a,&b); c=a; printf("c=%d\n",c); printf("%d\n",a&&b); } 习题四 一、选择题 1.执行下面的程序段后,b的值为(B)。 intx=35; charz='A'; intb; b=((x&&15)&&(z<'a')); A.0B.1C.2D.3 2.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n-c>d)后n的值为(B)。 A.1B.2C.3D.4 3.若k是int型变量,且有下面的程序段,输出结果是(A)。 K=-3; if(k<=0)printf("####"); elseprintf("&&&&"); A.####B.&&&& C.####&&&&D.有语法错误,无输出结果 4.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的达式是(D)。 A.A&&BB.A<=B C.A‖B+C&&BD.! ((A C‖1) 5.阅读程序: #include"stdio.h" main() {floatx,y; scanf("%f",&x); if(x<0.0)y=0.0; elseif((x<5.0)&&(x! =2.0)) y=1.0/(x+2.0); elseif(x<10.0)y=1.0/x; elsey=10.0; printf("%f\n",y); } 若运行时从键盘上输入2.0,则上面程序的输出结果是(C) A.0.000000B.0.250000 C.0.500000D.1.000000 6.阅读程序: #include"stdio.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 答案