《2023年C语言程序填空题.pdf》由会员分享,可在线阅读,更多相关《2023年C语言程序填空题.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b
2、=%dn,a,b);a=;b=;a=;printf(a=%d,b=%dn,a,b);【3.2】下面程序的功能是根据近似公式:2/6 1/12+1/22+1/32+1/n2,求 值。#include double pi(long n)double s=0.0;long i;for(i=1;i=n;i+)s=s+;return();【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int*s,int t,int*k)int p;for(p=0,*k=p;pt;p+)if(sps*k);main()int a10,i,*k=&i;for(i=0;i10;i+)scanf(%d,&a
3、i);findmin(a,10,k);printf(%d,%dn,*k,a*k);【3.4】下面程序的功能是计算 1-3+5-7+-99+101 的值。main()int i,t=1,s=0;for(i=1;i=101;i+=2);s=s+t;printf(%dn,s);【3.5】有以下程序段:s=1.0;for(k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(%fn,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;k=0;do s=s+d;d=1.0/(k*(k+1);while();printf(%fn,s);【3.6】下面程序的功能是从键盘上输入若
4、干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。main()float x,amax,amin;scanf(%f,&x);amax=x;amin=x;while()if(xamax)amax=x;if()amin=x;scanf(%f,&x);printf(namax=%fnamin=%fn,amax,amin);【3.7】下面程序的功能是将形参 x 的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为 0 的元素中。fun(int x,int b)int k=0,r;do r=x%;bk+=r;x/=;while(x);【3.8】下面程
5、序的功能是输出 1 到 100 之间每位数的乘积大于每位数的和的数。例如数字 26,数位上数字的乘积 12 大于数字之和 8。main()int n,k=1,s=0,m;for(n=1;ns)printf(%d,n);【3.9】下面程序的功能是统计用 0 至 9 之间的不同的数字组成的三位数的个数。main()int i,j,k,count=0;for(i=1;i=9;i+)for(j=0;j=9;j+)if()continue;else for(k=0;k=9;k+)if()count+;printf(%d,count);【3.10】下面程序的功能是输出 100 以内的个位数为 6、且能被
6、3 整除的所有数。main()int i,j;for(i=0;i+)j=i*10+6;if()countinue;printf(%d,j);【3.11】下面程序的功能是用辗转相除法求两个正整数 m 和 n 的最大公约数。hcf(int m,int n)int r;if(mn)r=m;n=r;r=m%n;while()m=n;n=r;r=m%n;【3.12】下面程序的功能是使用冒泡法对输入的 10 个浮点数从小到大进行排序。排好序的 10 个数分两行输出。程序如下:已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量
7、实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序#include main();int i,j;printf(Input 10 numbers pleasen);for(i=0;i+)scanf(%f,&ai);printf(n);for(i=2;i+)for(j=0;j+)if()x=aj;aj+1=x;printf(The sorted 10 numbers;n);for(i=0;i+)if()printf(n);printf(%ft,ai);printf(n)
8、;【3.13】下面程序的功能是读入 20 个整数,统计非负数个数,并计算非负数之和。#include stdio.h main()int i,a20,s,count;s=count=0;for(i=0;i20;i+)scanf(%d,);for(i=0;i20;i+)if(ai0);s+=ai;count+;printf(s=%dt count=%dn,s,count);【3.14】下面程序的功能是删除字符串 s 中的空格。#include main()char*s=Beijing ligong daxue;int i,j;for(i=j=0;si!=0;i+)if(si!=);else;sj
9、=0;printf(%s,s);【3.15】下面程序的功能是将字符串 s 中所有的字符 c 删除。请选择填空。#include main()char s80;int i,j;gets(s);for(i=j=0;si!=0;i+)if(si!=c);sj=0;puts(s);【3.16】下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#include char x=programming;char y=Fortran;main()int i=0;while(xi!=0&yi!=0)if(xi=yi)printf(%c,);else i+;已经有所接触读者一定要独立完成它这样就可以逐步
10、提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序【3.17】下面程序的功能是将字符串 s 中的每个字符按升序的规则插到数组 a 中,字符串 a 已排好序。#include main()char a20=cehiknqtw;char s=fbla;int i,k,j;for(k=0;sk!=0;k+)j=0;while(sk=aj&aj!=0)j+;for();aj=sk;puts(
11、a);【3.18】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的 ASCII 码之差。例如:输入的两个字符串分别为 abcdefg 和abceef,则输出为-1。#include main()char str1100,str2100,c;int i,s;printf(Enter string 1:);gets(str1);printf(Enter string 2:);gets(str2);i=0;while(str1i=str2i&str1i!=)i+;s=;printf(%dn,s);【3.19】下面的函数 expand 在将字符串 s 复制到字符串
12、 t 时,将其中的换行符和制表符转换为可见的转义字符表示,即用 n 表示换行符,用 t 表示制表符。expand(char s,char t)int i,j;for(i=j=0;si!=0;i+)switch(si)case n:t=;tj+=n;break;case t:t=;tj+=t;break;default:t=si;break;tj=;【3.20】下面的函数 index(char s,char t)检查字符串 s 中是否包含字符串 t,若包含,则返回 t 在 s 中的开始位置(下标值),否则送回-1。index(char s,char t)int i,j,k;for(i=0;si!
13、=0;i+)for(j=i,k=0;&sj=tk;j+,k+);if()return(i);return(-1);n【3.21】下面程序的功能是计算 S=k!。k=0 long fun(int n)int i;long s;for(i=1;i;i+)s*=i;return();main()已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序
14、 int k,n;long s;scanf(%d,&n);s=;for(k=0;k=n;k+)s+=;printf(%ldn,s);【3.22】下面程序的功能是显示具有 n 个元素的数组 s 中的最大元素。#define N 20 main()int i,aN;for(i=0;iN;i+)scanf(%d,&ai);printf(%dn,);fmax(int s,int n)int k,p;for(p=0,k=p;psk);return(k);【3.23】下面程序的功能是由键盘输入 n,求满足下述条件的 x、y:nx 和 ny 的末 3 位数字相同,且 xy,x、y、n 均为自然数,并使 x+
15、y 为最小。#include pow3(int n,int x)int i,last;for(last=1,i=1;i=x;i+)last=;return(last);main()int x,n,min,flag=1;scanf(%d,&n);for(min=2;flag;min+)for(x=1;xmin&flag;x+)if(&pow3(n,x)=pow3(n,min-x)printf(x=%d,y=%dn,x,min-x);【3.24】下面的程序是用递归算法求 a 的平方根。求平方根的迭代公式如下:#include double mysqrt(double a,double x0)dou
16、ble x1,y;x1=;if(fabs(x1-x0)0.00001)y=mysqrt();else y=x1;return(y);main()double x;printf(Enter x:);scanf(%lf,&x);printf(The sqrt of%lf=%lfn,x,mysqrt(x,1.0);【3.25】以下程序是计算学生的年龄。已知第一位最小的学生年龄为 10 岁,其余学生的年龄一个比一个大 2 岁,求第 5 个学生的年龄。#include age(int n)int c;if(n=1)c=10;else c=;return(c);main()int n=5;printf(a
17、ge:%dn,);已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序【3.26】下面的函数 sum(int n)完成计算 1 n 的累加和。sum(int n)if(n=0)printf(data errorn);if(n=1);else;【3.27】下面的函数是一个求阶乘的递归调用函数。facto(int n)if(n=1);else
18、return();【3.28】组合问题,由组合的基本性质可知:(1)C(m,n)=C(n-m,n)(2)C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一个递归公式,一直到满足 C(1,n)=n 为止。当 n2*m 时,可先用公式(1)进行简化,填写程序中的空白,使程序可以正确运行。#includestdio.h main()int m,n;printf(Input m,n=);scanf(%d%d,&m,&n);printf(The combination numbeers is%dn,combin(m,n);combin(int m,int n)int com;if(n2*m)
19、m=n-m;if(m=0)com=1;else if(m=1);else;return(com);【3.29】下列函数是求一个字符串 str 的长度。int strlen(char*str)if()return(0);else return();【3.30】用递归实现将输入小于 32768 的整数按逆序输出。如输入 12345,则输出54321。#includestdio.h main()int n;printf(Input n:);scanf(%d,);r(n);printf(n);r(int m)printf(%d,);m=;if();【3.31】输入 n 值,输出高度为 n 的等边三角形
20、。例如当 n=4 时的图形如下:*#include void prt(char c,int n)if(n0)printf(%c,c);main()int i,n;scanf(%d,&n);for(i=1;i=n;i+);已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序;printf(n);【3.32】下面的函数实现 N 层嵌套平方根的计
21、算。double y(double x,int n)if(n=0)return(0);else return(sqrt(x+();【3.33】函数 revstr(s)将字符串 s 置逆,如输入的实参 s 为字符串 abcde,则返回时 s 为字符串 edcba。递归程序如下:revstr(char*s)char*p=s,c;while(*p)p+;if(sp)c=*s;*s=*p;revstr(s+1);如下是由非递归实现的 revstr(s)函数:revstr(s)char*s;char*p=s,c;while(*p)p+;while(s2)invent(,n-2);else;【3.35】从
22、键盘上输入 10 个整数,程序按降序完成从大到小的排序。#include int array10;sort(int*p,int*q)int*max,*s;if()return;max=p;for(s=p+1;s*max);swap();sort();swap(int*x,int*y)int temp;temp=*x;*x=*y;*y=temp;main()int i;printf(Enter data:n);for(i=0;i10;i+)scanf(%d,&arrayi);sort();printf(Output:);for(i=0;i10;i+)printf(%d,arrayi);【3.36
23、】下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483 存放成 384。#include void convert(char*a,int n)int i;if(i=n/10)!=0)已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序convert(,i);*a=;char str10=;main()int numbe
24、r;scanf(%d,&number);convert(str,number);puts(str);【3.37】下面程序的功能是实现数组元素中值的逆转。#include main()int i,n=10,a10=1,2,3,4,5,6,7,8,9,10;invert(a,n-1);for(i=0;i10;i+)printf(%4d,ai);printf(n);invert(int*s,int num)int*t,k;t=s+num;while()k=*s;*s=*t;*t=k;【3.38】下面程序通过指向整型的指针将数组 a34 的内容按行列的格式输出,请给 printf()填入适当的参数,使
25、之通过指针 p 将数组元素按要求输出。#include int a34=1,2,3,4,5,6,7,8,9,10,11,12,*p=a;main()int i,j;for(i=0;i3;i+)for(j=0;j4;j+)printf(%4d,);【3.39】下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。#include main()char str81,*sptr;int i;for(i=0;iwp);for(i=*n;i=p;i-);wp=x;+*n;【3.41】下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按 A
26、SCII 码值从小到大排序,并删去相同的字符。#include strmerge(a,b,c)/*将已排好序的字符串 a、b 合并到 c*/char*a,*b,*c;char t,*w;w=c;已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序while(*a!=0*b!=0)t=?*a+:*b*a?*b+:();/*将*a、*b 的小者
27、存入 t*/if(*w 0)*w=t;else if(t*w)*+w=t;/*将与*w 不相同的 t 存入 w*/while(*a!=0)/*以下将 a 或 b 中剩下的字符存入 w*/if(*a!=*w)*+w=*a+;else a+;while(*b!=0)if(*b!=*w)*+w=*b+;else b+;*+w=;strsort(char*s)/*将字符串 s 中的字符排序*/int i,j,n;char t,*w;for(n=0;*w!=0;)w+;for(i=0;in-1;i+)for(j=i+1;jsj)main()char s1100,s2100,s3200;printf(nP
28、lease Input First String:);scanf(%s,s1);printf(nPlease Input Second String:);scanf(%s,s2);strsort(s1);strsort(s2);=0;strmerge(s1,s2,s3);printf(nResult:%s,s3);【3.42】已知某数列前两项为 2 和 3,其后继项根据前面最后两项的乘积,按下列规则生成:若乘积为一位数,则该乘积即为数列的后继项;若乘积为二位数,则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。下面的程序输出该数列的前项及它们的和,其中,函数 sum(n,pa)返回
29、数列的前 N项和,并将生成的前 N 项存入首指针为 pa 的数组中,程序中规定输入的 N 值必须大于 2,且不超过给定的常数值 MAXNUM。例如:若输入的值为 10,则程序输出如下内容:sum(10)=44 2 3 6 1 8 8 6 4 2 4#include stdio.h#define MAXNUM 100 int sum(n,pa)int n,*pa;int count,total,temp;*pa=2;=3;total=5;count=2;while(count+n)temp=*(pa-1)*pa;if(temp10)total+=temp;*(+pa)=temp;else=tem
30、p/10;total+=*pa;if(countn)count+;pa+;=temp%10;total+=*pa;已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序;main()int n,*p,*q,numMAXNUM;do printf(Input N=?(2N%d):,MAXNUM+1);scanf(%d,&n);while();p
31、rintf(nsum(%d)=%dn,n,sum(n,num);for(p=num,q=;pq;p+)printf(%4d,*p);printf(n);【3.43】下面程序的功能是输入学生的姓名和成绩,然后输出。#include struct stuinf char name20;/*学生姓名*/int score;/*学生成绩*/stu,*p;main()p=&stu;printf(Enter name:);gets();printf(Enter score:);scanf(%d,);printf(Output:%s,%dn,);【3.44】下面程序的功能是按学生的姓名查询其成绩排名和平均成
32、绩。查询时可连续进行,直到输入 0 时才结束。#include#include#define NUM 4 struct student int rank;char*name;float score;stu=3,liming,89.3,4,zhanghua,78.2,1,anli,95.1,2,wangqi,90.6;main()char str10;int i;do printf(Enter a name);scanf(%s,str);for(i=0;i=NUM)printf(Not foundn);while(strcmp(str,0)!=0);【3.45】下面程序的功能是从终端上输入个人的
33、年龄、性别和姓名,然后输出。#include stdio.h struct man char name20;unsigned age;char sex7;main()struct man person5;data_in(person,5);data_out(person,5);已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序data_i
34、n(struct man*p,int n)struct man*q=;for(;page,p-sex);data_out(struct man*p,int n)struct man*q=_ _;for(;pname,p-age,p-sex);【3.46】输入 N 个整数,储存输入的数及对应的序号,并将输入的数按从小到大的顺序进行排列。要求:当两个整数相等时,整数的排列顺序由输入的先后次序决定。例如:输入的第 3 个整数为 5,第 7 个整数也为 5,则将先输入的整数 5 排在后输入的整数 5 的前面。程序如下:#include stdio.h#define N 10 struct int no
35、;int num;arrayN;main()int i,j,num;for(i=0;i=0&arrayj.num num;)arrayj+1=arrayj;array.num=num;array.no=i;for(i=0;iN;i+)printf(%d=%d,%dn,i,arrayi.num,arrayi.no);【3.47】以下程序的功能是:读入一行字符(如:a、.y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。#include main()struct node char info;struct node*lin
36、k;*top,*p;char c;top=NULL;while(c=getchar()p=(struct node*)malloc(sizeof(struct node);p-info=c;p-link=top;top=p;while(top);top=top-link;putchar(p-info);free(p);【3.48】下面函数将指针 p2 所指向的线性链表,串接到 p1 所指向的链表的末端。假定 p1 所指向的链表非空。#define NULL 0 struct link 已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序
37、的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序 float a;struct link*next;concatenate(p1,p2)struct list*p1,*p2;if(p1-next=NULL)p1-next=p2;else concatenate(,p2);【3.49】下面程序的功能是从键盘输入一个字符串,然后反序输出输入的字符串。#include struct node char data;struct node*link;*h
38、ead;main()char ch;struct node*p;head=NULL;while(ch=getchar()!=n)p=(struct node*)malloc(sizeof(struct node);p-data=ch;p-link=;head=;while(p!=NULL)printf(%c,p-data);p=p-link;【3.50】下面程序的功能是从键盘上顺序输入整数,直到输入的整数小于 0 时才停止输入。然后反序输出这些整数。#include struct data int x;struct data*link;*p;input()int num;struct data
39、*q;printf(Enter data:);scanf(%d,&num);if(numx=num;q-link=p;p=q;main()printf(Enter data until datax);【3.51】下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。struct student long num;int score;struct student*next;已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下
40、面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序struct student*creat()struct student*head=NULL,*tail;long num;int a;tail=malloc(LEN);do scanf(%ld,%d,&num,&a);if(num!=0)if(head=NULL)head=tail;else;tail-num=num;tail-score=a;tail-next=(struct student*)malloc(LEN);else tai
41、l-next=NULL;while(num!=0);return();【3.52】下面 create 函数的功能是建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。单向链表的头指针作为函数值返回。#include#define LEN sizeof(struct student)struct student long num;int score;struct student*next;struct student*creat()struct student*head=NULL,*tail;long num;int a;tail=()malloc(LEN);do scanf(%ld,
42、%d,&num,&a);if(num!=0)if(head=NULL)head=tail;else tail=tail-next;tail-num=num;tail-score=a;tail-next=()malloc(LEN);else tail-next=NULL;while(num!=0);【3.53】下面程序的功能是统计文件中的字符的个数。#include main()long num=0;*fp;if(fp=fopen(fname.dat,r)=NULL)printf(Cant open the file!);exit(0);while()fgetc(fp);num+;printf(
43、num=%dn,num);fclose(fp);【3.54】下面程序的功能是把从键盘输入的文件(用 作为文件结束标志)复制到一个名为 second.txt 的新文件中。#include FILE*fp;main()char ch;if(fp=fopen()=NULL)exit(0);while(ch=getchar()!=)fputc(ch,fp);已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习
44、成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序;【3.55】下面程序的功能是将磁盘上的一个文件复制到另一个文件中,两个文件名在命令行中给出(假定给定的文件名无误)。#include main(int argc,char*argv)FILE&f1,*f2;if(argc)printf(The command line error!);exit(0);f1=fopen(argv1,r);f2=fopen(arhv2,w);while()fputs(fgetc(f1),);【3.56】下面程序的功能是根据命令行参数分别实现一个正整数的累加或阶乘。例如:如果可执行文件的文件名是 sm,
45、则执行该程序时输入:sm+10,可以实现 10 的累加;输入:sm-10,可以实现求 10 的阶乘。#include#include main(int argc,char*argv)int n;void sum(),mult();void(*funcp)();n=atoi(argv2);if(argc!=3|n=0)dispform();switch()case+:funcp=sum;break;case-:funcp=mult;break;default:dispform();void sum(int m)int i,s=0;for(i=1;im;i+);printf(sum=%dn,s);
46、void mult(int m)long int i,s=1;for(i=1;i0)n);exit(0);【3.57】下面程序的功能是键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件 test.txt 中,然后从该文件读出字符串并显示出来。#include main()char str100;int i=0;FILE*fp;if(fp=fopen(test.txt,)=NULL)printf(Cant open the file.n);exit(0);printf(Input a string:n);gets(str);while(stri)已经有所接触读者一定要独立完成
47、它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序 if(stri=a&stri=z)stri=;fputc(stri,fp);i+;fclose(fp);fp=fopen(test.txt,);fgets(str,strlen(str)+1,fp);printf(%sn,str);fclose(fp);【3.58】下面程序的功能是将从终端上读入的 10 个整数以二进
48、制方式写入名为bi.dat 的新文件中。#include FILE*fp;main()int i,j;if(fp=fopen(,wb)=NULL)exit(0);for(i=0;i10;i+)scanf(%d,&j);fwrite(,sizeof(int),1,);fclose(fp);【3.59】以字符流形式读入一个文件,从文件中检索出六种语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或 t、n结束的字符串。#include#include FILE*cp;char fname20,buf100;int num;struct key char word
49、10;int count;keyword=if,0,char,0,int,0,else,0,while,0,return,0;char*getword(FILE*fp)int i=0;char c;while(c=getc(fp)!=EOF&(c=|c=t|c=n);if(c=EOF)return(NULL);else bufi+=c;while(c=&c!=&c!=t&c!=n)bufi+=c;bufi=0;return(buf);lookup(char*p)int i;char*q,*s;for(i=0;inum;i+)q=;s=p;while(*s&(*s=*q)if()keywordi
50、.count+;break;return;main()int i;char*word;printf(Input file name:);scanf(%s,fname);已经有所接触读者一定要独立完成它这样就可以逐步提高自己的编程能力在程序设计语言学习的中期读者对程序设计 面程序的功能是不用第三个变量实现两个数的对调操下面程序的功能是根据近似公式求值下面的程序的功能是求一维 面程序的功能是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入下面程序if(cp=fopen(fname,r)=NULL)printf(File open error:%sn,fname);e