2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)
一、填空题
1、请读程序段:
int a=-1;
a=a|0377;
printf("%d,%o\n",a,a);以上程序段的输出结果是_______。
2、C语言的源程序必须通过【】和【】后,才能被计算机执行。
3、结构化程序由________、________ 、________ 3种基本结构组成。
4、C语言中的标识符可分为关键字、_______和_______3类。
5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为
_______。
6、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。
7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_______,改正后为_______。
void add(float a,float b)
{float c;
c=a+b;
return c;
}
8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、
b=20、c=30;交换后,a=20、b=30、c=10。请填空。
_______;a=b;b=c;_______;
9、设有如下结构体说明:
struct ST
{int a;float b;
struct ST*c;
doublex[3];
}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。
_______
10、下面程序段的运行结果是_______。
char ch[]="600";int a,s=0;
for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'o';
printf("%d",s);
二、选择题
11、在C语言中,char型数据在内存中的存储形式是()。
A.补码
B.反码
C.原码
D.ASCII码
12、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值
为( )。
A.4
B.16
C.32
D.52
13、设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是()。
A.z=exp(y)+fabs(x);
B.y=log10(y)+pow(y);
C.z=sqrt(y-z);
D.x=(int)(atan2((double)x,y)+exp(y-
0.2));
14、以下程序的运行结果是()。
#include
int main()
{int m=5,n=10;
printf("%d,%d\n",m++,--n):
return 0;
}
A.5,9
B.6,9
C.5,10
D.6,10
15、在C语言中,引用数组元素时,其数组下标的数据类型不允许是()。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
16、一个C语言程序由( )。
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
17、设有以下程序段:
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d”,s);则()
A.运行程序段后输出0
B.运行程序段后输出1
C.程序段中的控制表达式是非法的
D.程序段执行无限次
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
19、若有函数max(a,B.,并且已使函数指针变量p指向函数max,当调用该函
数时,正确的调用方法是()
A.(*p)max(a,
B.; B.*pmax(a,B.;
C.(*p)(a,B.;
D.*p(a,B.;
20、若需要建立如图9-3所示的存储结构,且已有说明float*p,m=3.14;则正确的赋值语句是()
A)p=m; B)p=&m; C)*p=m; D)*p=&m;
21、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,
'A',B’,C.;则符合程序段运行结果的选项是()。
void move(char getone,char putone)
{printf("%c——>%c\n",getone,putone);
void hanoi(int n,char one,char two,char three){if(n==1)move(one,three);
else
{hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
A)A-->C B)A-->C C)A-->C D)A-->C
A-->B A-->B A-->B A-->B
C-->B C-->A C-->B C-->B
B-->A A-->B A-->C A-->C
C-->B B-->C B-->A A—->B
A-->C A-->C B-->C B-->C
A-->B A-->B A-->C A-->C
22、下面程序的运行结果是()。
#include
int main()
{char str[]="SSSWLIA",c;int k;
for(k=2;(c=str[k])!=\o';k++)
{switch(C.