计算机二级-C语言-程序设计题-190111记录-两种指针赋值的不同,普通输入输出函数和文件输入输出函数的使用
//程序设计题:函数fun的功能是:将两位数的正整数a,b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12时,调用该函数后,c=2514。
//重难点:给指针赋值(第一种是把一个变量的地址赋予指针,第二种是直接给指针内容赋值,这两种赋值方式是有很大区别的,通过下文代码fun()函数中的变更可以看的出来。)通过输出函数输出变量和指针的不同方式。输入函数,整型变量要加取地址符,这里不可以出现指针。文件输入和文件输出函数的使用。
1 #include <stdio.h> 2 void NONO(); 3 fun(int a, int b, long *c) 4 { 5 int a1, a2; 6 int b1, b2; 7 int d; 8 a1 = a / 10; 9 a2 = a % 10; 10 b1 = b / 10; 11 b2 = b % 10; 12 *c = a1 + a2 * 100 + b1 * 10 + b2 * 1000;//c传递的形参为指针类型,这里赋值就要用取内容符*,左右类型要相符 13 //d = a1 + a2 * 100 + b1 * 10 + b2 * 1000;//两种方法尽量使用第一种方法 14 //c = &d; 15 printf("%d %d %d %d %d\n", a1, a2, b1, b2, *c);//输出信息函数,整型变量直接写,指针要取内容。 16 } 17 main() 18 { int a,b; long c;long *d; 19 printf("Input a b:"); 20 scanf("%d%d%d", &a, &b, &c);//输入函数,整型变量要加取地址符,这里不可以出现指针 21 d = &a;//指针只可以被赋值,不可以通过输入函数输入。 22 printf("%d\n", *d); 23 fun(a, b, &c);//把c当作一个指针传递 24 printf("The result is: %ld\n", c); 25 NONO(); 26 } 27 void NONO () 28 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ 29 FILE *rf, *wf ;//定义文件指针。 30 int i, a,b ; long c ; 31 rf = fopen("in.dat", "r") ;//创建一个可以读的文件,然后用指针指向。 32 wf = fopen("out.dat","w") ; 33 for(i = 0 ; i < 10 ; i++) { 34 fscanf(rf, "%d,%d", &a, &b) ;//文件写入函数,在文件中写入要写入的东西。 35 fun(a, b, &c) ; 36 fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;//文件输出函数,输入到文件中 37 } 38 fclose(rf) ; 39 fclose(wf) ;//关闭文件指针与文件之间的联系。 40 }