2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)_第1页
2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)_第2页
2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)_第3页
2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)_第4页
2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022年重庆工程学院公共课《C语言》科目期末试卷B(有答案)

一、填空题

1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。

请填空。

a+=_______;b=a-_______;a-=_______;

2、C语言源程序的基本单位是________

3、C语言的源程序必须通过【】和【】后,才能被计算机执行。

4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。

5、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=

(n%=2)后x的值为_______。

6、把int类型变量low中的低字节及变量high中的高字节放入变量s中的表达式是

_______。

7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。请填空。

for(x=0;x<=30;x++)

{y=30一x;

if(_______)printf("%d,%d\n",x,y);

}

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

charch[]="600";inta,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++)

s=10*s+ch[a]-'o';

printf("%d",s);

9、设有宏定义如下:

#defineMIN(x,y)(x)>(y)?(x):(y)

#defineT(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值

为_______。

inta=1,b=3,c=5,s1,s2;

s1=MIN(a=b,b-a);

s2=T(a++,a*++b,a+b+c);

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

chara[]="12345",*p;

ints=0;

for(p=a;*p!=\0';p++)

s=10*s+*p-'o';

printf("%d\n",s);

二、选择题

11、下面4个选项中,是合法整型常量的选项是()。

A.160B.-0xcdfC.-01D.-0x48a

-0xffff01a9860122e5

0110xe06680x

12、下面4个选项中,是不合法的用户标识符的选项是()。

A.AB.floatC.b-aD._123

P_01a0gototemp

DoAintINT

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

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

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

14、C语言规定:在一个源程序中,main函数的位置()

A.必须在最开始B.必须在系统调用的库函数的后面

C.可以任意D.必须在最后

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

A.a[10]B.a[3.5]C.a(5)D.a[10-10]

16、阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果

#include<stdio.h>

intmain()

{intx,y,z;

scanf("%d%d%d”,8.x.&y,&z);

printf("x+y+z=%d\n",x+y+z);

return0;

}

A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值

17、已有定义int(*p)();指针p可以()。

A.代表函数的返回值B.指向函数的入口地址

C.表示函数的类型D.表示函数返回值的类型

18、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局

变量,则该变量需要使用的存储类别是()

A.externB.registerC.autoD.static

19、设有以下程序段:

intx=0,s=0;

while(!x!=0)s+=++x;

printf("%d”,s);则()

A.运行程序段后输出0B.运行程序段后输出1

C.程序段中的控制表达式是非法的D.程序段执行无限次

20、在下面的程序段中()。

Intt,x;

for(t=1;t<=100;t++)

{scanf("%d”,&x);

if(x<0)continue;

printf("%3d",t);

}

A.当x<0时整个循环结束B.x≥0时什么也不输出

C.printf函数永远也不执行D.最多允许输出100个非负整数

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

#include<stdio.h>

intmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)8&.8&(-1);

printf("%d,%d",a,B.;

return0;

}

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

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

inta[6][6],i,j;

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

for(j=1:j<6;j++)

a[i][j]=(i/j)*(j/i);

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

{for(j=1;j<6;j++)

printf("%2d",a[i][j]);

printf("\n")

}

A)11111B)00001C)10000D)10001

11111000100100001010

11111001000010000100

11111010000001001010

11111100000000110001

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

aabb<回车>

ccdd<回车>

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

#include<stdio.h>

intmain()

{charal[5],a2[5],a3[5],a4[5];

scanf("%s%s",al,a2);

gets(a3);gets(a4);

puts(a1);puts(a2);

puts(a3);puts(a4);

return0;

}

A)aaB)aaC)aaD)aabb

bbbbbbcc

ccccdddd

ccddddee

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

#include<stdio.h>

voidfun(intx)

{if(x/2>0)fun(x/2-2);

printf("%d”,x);

}

intmain()

{fun(20);

printf("\n");

return(0);

}

A.2082-1B.2820C.8D.-12820

25、若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果()

#include<stdio.h>

intmain()

{intc;

while((c=getchar())!='\n')

switch(c-'2')

{case0:

case1;putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default;putchar(c+2);break;

}

return0;

}

A.668977B.668966C.66778777D.6688766

三、读程序填空

26、以下程序的输出结果是_______。

#include<stdio.h>

intmain()

{inta=252;

printf("a=%oa=%#o\n",a,a);

printf("a=%xa=%#x\n",a,a);

return0;

}

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

#include<stdio.h>

intmain()

{intn=100;

charc;

floatf=10.0;

doublex;

x=f*=n/=(c=48);

printf("%d%d%3.1f%3.1f\n",n,c,f,x);

return0;

}

28、以下函数fun的功能是:将输入的大写字母,先转换为与其对应的小写字母,

然后再转换成该小写字母后的第3个字母,返回后输出。例如,若输入的字母为E,

输出的字母则为h;若输入的字母为Y,输出的字母则为b。请填空。

#include<stdio.h>

#include<string.h>

charfun(charc)

{!c=_______:

if(c>=1a1&&c<='w')c=c+3;

elseif(c>='x'/&&c<='z')_______:

returnc;

}

intmain()

{charc;

c=getchar();

c=fun(e);

putchar(c);

return(0);

}

29、若输入一个整数10,则以下程序的运行结果是_______。

#include<stdio.h>

intsub(inta);

intmain()

{inta,e[10],c,i=0;

printf(”输入一整数\n");

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

while(a!=0)

{c=sub(a);

a=a/2;

e[i]=c;

i++;

for(;i>0;i--)printf("%d",e[i-1]);

return(0);

}

intsub(inta)

{intc;

c=a%2;

returnc;

}

30、下面程序的功能是用辗转相除法求两个正整数的最大公约数。请填空。

#include<stdio.h>

intmain()

{intr,m,n;

scanf("%d%d",&m,&n);

if(m<n){_______};

r=m%n;

while(r){m=n;n=r;r=_______;}

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

return0;

}

31、下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有a[i][j]=

a[j][i])。请填空。

#include<stdio.h>

intmain()

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

inti,j,found=0;

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

for(_______;i<4;i++)

if(a[j][i]!=a[i][j])

{_______;break;)

if(found==1)printf("No");

elseprintf("Yes");

return0;

}

32、以下程序的功能是判断输入的某个年份是否是闰年。请填空。

#include<stdio.h>

intmain()

{inty,f;

scanf("%d",&y);

if(y%400==0)f=1;

elseif(_______)f=1;

else_______;

if(f)printf("%dis",y);

elseprintf("%disnot",y);

printf("aleapyear\n");

return0;

}

33、以下程序把x插到a数组中的下标为k的元素中。请填空。

#include<stdio.h>

intmain()

{inta[51],k,x,i,n;

printf("Entern(n<50):");

scanf("%d",&n);

printf("Enter%2dintegers:\n",n);

for(i=1;i<=n;i++)scanf("%d",a+i);

printf("Enteralocationvalueforinsertednumber:\n");

scanf("%d”,&k);

printf("Enterainsertednumber:\n");

scanf("%d”,8.x);

if((k>0)&&(k<=n+1))

{for(_______)*(a+i+1)=*(a+i);

*(_______)=x;

_______;

}

for(i=1;i<=n;i++)printf("%4d",*(a+i));

printf("\n");

return(0);

}

四、编程题

34、下面findmax函数将计算数组中的最大元素及其下标值和地址值,请编写

*findmax()函数。

#include<stdio.h>

int*findmax(int*s,intt,int*k)

{

}

intmain()

{inta[10]={12,23,34,45,56,67,78,89,11,22},k,*add;

add=findmax(a,10,&.k);

printf("%d,%d,%o\n",a[k],k,add);

return(0);

}

35、通过循环按行顺序为一个5×5的二维数组a赋1~25的自然数,然后输出该数

组的左下三角。试编程。

参考答案

一、填空题

1、【1】b【2】b【3】b

2、函数

3、【1】编译【2】连接

4、整型(或int型)

5、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论