C语言程序设计期末复习题1.docx
- 文档编号:27505064
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:33
- 大小:57.34KB
C语言程序设计期末复习题1.docx
《C语言程序设计期末复习题1.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末复习题1.docx(33页珍藏版)》请在冰豆网上搜索。
C语言程序设计期末复习题1
一、单项选择题
1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为()
A.连接、编译B.连接、运行
C.编译、运行D.编译、连接
2.下列说法正确的是()
A.一个c语言程序并非总是从主函数位置开始执行的
B.一个c语言程序有且只有一个主函数
C.函数可以嵌套定义,不可以嵌套调用
D.程序函数的位置不可以任意
3.下面是合法C语言标识符的是( )
A.2A_K;B._M+N;
C.–M3;D.AC_2;
4.下列格式符中,可以用于控制字符输出的是()
A.%dB.%f
C.%oD.%c
5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是()
A.4;B.16;
C.30;D.50;
6.执行语句“for(i=1,s=0;i<=5;i++)s+=i;”后,变量s、i的当前值是()
A.10,5B.15,6
C.15,5D.10,6
7.若有定义 intx,*p;,则以下正确的赋值表达式是()
A.p=x;B.p=&x;
C.*p=&x;D.*p=*x;
12.下列说法正确的是()
A.一个c语言程序并非总是从主函数位置开始执行的
B.一个c语言程序有且只有一个主函数
C.函数可以嵌套定义,不可以嵌套调用
D.程序函数的位置不可以任意
21.有如下程序的输出结果是()
main()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
A34B42C43D33
22.下列说法不正确的是()
A主函数main中定义的变量在整个文件或程序中有效(全局变量)
B不同函数中,可以使用相同名字的变量
C形式参数是局部变量
D在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效.
23.算术表达式x+a%3*(int)(x+y)%2/4的值为()。
其中,x=3.5,a=7,y=4.7。
A2.500000B3.500000C3.000000D4.500000
24.设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=3;
则执行表达式(m=a>b)&&(n=c>d)后,n的值为()P95
A1B0C3D4
25.以下程序段运行后i的值为()。
inti=0,c=1;
switch(c)
{case1:
i+=2;
case2:
i+=1;break;
default:
i+=4;
}
A3B7C1D4
27.以下程序的输出结果为()。
main()
{chars1[40]="country",s2[20]="side";
inti=0,j=0;
while(s1[i]!
='\0')i++;
while(s2[j]!
='\0')s1[i++]=s2[j++];
s1[i]=’\0’;
printf("%s\n",s1);
}
AsideBcountryCsidetryDcountryside
28.有如下函数调用语句:
sum(r1,r2+r3,(r4,r5));则含有的实参个数是()。
A3B5C4D有语法错
29.有如下函数:
intf(inta)
{autointb=0;
staticintc=3;
b=b+1;
c=c+1;
return(a+b+c);
}
如果有inti,j;,则执行两次调用i=f(3);j=f(3)后,i,j值为()
A7,7B7,8C8,9D8,7
30.设有说明int(*ptr)();其中标识符ptr是()。
A是一个指向整形变量的指针B是一个指针,它指向一个函数值是int的函数
C是一个函数名D定义不合法
31.常数的书写格式决定了常数的类型和值,0x1011是()
A.8进制整型常量B.字符常量
C.16进制整型常数D.2进制整型常数
32.执行下列程序后,a值为:
()
inta,b;
a=15;b=12;
a=(a--==b++)?
a%5:
a/5;
(A)0(B)2.8(C)4(D)2
33.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
(A)地址传递(B)单向的值传递
(C)由实参传给形参,再由形参传给实参(D)传递方式由用户指定
34.有如下程序段
int*p,a,b=1;
p=&a;*p=10;a=*p+b;
执行该程序段后,a的值为()
(A)12(B)11(C)10(D)编译出错
36.设j为int型变量,下列for循环语句的执行结果是()
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf(“%d”,j);
}
(A)63(B)74(C)62(D)741
38.下列各语句定义了数组,其中一个不正确的是()
A.staticinta[5],b[2][3];
B.charno[30],rec[30,6];
C.intx[]={2,4,6,8,10};
D.intx[10]={1,2,3,4,5};
41.以下选项中合法的字符常量是()
A.“B”B.‘\010’
C.68D.D
42.若有以下定义,则表达式的值为3的是()
intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)
C.x%=k-k%5D.(x%=k)-(x%=5)
43.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()
A.1B.2
C.2.0D.2.5
44.判断字符变量c的值为数字(‘0’---‘9’)则返回1,否则返回0,可用表达式()
A.‘0’<=c<=‘9’B.‘0’<=c&&c<=‘9’
C.‘0’<=c||c<=‘9’D.‘9’>=c>=‘0’
45.有如下程序,该程序的执行结果是()
main()
{
intn=9;
while(n>6)
{n--;printf(“%d”,n);}
}
A.987B.876
C.8765D.9876
48.对于以下程序段,运行后i的值为()
inti=0,a=1;
switch(a)
{
case1:
i=2;
case2:
i=3;
default:
i=4;
}
A.2B.0
C.3D.4
51.下列字符串不是标识符的是()
A.sumB.AverageC.Day_nightD.M.D.JOHN
52.在C语言中,回车换行符是()
A.\nB.\tC.\vD.\b
53.在C语言中,语句和数据定义是用()作为结束标记的
A.句号B.逗号C.分号D.括号
55.以下程序的输出结果是()
main()
{charc1=’a’,c2=’A’;
printf(“%c,%c,%d,%d\n”,c1,c2,c1,c2);}
A.因输出格式不合法,输出出错信息
B.a,A,97,65C.65,97,A,aD.a,A,a,A
56.完成C源文件编辑后经过编译、连接,生成文件扩展名为()的可执行文件。
A..cB..exe
C..objD..txt
57.下列运算符优先级最高的是()
A.>B.+C.&&D.!
=
58.一个C程序的执行是从()
A.本程序中的main函数开始,到main函数结束
B.本程序中的第一个函数开始,到本程序中的最后一个函数结束
C.本程序中的main函数开始,到本程序中的最后一个函数结束
D.本程序中的第一个函数开始,到本程序中的main函数结束
59.以下叙述中正确的是()
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其它函数之前
D.所有被调用的函数一定要在调用之前进行定义
60.设a和b均为double型常量,且a=5.0、b=2.0,则表达式(int)(a/b)的值是()
A.2.5B.2.000000C.2.500000D.2
61.取模运算符“%”不能用于哪一种类型的运算()
A.X=10%3B.X=6%3C.X=1024%1D.X=6.28%3.14
12.下列对变量的定义哪个正确()
A.intx,inty;B.chars1,s2C.floata,b;D.charif;
63.字符串“HELLO!
”的长度是多少?
在内存中占用多少单元数?
()
A.长度为6,占6个单元B.长度为6,占7个单元
C.长度为7,占7个单元D.长度为7,占6个单元
64.下列错误的赋值语句是()
A.X=Y++=1;B.X=3*4;C.X=‘F’-‘A’D.X=2*(++I);
65.如果:
a=5;b=6;那么:
a>=b&&(a+5)>=(b-3)和a>b||a!
=b的值各是多少()
A.0,0B.0,1C.1,0D.1,1
66.以下()是C语言提供的合法数据类型关键字
A)FloatB)ChARC)IntgerD)unsigned
67.以下选项中合法的字符常量是()
A)“B”B)‘\010’C)68D)D
68.设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是()printf(”%d,%d\n”,x--,--y);
A)10,2B)9,3C)9,2D)10,3
69.下列字符串不是标识符的是()
A.YEARB.AverageC.stUDENTD.7_num
76.以下程序的输出结果是()
main()
{inta=3;
printf(“%d\n”,(a+=a-=a*a));
}
A)–6B)12C)0D)–12
79.语句“x*=y+2;”与下列()语句结果一样
A.x=x*y+2;B.x=2+x*y;
C.x=x*(y+2);D.x=y+2*x;
80.下列各语句中,能够且仅输出整型变量a、b中最大值的是()
A.if(a>b)printf(″%d\n″,a);printf(″%d\n″,b);
B.printf(″%d\n″,b);if(a>b)printf(″%d\n″,a);
C.if(a>b)printf(″%d\n″,a);elseprintf(″%d\n″,b);
D.if(a
82.以下不能正确定义二维数组的选项是()
A)inta[2][2]={{1},{2}};
B)inta[2][]={{1,2},{3,4},{5,6}};
C)inta[2][2]={{1},2,3};
D)inta[][2]={1,2,3,4};
84.设j为int型变量,下列for循环语句的执行结果是()
for(j=7;j>3;j--)
{if(j%3)j--;
--j;--j;
printf(“%d”,j);}
(A)4(B)40(C)死循环(D)41
87.下列字符序列中,不合法的C语言标识符的是()。
A.abc123B.no.1C._123_D._ok
90.当调用函数时,实参是一个数组名,则向函数传送的是()。
A.数组的长度B.数组的首地址
C.数组每一个元素的地址D.数组每个元素中的值
91.下列程序运行的情况是()。
main()
{inti=1,sum=0;
while(i<10)sum=sum+1,i++;
printf("i=%d,sum=%d",i,sum);
}
A.i=2,sum=1B.i=9,sum=9C.i=10,sum=9D.运行出现错误
92.设x、y和z都是int类型变量,且x=3,y=4,z=5,则下面的表达式中,值为0的表达式是()。
A.’x’&&’y’B.x<=y
C.x||y+z&&y-zD.!
((x z||1) 93.以下程序的输出结果是()。 main() {intn=4; while(n--) printf(〞%d〞,--n); } A.20B.31C.321D.210 94.以下对一维整型数组a正确定义的是()。 A.inta(10);B.intn=10,a[n]; C.intn;D.#defineSIZE10 scanf("%d",&n);inta[SIZE]; inta[n]; 95.若定义如下变量和数组: inti; intx[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是()。 for(i=0;i<3;i++)printf("%d",x[i][2-i]); A.159B.147C.357D.369 97.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为() A.连接、编译B.编译、连接 C.连接、运行D.运行 99.C语句“x*=y+2;”还可以写作() A.x=x*y+2;B.x=2+y*x; C.x=x*(y+2);D.x=y+2*x; 100.下列格式符中,可以用于控制输出十进制整数的是() A.%dB.%f C.%oD.%c 102.执行语句“for(i=1;i<=10;i++)s+=i;”后,变量s、i的当前值是() A.55,11B.55,10 C.45,10D.45,11 103.下列各语句定义了数组,其中一个不正确的是() A.inta[5],b[2][3]; B.charno[30],rec[]; C.intx[]={2,4,6,8,10}; D.intx[10]={1,2,3,4,5}; 105.执行语句“for(i=0;i<10;++i,++a)scanf(″%d″,a);”试图为int类型数组 a[10]输入数据,是错误的。 错误的原因是() A.变量不能做自增运算B.数组首地址不可改变 C.++i应写作i++D.++a应写作a++ 二、填空题 1.设inta=5,c=32;floatb=2.5;,表达式b+c/a的值为_8.500000__。 2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是_12_____。 3.设a=3,b=4,c=5。 则a+b>c&&b==c的值为____0____. 4.有如下程序段: intk=10; while(k=0)k=k-1; 则循环体语句执行__0_____次。 5.inti=0,s=0; while(i 等价于inti,s; for(__i=0,s=0____;_i 8.设有以下变量定义,并已赋确定的值,则表达式: w*x+z-y所求得的数据类型为__double_______。 charw;intx;floaty;doublez; 9.当a=5,b=4,c=2时,表达式a>b! =c的值为___1_______。 10.用for循环打印147101316192225,其语句应为: for(i=1;i<=9;i++)printf(“%3d”,(i-1)*3+1) 11.执行语句“a=5+(c=6);”后,变量a、c的值依次为_11______,__6______。 12.若有定义: inta[3][4]={{1,2},{0},{4,6,8,10}};则a[1][2]的值为0,a[2][1]的值为_6。 21.将p说明为字符数组指针,数组大小为10,应写为_chara[10],*p=a; 25.对于整形变量i,j值分别为1,2,执行scanf(“i=%d,j=%d”,&i,&j);则在输入数据时如何输入_i=1,j=2___________ 31.一个C源程序至少包括一个主函数,即main()。 32.一个函数由两部分组成,它们是函数头和函数体。 33.C语言的数据类型有三大类,它们是整型、实型、字符型。 34.C程序中的实型常量都是双精度浮点型常量。 34.break语句只能用于循环语句和switch语句。 35.若x=3,y=z=4,下列各式的结果是什么? (1)(z>=y)? 1: 01 (2)z>=y&&y>=x1 (3)x x: y4 (4)x x++: y++4 (5)x&&x||x1 38.当a=5,b=4,c=2时,表达式a 39.若有说明inti,j,k;i=10,j=20,k=30;则表达式k*=i+j的值为900。 40.若已知a=10,b=20,则表达式! a 41.用for循环打印147101316192225,其语句应为_ for(i=1;i<=9;i++)printf(“%3d”,(i-1)*3+1)。 或者 for(i=0;i<=8;i++)printf(“%3d”,i*3+1) 42.设i、j、k均为int变量,执行完下面的循环后i、j、k值为_i=5,j=5,k=10__。 for(i=0,j=10;i 执行完下列语句段后,i值为_153__。 inti=3,j; j=10*i; i+=j*=i+2; 43.若有定义: inta[3][4]={{1,2},{3,7,5},{4,6,8,10}};则a[1][2]的值为5。 44.若有以下定义和语句,则++(*p)的值为3。 inta[4]={1,2,4,5},*p; p=&a[1]; 45.1≤x<30的C语言表达式是__(x>=1)&&(x<30)___。 46.C语言中,数组元素的下标下限为__0___。 47.表达式! 9! =0的值为0。 51.若声明“chara[15]=″Windows-XP″;”, 执行语句“printf(″%s″,&a[3]);”的输出结果为__dows-XP_____________。 53.设inta=5,c=32;floatb=2.5;,表达式b+c%a的值为__4.500000__。 55.计算x、y之和的平方根,表达式应写作_sqrt(x+y)__。 56.执行语句“a=5+(c=6);”后,变量a、c的值依次为_11______,____6_______。 57.执行语句“n=1;if(n=5)n++;"后,变量n值为_6____________。 58.执行语句: s=0;n=5; while(--n)s+=n; 执行后,变量s、n值依次为__10,0________________,。 59.若声明“chara[15]=″Windows-9x″;”, 执行语句“printf(″%c″,a[3]);”的输出结果为_d__。 60.程序中使用了输入、输出函数(如printf()),则应当包含的头文件名为: _stdio.h____________。 65.若有定义: inta[3][4]={{1,2},{0},{4,6,8,10}};则a[1][2]的值为_____0_____,a[2][1]的值为____6_______。 69.执行语句"for(s=0,i=1;i<11;i++){if(i==6)continue;s+=i;} "后,s值为__49_。 70.若声明"chara[]=″windows″,b[]=″9x″;",执行语句"printf(″%s″,strcat(a,b));"的输出结果为_windows9x。 P126 71.C语言中能表示a≥10或a≤10的关系表达式是_(a>=10)||(a<=10)。 75.程序中使用了数学函数(如abs()),则应当包含的头文件名为: __math.h__。 76.假设int变量占两个字节的存储单元,若有定义: intx[10]={1,2,3};则数组x在内存中所占的字节为_20_____。 三、程序阅读题 1.#include main() {inti,j,m,n; i=8; j=10; m=++i; n=j++; printf(″%d,%d,%d,%d″,i,j,m,n); } 输出结果: 9,11,9,10 2..#include main() {inti; for(i=3;i<10;i++) {if(i*i/20>1)break; printf("%d",i); } printf("\n"); } 输出结果: 3456 3.#include intfac(intn) {staticintf=1; f=f*n; return(f); } main() {inti; for(i=2;i<=5;i++) printf(“%d! =%d\n”,i,fac(i)); } 输出结果: 2! =2 3! =6 4! =24 5! =120 4.#include main() {chars[]=“ABCD”,*p; for(p=s+1;*p! =’\0’;p++) pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末 复习题