C语言第19章基本概念练习题ans最全.docx
《C语言第19章基本概念练习题ans最全.docx》由会员分享,可在线阅读,更多相关《C语言第19章基本概念练习题ans最全.docx(27页珍藏版)》请在冰豆网上搜索。
C语言第19章基本概念练习题ans最全
第一单元(1-5章)基本概念练习题
一、单选选择(直接在正确的选项上打勾,每题)
1、下面关于C语言特点的描述,不正确的是()。
D
A、C语言兼有高级语言和低级语言的双重特点,执行效率高
B、C语言既可以用来编写应用程序,又可以用来编写系统软件
C、C语言是一种结构式模块化程序设计语言
D、C语言的可移植性较差
2、C语言规定,在一个源程序中,main函数的位置()。
B
A、必须在最开始B、可以任意
C、必须在最后D、必须在系统调用的库函数的后面
3、下列说法中正确的是()。
C
A、C程序书写时,不区分大小写字母
B、C程序书写时,一行只能写一个语句
C、C程序书写时,一个语句可分成几行书写
D、C程序书写时每行必须有行号
4、C语言编译程序的首要工作是()。
A
A、检查C语言程序的语法错误B、检查C语言程序的逻辑错误
C、检查程序的完整性D、生成目标文件
5、C语言程序经过连接以后生成的文件名的后缀为()。
C
A、.cB、.objC、.exeD、.cpp
6、以下关于算法的说法中,错误的是()。
D
A、一个算法应包含有限个步骤
B、在计算机上实现的算法是用来处理数据对象的
C、算法的目的是为了求解
D、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现
7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是()。
C
A、确定性B、有穷性C、零个或多个输出D、零个或多个输入
8、以下不属于结构化程序设计三种基本结构之一的是()。
B
A、顺序B、递归C、循环D、选择
9、下列数据中,不合法的C语言实型数据是()。
C
A、0.123B、123e3C、2.1e3.5D、789.0
10、若变量a、i已正确定义,且i已正确赋值,以下属于合法的C语句是()。
A、a==1B、++i;C、a=a++=5;D、a=int(i);
11、已有定义inta=6;则执行语句a+=a-=a*a;后,a的值为()。
D
A、36B、0C、-24D、-60
12、若有以下程序段,其输出结果是()。
B
inta=0,b=0,c=0;
c=(a-=a-5),(a-=3,++b);
printf(“%d,%d,%d\n”,a,b,c);
A、0,0,-10B、2,1,5C、-10,-3,-10D、3,3,-10
13、有以下定义:
inti=10,j=1;执行语句printf("%d,%d\n",i--,++j);后输出结果是()。
B
A、9,2B、10,2C、9,1D、10,1
14、字符串"\t\"\065\xff\n"的长度为()。
A
A、5B、14
C、8D、输出项不合法,无正常输出
15、已有定义:
charc;执行赋值语句c=('z'-'a')/2+'A';后,变量c的值为()。
A
A、MB、NC、OD、Q
16、以下4个选项中,不能看做一条语句的是()。
D
A、;B、a=5,b=2.5,c=3.6;C、if(a<5);D、if(b!
=5)x=2;y=6;
17、设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()。
D
A、a&&bB、a<=bC、a||b+c&&b-cD、!
((a
c||1)
18、若有定义语句inta,b;doublex;则下列选项中没有错误的是()。
C
A、switch(x%2)B、switch((int)x/2.0)
{case0:
a++;break;{case0:
a++;break;
case1:
b++;break;case1:
b++;break;
default:
a++;b++;default:
a++;b++;
}}
C、switch((int)x%2)D、switch((int)(x)%2)
{case0:
a++;break;{case0.0:
a++;break;
case1:
b++;break;case1.0:
b++;break;
default:
a++;b++;default:
a++;b++;
}}
19、以下程序段的输出结果是()。
D
main()
{intx,y,z;
x=0;y=2;z=3;
switch(x)
{case0:
switch(y==2)
{case1:
printf("*");break;
case2:
printf("%");break;
}
case1:
switch(z)
{case1:
printf("$");
case2:
printf("*");break;
default:
printf("#");
}
}
}
A、*B、%C、$*D、*#
20、以下程序的输出结果是()。
C
main()
{inta=45,b=40,c=50,d;
d=a>=30?
b:
c;
switch(d)
{case30:
printf("%d",a);
case40:
printf("%d",b);
case50:
printf("%d",c);break;
default:
printf("#");
}
}
A、#B、C、4050D、#
21、以下程序的输出结果是()。
B
main()
{inta,b,c,x=35;
a=b=c=0;x=35;
if(!
a)
x--;
elseif(b);
if(c)
x=3;
else
x=4;
printf("%d\n",x);
}
A、35B、4C、3D、34
22、当c的值不为0时,能正确将c的值赋给变量a和b的选项是()。
C
A、c=b=aB、(a=c)||(b=c)C、(a=c)&&(b=c)D、a=c=b
23、若变量已定义为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是()。
B
A、10<回车>22<回车>33<回车>B、10.0,22.0,33.0<回车>
C、10.0<空格>22.0<空格>33.0<回车>D、102233<回车>
24、下面程序段的输出结果是()。
A
intx=1,y=10;
if(x=y)printf("AAA");
elseprintf("BBB");
A、AAAB、BBBC、AAABBBD、不确定
25、下面程序段的输出结果是()。
A
for(x=9;x>0;x--)
if(x%3!
=0)
{printf("%d",--x);
continue;
}
A、741B、852C、963D、
26、对以下循环:
for(a=0,b=0;(b!
=123)&&(a<=4);a++);说法正确的是()。
D
A、无限循环B、循环次数不定C、执行4次D、执行5次
27、在下列程序中,while循环的循环次数是()。
D
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A、1B、10C、6D、死循环、不能确定次数
28、以下程序的输出结果是()。
B
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)
break;
elsei--;
}
i+=11;
a+=i;
}
printf("%d\n",a);
}
A、21B、32C、33D、11
29、当输入为"quert?
"时,下面程序的执行结果是()。
C
main()
{while(putchar(getchar())!
='?
');}
A、quertB、RvfsuC、quert?
D、rvfsu?
30、以下能正确计算1×2×3×…×10的程序段是()。
A、do{i=1;s=1;s=s*i;i++;}while(i<=10);
B、do{i=1;s=0;s=s*i;i++;}while(i<=10);
C、i=1;s=1;do{s=s*i;i++;}while(i<=10);
D、i=1;s=0;do{s=s*i;i++;}while(i<=10);
二、绘制NS算法流程图
(1)输入10个数,求其中的最大值。
(2)输入2个数,求它们的最大公约数。
第6章-数组基本概念练习题
1、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A、floatB、intC、doubleD、任何类型
答案:
B
2、以下对一维整型数组a的正确定义是()。
A、inta(10);B、intn=10,a[n];C、intn;scanf(“%d”,&n);inta[n];D、#defineSIZE10
inta[SIZE];
答案:
D
3、以下能对一维数组a进行正确初始化的语句是()。
A、inta[10]=(0,0,0,0,0);B、inta[10]={};C、inta[]={0};D、inta[10]="abcdefg";
答案:
C
4、不能给数组的首元素赋值的语句是()。
A、inta[2]={1};B、inta[2]={1*2};C、inta[2];scanf(“%d”,a);D、inta[2];a[1]=1;
答案:
D
5、下面程序的运行结果是()。
main()
{inta[6],i;
for(i=1;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5;printf("%2d",a[i]);}
}
A、-40404B、-40403C、-40443D、-40440
答案:
C
6、下列定义正确的是()。
A、inta[4]={1,2,3,4,5};B、intb[]={2,5};C、inta(10);D、int4e[4];
答案:
B
7、若有说明inta[][4]={0,0};则下列叙述不正确的是()。
A、数组a的每个元素都可以得到初值0。
B、二维数组a的第一维的大小为1。
C、数组a的行数为1,但是有4个元素。
D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值
答案:
D
8、设有charstr[10];下列语句正确的是()。
A、scanf("%s",&str);B、printf("%c",str);C、printf("%s",str[0]);D、printf("%s",str);
答案:
D
9、下列说法正确的是()。
A、在C语言中,可以定义元素个数可变的数组。
B、在C语言中,数组元素的个数可以不确定,允许随机变动。
C、在C语言中,数组元素的数据类型可以不一致。
D、在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数。
答案:
D
10、假设array是一个有10个元素的整型数组,则下列写法中正确的是()。
A、array[0]=10;B、array=0;C、array[10]=0;D、array[-1]=0;
答案:
A
11、分析下列程序运行后,输出的结果是()。
main()
{intn[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;ifor(j=0;jn[j]=n[i]+1;
printf("%d\n",n[1]);
}
A、2B、1C、0D、3
答案:
D
12、若有以下定义:
inta[5]={5,4,3,2,1};
charb=‘a’,c,d,e;
则下面表达式中数值为2的是()。
A、a[3]B、a[e–c]C、a[d-b]D、a[e-b]
答案:
A
13、下面几个字符串处理表达式中能用来把字符串str2连接到字符串str1后的一个是()。
A、strcat(str1,str2);B、strcat(str2,str1);C、strcpy(str1,str2);D、strcmp(str1,str2);
答案:
A
14、设有两字符串“Beijing”、“China”分别存放在字符数组str1[20],str2[20]中,下面语句中能把“China”连接到“Beijing”之后的为()。
A、strcpy(str1,str2);B、strcpy(str1,“China”);
C、strcat(str1,“China”);D、strcat(“Beijing”,str2);
答案:
C
15、若有如下定义:
,则下列语句的输出结果是()。
inta[3][3]={1,2,3,4,5,6,7,8,9},i;
for(i=0;i<=2;i++)printf(“%d”,a[i][2-i]);
A、357B、369C、159D、147
答案:
A
16、下列字符串赋值语句中,不能正确把字符串Cprogram赋给数组的语句是()。
A、chara[]={‘C’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,‘m’};
B、chara[10];strcpy(a,“Cprogram”);
C、chara[10];a=“Cprogram”;
D、chara[10]={“Cprogram”};
答案:
C
17、以下不能对二维数组a进行正确初始化的语句是()。
A、inta[2][3]={0};B、inta[][3]={{1,2},{0}};
C、inta[2][3]={{1,2},{3,4},{5,6}};D、inta[][3]={1,2,3,4,5,6};
答案:
C
18、下面程序段的运行结果是()。
charc[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};
printf(“%s”,c);}
A、‘a’‘b’B、ab\0c\0C、abcD、ab
答案:
D
19、判断字符串a和b是否相等,应当使用()。
A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))
答案:
D
20、有字符数组a[80]和b[80],则正确的输出语句是()。
A、puts(a,b);B、printf(“%s,%s”,a[],b[]);C、putchar(a,b);D、puts(a);puts(b);
答案:
D
21、若有如下定义和语句,则输出结果是()。
chars[12]=“abook!
”;
printf(“%d”,strlen(s));
A、12B、8C、7D、6
答案:
C
22、以下能对二维数组a进行正确说明和初始化的语句是()。
A、inta()(3)={(1,0,1),(2,4,5)};B、inta[2][]={{3,2,1},{5,6,7}};
C、inta[][3]={{3,2,1},{5,6,7}};D、inta
(2)()={(1,0,1),(2,4,5)};
答案:
C
23、若有说明:
inta[3][4]={0};则下面正确的叙述是()。
A、只有元素a[0][0]可以得到初值0B、此说明语句不正确;
C、数组a中每个元素均可得到初值0D、数组a每个元素均可得到初值,但不一定为0
答案:
C
第7章-函数基本概念练习题
1.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是。
A
A)3B)4C)5D)有语法错
2.有如下程序,该程序的输出的结果是。
intrunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);}
A)12B)13C)14D)15
3.有如下程序,该程序的输出结果是。
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn
(2);}
main()
{printf(“%d\n”,fib(3));}
A}2B}4C}6D}8
4.有以下程序,执行后输出的结果是。
voidf(intx,inty)
{intt;
if(xmain()
{inta=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf("%d,%d,%d\n",a,b,c);}
A)3,4,5B)5,3,4C)5,4,3D)4,3,5
5.以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
在下划线处应填入的是。
#defineN10
voidarrin(intx[N])
{inti=0;
while(iscanf("%d",_________);}
A)x+iB)&x[i+1]C)x+(i++)D)&x[++i]
6.有以下程序,执行后输出结果是。
main()
{chars[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));}
A)赋初值的字符串有错B)6,7C)5,6D)6,6
7.以下叙述中正确的是。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
8.以下程序执行后输出的结果是。
main()
{inta=4,b=3,c=5,d,e,f;
d=f1(a,b);d=f1(d,c);
e=f2(a,b);e=f2(e,c);
f=a+b+c-d-e;
printf("%d,%d,%d\n",d,f,e);}
f1(intx,inty)
{intz;z=(x>y)?
x:
y;return(z);}
f2(intx,inty)
{intz;z=(xx:
y;return(z);}
A)3,4,5B)5,3,4C)5,4,3D)3,5,4
9.以下程序的输出结果是。
intf(void)
{staticinti=0;
ints=1;
s+=i;
i++;
return(s);}
main()
{inti,a=0;
for(i=0;i<5;i++)a+=f();
printf(“%d\n”,a);}
A)1B)0C)非0的数D)–1
10.以下C语言中,对函数不正确的描述是。
A)当用数组名作形参时,形参数组改变可使实参数组随之改变
B)允许函数递归调用
C)函数形参的作用范围只是局限于所定义的函数内
D)函数说明必须在主调函数之前
11.以下所列的各函数首部中,正确的是。
A)voidplay(var:
Integer,varb:
Integer)B)voidplay(inta,b)
C)voidplay(inta,intb)D)Subplay(aasinteger,basinteger)
12.以下叙述中不正确的是。
A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C)在C中,外部变量的隐含类别是自动存储类别。
D)在C中,函数形参可以说明为register变量。
13.以下对C语言函数的有关描述中,正确的是。
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中
14.一个数据类型为void的函数中可以没有return语句,那么函数的被调用时。
A)没有返回值B)返回一个系统默认值C)返回值由用户临时决定D)返回一个不确定的值
15.在下面的函数声明中,存在着语法错误的是。
A)BC(inta,int);B)BC(int,int);C)DC(int,int=5);D)BC(intx,inty);
16.以下函数值的类型是。
fun(floatx)
{floaty;
y=3*x-4;
returny;
}
A)intB)不确定C)voidD)float
17.下面程序的输出结果是:
。
intm=13;
intfun(intx,inty)