您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页2022年东南大学公共课《C语言》科目期末试卷A(有答案)

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

来源:爱玩科技网
2022年东南大学公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、请读程序段: int a=-1; a=a|0377;

printf(\"%d,%o\\n\",a,a);以上程序段的输出结果是_______。 2、结构化程序由________、________ 、________ 3种基本结构组成。 3、一个C语言源程序由若干函数组成,其中至少应含有一个________ 4、C语言中的标识符可分为关键字、_______和_______3类。

5、若有定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______

6、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是_______。

for(k=0;k<3;k++)q[k]=8.a[k*4];printf(\"%d\\n\",q[2][3]); 7、下面程序段中循环体的执行次数是_______。 a=10;b=0;

do{b+=2;a-=2+b;}while(a>=0);

8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union

{int n;doublex;}num;

num.n=10; num.x=10.5;

printf(\"_______\",_______);

9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。

char cl,c2;

scanf(\"%4c%4c\",&cl,8&c2); 10、字符串\"ab\\n\\\\012\\\\\\\"”的长度是_______。

二、选择题

11、在C语言中,char型数据在内存中的存储形式是( )。 A.补码B.反码C.原码D.ASCII码

12、以下表达式值为3的是( )

A.16-13%10 B.2+3/2 C.14/3-2 D.(2+6)/(12-9)

13、根据以下定义语句和数据的输入方式,scanf语句的正确形式应为。 已有定义:float fl,f2; 数据的输入方式:4.52<回车>

3.5<回车>

A.scanf(\"%f,%f\",&f1,&f2); B.scanf(\"%f%f\",&fl,&f2);

C.scanf(\"%3.2f%2.1f\",&f1,&f2);D.scanf(\"%3.2f%2.1f\",&fl,&f2); 14、已知ch是字符型变量,下面不正确的赋值语句是( )

A.ch='a+b'; B.ch='\\o'; C.ch='7'+'9'; D.ch=5+9; 15、以下对二维数组a的正确说明是( )。

A.inta[3][];B.float a(3,4);C.double a[ ][4];D.float a(3)(4); 16、一个C语言程序由( )。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 17、下列程序段不是死循环的是( )。 A) inti=100;

while(1)

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

C.int k=0;do{++k;}while(k>=0); D.int s=36;while(s);--s;

18、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A.extern B.register C.auto D.static

19、若有说明:char*language[]={\"FORTRAN\",\"BASIC\",\"PASCAL\", \"JAVA\",\"C\");则表达式*language[1]>*language[3]比较的是( )。 A.字符F和字符P B.字符串BASIC和字符串JAVA C.字符B和字符J D.字符串FORTRAN和字符串PASCAL

20、若有以下定义和语句,则对a数组元素地址的正确引用为( )。 int a[2][3],(*p)[3];

p=a;

A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2

21、以下程序的运行结果是( )。 #include void fun(int x)

{if(x/2>0)fun(x/2-2); printf(\"%d”,x); }

int main() { fun(20); printf(\"\\n\"); return(0); }

A.2082-1 B.2820 C.8 D.-12820 22、下面程序的运行结果是( )。

#include int main()

{char ch[7]={\"12ab56\; int i,s=0; for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'o'; printf(\"%d\\n\",s);

return0; }

A.1 B.1256 C.12ab56 D.15 23、当运行以下程序时,从键盘输入:

aa bb<回车> ccdd<回车>

则下面程序的运行结果是( )。 #include int main()

{char al[5],a2[5],a3[5],a4[5]; scanf(\"%s%s\",al,a2); gets(a3);gets(a4); puts(a1);puts(a2); puts(a3);puts(a4); return 0; }

A)aa B)aa C)aa D)aa bb bb bb bb cc

cc cc dd dd

cc dd dd ee 24、以下程序的输出是( )。

#include int main() {int x=1; if(x=2)

printf(\"OK\");

else if(x<2)printf(\"%d\\n\",x);

else printf(\"Quit\"); return 0; }

A.OK B.Quit C.1 D.无输出结果 25、下面程序段的运行结果是( )。

for(x=3;x<6;x++)printf((x%2)?(\"**%d”):(“##%d\\n”),x);

A)**3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5

三、读程序填空

26、已知字母A的ASCII码值为65。以下程序的输出结果是_______。

#include int main() {char a,b;

a='A'+'4'-'3'; b='A'+'6'-2';

printf(\"a=%d,b=%c\\n\",a,b); return0; }

27、已有定义int d=-2;执行以下语句后的输出结果是_______。

printf(\"*d(1)=%d*d(2)=%3d*d(3)=%-3d*\\n\",d,d,d); printf(\"*d(4)=%o*d(5)=%7o*d(6)=% 7o*\\n\",d,d,d);

28、若a、b、c均已正确定义且a=0、b=2、c=3,则以下程序段的输出是_______。

switch(a)

{case 0:switch(b==2)

{case 1:printf(\"&”);break; case 2:printf(\"%”);break; }

case 1:switch(c) {case 1:printf(\"S\");

case 2:printf(”*”);break; default:printf(\"#”); } }

29、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如’a’变成’f’,w’变成b’。请填空。

#include int main() {char c; c=getchar();

if(c>='a'8&&.c<='u')【l】: else if(c>='v√8&8.c<='z)_______; putchar(c); return 0; }

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

#include int main() {int y=2,a=1; while(y--!=-1)

{do{a*=y;a++;}while(y-一);} printf(\"%d,%d\",a,y); return 0; }

31、下面程序的功能是_______,运行结果是_______。

#include long fib(int g) {switch(g) {case 0:return 0; case 1:case 2:return1; }

return(fib(g-1)+fib(g-2)); int main() {long k; k=fib(7);

printf(\"k=%d\\n\ return(0); }

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

#include int main()

{int i=0;char a[]=\"abm\",b[]=\"aqid\",c[10]; while(a[i]!='\\o'&&b[i]!='\\o') {if(a[i]>=b[i])c[i]=a[i]-32; else c[i]=b[i]-32; ++i;

} c[i]= '\\o'; puts(c); return 0; }

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

#include

void swap(int*pl,int*p2) {int p;

p=*p1;*pl=*p2;*p2=p; }

int main() {int a=5,b=7, *ptrl,*ptr2; ptr1=&a;ptr2=&b; swap(ptr1,ptr2);

printf(\"*ptrl=%d,*ptr2=%d\\n\",*ptrl,*ptr2); printf(\"a=%d,b=%d\\n\",a,b); return(0);

}

四、编程题

34、编写程序实现功能:输入一个复数,输出其共扼复数。例如,输入2+3i<回车>时,输出2-3i;输入2-3i<回车>时,输出2+3i。

35、以下函数fun的功能是从3个红球(x)、5个白球(y)、6个黑球(z)中任意取出8个,且其中必须要有红球和白球。请编写函数,输出所有方案。 #include

int fun(int x,int y,int z) {int i,j,k,sum=0;

(请在此处编写函数) }

int main()

{int sum,x=3,y=5,z=6; sum=fun(x,y,z);

printf(\"sum=%4d\\n\",sum); return(0); }

一、填空题

1、-1,177777

2、【1】顺序结构【2】选择结构【3】循环结构 3、主函数(或main函数)

4、【1】用户标识符【2】预定义标识符 5、-16 6、24 7、3

8、【1】%If【2】num.x 9、A囗囗囗B囗囗囗<回车>

10、9

二、选择题

11、D 12、B 13、B 14、A 15、C

16、B

17、C

18、D 19、C 20、C 21、D 22、A 23、A 24、A 25、D

三、读程序填空

26、a=66,b=E

27、*d(1)=-2*d(2)=囗-2*d(3)=-2囗**d(4)=177776*d(5)=囗177776*d(6)=177776囗* (注:答案中的囗代表空格)

28、【1】×<110&&x>=100【2】(x<60)||(x>109)【3】m=0 29、【1】c=c+5【2】c=c-21 30、m=1

31、【1】计算斐波拉契级数第7项的值。 【2】k=13 32、#&*8&%

33、*ptrl=7,*ptr2=5,a=7,b=5

四、编程题

34、#include int main() { int a,b; char symbol;

printf(\"Please enter:\");

scanf(\"%d%c% di\\n\ printf(\"Original value:%d%c% di\\n\ if(symbol=='-') symbol='+'; else symbol='-';

printf(\"New value:%d%c% di\\n\ return 0; }

35、for(i=1;i<=x;i++)

{for(j=1;j<=y;j++) {k=8-i-j;if(k>=0&&k<=z) {sum=sum+1;

printf(\"%4d%4d%4d\\n\",i,j,k); } } }

return sum;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务