《C语言程序设计》练习题.docx
- 文档编号:8386366
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:26.02KB
《C语言程序设计》练习题.docx
《《C语言程序设计》练习题.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》练习题.docx(21页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》练习题
一、选择题(在A、B、C、D中选择一个正确的)
1、以下叙述不正确的是()。
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
2、C语言规定:
在一个源程序中,main函数的位置()。
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后
3、一个C程序的执行是从()。
A、本程序的main函数开始,到本程序main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。
A、必须为字母B、必须为下划线
C、必须为字母或下划线D、可以是字母、数字和下划线中任一种字符
5、在计算机内部用来传送、存储、加工处理的数据或指令都是以()形式表示的。
A、十进制B、八进制C、二进制D、十六进制
6、十进制数127转换为二进制数是()。
A、1111110B、1111111C、1000000D、10000001
7、十六进制数10H转换为八进制是()。
A、10B、2C、20D、16
8、1KB表示()。
A、1024位B、1000位C、1024字节D、1000字节
9、以下不正确的标识符是()。
A、scoreB、_abcC、x+yD、Hello
10、十进制数107转换成二进制数是()。
A.01101011B.10001101C.01101101D.11101101
11、二进制数1011011转换为十进制数是()。
A、91B、87C、107D、123
12、若x、i、j和k都是int型变量,则计算下面的表达式后,x的值为()。
x=(i=4,j=16,k=32)
A、4B、16C、32D、52
13、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
A、7B、8C、6D、2
14、若有说明语句:
charc=‘\72’;则变量c()。
A、包含1个字符B、包含2个字符
C、包含3个字符D、说明不合法,c的值不确定
15、若有说明语句:
charc=‘\82’;则变量c()。
A、包含1个字符B、包含2个字符
C、包含3个字符D、说明不合法,c的值不确定
16、设变量a是整型,f是单精度实型,i是双精度实型,则表达式
10+‘a’+i*f值的数据类型为()。
A、intB、floatC、doubleD、不确定
17、表达式18/4*sqrt(4.0)/8值得数据类型是()。
A、intB、floatC、doubleD、不确定
18、设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围是()。
A、0~255B、0~32767C、0~65535D、0~2147483647
19、在C语言中,char型数据在内存中的存储形式是()。
A、补码B、反码C、原码D、ASCII码
20、下列标识符中,不能作为合法的C语言变量名的是()。
A.s_1B.intC._floatD._123
21、下列变量定义不合法的是()。
A.short_a=1.1e-1;B.doubleb=1+5e2;
C.intlongc=0xfdaL;D.floatand=1.e-3;
22、若变量x、y已正确定义并赋值,下列符合C语言语法的表达式()。
A.++x,y=x——B.x+1=yC.x=x+10=x+yD.double(x)/10
23、将字符‘A’(ASCII码值为65)赋值给变量c,不正确的表达式是()。
A.c=65B.c=‘A’C.c=‘\65’D.c=‘\101’
24、下列合法的字符常量是()。
A.“n”B.‘ab’C.‘\x3t’D.‘\n’
25、getchar()函数可以从终端输入一个()。
A.字符串B.整型变量表达式值C.实型变量值D.字符
26、以下程序段的输出结果是()。
floatx=-1234.567;
printf(“%-8.3f,”,x);
printf(“%12.3f\n”,x);
A.1234.567,-1234.567B.-1234.567,-1234.567
C.1234.567,-1234.567D.-1234.567,-1234.567
27、以下程序段的输出结果是()。
charc=‘a’;
inta=99;
printf(“%d,%d,%c,%c”,c,a,c,a);
A.97,99,a,cB.a,99,a,99C.99,99,a,aD.97,99,a,97
28、以下程序段的输出结果是()。
inta=3,b=4,c=5;
printf(“%d,%d,%d”,++a+c,c+b++,c+2);
A.9,9,7B.8,10,7C.9,10,7D.9,9,5
29、有以下程序段:
intk1,k2,k3,k4;
scanf(“%d%d”,&k1,&k2);
scanf(“%d,%d”,&k3,&k4);
若将10赋值给变量k1,k2,将20赋值给k3,k4,下列正确的数据输入是()。
A.1010↙20,20↙B.10,10,20,20↙
C.10↙10↙20,20↙D.10102020↙
30、若x为double型变量,则能正确输入x值的语句是()。
A.scanf("%lf",&x)B.scanf("%ld",&x)
C.scanf("%f",&x)D.scanf("%5.1f",&x)
31、阅读以下程序,当输入数据的形式为:
25,13,10
#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=48
B、x+y+z=35
C、x+z=35
D、不确定值
32、阅读以下程序,当输入数据的形式为:
25,13,10
#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=48
B、x+y+z=35
C、x+z=35
D、不确定值
33、有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是()。
□表示空格
A、1□3□2B、1,3,2<回车>
C、a=1□b=3□c=2<回车>D、a=1,b=3,c=2<回车>
34、关于逻辑运算的对象,下面说法正确的是()。
A.只能是0或者1B.只能是0或非0正数
C.只能是整型或字符型数据D.可以是任何类型的数据
35、关于以下程序,说法正确的是()。
#include
voidmain()
{intx,y;
scanf("%d,%d",&x,&y);
if(x>y)
t=x;
x=y;
y=t;
else
x++;
y++;
printf("%d,%d",x,y);
}
A.有语法错误,不能通过编译B.若输入:
2,3↙,则输出:
3,4
C.若输入:
3,2↙,则输出:
2,3D.若输入:
4,3↙,则输出:
4,5
36、若有如下数据描述:
intx=1,y=3,z=5;
”执行表达式“z+=x--&&y++&&z++”后,x,y,z的值分别为()。
A.0、3、5B.0、4、7C.2、3、6D.2、3、7
37、关于以下程序,描述正确的是()。
#include
voidmain()
{inta=1;
if(a)
printf(“*****”);
else
printf(“#####”);
}
A.有语法错误,不能通过编译B.输出:
*****
C.可以通过编译,但不能通过连接D.输出:
#####
38、以下程序段
程序1:
inti=5,s=0;
while(i>0)
i--;
s=s+i;
程序2:
inti=5,s=0;
while(i=1)
{
i--;
s=s+i;
}
两段程序执行后变量s的值分别是()。
A.15,0B.15,15C.0,死循环D.程序1语法错误,死循环
39、以下程序段
程序1:
inti=5,s=0;
while(i>0)
{
s=s+i;
break;
i--;
}
程序2:
inti=5,s=0;
while(i>0)
{
s=s+i;
continue;
i--;
}
两段程序执行后变量s的值分别是()。
A.0,15B.5,15C.15,15D.死循环,死循环
40、在C语言中,关于函数以下说法正确的是()。
A.函数都要完成一定的功能,函数必须有返回值
B.函数声明和函数定义的作用是相同的,没有区别
C.如果没有return语句,被调函数就无法返回主调函数
D.函数声明和函数定义中的函数类型、形参数量和形参类型必须完全相同
41、在C语言程序中,以下描述正确的是()。
A.函数定义可以嵌套,但函数调用不可以嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
C.函数定义和函数调用均不可以嵌套
D.函数定义和函数调用均可以嵌套
42、下列变量定义以后,变量p1,p2是指针变量的是()。
A.int*p1,p2;B.int*p1,*p2;C.*intp1,p2;D.int*p1;*p2;
43、若有如下变量定义:
inta=10,b=20,*p1=&a,*p2=&b;
下列赋值语句与语句b=a;等价的是()。
A.p2=p1;B.*p2=*p1;C.p2=&a;D.p2=*p1;
44、下列二维数组的定义正确的是()。
A.inta[3][];B.floata(3,4);C.floata(3)(4);D.floata[3][4];
45、下列二维数组的初始化,正确的是()。
A.inta[2][]={{1,2,1},{4,3,2}};B.inta[][3]={{1,2,1},{4,3,2}};
C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]=(0,1,2);
46、若有如下定义inta[3][4]={1,2,3,4,5,6,7,8,9,10};则a[1][1]和a[2][2]的初始化值分别为()。
A.6、0B.2、4C.1、4D.0、0
47、若有如下定义:
charstr[]=”English”;
charstr[]={'E','n','g','l','i','s','h'};
则两个数组str的长度分别为()。
A.8,6B.9,7C.8,7D.7,7
48、下列对字符数组s赋值,不合法的()。
A.chars[]=”Quzhou”; B.chars[20]={”Quzhou”};
C.chars[20];s="Quzhou\0"; D.chars[20]={'Q,'u','z','h','o','u'};
33、以下枚举类型定义,枚举常量Thu的值为()。
enumweekday{Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};
A.0B.2C.4D.6
49、若有以下定义,int类型占2个字节,float类型占4个字节,char类型占1个字节。
程序1:
unionmydata程序2:
structmydata
{charc;{charc;
inti;inti;
floatd;floatd;
}data1;}data1;
变量data1占用内存空间大小分别为()字节。
A.4,7B.4,4C.7,4D.7,7
50、若有以下定义,int类型占2个字节
structstu
{charname[10];
intnum;
floatscore;
}student1,*p1=&student1;
则对结构体变量student1的成员num的引用不正确的是()。
A.p1.numB.student1.numC.p1->numD.(*p1).num
51、fopen()函数打开文件错误后的返回值和文件结尾的返回值分别为()。
A.NULL,NULLB.NULL,EOFC.1,0D.无返回值,0
52、变量的指针,其含义是指该变量的()。
A、值B、地址C、名D、一个标志
53、下面程序段的运行结果是()。
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A、67B、0C、字符'C'的地址D、字符'C'
54、若有以下定义,则对a数组元素的正确引用是()。
inta[5],*p=a;
A、*&a[5]B、a+2C、*(p+5)D、*(a+2)
55、若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A、p+5B、*a+1C、&a+1D、&a[0]
56、语句while(!
E);中的表达式等价于()。
A、E==0B、E!
=1C、E!
=0D、E==1
二、填空题
1、若a是int型变量,则下面表达式的值为。
(a=4*5,a*2),a+6
2、若a是int型变量,则计算表达式后a的值为。
a=25/3%3
3、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为,n的值为。
x+=n++
4、若有定义:
intb=7;floata=2.5,c=4.7;则下面表达式的值为。
a+(int)(b/3*(int)(a+c)/2)%4
5、若有定义:
charc='\010';则变量c中包含字符个数为。
6、假定用2个字节存储有符号整数。
-35的原码是H,反码是H,补码是H。
7、标识符只能由、和组成,并且其第一个字符必须是。
8、若有如下数据描述:
inta=1,b=2,c=3;
表达式a>b?
(c=(a++)+(--b)):
(c=(--a)+(b++))运算后,变量a、b、c分别为、、。
9、数学式的C语言表达式为。
10、假设变量a和b均为整型,以下语句不借助其他变量把a、b中的值进行交换。
请填空。
a+=;b=a-;a-=;
11、当a=3,b=2,c=1时,表达式f=a>b>c的值是。
12、当a=5,b=4,c=2时,表达式a>b!
=c的值是。
13、设y为int型变量,请写出描述“y是奇数”的表达式。
14、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式。
15、若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是。
16、若a=1,b=4,c=3,则表达式!
(a
c&&1的值是。
17、执行语句for(i=1;i++<4;);后变量i的值是。
18、在C语言中,二维数组元素在内存中的存放顺序是。
19、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。
三、阅读程序写结果
1、以下程序执行后的输出结果是。
main()
{inta,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)x=15;
elsex=25;
printf("%d\n",d);
}
2、设有程序段
switch(grade)
{case'A':
printf("85-100\n");
case'B':
printf("70-84\n");
case'C':
printf("60-69\n");
case'D':
printf("<60\n");
default:
printf("error!
\n");
}
若grade的值为'C',则输出结果是。
3、以下程序执行后的输出结果是。
main()
{intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf("**1**\n");break;
case1:
printf("**2**\n");break;
}
case2:
printf("**3**\n");
}
}
4、以下程序执行后的输出结果是。
main()
{intnum=0;
while(num<=2)
{num++;
printf("%d\n",num);
}
}
5、以下程序执行后的输出结果是。
#include
main()
{inti;
for(i=1;i<5;i++)
{if(i%2)printf("*");
elsecontinue;
printf("#");
}
printf("$\n");
}
6、以下程序执行后的输出结果是。
#include
main()
{inti,t,sum=0;
for(t=i=1;i<=10;)
{sum+=t;
++i;
if(i%3==0)t=-i;
elset=i;
}
printf("sum=%d\n",sum);
}
7、以下程序执行后的输出结果是。
#include
main()
{intf[10],i;
f[0]=f[1]=1;
for(i=2;i<10;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<10;i++)
{if(i%5==0)printf("\n");
printf("%3d",f[i]);
}
}
8、以下程序执行后的输出结果是
#include
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
returnm;
}
9、以下程序执行后的输出结果是。
#include
intf(inta);
voidmain()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
}
intf(inta)
{intb=0;
staticintc=3;
b++;c++;
return(a+b+c);
}
10、以下程序执行后的输出结果是。
#include
voidmain()
{inta[5]={5,10,-7,3,7},i,j;
sort(a);
for(i=0;i<5;i++)
printf("%4d",a[i]);
}
intsort(inta[])
{inti,j,t;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
11、以下程序执行后的输出结果是。
#include
voidmain()
{inta=1,b=2,c=3;
++a;
c+=++b;
{intb=4,c;
c=b*3;
a+=c;
printf("first:
%d,%d,%d\n",a,b,c);
a+=c;
printf("second:
%d,%d,%d\n",a,b,c);
}
printf("third:
%d,%d,%d\n",a,b,c);
}
12、以下程序执行后的输出结果是。
#include
voidmain()
{inti,j;
for(i=1;i<=3;i++)
{for(j=i;j<=5;j++)
printf("*");
printf("\n");
}
}
13、以下程序执行后的输出结果是。
#include
int main(){
int a=1;
switch(a)
{
case 0:
printf("a");
case 1:
printf("b");
case 2:
printf("c");break;
case 3:
printf("d");
}
return 0;
}
14、以下程序执行后的输出结果是。
#include
intfunc(inta,intb);
voidmain()
{intx=6,r;
r=func(x,x+=2);
printf("x=%d,r=%d\n",x,r);
}
intfunc(inta,intb)
{intc;
c=a+b;
returnc;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 练习题