✅ 操作成功!

南京航空航天大学金城学院教务处

发布时间:2023-06-12 作者:admin 来源:文学

南京航空航天大学金城学院教务处

南京航空航天大学金城学院教务处

三维打印技术-担保书模板

2023年3月17日发(作者:优序融资理论)

2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷

B(有答案)

一、填空题

1、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、

y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。

#include

intmain()

{inta,b;

floatx,y;

charcl,c2;

scanf("a=%db=%d",&.a,&.b);

scanf("x=%fy=%",8.x,8.y);

scanf("c1=%cc2=%c”,,8.c2);

printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,

cl,c2);

return0;

}

2、一个C语言源程序由若干函数组成,其中至少应含有一个________

3、结构化程序由________、________、________3种基本结构组成。

4、C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______和

_______。

5、若有定义语句:ints=6;则表达式s%2+(s+1)%2的值为_______

6、请读程序段:

inta=-1;

a=a|0377;

printf("%d,%on",a,a);以上程序段的输出结果是_______。

7、函数swap(intx,inty)可完成对x和y值的交换。在运行调用函数中的如下语

句后,a[0]和a[1]的值分别为_______,原因是_______。

a[o]=1;a[1]=2;

swap(a[o],a[1]);

8、下面程序段的运行结果是_______。

inti=5;charc[6]="abcd";

do{c[i]=c[i-1];}while(--i>0);

puts(c);

9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数

组a,且所有元素初值为0的形式是_______。

10、当运行以下程序时,从键盘输入

book

book囗(囗表示空格),则下面程序段的运行结果是_______。

charal[80],a2[80],*sl=al,*s2=a2;

gets(s1);gets(s2);

if(!strcmp(sl,s2))

printf("x");

elseprintf("#");

printf("%d",strlen(strcat(sl,s2))

}

二、选择题

11、下面4个选项中,是合法转义字符的选项是()。

A.’"B.''C.'018'D.'o'

'''017''f''10l'

'n''"'xab''xlf'

12、下面4个选项中,是正确的八进制数或十六进制数的选项是()。

13、以下叙述不正确的是()

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

14、一个C语言程序由()。

A.一个主程序和若干子程序组成B.函数组成

C.若干过程组成D.若干子程序组成

15、以下能对二维数组a进行正确初始化的语句是()。

[2][]={{1,0,1},{5,2,3}};

[][3]={{1,2,3},{4,5,6}};

[2][4]={1,2,3},{4,5},{6}};

[][3]={{1,0,1,0},{},{1,1}};

16、设有说明:doubley=0.5,z=1.5;intx=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));

17、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA",

"C");则language[2]的值是()。

A.一个字符B.一个地址C.一个字符串D.一个不定值

18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式

19、下列程序段不是死循环的是()。

A)inti=100;

while(1)

{i=i%100+1;if(i>100)break;

(;;);

=0;do{++k;}while(k>=0);

=36;while(s);--s;

20、若i为整型变量,则以下循环执行次数是()。

for(i=2;i==0;)printf("%d",i--);

A.无限次B.0次C.1次D.2次

21、以下程序的输出是()。

#include

intmain()

{inta=100,x=10,y=20,okl=5,ok2=0;

if(x

if(y!=10)

if(!ok1)

a=1;

else

if(ok2)a=10;

a=-1;

printf("%dn",A.;

return0;

}

A.1B.0C.-1D.值不确定

22、下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并

到字符串c中。请选择填空。

#include

#include

intmain()

{chara[]="acegikm",b[]="bdfhjlnpq";

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=o'&&b[j]!='o')

{if(a[i]

else{【】}

k++;

}

c[k]='o';

if(a[i]=='0')p=b+j;

elsep=a+i;

strcat(c,p);

puts(C.;

return0;

}

A.c[k]=a[i];i++;B.c[k]=a[j];i++;C.c[k]=a[i];j++;D.c[k]=a[j];j++;

23、当运行以下程序时,从键盘输入:

ab

C

def

则下面程序的运行结果是()。

#include

#defineN6

intmain()

{charc[N];

inti=0;

for(;i

for(i=0;i

putchar(c[i]);

return0;

}

bcc

cdd

e

f

24、以下程序的运行结果是()。

#include

intf(intx,inty)

{return(y-x)*x;}

intmain()

{inta=3,b=4,c=5,d;

d=f(f(a,C.,f(a,B.+f(c,B.);

printf("%dn",D.;

return(0);

}

A.-48B.58C.-58D.47

25、假设等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小

于100的最大n,请选择填空。()

#include

intmain()

{inta=1,g=2,n=0,sum=0;

do

{【1】;

++n;a*=g;

}while(sum<100);

n-=1;

printf("%dn",n);

return0;

}

+++==a+aD.a+=sum

三、读程序填空

26、以下程序的运行结果是_______。

#include

intmain()

{intm=177;

printf("%on",m);

return0;

}

27、以下printf语句中的负号的作用是_______,该程序的输出结果是_______。

#include

intmain()

{intx=12;

doublea=3.1415926;

printf("%6d##n",x);

printf("%一6d##n",x);

printf("%14.101f##n",a);

printf("%-14.101f##n",a);

return0;

}

28、以下程序运行结果是_______。

#include

intmain()

{inta=1,b=2,c=3;

++a;c+=++b;

{intb=4,c;

c=b*3;

a+=c;

printf("first:%d,%d,%dn",a,b,c);

a+=c;

printf("second:%d,%d,%dn",a,b,c);

printf("third:%d,%d,%dn",a,b,c);

return(0);

}

29、函数del的作用是删除已按升序排列的数组a中的指定元素x。已有调用语句

n=del(a,n,x);其中实参n为删除前数组元素的个数,赋值号左边的n为删除

后数组元素的个数。请填空。

intdel(inta[],intn,intx)

{intp,i;p=0;

while(x>=a[p]&&p

for(i=p-1;i

n=n一1;

returnn;

}

30、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若

找到,打印此数;若未找到,打印notexist。请填空。

#include

intmain()

{inti,a;

for(i=1;i<=10;i++)

{scanf("%d",&a);

if(a%7==0)_______;

}

if(_______)printf("%dn",a);

elseprintf("notexistn");

return0;

}

31、当运行以下程序时,从键盘输入:

BOOK

CUT

GAME

PAGE

则下面程序的运行结果是_______。

#include

#include

intmain()

{inti;

charstr[10],temp[10]="Control";

for(i=0;i<4;i++)

{gets(str);

if(strcmp(temp,str)<0)strcpy(temp,str);

}

puts(temp);

return0;

}

32、以下程序的运行结果是_______。

#include

intmain()

{intx=1,y,z;

x*=3+2;

printf("%dt",x);

x*=y=z=5;

printf("%dt',x);

x=y==z;

printf("%dn",x);

return0;

}

33、若从键盘输入:2,则下面程序的运行结果是_______。

#include

intmain()

{char*b[]={"English","Physics","Maths","Pascal","Chemistry","End",

"Error"};intnum;

printf("Enteraintegerthatshouldbebetween0to9n");

scanf("%d”,&.num);

if(num>=0&&num<=9)

if(num>=1&&num<=5)

printf("Thechosenclassis:%s.n",b[num-1]);

else

printf("Noclassischosen.%s!!n",b[5]);

else

printf("Yourinputis:%s!!n",b[6]);

return(0);

}

四、编程题

34、设有一个数列,包含10个数,已按升序排好。现要求编写程序,把从指定位

置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指

针方法。试编程。(例如:原数列为2、4、6、8、10、12、14、16、18、20,

若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2、4、6、16、

14、12、10、8、18、20。)

35、以下程序的功能是应用弦截法求方程x3-5x2+16x-80=0的根,其中f函数

可根据指定的x的值求出方程的值;函数xpoint可根据x1和x2求出f(x1)和f(x2)

的连线与x轴的交点;函数root用来求区间(x1,x2)的实根。请编写root函数。

#include

#include

floatroot(floatxl,float×2)

{

}floatf(floatx)/*略*/

{

}

floatxpoint(floatx1,floatx2)/*路*/

{

}

intmain()

{floatxl,x2,fl,f2,x;

do

{printf(“inputxl,x2:n");

scanf("%f%,8&x1,8.x2);

printf("xl=%5.2f,x2=%5.2fn",xl,x2);

f1=f(x1);

f2=f(×2);

}while(fl*f2>=0);

x=root(x1,x2);

printf("Arootofequationis%8.4f",x);

return(0);

}

参考答案

一、填空题

1、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a

(注:答案中的囗代表空格)

2、主函数(或main函数)

3、【1】顺序结构【2】选择结构【3】循环结构

4、【1】整型【2】字符型【3】枚举型

5、1

6、-1,177777

【1】7、a[0]=1a[1]=2

【2】单向值传递,不能返回交换后的值。

8、aabcd

9、doublea[M][M]={0};

10、#9

二、选择题

11、A

12、C

13、D

14、B

15、B

16、D

17、B

18、B

19、C

20、B

21、C

22、D

23、D

24、A

25、B

三、读程序填空

26、261

27、【1】输出数据左对齐

【2】囗囗囗012

##12口囗囗囗

##囗囗3.141592600

##3.141592600囗囗

##(注:答案中的囗代表空格)

28、first:14,4,12

second:26,4,12

third:26,3,6

29、【1】p=p+1【2】a[i]=a[i+1]

30、【1】break【2】i<=10

31、PAGE

32、5.251

33、Thechosenclassis:Physics.

四、编程题

34、#include

intmain()

{intb[10],position,num,k,*q1,*q2,temp;

printf("Input10sortednumbersn");

for(k=0;k<10;k++)

scanf("%d",&.b[k]);

printf("nlnputtheposition:n");

scanf("%d",&position);

printf("Inputthenumberofdatathatbesortedagain:n");

scanf("%d",&num);

printf("Theoldarraybis:n");

for(k=0;k<10;k++)

printf("%4d",b[k]);

printf("n");

q1=&b[position-1];

q2=&b[position-2+num];

for(;q1<&b[position-1]+num/2;q1++,q2--)

{temp=*q1;*q1=*q2;*q2=temp;}

printf("Thenewarraybis:n");

for(k=0;k<10;k++)

printf("%4d",b[k]);

return(0);

}

35、floatroot(floatx1,floatx2)

{inti;floatx,y,y1;

y1=f(x1);

do

{x=xpoint(x1,x2);

y=f(x);

if(y*y1>0){y1=y;x1=x;}

Elsex2=x;

}while(fabs(y)>=0.0001);

return(x);

}

👁️ 阅读量:0