(完整word版)C语言程序设计填空题及答案复习用.docx

上传人:h**** 文档编号:26497808 上传时间:2022-07-17 格式:DOCX 页数:24 大小:18.71KB
返回 下载 相关 举报
(完整word版)C语言程序设计填空题及答案复习用.docx_第1页
第1页 / 共24页
(完整word版)C语言程序设计填空题及答案复习用.docx_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《(完整word版)C语言程序设计填空题及答案复习用.docx》由会员分享,可在线阅读,更多相关《(完整word版)C语言程序设计填空题及答案复习用.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、(完整word版)C语言程序设计填空题及答案复习用 . 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() int a,b; scan

2、f(%d%d,&a,&b); printf(a=%d,b=%dn,a,b); a= ; b= ; a= ; printf(a=%d,b=%dn,a,b); 下面程序的功能是根据近似公式:2/6 1/12+1/22+1/32+ +1/n2,求值。 #include double pi(long n) double s=0.0; long i; for(i=1;i0?t=-1:1; printf(%dn,s); 有以下程序段: s=1.0; for(k=1;kamax) amax=x; if( ) amin=x; scanf(%f,&x); printf(namax=%fnamin=%fn,ama

3、x,amin); 下面程序的功能是将形参x的值转换为二进制数, 所得的二进制数放在一个一维数组中返回,二进制数的 最低位放在下标为0的元素中。 fun(int x,int b) int k=0,r; do r=x% ; bk+=r; x/= ; while(x); 下面程序的功能是输出1到100之间每位数的乘 积大于每位数的和的数。例如数字26,数位上数字的乘 积12大于数字之和8。 main() . int n,k=1,s=0,m; for(n=1;ns) printf(%d,n); 下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。 main() int i,j,k,coun

4、t=0; for(i=1;i=aj & aj!= 0 ) j+; for( ) ; aj=sk; puts(a); 下面程序的功能是对键盘输入的两个字符串进行 比较,然后输出两个字符串中第一个不相同字符的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 &

5、str1i!= ) i+; s= ; printf(%dn, s); 下面的函数expand在将字符串s复制到字符串 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 = ; 下面的函数index(char s, char t)检查字符串s 中是否包含字

6、符串t,若包含,则返回t在s中的开始位 置(下标值),否则送回-1。 index(char s, char t) int i,j,k; for(i=0;si!= 0;i+ ) for(j=i,k=0;& sj=tk;j+,k+) ; if( ) return (i); return(-1); n 下面程序的功能是计算S= k! 。 k=0 long fun(int n) . int i; long s; for(i=1;i ;i+) s*=i; return( ); main() int k,n; long s; scanf(%d,&n); s= ; for(k=0;ksk) ; return

7、(k); 下面程序的功能是由键盘输入n,求满足下述条件的x、y: nx和ny的末3位数字相同,且xy,x、y、n均为自然数,并使x+y为最小。 #include pow3(int n,int x) int i, last; for(last=1,i=1;i0.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) ); 以下程序是计算学生的年龄。已知第一位

8、最小的 学生年龄为10岁,其余学生的年龄一个比一个大2岁, 求第5个学生的年龄。 #include age( int n ) int c; if( n=1 ) c=10; else c= ; return(c); main() int n=5; printf(age:%dn, ); 下面的函数sum(int n)完成计算1n的累加和。 sum(int n) if(n0 ) printf( %c, c ); ; main() int i, n; scanf(%d, &n); for( i=1;i2 ) invent ( ,n-2); else ; 从键盘上输入10个整数,程序按降序完成从大到小的

9、排序。 #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;iwp) ; . for(i=*n;i=p;i-) ; wp=x; +*n; 下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合

10、并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。 #include strmerge(a,b,c) /* 将已排好序的字符串a、b合并到c */ char *a,*b,*c; char t,*w; w=c; while( *a!= 0 *b!=0 ) t= ?*a+:*bsj ) main( ) char s1100,s2100,s3200; printf(nPlease Input First String:); scanf(%s,s1); printf(nPlease Input Second String:); scanf(%s,s2); strsort(s1); st

11、rsort(s2); = 0; strmerge(s1,s2,s3); printf(nResult:%s,s3); 已知某数列前两项为2和3,其后继项根据前面 最后两项的乘积,按下列规则生成: 若乘积为一位数,则该乘积即为数列的后继项; 若乘积为二位数,则该乘积的十位上的数字和个位上 的数字依次作为数列的两个后继项。 下面的程序输出该数列的前项及它们的和,其中,函 数sum(n,pa) 返回数列的前N项和,并将生成的前N项 存入首指针为pa的数组中,程序中规定输入的N值必 须大于2,且不超过给定的常数值MAXNUM。 例如:若输入的值为10,则程序输出如下内容: sum(10)=44 2 3

12、 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+=NUM ) printf(Not foundn); ? while( strcmp(str,0)!=0 ); ? 下面程序的功能是从终端 上输入个人的年龄、性别和姓 名,然后输出。 #include stdio.h struct man char name20; unsigned age; char

13、sex7; ; main ( ) struct man person5; data_in(person,5); data_out(person,5); data_in(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); 输入N个整数,储存输入的数及对应的序号, 并将输入的数按从小到大的顺序进行排列。要求:当两 个整数相等时,整数的排列顺序由输入的先后次序决定。 例

14、如:输入的第3个整数为5,第7个整数也为5,则将 先输入的整数5排在后输入的整数5的前面。程序如下: #include stdio.h #define N 10 struct int no; 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;iinfo=c; p-link=top; top=p; while( top ) ; top=top-link; putchar(p-info); free(

15、p); 下面函数将指针p2所指向的线性链表,串接到 p1所指向的链表的末端。假定p1所指向的链表非空。 #define NULL 0 struct link float a; struct link *next; ; concatenate ( p1,p2 ) struct list *p1,*p2; if( p1-next=NULL ) p1-next=p2; else concatenate( ,p2); 下面程序的功能是从键盘输入一个字符串,然后 反序输出输入的字符串。 #include struct node char data; struct node *link; *head; m

16、ain() 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; 下面程序的功能是从键盘上顺序输入整数,直到 输入的整数小于0时才停止输入。然后反序输出这些整 数。 #include struct data int x; struct data *link; *p

17、; input() int num; struct data *q; printf(Enter data:); scanf(%d, &num); if( numx = num; q-link = p; p=q; ; main() printf(Enter data until datax); ; 下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。 struct student long num; int score; struct student *next; ; struct student *creat() st

18、ruct 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 tail-next=NULL; while(num!=0); return( ); 下面create函数的功能是建立一个带头结点的 单向链表,新产生的结点总是插入在链表的末尾。单向 链

19、表的头指针作为函数值返回。 #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,%d,&num,&a); if(num!=0) if(head=NULL) head=tail; else tail=tail-next; tail

20、-num=num; tail-score=a; tail-next=( )malloc(LEN); else tail-next=NULL; while(num!=0); ; 下面程序的功能是统计文件中的字符的个数。 #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(num=%dn,num); fclose(fp); 下面程序的功能是把从键盘输入的文件(用 作为文件结束标志

21、)复制到一个名为second.txt的新文 件中。 #include FILE *fp; main() char ch; if(fp=fopen( )=NULL) exit(0); while(ch=getchar()!=) fputc(ch,fp); ; 下面程序的功能是将磁盘上的一个文件复制到另 一个文件中,两个文件名在命令行中给出(假定给定的 文件名无误)。 #include main(int argc,char *argv) FILE &f1,*f2; . if(argc0)n); exit (0); 下面程序的功能是键盘上输入一个字符串,把该 字符串中的小写字母转换为大写字母,输出到

22、文件 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) if(stri= a&stri= z) stri= ; fputc(stri,fp); i+; fclose(fp); fp=fopen(test.txt, ); fgets(str,strlen(str)

23、+1,fp); printf(%sn,str); fclose(fp); 下面程序的功能是将从终端上读入的10个整数 以二进制方式写入名为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); 以字符流形式读入一个文件,从文件中检索出六 种语言的关键字,并统计、输出每种关键字在文件中 出现的次数。本程序中规定:单词是一个以空格或t、 n结束的字符串。 #include #include

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁