复习题1.docx
- 文档编号:23260421
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:49
- 大小:33.75KB
复习题1.docx
《复习题1.docx》由会员分享,可在线阅读,更多相关《复习题1.docx(49页珍藏版)》请在冰豆网上搜索。
复习题1
第1章
1.1单选题
1.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是(B)。
A.有零个或多个输入B.有零个或多个输出
C.有穷性D.可行性
2.以下叙述中正确的是(B)。
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C语言源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
3.用C语言编写的代码程序(B)。
A.可立即执行B.是一个源程序
C.经过编译即可执行D.经过编译解释才能执行
4.结构化程序由三种基本结构组成,三种基本结构组成的算法(A)。
A.可以完成任何复杂的任务B.只能完成部分复杂的任务
C.只能完成符合结构化的任务D.只能完成一些简单的任务
5.以下叙述中正确的是(C)。
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
1.2填空题
1.C语言程序的基本单位是___函数_______。
2.一个C语言程序总是从____主函数main()______开始执行,并终止于___主函数main()_______。
3.一个C语言程序是由一个或若干个函数构成的,程序中至少应包含一个__主函数main()___________函数。
4.一个C语言函数一般由两部分组成,它们分别是______函数首部____和_函数体_________。
5.函数体以__{________开始,以___}_______结束。
6.结构化程序的3种基本结构是___顺序结构_______、___选择结构_______和_____循环结构_____。
7.C语言源程序文件名的后缀是_____.c_____,经过编译后,生成的目标文件名的后缀是__.obj________,经过连接后,生成的可执行文件名的后缀是_.exe_________。
第3章
3.1单选题
1.若变量a、i已正确定义,且i已正确赋值,则合法的语句是(B)。
A.a==1B.++i;C.a=a++=5;D.a=int(i);
2.以下程序的输出结果是(D)。
#include“stdio.h”
main()
{inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
A.34B.42C.43D.33
3.若有以下定义和语句:
intu=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w);
则输出结果是(A)。
A.8,16,10B.10,10,10C.8,8,10D.8,10,10
4.若有以下定义和语句:
charc1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出结果是(B)。
A.2,MB.3,E
C.2,ED.输出项与对应的格式控制不一致,输出结果不确定
5.以下程序段的输出结果是(C)。
inta=1234;
printf("%2d\n",a);
A.12B.34
C.1234D.提示出错、无结果
6.以下程序的输出结果是(A)。
main()
{
charc='z';
printf("%c",c-25);
}
A.aB.ZC.z-25D.y
7.以下程序的输出结果是(D)。
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
A.17,021,0x11B.17,17,17
B.17,0x11,021D.17,21,11
8.以下程序的输出结果是(C)。
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
9.下列程序执行后的输出结果是(小数点后只写1位)(A)。
main()
{doubled;floatf;longk;inti;
i=f=k=d=20/3;
printf("%d%ld%f%f\n",i,k,f,d);
}
A.666.06.0B.666.76.7
C.666.06.7D.666.76.0
10.语句
printf("a\bre\'hi\'y\\\bou\n");
的输出结果是(C)。
提示,'\b'是退格符。
A.a\bre\'hi\'y\\\bouB.a\bre\'hi\'y\bou
C.re'hi'youD.abre'hi'y\bou
11.x、y、z被定义为int型变量,若从键盘上给x、y、z输入数据,则正确的输入语句是(B)。
A.INPUTx、y、z;B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);D.read("%d%d%d",&x,&y,&z);
12.设i是int型变量,f是float型变量,要通过语句“scanf("i=%d,f=%f",&i,&f);”给i赋值100,f赋值765.12,则正确的输入为(B)。
A.100765.12B.i=100,f=765.12
C.100765.12D.x=100y=765.12
13.设x为int型变量,则执行以下语句后,x的值为(B)。
x=10;x+=x-=x-x;
A.10B.20C.40D.30
14.下列可作为C语言赋值语句的是(C)。
A.x=3,y=5B.a=b=6
C.i--;D.y=int(x);
15.设x,y,z,t均为int型变量,则执行以下语句后,t的值为(C)。
x=y=z=1;
t=++x||++y&&++z;
A.不定值B.2C.1D.0
16.若以下选项中的变量已正确定义,则正确的赋值语句是(C)。
A.x1=26.8%3B.1+2=x2C.x3=0x12;D.x4=1+2=3;
17.设有以下定义
inta=0;
doubleb=1.25;
charc='A';
#defined2
则下面语句中错误的是(D)。
A.a++;B.b++;C.c++;D.d++;
18.有以下程序
main()
{
intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出的结果是(C)。
A.10,01B.02,12C.102,10D.02,10
19.有以下程序
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是(D)。
A.3B.5C.-1D.-2
20.有以下程序
main()
{chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是(A)。
A.b,bB.b,cC.a,bD.a,c
21.有以下程序
main()
{intm=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是(C)。
A.02560400B.0256256C.256400D.400400
22.有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66。
则输出结果是(A)。
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
23.数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是(C)。
A.3,2B.50,2C.2,2D.2,50
24.有以下程序
main()
{intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是(A)。
A.12353514B.12353513C.12343514D.12343513
25.有以下程序
main()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
……
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)。
A.m=123n=456p=789B.m=123n=456p=789
C.m=123,n=456,p=789D.123456789
26.有以下程序
main()
{inta,b,d=25;
a=d/10%9;
b=a-1;
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是(B)。
A.6,1B.2,1C.6,0D.2,0
27.以下叙述中错误的是(C)。
A.C语句必须以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
28.以下叙述中正确的是(B)。
A.调用printf函数时,必须要有输出项
B.使用putchar函数时,必须在之前包含头文件stdio.h
C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
29.有以下程序
#include“stdio.h”
main()
{ char c1=’1’,c2=’2’;
c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);
}
当运行时输入:
a<回车> 后,以下叙述正确的是(A)。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第2个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
3.2填空题
1.若有定义:
inta=10,b=9,c=8;
接着顺序执行下列语句后:
c=(a-=(b-5));
c=(a%11)+(b=3);
则变量b中的值是___3_______。
2.以下程序的输出结果是__0261________。
main()
{inta=177;
printf("%#o\n",a);
}
3.以下程序的输出结果是__OX10________。
main()
{inta=0;
a+=(a=8);
printf("%#x\n",a);
}
4.以下程序的输出结果是______2____,程序的功能是__1________。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%-3d,%-3d\n",a,b);
}
5.下列程序的输出结果是16.00,请在程序中填空。
main()
{inta=9,b=2;
floatx=_6.6_______,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
6.若有语句:
inti=-19,j=i%4;
printf("%.3d\n",j);
则输出结果是_-003_________。
7.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__5,0,4,C=3
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c);
8.若有程序:
main()
{inti,j;
scanf("i=%d,j=%d";&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入I=10,J=20
9.以下程序的输出结果是
(1)65
(2)65,A(3)56.123400,123.456001(4)3.141600(5)8765.432(6)5.864000e+000(7)_3.141600e+000(8)3.1416(9)8765(10)3.1416,8765.43________。
#include"stdio.h"
main()
{intx=65;
floatpi=3.1416,a=123.456;
doubleb=8765.4321;
printf("
(1)%d\n",x);
printf("
(2)%6d,%c\n",x,x);
printf("(3)%f,%f\n",56.1234,a);
printf("(4)%14f\n",pi);
printf("(5)%14.3lf\n",b);
printf("(6)%e\n",586.4);
printf("(7)%14e\n",pi);
printf("(8)%g\n",pi);
printf("(9)%8.4g\n",b);
printf("(10)%12g,%g\n",pi,b);
}
10.执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=5,x=8.8,y=76.34,c1='A',c2='a',正确的数据输入形式是a=2b=5x=8.8y=76.34c1=65c2=97__________。
main()
{inta,b;
floatx,y;
charc1,c2;
scanf("a=%db=%d",&a,&b);
scanf("x=%fy=%f",&x,&y);
scanf("c1=%dc2=%d",&c1,&c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);
}
11.已知字符A的ASCII码值为65,以下语句的输出结果是B66。
charch='B';
printf("%c%d\n",ch,ch);
12.有以下语句段:
intn1=10,n2=20;
printf("n1=%d\nn2=%d\n",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
13.有以下程序:
#include“stdio.h”
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:
12<回车>,执行后的输出结果是12。
14.以下程序段的输出结果是11_____。
inti=9;
printf("%o\n",i);
15.以下程序运行后的输出结果是252137_______。
main()
{inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n',a,b,c);
}
16.以下程序运行时,若从键盘输入:
102030<回车>,输出的结果是10030_______。
#include“stdio.h”
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&k);
printf("%d%d%d\n",i,j,k);
}
17.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<回车>,则输出结果是_1B______。
#include“stdio.h”
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
18.以下程序运行后的输出结果是88_______ 。
main()
{ int x=0210; printf("%x\n",x);
}
19.以下程序运行后的输出结果是220.000000_______ 。
main()
{char c; int n=100;
float f=10; double x;
x=f*=n/=(c=50);
printf("%d %f\n",n,x);
}
20.已知字母A的ASCII码为65。
以下程序运行后的输出结果是 67G_______ 。
main()
{char a, b;
a=’A’+’5’-’3’; b=a+’6’-’2’ ;
printf("%d %c\n", a, b);
}
第5章
5.1单选题
1.下面程序循环体的执行次数是(C)。
#include"stdio.h"
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
A.3B.2C.1D.0
2.以下叙述中正确的是(D)。
A.do-while语句构成的循环不能用其他语句构成的循环来代替。
B.do-while语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环。
3.执行下列语句后,s的值是(A)。
intn=5,s=0;
while(n)s+=n--;
A.15B.0C.10D.5
4.下面的程序运行后,输出的是(B)。
main()
{intx=3;
do{
printf("%d\n",x-=2);
}while(!
(--x));
}
A.1B.1和-2C.3和0D.死循环
5.以下程序执行后的输出结果是(A)。
#include"stdio.h"
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
A.16B.12C.28D.21
6.以下程序执行后的输出结果是(A)。
#include"stdio.h”
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
A.011122B.012C.012020D.120
7.以下程序执行后的输出结果是(B)。
#include"stdio.h"
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
8.以下程序执行后的输出结果是(D)。
#include"stdio.h"
main()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i+1;
printf("%d\n",s);
}
A.自然数1~9的累加和B.自然数1~10的累加和
C.自然数1~9中的奇数之和D.自然数1~10中的偶数之和
9.以下程序执行后的输出结果是(D)。
#include"stdio.h"
main()
{inti,n=0;
for(i=2;i<5;i++)
{do
{if(i%3)continue;
n++;
}while(!
i);
n++;
}
printf("n=%d\n",n);
}
A.n=5B.n=2C.n=3D.n=4
10.下面程序的功能是输出以下形式的金字塔图案,应在下划线处填入的是(B)。
****
*****
*******
#include"stdio.h"
main()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)printf("");
for(j=1;j<=;j++)printf("*");
printf("\n");
}
}
A.iB.2*i-1C.2*i+1D.i+2
11.以下程序运行后的输出结果是(D)。
#include"stdio.h"
main()
{inti=0,s=0;
for(;;)
{if(i==3||i==5)continue;
if(i==6)break;
i++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题
![提示](https://static.bdocx.com/images/bang_tan.gif)