- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机二级上机编程题1-50
1、请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得
调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串-1234,则
函数把它转换为整数值 -1234。函数fun中给出的语句仅供参考。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填
入你编写的若干语句。
给定源程序:
#include stdio.h
#include string.h
long fun ( char *p)
{
/* 以下代码仅供参考 */
int i, len, t; /* len为串长,t为正负标识 */
long x=0;
len=strlen(p);
if(p[0]==-)
{ t=-1; len--; p++; }
else t=1;
/* 以下完成数字字符串转换为一个数字 */
return x*t;
}
main() /* 主函数 */
{ char s[6];
long n;
printf(Enter a string:\n) ;
gets(s);
n = fun(s);
printf(%ld\n,n);
NONO ( );
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen(c:\\test\\in.dat,r) ;
wf = fopen(c:\\test\\out.dat,w) ;
for(i = 0 ; i 10 ; i++) {
fscanf(fp, %s, s) ;
n = fun(s);
fprintf(wf, %ld\n, n) ;
}
fclose(fp) ;
fclose(wf) ;
}
解题思路:
本题是将一个数字字符串转换为一个整数。
参考答案:
#include stdio.h
#include string.h
long fun ( char *p)
{
/* 以下代码仅供参考 */
int i, len, t; /* len为串长,t为正负标识 */
long x=0;
len=strlen(p);
if(p[0]==-)
{ t=-1; len--; p++; }
else t=1;
/* 以下完成数字字符串转换为一个数字 */
while(*p) x = x*10-48+(*p++);
return x*t;
}
main() /* 主函数 */
{ char s[6];
long n;
printf(Enter a string:\n) ;
gets(s);
n = fun(s);
printf(%ld\n,n);
NONO ( );
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen(c:\\test\\in.dat,r) ;
wf = fopen(c:\\test\\out.dat,w) ;
for(i = 0 ; i 10 ; i++) {
fscanf(fp, %s, s) ;
n = fun(s);
fprintf(wf, %ld\n, n) ;
}
fclose(fp) ;
fclose(wf) ;
}
注意:由于NONO( )这个函数是改卷人用的,与考生没有什么关系,故下面从第2套试题开始均省略NONO( )
2、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的
顺序依次放到一个字符串中。
例如, 二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应是: WSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include stdio.h
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i N;i++) /* 请填写相应语句完成其功能 */
{
}
b[n]=\0;
}
main()
{ char a[100],w[M][N]={{W,W,W,W},
文档评论(0)