计算机二级C语言考试公共基础知识(9)

2020-02-21 23:20

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ;

int i, a,b ; long c ;

rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) {

fscanf(rf, \ fun(a, b, &c) ;

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; }

【参考答案】

void fun(int a,int b,long *c) {

*c=b/10+(a)*10+(b)*100+(a/10)*1000; }

【考点分析】

本题考查:如何取出数值n的各个位;知道数值n的各个位,又如何表示该数值;指针型变量的使用。 【解题思路】

本题中主要的问题是如何取出a和b的个位数和十位数,取出后如何表示成c中相应的位数。由于a和b都是只有两位的整数,所以分别对它们除10可得到它们的十位数,分别用10对它们求余可得到它们的个位数。得到后对应乘以1000、100、10、1就可得到c的千位数、百位数、十位数和个位数。注意:使用c时要进行指针运算。 3、

#include #include #include #include void fun(char *ss) { }

void main() {

41

FILE *wf;

char tt[81],s[81]=\ system(\

printf(\ gets(tt);

printf(\ fun(tt);

printf(\/******************************/ wf=fopen(\ fun(s);

fprintf (wf,\ fclose(wf);

/*****************************/ }

【参考答案】

void fun(char *ss) {

int i;

for(i=0;ss[i]!=′\\0′;i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/

if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′) ss[i]=ss[i]-32; }

【解题思路】

该题要求将给定字符串中奇数位置的字母转换为大写,需要我们判断奇数位置以及是否是小写字母,如果是再通过其转换方法转换。

从C语言的学习中我们知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。该程序是用if语句实现功能转化的。 4、

#include #include int fun( int t) {

42

}

main() /* 主函数 */ { int n;

void NONO ( ); n=1000;

printf(\ NONO(); }

void NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n, s ;

fp = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(n) ;

fprintf(wf, \ }

fclose(fp) ; fclose(wf) ; }

【参考答案】 int fun(int t) {

int f0=0, f1=1,f; do{

f=f0+f1; f0=f1; f1=f; }while(f

【考点分析】

本题考查:变量数据类型及初始化;循环语句。 【解题思路】

根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把f看成是前两项之和,而f0始终代表第n-2项,f1代表第n-1项。退出循环时得到的数f,就是大于指定数的最小的数。

43

5、

#include #include

void fun(char *s, char t[]) { }

main() {

char s[100], t[100]; void NONO ( );

printf(\ fun(s, t);

printf(\ NONO(); }

void NONO ( )

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 char s[100], t[100] ; FILE *rf, *wf ; int i ;

rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(s, t) ;

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; }

44

*/

【参考答案】

void fun(char*s, char t[]) {

int i,j=0;

for(i=0;s[i]!=′\\0′;i++)

if(i%2==0&&s[i]%2==0) /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/ t[j++]=s[i];

t[j]=′\\0′ /*在字符串最后加上结束标识*/ }

【考点分析】

本题考查:循环判断结构;字符串的操作;逻辑运算符的使用。 【解题思路】

本题要求删除除了下标为偶数同时ASCII码值也为偶数的字符,即保留下标为偶数同时ASCII码值也为偶数的字符。循环语句用于遍历字符串,条件语句用于判断当前字符是否符合要求,注意判断条件是下标为偶数,同时ASCII码值也为偶数,所以应使用逻辑与\运算符。 6、

#include #define N 16 typedef struct { char num[10]; int s; } STREC;

int fun( STREC *a,STREC *b,int l, int h ) { }

main()

{ STREC s[N]={{\ {\ {\ {\ STREC h[N],tt;FILE *out ;

45


计算机二级C语言考试公共基础知识(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Adghgga中小企业财务管理现状及对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: