2022年濮阳职业技术学院公共课《C语言》科目期末试卷B(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022年濮阳职业技术学院公共课《C语言》科目期末试卷B(有答案)
一、填空题
1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。

请填空。

a+=_______;b=a-_______;a-=_______;
2、函数swap(int x,inty)可完成对x和y值的交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。

a[o]=1;a[1]=2;
swap(a[o],a[1]);
3、下面程序段的运行结果是_______。

x=2;
do{printf("*");x--;)while(!x==0);
4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双
精度实型变量,用关键字_______定义字符型变量。

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

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

int i=5;char c[6]="abcd";
do{c[i]=c[i-1];}while(--i>0);
puts(c);
7、请读程序段:
unsigned a=16;
printf("%d,%d,%d\n",a>>2,a=a>>2,a);以上程序段的输出结果是_______。

8、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是
9、C语言的源程序必须通过【】和【】后,才能被计算机执行。

10、以下程序段通过指针变量q,给如图所示连续动态存储单元赋值(在此过程中不能移动q)。

请填空。

(假设程序段中的所有变量均已正确说明。


_______scanf("%d",q+k);
二、选择题
11、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( )
12、在C语言中,char型数据在内存中的存储形式是()。

A.补码
B.反码
C.原码
D.ASCII码
13、C语言规定:在一个源程序中,main函数的位置( )
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
14、一个C语言程序由( )。

A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
15、下面能正确进行字符串赋值操作的是()。

A.char s[5]={"ABCDE');
B.char s[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",s);
16、根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为。

(注:口表示空格)
#include<stdio.h>
int main()
{char ch1,ch2,ch3;
输入语句
printf("%c%c%c",ch1,ch2,ch3);
return0;
}
输入形式:A口BOC<回车>
输出形式:A口B
A.scanf("%c%c%c",&ch1,&ch2,&ch3);
B.scanf("%c,%c,%c",&&ch1,&ch2,&ch3);
C.scanf("%c%c%c",&ch1,&ch2,&ch3);
D.scanf("%c%c",&ch1,&ch2,&ch3);
17、下面的程序段( )。

x=3;
do
{y=x--;
if(!y){printf("x");continue;}
printf(“#”);
}while(1<=x<=2);
A.将输出##
B.将输出并## *
C.是死循环
D.含有不合法的控制表达式
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
19、若有初始化语句:int a[3][4]={0};,则下面正确的叙述是()。

A.只有元素a[0][0]可得到初值0
B.此初始化语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
20、若有说明:inta[10];,则对a数组元素的正确引用是()。

A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
21、以下程序()。

#include<stdio.h>
int main()
{int a=5,b=0,c=0;
if(a=b+C.printf("***\n");
else printf("$$$\n");
return 0;
}
A.有语法错不能通过编译
B.可以通过编译但不能通过连接
C.输出***
D.输出$$$
22、下面程序的功能是将字符串s中所有的字符c删除。

请选择填空()。

#include<stdio.h>
int main()
{char s[80];inti,j;
gets(s);
for(i=j=0;s[i]!= '\o';i++)
if(s[i]!='c)[ ];
s[j]='\o';
puts(s);
return 0;
}
A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[];j++ D)s[j]=s[i]
23、下面程序段的运行结果是()。

charc[5]={'a',b',\o','c','\o');
printf("%s",C.;
A.'a''b'
B.ab
C.ab口c
D.ab口(其中口表示1个空格)
24、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位
于中间点元素的值。

如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。

函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。

请选择填空。

int binary(int a[10],int m)
{int low=0,high=9,mid;
while(low<=high)
{mid=(low+high)/2;
if(m<a[mid])high=mid-1;
else if(m>a[mid])【】;
else return(miD.;
return(一1);
}
A.high=mid-1
B.low=mid+1
C.high=mid+1
D.low=mid-1
25、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。

其中y变成A,z变成B。

请选择填空()。

#include <stdio.h>
int main()
{char c;
while((c=getchar())!=\n')
{ if(c>='a'8.&.c<='z/)
c=c-32+2:
if(c>'Z)【】;
}
printf("%c",C.;
return 0;
}
A.c='B'
B.c='A'
C.c-=26
D.c=c+26
三、读程序填空
26、以下printf语句中的负号的作用是_______,该程序的输出结果是_______。

#include<stdio.h>
int main()
{int x=12;
double a=3.1415926;
printf("%6d##\n",x);
printf("%一6d##\n",x);
printf("%14.101f##\n",a);
printf("%-14.101f##\n",a);
return 0;
}
27、以下程序的输出结果为_______。

#include<stdio.h>
int main()
{short i;
i=一4;
printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);return 0;
}
28、以下程序的输出结果是_______。

#include <stdio.h>
int main()
{inta=2,b=7,c=5;
switch(a>0)
{case 1:switch(b<0)
{case 1:printf("@");break;
case 2:printf("!");break;
case 0:switch(c==5)
{case0:printf("*");break;
case 1:printf("#");break;
default:printf("#");break;
default:printf("&");
}
printf("\n");
return0;
}
29、某服装店经营套服且单件出售。

若一次购买不少于50套,则每套80元;若不
足50套,则每套90元;只买上衣每件60元;只买裤子每条45元。

以下程序的功能
是读入所买上衣c和裤子t的件数,计算应付款数m。

请填空。

#include<stdio.h>
int main()
{int c,t,m;
printf("input the number of coat and trousers you want to buy:\n");
scanf("%d%d",&c,&t);
if(_______)
if(c>=50)m=c*80;else m=c*90;
else if(_______)
if(t>=50)m=t*80+(c-t)*60;
else m=t*90+(c-t)*60;
else if(_______)m=c*80+(t-c)*45;
else m=c*90+(t-c)*45;
printf("%d",m);
return 0
}
30、函数f中的形参a为一个10×10的二维数组,n的值为5,以下程序的运行结果为_______。

void f(int a[10][10],int n)
{inti,j,k;
j=n/2+1;a[1][j]=1;i=1;
for(k=2;k<=n*n;k++)
{i=i-1;j=j+1;
if((i<1)&&(j>n))
{i=i+2;j=j-1;}
else
{if(i<1)i=n;
if(j>n)j=1;i
}
f(a[i][j]==0)a[i][j]=k;
else{i=i+2;j=j-1;a[i][j]=k;}
}
}
31、下面程序的运行结果是_______。

#include<stdio.h>
int main()
{int a[10]={1,2,2,3,4,3,4,5,1,5};
int n=0,i,j,c,k;
for(i=0;i<10-n;i++)
{c=a[i];
for(j=i+1;j<10-n;j++)
if(a[j]==c)
{for(k=j;k<10-n;k++)
a[k]=a[k+1];n+十;
}
for(i=0;i<(10-n);i++)
printf("%d",a[i]);
return 0;
}
32、用0~9之间不同的3个数构成一个3位数,下面程序将统计出共有多少种方法。

请填空。

#include<stdio.h>
int main()
{int i,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if(_______)continue;
else
for(k=0;k<=9;k++)
if(_______) count++;
printf("%d",count);
return 0;
}
33、若有以下输入(口表示空格),则下面程序的运行结果是_______。

5口4口3口6<回车>
2口4口6口8<回车>
5口4口3口2<回车>
9口8口7口6<回车>
#include <stdio.h>
#define M 4
int main()
{int a[M][M],s[M],i,j;
for(i=0;i<M;i++)
for(j=0;j<M;j++)scanf("%d",*(a+i)+j);
for(i=0;i<M;i++)
{*(s+i)=*(*(a+i)); for(j=1;j<M;j++)
if(*(s+i)<*(*(a+i)+j))*(s+i)=*(*(a+i)+j);
}
for(i=0;i<M;i++)
{printf("Row=%2d Max=%5d",i,*(s+i));
printf("\n");
return(0);
}
四、编程题
34、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

35、编写程序判断输入的正整数是否既是5又是7的整倍数。

若是,则输出yes;否则输出no。

参考答案
一、填空题
1、【1】b【2】b【3】b
【1】2、a[0]=1 a[1]=2
【2】单向值传递,不能返回交换后的值。

3、**
4、【1】float【2】double【3】char
5、0
6、aabcd
7、1,4,16
8、【1】.c【2】.obj【3】.exe
9、【1】编译【2】连接
10、for(k=0;k<10;k++)
二、选择题
11、C
12、D
13、C
14、B
15、C
16、A
17、C
18、B
19、D
20、D
21、D
22、A
23、B
24、C
25、C
三、读程序填空
26、【1】输出数据左对齐
【2】囗囗囗012##
12口囗囗囗##
囗囗3.141592600##
3.141592600囗囗##
(注:答案中的囗代表空格)
27、i:dec=-4,oct=177774,hex=fffc,unsigned=65532
28、【1】x<0【2】×/10【3】y!=-2
29、【1】c==t【2】c>1【3】c>=50
30、打印5阶幻方:
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 31
11 18 25 2 9
31、1 2 3 4 5
32、【1】i==j【2】k!=i&&k!=j
33、Row=0 Max=6
Row=1 Max=8
Row=2 Max=5
Row=3 Max=9
四、编程题
34、#include<stdio.h>
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;
}
35、#include <stdio.h>
int main()
{int x;
scanf("%d",&x);
if(x%5==08&.&x%7==0)printf("yes");
else
printf("no");
return 0;
}。

相关文档
最新文档