C语言期末考试试卷附参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言期末考试一试卷附参照答案
序列中 10 个数的次序为:,若使用次序比较法,
经过三轮排序后,这10 个数的次序为:。
3. 调用字符串办理函数时,应在程序的开头增添预编译命令:#include<>,puts( )函数将一个以结束的字符序列(字符串)输出到终端
4.C 语言中,函数分为系统供给的和用户自定义函数两类,也可分为有参
函数和两类。
5.函数的递归调用指在调用一个函数的过程中
又。
6.函数值只好经过语句返回主调函数。
四、程序改错(求出两个非零正整数的最大条约数在右侧写出正确内容, 5× 2)
#include<stdio.h>
int fun(int a, b )
{ int r,t;
if(a<b) {t=a;b=a;a=t;}
r=a%b;
while(r!=0)
{a=b;b=r;r=a/b;}
return a;}
五、阅读程序写出运转结果(4×5)
1.# include<stdio.h>
int main( )
{ void fun(int x);
fun(8);
printf("\n");
}
void fun(int x)
{if(x/2>0) fun(x/2);
printf("%d",x);
}
运转结果为:
3. #include <stdio.h>
# include<math.h>
int main( )
{ int i,j,n=0;
for(i=― 5;i<=5;i++)
{ if(i%2!=0) n++;
for(j=1;j<=abs(i);j++) printf( “ “);
,并作为函数值返回。
在错误下边划横线,
void main( )
{ int n1,n2,a;
printf( “please input n1,n2:\n ”);
scanf( “%d%d”,
&n1,&n2); a=fun(n1,n2);
printf("最大条约数是: %d\n",a);
}
2.# include <stdio.h>
void main ( )
{ char s1[ ]=” This book ”;
char s2[ ]= ” THIS hook ”;
int i;
for (i=0;s1[i]!= 0’ &&s2[i]!= 0’i++);
if(s1[i]!=s2[i]) printf( “ %c” ,s1[i]);
}
运转结果为:
4.#include <stdio.h>
int main( )
{int i,j,x;
int a[10] ={12,3,14,5,26,97,38,9,0,―2}; for(i=0;i<=9;i++)
{x=a[i];j=i-1;
while(j>=0&&x<a[j])
六、程序填空题(结果按次号填在下方对应横线上, 10× 2 分)
1、编程实现将十进制整数 n 变换成十六进制 2、编写判断能否为素数的函数,在主函数 数输出。
中输入一整数,输出能否为素数。
#include<__①___ >
#include<stdio.h> int main()
int psushu(___⑥ ____) { int n,a[20],i=0,m=0; {int i;
char hex[16] ={'0','1','2','3','4','5','6','7',
for(i=2; ___⑦ ___;i++) '8','9','A','B','C','D','E','F'}; if(m%i==0) return 0; printf(" 请输入整数 n :\n "); return ___⑧ ___;} scanf(___②____, &n); void main() while(n>0) { int a, s;
{ a[i++]=n%16;
printf(" 请输入整数: \n "); n= ____③ ___; } scanf( “ ”,⑨ __);
printf(" 转变为十六进制的数为: ");
%d s=psushu(a); for(i=i ―1; ____④ ___;i ―― ) //倒序输出
if (__⑩ __) printf( “ %d 是素数 n ” ,a); { m=a[i];
else printf("%d 不是素数 \n",a); printf("__ ⑤___",hex[m]); } }
printf("\n"); }
① ______________________________ ⑥______________________________
② ______________________________
⑦______________________________
③ ______________________________
⑧______________________________
④ ______________________________
⑨______________________________
⑤ ______________________________
⑩______________________________
附:参照答案
一、单项选择题
题 号 1 2 3 4 5
6
7
8 9
10
答 案 C
A C D B
D
B
A D C
题号11
12
13
14
15
16
17
18
19
20
答 案 B
B
B
A
C
A
B
D
B A
一、 判断题
题 号 1
2
3
4
5
6
7
8
9
10
答案√√√×√×××
√
√
二、填空题
1.种类说明数组名[常量表达式][常量表达式]数组名[下标]
2.-5, 8,9,0,11,4,-17,6,21,34 -
17, -5,0,21,11, 9, 34,8,4,6
3. string.h\0
4. 库函数无参函数
5.直接或间接地调用该函数自己
6. return
四、程序改错
#include<stdio.h>
int fun(int a, b )
{ int r,t;
if(a<b)
{t=a;b=a;a=t;}
r=a%b;
while(r!=0)
{a=b;b=r;r=a/b;}
return a;}
五、阅读程序写出运转结果Int b
void main( )
{ int n1,n2,a;
a = b;b=t
printf(“please input
n1,n2:\n”);
scanf( “%d%d”, &n1,&n2);
a%b
a=fun(n1,n2);
printf("最大条约数是: %d\n",a); r 或 b}
1.1248
2.hisb
3.
A
AAA
BBBBB
BBBBBBB
CCCCCCCCC
CCCCCCCCCCC
DDDDDDDDD
DDDDDDD
EEEEE
EEE
F
4.-2 0 3 5 9 1214263897 六、程序填空题
① __stdio.h_____________________⑥____int m_____________________
② __”%d”______________________⑦ ___i<m或i<=m+1____________
③ __n/16_______________________⑧___1_________________________
④ __i>=0_______________________⑨ __&a______________________
⑤ ___%c_______________________⑩___s或s==1________________。