




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学教研活动个人总结15篇
- 某年度阻沙固沙网产业分析报告
- 货车租赁事故赔偿协议
- 高管领导力提升发展计划
- 村级房屋转让合同协议书
- 2025高校辅导员家庭沟通技巧计划
- 单位合租房协议书合同
- 建筑工地安全培训应急演练计划
- 职业培训机构复课与在线课程衔接计划
- 离婚协议书:财产分割与子女抚养责任书
- 申论详解(PPT课件)
- 《病理检验技术》课程标准
- 封条模板A4直接打印版
- 服务中心及办公室装修设计方案
- 回弹法检测混凝土强度计算表(自动计算)
- 阀门系数Cv和KV值计算表格(带公式)
- 少儿编程scratch3.0安装使用说明文档
- 小班音乐游戏《会跳舞的跳跳糖》原版有声动态PPT课件
- 项目经理变更申请表
- 正畸治疗中的口腔健康教育和卫生保健课件
- 现代火电机组AGC控制问题的解决平台--INFIT
评论
0/150
提交评论