20春北师《高级程序设计(C)》 离线作业.docx
《20春北师《高级程序设计(C)》 离线作业.docx》由会员分享,可在线阅读,更多相关《20春北师《高级程序设计(C)》 离线作业.docx(20页珍藏版)》请在冰豆网上搜索。
在线作业试卷列表
单选
1.以下叙述正确的是A
分值:
2
A.C语言中各函数之间既允许直接递归调用也允许间接递归调用
B.C语言中各函数之间既不允许直接递归调用也不允许间接递归调
用
C.C语言中各函数之间既允许直接递归调用不允许间接递归调用
D.C语言中各函数之间既不允许直接递归调用允许间接递归调用
2.以下程序的输出结果是Bcharstr[]="ABCD",*p=str;
printf("%d",*(p+4));B分值:
2A.68
B.0
C.字符D的地址
D.不能确定的值
3.以下程序的输出结果是Cmain()
{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--;} 分值:
2A.1234 B.4321
C.0000 D.4444
4.以下程序的输出结果是Amain()
{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);
}分值:
2
A.8,17 B.8,16
C.8,20 D.8,8
5.以下程序的输出结果是Cvoidfun(int*s)
{staticintj=0;do
s[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]);
}分值:
2A.34756
B.23445
C.35745
D.12345
6.以下程序的输出结果是Df(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);
}分值:
2A.3
B.6
C.5
D.4
7.以下程序的输出结果是Bintm=13;
intfun2(intx,inty)
{intm=3;return(x*y–m);
}
main()
{inta=7,b=5;
printf(“%d”,fun2(a,b)/m);} 分值:
2A.1 B.2
C.7 D.10
8.C语言中,形参的缺省的存储类说明是A分值:
2
A.auto(自动)
B.static(静态)
C.register(寄存器)D.extern(外部)
9.以下选项中正确的整型常量是 B 。
分值:
2
A.12.
B.-20
C.1,000
D.456
10.以下选项中正确的实型常量是 B 。
分值:
2
A.0
B.3.1415
C.0.329*102
D..871
11.以下选项中不正确的实型常量是 B 。
分值:
2
A.2.607E-1 B.0.8103e2C.-77.77 D.456e-2
12.以下选项中不合法的用户标识符是 A 。
分值:
2
A.abc.c B.file
C.Main D.PRINTF
13.以下选项中不合法的用户标识符是 C 。
分值:
2
A._123 B.printfC.A$ D.Dim
14.C语言中运算对象必需是整型的运算符是 A 。
分值:
2
A.% B./
C.!
D.**
15.可在C程序中用作用户标识符的一组标识符是 B 。
分值:
2
A.voiddefineWORD
B.as_b3_123If
C.For-abccase
D.2cDOSIG
16.若变量已正确定义并赋值,符合C语言语法的表达式是 B 。
分值:
2
A.a=a+7;
B.a=7+b+c,a++
C.int(12.3%4)
D.a=a+7=c+b
17.以下叙述中正确的是 A 。
分值:
2
A.a是实型变量,C允许进行以下赋值a=10,因此可以这样说:
实型变量允许赋值整型值。
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,
a的值已由原值改变为b的值,b的值由原值变为0。
D.已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
18.以下叙述中正确的是 C 。
分值:
2
A.在C程序中无论整数还是实数,只要在允许的范围内都能准确无误的表示。
B.C程序由主函数组成。
C.C程序由函数组成。
D.C程序由函数和过程组成。
19.若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是 B 。
分值:
2
A.a=b=c=d=100; B.d++;
C.c+b; D.d=(c=22)-(b++);
20.以下合法的C语言赋值语句是 D 。
分值:
2
A.a=b=58 B.k=int(a+b);C.a=58,b=58 D.--i;
21.若变量已正确说明为int类型,要给 D分值:
2A.read(a,b,c);
B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%D%D%D”,&a,%b,%c);
D.scanf(“%d%d%d”,&a,&b,&c);
22.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是 C 。
分值:
2
A.a=a+b,b=a-b,a=a-b;
B.t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
23.若有以下程序段,c3中的值是 A 。
intc1=1,c2=2,c3;
c3=c1/c2;分值:
2A.0 B.1/2C.0.5 D.1
24.若有以下程序段,其输出结果是 B 。
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c); 分值:
2A.0,0,-10 B.0,0,5
C.-10,3,-10 D.3,0,-10
25.当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是 C 。
main()
{inta;floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“a=%d,b=%f,c=%f”,a,b,c);} 分值:
2A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.0
26.若int类型占两个字节,则以下程序段的输出是 D 。
inta=-1;
printf(“%d,%u”,a,a); 分值:
2A.-1,-1 B.-1,32767
C.-1,32768 D.-1,65535
27.以下程序段的输出是 C 。
floata=3.1415;
Printf(“|%6.0f|”,a); 分值:
2A.|3.1415| B.|3.0|
C.|3| D.|3.|
28.以下程序段的输出是 C 。
floata=57.666;
pirntf(“%010.2f”,a); 分值:
2A.*0000057.66*
B.*57.66*
C.*0000057.67*
D.*57.67*
29.C语言中的简单类型有B分值:
2
A.整型,实型,逻辑型
B.整型,实型,字符型
C.整型,字符型,逻辑型
D.整型,实型,逻辑型,字符型
30.C语言中,字符型(char)数据在微机内存中的存储形式是D分值:
2
A.反码 B.补码
C.EBCDIC码 D.ASCII码
31.C语言中不合法的字符常量是D分值:
2
A.′\0XFF′ B.‘\65′C.′&′ D.′\028′
32.C语言中不合法的字符串常量是B分值:
2
A."121" B.′Y=′
C."" D."ABCD\X6d"
33.判断char型变量C是否为大写字母的最简单且正确的表达式是D分值:
2
A.‘A’<=C=‘Z’
B.(C>=′A′)&(C<=′Z′)
C.(′A′<=C)AND(′Z′>=C)
D.(C>=′A′)&&(C<=′Z′)
34.以下程序的输出结果是Dmain()
{charc1=′a′,c2=′y′;printf("%d,%d",c1,c2);
}分值:
2
A.因输出格式不合法,无正确输出B.65,90
C.A,Y
D.65,89
35.以下程序的输出结果是Bmain()
{charx=′a′
x=(x>=′A′&&x<=′Z′)?
(x+32):
x;printf("%c",x);
}分值:
2
A.A B.a
C.Z D.z
36.以下各组选项