安徽财经大学《C语言程序设计》2017-2018学年期末试卷.docxVIP

  • 0
  • 0
  • 约3.67千字
  • 约 7页
  • 2026-01-21 发布于江西
  • 举报

安徽财经大学《C语言程序设计》2017-2018学年期末试卷.docx

安徽财经大学2017-2018学年第二学期

C语言程序设计基础期末试卷

学号:(见登录信息)姓名:(见登录信息)

上机操作题,4题,共70分

第1题(源程序文件E:\answer\1-B-1.C),18分

上机要求:下列程序包含4个错误,请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存到E:\answer\1-B-1.C中。程序改错时不允许改变大的程序结构(如函数调用关系与循环结构等)。

程序功能:从键盘上输入一个字符串,调用delspace函数去掉字符串中所有空格、TAB符与回车符,然后输出。

如输入:(□表示空格,→表示TAB)

□□→□String□→Example.□→□

则输出:

[Begin]StringExample.[End]

示例说明:输入字符串中,删除其中所有空格与TAB符号,再包含在“[Begin]”与“[End]”字串中输出。

带错误原程序

函数delspace包含3个错误点,main包含1个错误点

代码说明

#includestdio.h

#includestring.h

char*delspace(charstr[])

{

inti,j;

i=10;

for(j=0;str[j]!==\0;j++)

if(str[j]!=’’str[j]!=’\t’str[j]!=’\n’)

str[i++]=str[j];

str[i]=\0;

returnstr;

}

main()

{

charstr[80];

gets(str);

delspace(str)

printf([Begin]%s[End]\n,str);

}

函数delspace删除字符串str中所有空格、TAB符与回车符

i:有效字符的新位置

j:原字符串字符位置

主函数

输入一行字符串

调用函数

输出字符串

1/6

第2题(源程序文件E:\answer\1-B-2.C),16分

上机要求:按程序功能要求编写程序,并将程序代码保存到E:\answer\l-B-2.C中。

程序功能:从键盘上输入3个正整数,输出任意两数之间的最小公倍数,以及三数的最小公倍数。

如输入:

121830

则输出:

12,18:36

18,30:90

30,12:60

12,18,30:180

示例说明:输入3个整数12、18和30,12和18的最小公倍数为36,18和30的最小公倍数为90,30和12的最小公倍数为60,12、18和30三个数的最小公倍数为180。

第3题(源程序文件E:\answer\1-B-3.C),16分

上机要求:按程序功能要求编写程序,并将程序代码保存到E:\answer\l-B-3.C中。

程序功能:从键盘上输入整数m、字符x和整数n(设m和n均取值1至25),按以下格式输出n行m列的“王”字图形。

行下标取0到n-1,列下标取0到m-1,输出图形的主要下标位置:

2/6

分别输入9@7和15Z5时的运行结果:

第4题(源程序文件E:\answer\1-B-4.C),20分

上机要求:按程序功能要求编写程序,并将程序代码保存到E:\answer\l-B-4.C中。

程序功能:按示例格式完成以下要求。

(1)输出考生的基本信息,包括学号、姓名拼音与联系电话等。

(2)连续输入学生学号,直至输入0为止(输入0之前的学号个数记为n,学号存贮在一维整数数组a中);

(3)学号从小到大排序;

(4)按每行输出3个学号的格式输出排序后的结果。

如输入:

2092052082012042072062020

则输出:

Student:ZhangDaHai注:本行请按考生实际情况输出

201202204

205206207

208209

示例说明:输入8个学号后再输入0,有n=8,输入的8个学号从小到大排序,按每行3个学号的形式分3行输出。

特别说明:输出的第一行为学生个人信息(学号、姓名拼音、联系电话号码),要求按示例格式输出,注意输出的学生信息必须真实有效,如果程序中包含的考生信息明显偏离考生的实际情况,本试卷将按零分处理!!!

3/6

参考答案

第1题(1-B-1.c)

修正程序

原代码

#includestdio.h

#includestring.h

char*delspace(charstr[])

{

inti,j;

i=0;/***/

for(j=0;str[j]!=\0;j++)/***/

if(str[j]!=’’str[j]!=’\t’str

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档