C语言练习6.docx
《C语言练习6.docx》由会员分享,可在线阅读,更多相关《C语言练习6.docx(70页珍藏版)》请在冰豆网上搜索。
C语言练习6
1、选择题
1、C语言程序中的函数是由()组成
A、函数名和函数体
B、返回值类型和函数名
C、函数首部和函数体
D、函数名和参数
2、下列叙述错误的是()
a)C语言程序一行内可以有多条语句
b)C语言程序一条语句可以分写在多行
c)一个C语言程序可以有多个main()函数
d)一个C语言程序只能有一个main()函数
3、结构化程序设计的3种基本结构是顺序结构、()和循环结构。
a)选择结构
b)逻辑结构
c)递归结构
d)嵌套结构
4、结构化程序设计采用的方法不包括()
a)模块化设计
b)封装、继承和多态
c)自顶向下、逐步细化
d)结构化编码
5、下列关于C语言程序的叙述错误的是()
a)注释内容必须放在/*和*/之间
b)一个C语言程序由一个或多个函数组成
c)编译时注释部分的错误会被发现
d)可以在“{}”内写若干条语句,构成复合语句
6、TurboC中,每个signedshortint型数据占用的内存空间为()字节
a)8个
b)2个
c)1个
d)4个
7、若已定义:
intx=2,y=3,z=5;则表达式值为2的是()。
a)z=x,z
b)x+y+z
c)z=(x,z)
d)x=y=z
8、下列叙述错误的是()
a)程序中算术表达式的书写形式与数学公式完全相同
b)赋值运算符的结合方式是“自右向左”
c)整数与字符型变量混合运算的结果是整数
d)自增和自减运算符可以用于float型变量
9、要使语句scanf(“%d,%d”,&m,&n);能够正确接收从键盘输入的值,正确的数据输入形式是()。
a)1020
b)10,20
c)1020
d)10
20
10、能正确表示数学关系式“k≤0或k≥10”的C语言表达式是()。
a)(k<=0)&&(k>=10)
b)(k<=0)||(k>=10)
c)(k>=0)||(k<=10)
d)(k>=0)&&(k<=10)
11、若已定义:
charc=’E’;inta=9;floatx=5;则表达式c/x-a的值是()【已知’A’的ASCII码为65】
a)13.8
b)4.8
c)4
d)5
12、()为合法用户标识符。
a)3c
b)_a$bc
c)void
d)_abc
13、若已定义:
charc;则()是错误的赋值表达式
a)c=’\n’
b)c=’a’
c)c=32
d)c=097
14、若已定义:
intm=3,n=4;则表达式(m++)+n的值是()
a)5
b)7
c)8
d)4
15、puts(char*str)函数的功能是向终端输出()
a)一个实型变量的值
b)str指向的字符串
c)一个整数变量的值
d)str指向的第一个字符
16、若已定义:
inta=1,b=2,c=3;语句(++b,a)||(a++,c++);执行后变量a、b、c的值分别是()
a)234
b)133
c)123
d)233
17、若已定义:
intx=100;则正确的赋值表达式是()
a)x=”abc”
b)x%=0.3
c)x=x+08
d)x=’A’
18、下列正确定义符号常量的命令是()
a)#definePR3.3;
b)#definePR=3.3;
c)#definePR=3.3
d)#definePR3.3
19、()为合法常量
a)‘Cprogram’
b)0x100
c)2E3.3
d)0783
20、若已定义:
inta=1,b=2;()是正确的表达式
a)a*=b+2
b)a+b=2
c)a+b*=2
d)a+/b=2
21、若已定义:
inta=3,b=2,c=1;则表达式a+b&&c+100的值是()
a)1
b)105
c)0
d)104
22、若已定义:
inta=3,b=2,c=1;则表达式(float)(a+b)/(c+a)的值是()
a)8
b)1
c)3.0
d)1.25
23、若已定义:
inta=3,x=4;语句x+=a++;执行后变量x的值是()
a)7
b)4
c)8
d)6
24、若已定义:
inta=5,b=6;语句printf(“%d*%d=%d\n”,a+a,b+b,(a+a)*(b+b));执行后的输出结果是()
a)5*6=30
b)10,12,120
c)5,6,30
d)10*12=120
25、若已定义:
inta=1,b=2,c=3;表达式值为0的是()
a)ab>a
b)a+b&&a+c
c)a+b==c||b==c
d)ab>a
26、若已定义:
inta=3,b=2,c=1,t;语句t=++a||!
b&&c++;执行后a、b、c的值分别是()
a)321
b)422
c)402
d)421
27、若已定义:
inta=5;则表达式a-=a+=a*a的值为()
a)-20
b)-25
c)0
d)25
28、以下程序段的运行结果是()
intm=65,n=66;
chark=’C’;
printf(“%c-%c-%d\n”,m,n,k);
(注:
字母’A’的ASCII码值为65)
a)AB67
b)6566C
c)A-B-67
d)65-66-C
29、若已定义:
inti=1;则表达式i+=10的值为()
a)11
b)1
c)2
d)10
30、若已定义:
inta=1,b=2,c=3;则表达式a=b==c的值为()
a)1
b)0
c)3
d)2
31、若已定义:
charc;inta;floatx;doublem;则表达式0.3+a+c+x+m*a的值得类型为()
a)float
b)int
c)double
d)char
32、c语言的数据类型不包括()
a)泛型
b)联合类型
c)整形
d)结构类型
33、若已定义:
inta=1,b=2,c=3;则正确的表达式是()
a)a=b+1=c
b)a=b\c
c)c=(a,b)
d)a+b=c
34、若已定义:
inta=8,b=7,c;语句c=a|b;执行后c的值是()
a)15
b)0
c)7
d)8
35、若已定义:
intx;则从键盘输入一个值赋予x;正确的函数调用是()
a)scanf(“%d”,&x);
b)scanf(“%f”,&x);
c)scanf(“%f”,x);
d)scanf(“%d”,x);
36、以下程序的运行结果是()
#include
voidmain()
{
inta=4,b=3,c=2,d=1;
if(a>b>c)
printf(“%d\n”,d);
elseif(c-1>=d)
printf(“%d\n”,d+1);
else
printf(“%d\n”,d+2);
}
a)1
b)2
c)3
d)4
37、以下程序执行时,循环体执行了()
#include
voidmain()
{
inta=1234,b=0;
while(a)
{
b=b*10+a%10;
a=a/10;
}
}
a)4次
b)无限次
c)3次
d)2次
38、以下程序执行后变量m的值为()
intx=6,y=4,z=8,m;
m=(x(xx:
z):
(yy:
z);
a)1
b)8
c)6
d)4
39、以下程序段执行后变量a的值为()
inti,a=0;
for(i=1;i<=10;i++)
{
if(i%2==0)
continue;
a++;++a;
}
a)10
b)5
c)15
d)0
40、执行以下程序,输入99,运行结果是()
#include
voidmain()
{
intscore;
scanf(“%d”,&score);
switch(score/10)
{
case10:
case9:
printf(“A”);
case8:
printf(“B”);
case7:
case6:
printf(“C”);
break;
default:
printf(“D”);
}
printf(“\n”);
}
a)ABCD
b)AB
c)A
d)ABC
41、以下程序的运行结果是()
#include
voidmain()
{
charc=’C’;
switch(c-65)
{
case0:
putchar(c+1);
case1:
case2:
case3:
putchar(c+2);
break;
default:
putchar(c+32);
break;
}
}
[注:
已知’A’的ASCII码值为65,’a’的ASCII码值为97]
a)C
b)b
c)E
d)D
42、若已定义:
intk,a,b,c;则语句()与k=a>b?
b:
c语句的功能等价。
a)if(a>b)k=b
b)if(a>b)k=b;elsek=c;
c)if(k==a)k=b;elsek=c;
d)if(a>b)k=a;elsek=b;
43、以下程序段,()。
inta=0;
do
{
++a;
}while
(1);
a)循环体执行1次
b)循环体执行2次
c)是无限循环
d)有语法错误
44、以下程序段执行后变量a的值为()
inti=0,a=0;
for(;i-3;i++)
a++
a)1
b)0
c)3
d)2
45、以下程序段的运行结果是()
chara[5]={65,’B’,67,68,69},i;
for(i=4;i>=0;i-=2)
a[i]=a[i]+32;
for(i=0;i<5;i++)
printf(“%3c”,a[i]);
a)aBcDe
b)abcde
c)ABCDE
d)AbCdE
46、以下程序段执行后s的值是()
inta[3][4]={1,2,3,4,1,2,3,4,1,2,3,4};
inti,j,s=1;
for(i=0;i<3;i++)
for(j=0;j
s*=a[i][j];
a)16
b)144
c)288
d)12
47、下列叙述正确的是()
a)在定义数组时,数组的长度不能使用整形常量
b)在定义数组时,数组的长度可以使用整形变量
c)数组元素的下标可以使用整形常量
d)数组元素的下标不能使用字符常量
48、若以定义:
ints[4][3]={{1,6},{1},{2,8,4},{7,3,5}};
则s[3][1]的值是()
a)2
b)3
c)7
d)8
49、以下程序段执行后,a[4]的值为()
inta[8]={15,9,23,32,11};
a[4]=a[3]+a[2]+a[1]*a[6]-a[7];
a)55
b)32
c)63
d)64
50、若已定义:
inta[6]={1,2,3,4,5,6};charc=’b’;则表达式值为3的是()
a)a[3]
b)a[‘d’-‘c’]
c)a[c]
d)a[‘d’-c]
51、以下程序段执行后sum的值是()
inti,sum=0;
inta[3][5]={11,12,13,14,15,16,17,18,19,20,22,24,26,28,31};
for(i=0;i<3;i++)
sum+=a[i][i+2];
a)60
b)61
c)63
d)58
52、若已定义:
inta[4][3];假设元素a[0][0]在存储空间中的位置序号为1,则元素a[2][2]的位置序号应是()
a)7
b)10
c)9
d)8
53、错误的数组定义是()
a)intarr[][3]={10,9,8,7,6,5,4,3,2,1};
b)intarr[][3]={{0},{1,{2},{3,1}};
c)intarr[4][3]={{1,2},{3},{0}};
d)intarr[4][]={0,1,2,3,4,5,6,7,8,9,10,11};
54、以下程序段执行结果是()
inta[10]={1,1,1,1,1,1,1,1,1,1,},i;
for(i=1;i<=5;i++)
a[i-1]=a[i-1]-1;
for(i=0;i<10;i++)
printf(“%3d”,a[i]);
a)0000011111
b)0000000000
c)1111111111
d)1111100000
55、以下程序段的运行结果是()
chars[80]={“super”};
strcat(s,”market”);
printf(“%d”,strlen(s));
a)11
b)10
c)12
d)9
56、若已定义:
inta=3,*p;执行语句p=&a;后,下列()均能表示a的地址
a)p,&a
b)p,a
c)*p,&a
d)*p,a
57、以下程序段的运行结果是()
chara[]=”WELL”,*p;
for(p=a,pprintf(“%s”,p);
a)WELLWEL
b)WE
c)WELLWE
d)WELLELL
58、以下程序段的运行结果是()
chara[]=”Teacher”;
charb[]=”Driver”;
strcpy(a,b);
printf(“%s%c”,a,a[5]);
a)Teachere
b)Driverr
c)Drivere
d)Teacherr
59、以下程序段的运行结果是()
chara[5][3]={‘Y’,’o’,’u’,’’,’a’,’r’,’e’,’\0’,’w’,’e’,’l’,’c’,’o’,’m’,’e’};
printf(“%s”,&a[0][0]);
a)Youare
b)You
c)Youarewelcome
d)Youarewel
60、以下程序段执行后,正确的是()
chara[]=”University”;
char*p;
p=a;
a)a[3]与*p表示的内容相同
b)*(p+3)与a[0]表示的内容相同
c)a与p+3表示的地址一致
d)strlen(p)与strlen(a)表示的值相等
61、以下程序段的运行结果是()
inta=5,b=2,c,*p1,*p2;
p1=7a;
p2=&b;
if(*p1<*p2)
c=*p1+2;
else
c=*p2+4;
printf(“%d\n”,c);
a)9
b)6
c)4
d)7
62、以下程序段的运行结果是()
intx=5;
char*s1=”music”,*s2=s1;
x=strcmp(s1,s2);s3改成s2
printf(“%d\n”,x);
a)1
b)-1
c)0
d)5
63、若已定义:
chara[]=”Student”,*p=a;能正确指向存放字符‘u’单元的表达式是()
a)*(a+5)
b)p+5
c)a+2
d)*(p+2)
64、以下程序段的运行结果是()
inta=2,b=5,*p;
p=&a;
b=a;
printf(“%d,%d\n”,b,*p);
a)2,2
b)2,5
c)5,2
d)5,5
65、以下程序段的运行结果是()
inta[]={1,2,3,4,5,6,7,8,9,10},i;
int*p;
p=a;
for(i=0;i<10;i++,i++)
printf(“%3d”,*(p+i));
printf(“\n”);
a)678910
b)13579
c)246810
d)12345
66、以下程序段的运行结果是()
inta=6,b=3,m,n,*p,*q;
p=&a;
q=&b;
m=(*p)/(*q)=8;
n=(*p)+(*q)*8;
a)m=8,n=30
b)m=10,n=8
c)m=10,n=30
d)m=8,n=80
67、以下程序段的运行结果是()
inta=1,b=2,sum,*p,*q;
p=&a;
q=&b;
sum=*p+*q;
a=*q;
printf(“%d,%d\n”,a,sum);
a)1,4
b)1,3
c)2,3
d)2,4
68、以下程序段的运行结果是()
inta[6]={1,2,3,4,5,6};
int*p;
p=a;
*(p=3)+=3;
printf(“%d,%d\n”,*p,*(p+3));
a)1,7
b)4,4
c)7,7
d)1,4
69、若已定义:
inta[2][3]={1,2,3,4,5,6},*p;执行语句p=&a[0][0];后,*(p+4)表示的值是()
a)6
b)3
c)5
d)4
70、若已定义:
charsa[20]=”dictionary”,sb[20];则()语句是正确的
a)sb[0]=sa[0]
b)scanf(“%s”,&sb[]);
c)sb[]=sa[]
d)printf(“%s”,sa[]);
71、以下程序的运行结果是()
#include
fun(intx,inty)
{return(x*y+10);
}
voidmain()
{inta=11,b=2,c;
c=fun(a,b);
printf(“c=%d\n”,c);
}
a)c=22
b)32
c)22
d)c=32
72、下列叙述错误的是()
a)预处理命令只能位于C源程序文件的首部
b)在预处理命令行#defiineWT5中,符号常量(宏名)是WT
c)#include“math.h”属于预处理命令
d)预处理命令必须以“#”开头
73、以下程序的运行结果是()
#include
voidfun(intx,int*p)
{
*p=x+10;
}
voidmain()
{
inta,b,c;
fun(5,&a);
fun(a,&b);
fun(b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
a)a=5,b=15,c=25
b)a=15,b=25,c=35
c)a=5,b=5,c=5
d)a=15,b=15,c=15
74、以下语句中fun()函数所含的实参个数有()个
fun((1,2,3),(4,5),(6,7+8));
a)8.
b)7
c)3
d)5
75、以下程序的运行结果是()
#include
fun(intx)
{
staticinty=2;
y=y+x;
returny;
}
voidmain()
{
inti,s=0;
for(i=1;i<=2;i++)
s=s+fun
(2);
printf(“%d\n”,s);
}
a)6
b)4
c)10
d)8
76、下列叙述错误的是()
a)宏定义中的符号常量(宏名)可以是小写字母表示
b)编译预处理命令行都必须以“#”号开始
c)文件包含使用预处理命令“#include<文件名>”来实现
d)宏定义中的符号常量只能用大写字母或数字符号表示
77、以下程序的运行结果是()
#include
voidfun(inti)
{
inta;
a=++i;
printf(“%d”,a);
}
voidmain()
{
inta=3,b=6;
fun(b);
printf(“%d”,a);
}
a)33
b)77
c)73
d)37
78、c源程序中,预处理命令的位置可以在()
a)scanf()函数中
b)printf(0函数中
c)putchar()函数中
d)文件首部
79、以下程序的运行结果是()
#include
voidf(inta[][3])
{
inti;
for(i=0;i<3;i++)
printf(“%2d”,a[i][0]);
printf(“\n”);
}
voidmain()
{
inta[3][3]={1,2,3,1,3,2,2,1,3};
f(a);
}
a)323
b)123
c)231
d)112
80、以下程序的运行结果是()
#include
fun(intx,inty)
{
return(x*y+10);
}
voidmain()
{
inta=11,b=2,c;
c=fun(a,b);
printf(“c=%d\n”,c)
}
a)c=22
b)32
c)22
d)c=32
81、一个结构变量占用的内存容量由()决定。
a)第一个成员所需内存容量
b)占内存容量最小的成员所需容量
c)各成员所需内存容量之和
d)最后一个成员所需内存容量
82、下列叙述错误的是()。
a)联合变量所需内存容量等于其中占内存容量最大的成员所占的容量
b)联合类型可以出现在结构类型定义中
c)联合变量可以作为函数的形参
d)一个联合变量中各成员的首地址相同
83、若定义:
enumcolors{red,green=2,blue,black}x,a[3];
以下语句()
/*语句1*/a[1]=black;
/*语句2*/red=1;
/*语句3*/x=green;
a)语句1和语句3正确,语句2错误
b)语句2和语句3正确