2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.

相关文档
最新文档