视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
2022年北京联合大学公共课《C语言》科目期末试卷A(有答案)
2025-10-05 17:11:50 责编:小OO
文档
2022年北京联合大学公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。

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

3、C语言源程序文件的后缀是      ;经过编译后,生成文件的后缀是      ;经过连接后,生成文件的后缀是      

4、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。

5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。

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

char s[20]="abcd";

char*sp=s;

sp++;

puts(strcat(sp,"ABCD"));

7、执行下面程序段后,k的值是_______。

k=1;n=263;

do{k*=n%10;n/=10;} while(n);

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、设有以下宏定义:

#define WIDTH80

#define LENGTH(WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。

二、选择题

11、下面4个选项中,是C语言关键字的选项是(    )。

A.auto          B. switch      C. signed      D. if 

Enum          typedef          union      struct 

include        continue         scanf        type

    

12、已知各变量的类型说明如下:

int k,a,b;

unsigned long w=5;

double x=1.42;则以下不正确的表达式是(   )。

A.x%(-3)               B.w+=-2

C.k=(a=2,b=3,a+B.      D.a+=a-=(b=4)*(a=3)

13、已有如下定义和输入语句,若要求al,a2,c1,c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:口表示空格)

int a1,a2;

char c1,c2;

scanf("%d%c%d%c”, &a1,&c1,&a2,&c2);

A.10A□20B<回车> B.10□A□20□B<回车>

C.10A□20B<回车> D.10A20□B<回车>

14、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是(   )。

A.x=10        B.x=10           C.x=10          D.x=10

y=15           y=10              y=10              y=5

z=10           z=10              z=15              z=10

15、若有说明:inta[3][4];,则对a数组元素的正确引用是(  )。

A.a[3][4]     B.a[1,3]         C.a[i+1][0]         D.a(2)(1)

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

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

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

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

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

17、下面程序段的运行结果是(  )。

a=1;b=2;c=2;

while(aprintf("%d,%d,%d",a,b,C.;

A.1,2,0    B.2,1,0     C.1,2,1     D.2,1,1

18、以下程序有语法性错误,有关错误原因的正确说法是(  )。

#include

int main()

{int G=5,k;

void prt_char();

-----

k=prt_char(G);

--- 

}

A.语句void prt_char();有错,它是函数调用语句,不能用void说明

B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾

D.函数名不能使用下划线

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、以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是(   )。

A)void strcpyl(char xpl,char*p2)

{while((*p1++=*p2++)!=\\0');}

B)void strcpy1(char *pl,char *p2)

{while((*pl=*p2)!=\\0){p1++;p2++;}}

C)void strcpy1(char *pl,char *p2)

{while(*p2)*p1++=*p2++;}

D)void trcpyl(char *p1,char *p2)

{while((*pl++=*p2++);)*p='\\0';}

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

#include

int fun(int n)

{int m=0,f=-1,i;

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

{m=m+i*f;

f=-f;

}

return m;

int main()

{printf("m=%d\\n",fun(10));

return(0);

A.m=5    B.m=-6      C.m=6   D.m=-5

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

ab<回车>

C<回车>

def<回车>

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

#include

#defineN6

int main()

{charc[N];

int i=0;

for(;ifor(i=0;iputchar(c[i]);

return 0;

}

A.abcdef             B.a            C.b            D.ab

b              c                 c

c              d                 d

                              e

                              f

23、下面程序段的运行结果是(   )。

char a[7]="abcdef";

char b[4]="ABC";

strcpy(a,B.;

printf("%c",a[5]);

A.口          B.\\0            C.e         D.f(其中口表示1个空格)

24、执行以下程序段后的输出是(   )。

Int i=-1;

if(i<=0)printf(”****\\n")

else 

printf("%%%%\\n");

A.****     B.有语法错,不能正确执行   C.%%%%C   D.%%%%

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

#include

int main()

{ int i; for(i=1;i<=5;i++)

switch(i%5)

{ case 0: printf("*"); break; 

case 1: printf("#"); break; 

default: printf("\\n"); 

case 2: printf("&."); 

}

return 0;

}

A)#&8&&*           B)#&              C)#              D)#&

&                 &

&*                &                 *

                        &

                   *

三、读程序填空

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

#include

int main()

{int m=177; 

printf("%o\\n",m);

 return 0;

}

27、以下程序的输出结果为_______。

#include

int main()

{short i;

i=一4;

printf("\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n",i,i,i,i);

return 0;

}

28、为了使以下程序的输出结果为s=1,t=5,输入值a和b应满足的条件是_______。

#include

int main()

{ints,t,a,b;

scanf("%d,%d”,&a,&b);

s=1;

t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;

else if(a==b)t=5;

else t=2*s;

printf("s=%d,t=%d",s,t);

return 0;

}

29、若运行以下程序时输入字符为Q,则程序的运行结果是_______。

#include

int main()

{char ch;

scanf("%c",&ch);

ch=(ch>=′A'&&ch<='Z')?(ch+32):ch;

ch=(ch>='a'&&ch<='z')?(ch-32):ch;

printf("%c",ch);

return 0;

}

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

i=1;a=0;s=1;

do{a=a+s*i;s=-s;i++;}while(i<=10);

printf("a=%d",a);

31、以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。若找到,则返回此元素的下标;若仍未找到,则返回值一1。请填空。

#include

int search(int a[10],int m)

{int i;for(i=0;i<=9;i++)

if(_______)

return(i);

return(-1);

int main()

{int a[10],m,i,no;

no=search(_______);

if(_______)

printf("\\nOK FOUND!%d",no+1);

else printf("\\nSorry Not Found!");

return(0);

}

32、以下程序的功能是求1000以内的水仙花数。(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。例如:407=4×4×4+0×

0×0+7×7×7,故407是一个水仙花数。)请填空。

#include

int main()

{int x,y,z,a[8],m,i=0;

printf("The special numbers are:\\n");

for(_______;m++)

{x=m/100;

y=_______:

z=m%10;

if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)

{_______:i++;}

}

for(x=0;xprintf("%6d",a[x]);

return 0;

}

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

#include

int main()

{int a[10]={19,23,44,17,37,28,49,36},*p;

p=a;

p+=3;

printf("%d\\n",*p+3);

return(0);

}

四、编程题

34、从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前5个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中。试编程。

35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

一、填空题

1、0377

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

3、【1】.c【2】.obj【3】.exe

4、9

5、【1】63【2】73【3】171

6、bedABCD

7、36

8、【1】%If【2】num.x

9、A囗囗囗B囗囗囗<回车>

10、2400

二、选择题

11、B

12、A

13、A

14、A

15、C

16、D

17、A

18、C

19、C

20、D

21、A

22、D

23、D

24、B

25、B

三、读程序填空

26、261

27、i:dec=-4,oct=177774,hex=fffc,unsigned=65532

28、a<=0且a==b

29、Q

30、a=-5

31、【1】a[i]==m【2】a,m【3】no>=0

32、【1】m=100;m<1000【2】m/10-x*10【3】a[i]=m

33、20

四、编程题

34、#include

#include

int main()

{char a[80],b[80];

int i=0,j;

printf("Input two strings.\\n");

gets(a);gets(b);

while(a[i++]!='\\o');

for(j=0,i--;j<5&&b[j]!='\\0';j++)

a[i++]=b[j];

a[i]= '\\o';

puts(a);

return 0;

}

35、#include

int main()

{struct study int mid;

int end;

int average;

}math;

scanf("%d%d",&math.mid,&.math.end);

math.average=(math.mid+math.end)/2;

printf("average=%d\\n",math.average);

return 0;

}下载本文

显示全文
专题