北师大《高级程序设计C语言》.docx
《北师大《高级程序设计C语言》.docx》由会员分享,可在线阅读,更多相关《北师大《高级程序设计C语言》.docx(13页珍藏版)》请在冰豆网上搜索。
北师大《高级程序设计C语言》
红色的是正确的
以下叙述正确的是?
C语言中各函数之间既允许直接递归调用也允许间接递归调用?
C语言中各函数之间既不允许直接递归调用也不允许间接递归调用?
C语言中各函数之间既允许直接递归调用不允许间接递归调用?
C语言中各函数之间既不允许直接递归调用允许间接递归调用
单选:
第2题(2分)
若有以下说明和定义,则对fun函数的正确调用语句是?
a=fun;a(w);?
a=fun;(*a)(&c);
b=fun;*b(w);
fun(b);main(){?
int(*a)(int*),*b(),w[10],c;:
:
?
}fun(int*c){...}
单选:
第3题(2分)
以下程序的输出结果是?
main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,&x);printf(“%d”,x);}printf(“”);}sub(int*s,int*y){staticintt=3;*y=s[t];t--;}
1234
4321
0000
4444
单选:
第4题(2分)
以下程序的输出结果是?
main(){intk=4,m=1,p;p=func(k,m);printf(“%d,”,p);p=func(k,m);printf(“%d”,p);}func(inta,intb);{staticintm,i=2;i+=m+1;m=i+a+b;return(m);}
8,17
8,16
8,20
8,8
单选:
第5题(2分)
以下程序的输出结果是?
voidfun(int*s){staticintj=0;dos[j]+=s[j+1];while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf(“%d”,a[k]);}
34756?
23445?
35745?
12345
单选:
第6题(2分)
以下程序的输出结果是?
f(inta){intb=0;staticintc=3;a=c++,b++;return(a);}main(){inta=2,i,k;?
for(i=0;i<2;i++)k=f(a++);printf(“%d”,k);}
3?
6?
5?
4
单选:
第7题(2分)
以下程序的输出结果是?
intm=13;intfun2(intx,inty){intm=3;return(x*y–m);}main(){inta=7,b=5;printf(“%d”,fun2(a,b)/m);}
1
2
7
10
单选:
第8题(2分)
C语言中,形参的缺省的存储类说明是?
auto(自动)?
static(静态)?
register(寄存器)?
extern(外部)
单选:
第9题(2分)
以下选项中正确的整型常量是__________。
?
12.?
-20?
1,000?
456
单选:
第10题(2分)
以下选项中正确的实型常量是__________。
?
0?
3.1415?
0.329*102?
.871
单选:
第11题(2分)
以下选项中不正确的实型常量是__________。
?
2.607E-1
0.8103e2
-77.77
456e-2
单选:
第12题(2分)
以下选项中不合法的用户标识符是_________。
?
abc.c
file
Main
PRINTF
单选:
第13题(2分)
以下选项中不合法的用户标识符是__________。
?
_123
printf
A$
Dim
单选:
第14题(2分)
C语言中运算对象必需是整型的运算符是__________。
?
%
/
!
**
单选:
第15题(2分)
可在C程序中用作用户标识符的一组标识符是_________。
?
voiddefineWORD
as_b3_123If
For-abccase
2cDOSIG?
单选:
第16题(2分)
若变量已正确定义并赋值,符合C语言语法的表达式是_________。
?
a=a+7;?
a=7+b+c,a++
int(12.3%4)?
a=a+7=c+b
单选:
第17题(2分)
以下叙述中正确的是_________。
?
a是实型变量,C允许进行以下赋值a=10,因此可以这样说:
实型变量允许赋值整型值。
?
在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
?
执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
?
已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
?
单选:
第18题(2分)
以下叙述中正确的是________。
?
在C程序中无论整数还是实数,只要在允许的范围内都能准确无误的表示。
?
C程序由主函数组成。
?
C程序由函数组成。
?
C程序由函数和过程组成。
?
单选:
第19题(2分)
若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是_________。
?
a=b=c=d=100;
d++;
c+b;
d=(c=22)-(b++);
单选:
第20题(2分)
以下合法的C语言赋值语句是_________。
?
a=b=58
k=int(a+b);
a=58,b=58
--i;?
单选:
第21题(2分)
若变量已正确说明为int类型,要给
read(a,b,c); ?
scanf(“%d%d%d”,a,b,c);?
scanf(“%D%D%D”,&a,%b,%c);?
scanf(“%d%d%d”,&a,&b,&c);
单选:
第22题(2分)
若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是_________。
?
a=a+b, b=a-b, a=a-b;?
t=a, a=b, b=t;?
a=t; t=b; b=a;
t=b; b=a; a=t;
单选:
第23题(2分)
若有以下程序段,c3中的值是__________。
?
intc1=1,c2=2,c3;?
c3=c1/c2;
0
1/2
0.5
1?
单选:
第24题(2分)
若有以下程序段,其输出结果是__________。
?
inta=0,b=0,c=0;?
c=(a-=a-5),(a=b,b+3);?
printf(“%d,%d,%d”,a,b,c);
0,0,-10
0,0,5
-10,3,-10
3,0,-10?
单选:
第25题(2分)
main( )?
{inta;floatb,c;?
scanf(“%2d%3f%4f”,&a,&b,&c);?
printf(“a=%d,b=%f,c=%f”,a,b,c);}?
a=98,b=765,c=4321?
a=10,b=432,c=8765?
a=98,b=765.000000,c=4321.000000 ?
a=98,b=765.0,c=4321.0?
单选:
第26题(2分)
若int类型占两个字节,则以下程序段的输出是__________。
?
inta=-1;?
printf(“%d,%u”,a,a);?
-1,-1
-1,32767
-1,32768
-1,65535?
单选:
第27题(2分)
以下程序段的输出是__________。
?
floata=3.1415;?
Printf(“|%6.0f|”,a);?
|3.1415|
|3.0|
|3|
|3.|?
单选:
第28题(2分)
以下程序段的输出是__________。
?
floata=57.666;?
pirntf(“%010.2f”,a);?
*0000057.66*?
*57.66*?
*0000057.67*?
*57.67*?
单选:
第29题(2分)
C语言中的简单类型有?
整型,实型,逻辑型
整型,实型,字符型?
整型,字符型,逻辑型?
整型,实型,逻辑型,字符型?
单选:
第30题(2分)
C语言中,字符型(char)数据在微机内存中的存储形式是?
反码
补码
EBCDIC码
ASCII码?
单选:
第31题(2分)
C语言中不合法的字符常量是?
′\0XFF′
‘\65′
′&′
′\028′
单选:
第32题(2分)
C语言中不合法的字符串常量是?
"121"
′Y=′
""
"ABCD\X6d"
单选:
第33题(2分)
判断char型变量C是否为大写字母的最简单且正确的表达式是?
‘A’<=C=‘Z’?
(C>=′A′)&(C<=′Z′)?
(′A′<=C)AND(′Z′>=C)?
(C>=′A′)&&(C<=′Z′)
单选:
第34题(2分)
以下程序的输出结果是?
main()?
{charc1=′a′,c2=′y′;?
printf("%d,%d",c1,c2);?
}
因输出格式不合法,无正确输出?
65,90?
A,Y?
65,89?
单选:
第35题(2分)
以下程序的输出结果是?
main()?
{charx=′a′?
x=(x>=′A′&&x<=′Z′)?
(x+32):
x;?
printf("%c",x);?
}
A
a
Z
z?
单选:
第36题(2分)
以下各组选项中,均能正确定义二维实型数组a的选项是__________。
?
floata[3][4];?
floata[][4];floata[3][]={{1},{0}};?
floata(3,4);floata[3][4];floata[][]={{0},{0}};
floata[3][4];?
staticfloata[][4]={{0},{0}};?
autofloata[][4]={{0},{0},{0}};?
floata[3][4];floata[3][];floata[][4];?
单选:
第37题(2分)
以下正确的说法是__________。
?
实参和与其对应的形参占用独立的存储单元?
实参和与其对应的形参共占用一个存储单元?
只有当实参和与其对应的形参同名时才共占用一个存储单元?
形参是虚拟的,不占用存储单元?
单选:
第38题(2分)
以下说法中正确的是?
C语言程序总是从第一个定义的函数开始执行?
在C语言程序中,要调用的函数必须在main函数中定义?
C语言程序总是从main函数开始执行?
C语言程序中的main函数必须放在程序的开始部分?
单选:
第39题(2分)
以下函数的类型是?
fff(floatx){ ?
printf("%d",x*x);}
与参数x的类型相同
void类型
int类型
无法确定?
单选:
第40题(2分)
以下程序的输出结果是?
func(int a,intb)?
{intc?
c=a+b;?
returnc;}?
main( )?
{intx=6,y=7,z=8,r;?
r=func((x--,y++,x+y),z--);?
printf("%d",r);}
11
20
21
31?
单选:
第41题(2分)
以下程序有错,错误原因是__________。
?
main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;…}
p和q类型不一致,不能执行*p=*q;语句?
*p中存放的是地址值,因此不能执行*p=40;语句?
q没有指向具体的存储单元,所以*q没有实际意义?
q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句?
单选:
第42题(2分)
以下程序的输出结果是?
doublef(int n)?
{inti;double s;?
s=1.0;?
for(i=1;i<=n;i++)s+=1.0/i;?
returns;?
}?
main()?
{inti,m=3;float a=0.0;?
for(i=0;i}?
5.500000
3.000000
4.000000
8.25?
单选:
第43题(2分)
若有定义:
intx,*pb;则在以下正确的赋值表达式是?
pb=&x
pb=x
*pb=&x
*pb=*x
单选:
第44题(2分)
以下程序的输出结果是?
#include"stdio.h"?
main()?
{printf("%d",NULL);}
因变量无定义输出不定值
0?
-1?
1?
单选:
第45题(2分)
有如下语句inta=10,b=20;*p1=&a,*p2=&b;如果让两个指针变量均指向b,正确的赋值方式是__________。
?
*p1=*p2;
p1=p2;
p1=*p2;
*p1=*p2;?
单选:
第46题(2分)
已知指针P的指向如图所示,则表达式*P++的值是?
a[0]a[1]a[2]a[3]a[4]?
10?
?
20?
?
30?
?
40?
?
50?
?
?
?
?
?
?
P
20
30
21
31?
单选:
第47题(2分)
已知指针P的指向如图所示,则表达式*++P的值是?
a[0]a[1]a[2]a[3]a[4]?
10?
?
20?
?
30?
?
40?
?
50?
?
?
?
?
?
?
P
20
30
21
31
单选:
第48题(2分)
已知指针P的指向如图所示,则表达式++*P的值?
a[0]a[1]a[2]a[3]a[4]?
10?
?
20?
?
30?
?
40?
?
50?
?
?
?
?
?
?
P
20
30
21
31
单选:
第49题(2分)
以下能正确进行字符串赋值、赋初值的语句组是?
chars[5]={′a′,′e′,′i′,′o′,′u′};?
char*s;s="good!
";?
chars[5]="good!
";?
chars[5];s="good";?
单选:
第50题(2分)
以下程序的输出结果是?
charstr[]="ABCD",*p=str;?
printf("%d",*(p+4));
68?
0?
字符D的地址?
不能确定的值?