- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机C语言二级上机试题
56号试题
程序填空题
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
#include stdio.h
#include string.h
#define N 8
typedef struct
{ char num[10];
int year,month,day ;
}STU;
/**********found**********/
【1】 fun(STU *std, char *num)
{ int i; STU a={,9999,99,99};
for (i=0; iN; i++)
/**********found**********/
if( strcmp(【2】,num)==0 )
/**********found**********/
return (【3】);
return a;
}
main()
{
STU std[N]={ {111111,1984,2,15},{222222,1983,9,21},{333333,1984,9,1},
{444444,1983,7,15},{555555,1984,9,28},{666666,1983,11,15},
{777777,1983,6,22},{888888,1984,8,19}};
STU p; char n[10]=666666;
p=fun(std,n);
if(p.num[0]==0)
printf(\nNot found !\n);
else
{ printf(\nSucceed !\n );
printf(%s %d-%d-%d\n,p.num,p.year,p.month,p.day);
}
}
【参考答案】
(1) STU (2) std[i].num (3) std[i]
【考点分析】
本题考查:if条件表达式;比较字符串函数strcmp;指针变量的使用;函数定义及函数返回值。
strcmp函数用来比较两个字符数组的大小,其格式为:strcmp(字符数组1,字符数组2)。若字符数组1字符数组2,函数值大于0(正数);若字符数组1=字符数组2,函数值等于0;若字符数组1字符数组2,函数值小于0(负数)。
【解题思路】
填空1:根据函数fun的返回值类型可知,函数类型标识符应该是结构体类型的,所以填入STU。
填空2:根据题目说明,找出指定编号人员,并将其数据返回。通过strcmp函数比较编号,若相同则函数值为0,所以填入std[i].num。
填空3:由题目可知,假如编号对应,则返回其编号对应数据,所以填入数据std[i]。
二.程序改错题
下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数返回值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3.
请改正程序中的错误,使它能得出正确的结果。
#include stdlib.h
#include conio.h
#include stdio.h
#include string.h
int fun (char *s, char *t)
{int n; char *p, *r;
n=0;
while(*s)
{p=s;
r=t;
while (*r)
/*************found**************/
if(*r==*p) {r++; p++}
else break;
/*************found**************/
if(r==\0)
n++;
s++;
}
return n;
}
void main( )
{char s[100], t[100]; int m;
system(CLS);
printf(\nPlease enter string s: );
scanf(%s,s);
printf(\nPlease enter substring t: );
scanf (%s,t);
m=fun(s,t);
printf(\nThe result is: m=%d\n, m);
}
【参考答案】
您可能关注的文档
- Windows Phone 上的触控手势.docx
- Windows_7多点触控功能教程.docx
- 广西科技大学12-13-1学期(上半)C语言B卷 答案标出.doc
- 腹腔镜与异位妊娠.docx
- 2012年1月高等教育自学考试英语(一) 试卷.doc
- 中等职业学校服装专业人才培养方案 (y).doc
- 妊娠期糖尿病护理进程.doc
- 现代心脏病学3.doc
- noip普及组初赛模拟试卷18(附答案).doc
- 英语发音字母组合.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)