{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ 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
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
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 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 int fun( STREC *a,STREC *b,int l, int h ) { } main() { STREC s[N]={{\ {\ {\ {\ STREC h[N],tt;FILE *out ; 45