




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
35填空题(C)填空题请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl.c中。不得增行或删行,也不得更改程序的结构!1.给定程序中己建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据从小到大顺序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点仍保持从小到大顺序排列。#include #include #define N 8typedef struct list int data; struct list *next; SLIST;void fun( SLIST *h, int x) SLIST *p, *q, *s; s=(SLIST *)malloc(sizeof(SLIST);/*found*/ s-data=_1_; q=h; p=h-next; while(p!=NULL & xp-data) /*found*/ q=_2_; p=p-next; s-next=p;/*found*/ q-next=_3_;SLIST *creatlist(int *a) SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h) SLIST *p; p=h-next; if (p=NULL) printf(nThe list is NULL!n); else printf(nHead); do printf(-%d,p-data); p=p-next; while(p!=NULL); printf(-Endn); main() SLIST *head; int x; int aN=11,12,15,18,19,22,25,29; head=creatlist(a); printf(nThe list before inserting:n); outlist(head); printf(nEnter a number : ); scanf(%d,&x); fun(head,x); printf(nThe list after inserting:n); outlist(head);答案:【1】x 【2】p 【3】s2.给定程序的功能是;调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值是1,失败时返回值为O。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。#include #include int fun(char *source, char *target) FILE *fs,*ft; char ch;/*found*/ if(fs=fopen(source, _1_)=NULL) return 0; if(ft=fopen(target, w)=NULL) return 0; printf(nThe data in file :n); ch=fgetc(fs);/*found*/ while(!feof(_2_) putchar( ch );/*found*/ fputc(ch,_3_); ch=fgetc(fs); fclose(fs); fclose(ft); printf(nn); return 1;main() char sfname20 =myfile1,tfname20=myfile2; FILE *myf; int i; char c; myf=fopen(sfname,w); printf(nThe original data :n); for(i=1; i30; i+) c=A+rand()%25;fprintf(myf,%c,c); printf(%c,c); fclose(myf);printf(nn); if (fun(sfname, tfname) printf(Succeed!); else printf(Fail!);答案:【1】“r” 【2】fs 【3】ft3.给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为myfile3txt的文本文件中,然后再顺序读出显示在屏幕上。#include #include int fun(char *fname ) FILE *fp; int i,n; float x; if(fp=fopen(fname, w)=NULL) return 0; for(i=1;i=10;i+)/*found*/ fprintf(_1_,%d %fn,i,sqrt(double)i); printf(nSucceed!n);/*found*/ _2_; printf(nThe data in file :n);/*found*/ if(fp=fopen(_3_,r)=NULL) return 0; fscanf(fp,%d%f,&n,&x); while(!feof(fp) printf(%d %fn,n,x); fscanf(fp,%d%f,&n,&x); fclose(fp); return 1;main() char fname=myfile3.txt; fun(fname);答案:【1】fp 【2】fclose(fp) 【3】fname4. 给定程序的功能是:从键盘输入若干行文件(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。#include #include #include void WriteText(FILE *);void ReadText(FILE *);main() FILE *fp; if(fp=fopen(myfile4.txt,w)=NULL) printf( open fail!n); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(myfile4.txt,r)=NULL) printf( open fail!n); exit(0); ReadText(fp); fclose(fp);/*found*/void WriteText(FILE _1_) char str81; printf(nEnter string with -1 to end :n); gets(str); while(strcmp(str,-1)!=0) /*found*/ fputs(_2_,fw); fputs(n,fw); gets(str); void ReadText(FILE *fr) char str81; printf(nRead file and output to screen :n); fgets(str,81,fr); while( !feof(fr) ) /*found*/ printf(%s,_3_); fgets(str,81,fr); 答案:【1】*fw 【2】str 【3】str5. 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。#include #include #define N 5typedef struct int num; char name10; char tel10;STYPE;void check();/*found*/int fun(_1_ *std)/*found*/ _2_ *fp; int i; if(fp=fopen(myfile5.dat,wb)=NULL) return(0); printf(nOutput data to file !n); for(i=0; iN; i+)/*found*/ fwrite(&stdi, sizeof(STYPE), 1, _3_); fclose(fp); return (1);main() STYPE s10= 1,aaaaa,111111,2,bbbbb,222222,3,ccccc,333333,4,ddddd,444444,5,eeeee,555555; int k; k=fun(s); if (k=1) printf(Succeed!); check(); else printf(Fail!);void check() FILE *fp; int i; STYPE s10; if(fp=fopen(myfile5.dat,rb)=NULL) printf(Fail !n); exit(0); printf(nRead file and output to screen :n); printf(n num name teln); for(i=0; iN; i+) fread(&si,sizeof(STYPE),1, fp); printf(%6d %s %sn,si.num,,si.tel); fclose(fp);答案:【1】STYPE 【2】FILE 【3】fp6.给定程序功能是用冒泡法对6个字符串进行排序。#include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) for (j = i + 1; j 0) p = *(pstr + i) ;/*found*/ pstri = _2_ ;/*found*/ *(pstr + j) = _3_ ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ; i 6 ; i+) printf(%sn, pstri) ;答案:【1】*(pstr+j) 【2】pstrj 【3】p7给定程序的功能是将十进制正整数m转换成k进制(2k9)数的数字输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。#include void fun( int m, int k ) int aa20, i; for( i = 0; m; i+ ) /*found*/ aai = _1_;/*found*/ m /= _2_; for( ; i; i- )/*found*/ printf( %d, _3_ i-1 );main() int b, n; printf( nPlease enter a number and a base:n ); scanf( %d %d, &n, &b ); fun( n, b );答案:【1】m%k 【2】k 【3】aa8.给定程序的功能是将未在字符串s中出现,而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排序,但去掉重复字符。 例如:当s=“12345”,t=“24677”时,u中的字符为:“67”。#include #include void fun (char *s, char *t, char *u) int i, j, sl, tl, k, ul=0; sl = strlen(s); tl = strlen(t); for (i=0; itl; i+) for (j=0; j=sl) for (k=0; k=ul)/*found*/ uul+ = _2_ ; /*found*/ _3_=0;main() char s100, t100, u100; printf(nPlease enter string s:); scanf(%s, s); printf(nPlease enter string t:); scanf(%s, t); fun(s, t, u); printf(The result is: %sn, u);答案:【1】break 【2】ti 【3】uul9给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。 例如:当s=“112345”,t=“2467”时,u中的字符串为“1135”。#include #include void fun (char *s,char *t, char *u) int i, j, sl, tl; sl = strlen(s); tl = strlen(t); for (i=0; isl; i+) for (j=0; j=tl)/*found*/ *u+ = _2_; /*found*/ _3_ = 0;main() char s100, t100, u100; printf(nPlease enter string s:); scanf(%s, s); printf(nPlease enter string t:); scanf(%s, t); fun(s, t, u); printf(the result is: %sn, u);答案:【1】break 【2】si 【3】*u10给定程序的功能是将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列。 (注意0为偶数)#include #include void fun (char *s, char *t) int i, j, sl; sl = strlen(s);/*found*/ if(sl%2) sl-=2; _1_ sl-;/*found*/ for (i=sl, j=_2_; i=0; i-=2) t2*j = si;/*found*/ t2*j +1 = _3_ ; j+; t2*j=0;main() char s100, t100; printf(nPlease enter string s:); scanf(%s, s); fun(s, t); printf(The result is: %sn, t);答案:【1】else 【2】0 【3】si11给定程序的功能是将大写字母转换为对应小写字母之后的第五个字母;若小写字母为vz,使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;若形参是字母W则转换为小写字母b。#include #include char fun(char c) if( c=A & c=a & c=v&c0 f(x)= 0 x=O或x=2 (x-1)(x-2) x0#include #include float f( double x) if (x = 0.0 | x = 2.0)/*found*/ return _1_; else if (x 0.0) return (x -1)/(x-2); else return (x +1)/(x-2);double fun( int n ) int i; double s=0.0, y;/*found*/ for (i= -n; i=_2_; i+) y=f(1.0*i); s += y;/*found*/ return _3_;main ( ) printf(%fn, fun(5) );答案:【1】0.0 【2】n 【3】s13给定程序的功能是习之二分之一的圆面积,函数通过形参得到圆的半径。函数返回二分之一的圆面积(注:圆面积公式为:s=r2,在程序中定义的变量名要与公式的变量相同)。 例如输入圆的半径值:19.527输出为:s=598.950017。#include /*found*/float fun ( float _1_ )/*found*/ return 3.14159 * _2_ /2.0;main ( ) float x; printf ( Enter x: );/*found*/ scanf ( %f, _3_ ); printf ( s = %fn , fun ( x ) );答案:【1】float r 【2】r*r 【3】&x14.给定程序的功能是将既在字符串s中出现、又在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。 例如,当s=“122345”,t=“2467”时,u中的字符串为:“24”。#include #include void fun (char *s, char *t, char *u) int i, j, sl, tl, k, ul=0; sl = strlen(s); tl = strlen(t); for (i=0; isl; i+) for (j=0; jtl; j+) if (si = tj) break; if(jtl) for (k=0; k=ul)/*found*/ uul+=_2_ ; /*found*/ _3_ = 0;main() char s100, t100, u100; printf(nPlease enter string s:); scanf(%s, s); printf(nPlease enter string t:); scanf(%s, t); fun(s, t, u); printf(The result is: %sn, u);答案:【1】= 【2】si 【3】uul15给定程序的功能是:在x数组中放入n个采样值,计算并输出方差值。 ,其中 例如n=8,输入:193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763时,结果应为:1.135901。#include float fun(float x, int n) int j; float xa=0.0, s;/*found*/ for (j=0; j_1_; j+ ) xa += xj/n;/*found*/ s = _2_; for (j=0; jn; j+ )/*found*/ s += (xj-xa)*(xj-xa)/_3_; return s;main ( ) float x100 = 193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763; printf(%fn, fun (x, 8);答案:【1】n 【2】0 【3】n16.给定程序的功能是从字符串s尾部开始,按逆序把相邻的两个字符交换位置,并依次把每个字符紧随其后重复出现一次,放在一个新串t中。 例如:当s中的字符串为:“12345”时,则t中的字符串应为; “4455223311”。#include #include void fun (char *s, char *t) int i, j, sl;/*found*/ sl = _1_; for (i=sl-1, j=0; i=0; i-=2) if (i-1 = 0) tj+ = si-1; if (i-1 = 0) tj+ = si-1; tj+ = si; tj+ = si; /*found*/ _2_;main() char s100, t100; printf(nPlease enter string s:);/*found*/ scanf(%s, _3_); fun(s, t); printf(The result is: %sn, t);答案:【1】strlen(s) 【2】tj=0 【3】s17给定程序的功能是将仅在字符串s中出现而不在字符串t中出现的字符,和仅在字符串t中出现而不在字符串s中出现的字符,构成一个新字符串放在u中,u中的字符按原字符串中字符顺序排列,不去掉重复字符。 例如:当s=“112345”,t=“24677”时,u中的字符串为:“1135677”。#include #include void fun (char *s, char *t, char *u) int i, j, sl, tl; sl = strlen(s); tl = strlen(t); for (i=0; isl; i+) for (j=0; jtl; j+) if (si = tj) break;/*found*/ if (j _1_ tl) *u+ = si; for (i=0; itl; i+) for (j=0; j= 【2】= 【3】*u18给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符,构成一个新的字符串放在u中,u中字符按原字符串中字符顺序的逆序排列,不去掉重复字符。 例如,当s=“112345”,t=“2467”时,u中的字符是:“5311”。#include #include void fun (char *s, char *t, char *u) int i, j, sl, tl, ul; char r, *up=u; sl = strlen(s); tl = strlen(t); for (i=0; isl; i+) for (j=0; jtl; j+)/*found*/ if (si = tj) _1_ ;/*found*/ if(j _2_ tl) *u+ = si; *u = 0; ul = strlen(up); for (i=0; i= 【3】upi19给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。 例如,若q的值为50.O,则函数值为50.416687。#include double fun( double q ) int n; double s; n = 2; s = 2.0;/*found*/ while (s _1_ q) s=s+(double)(n+1)/n;/*found*/ _2_ ; printf(n=%dn,n);/*found*/ _3_ ;main ( ) printf(%fn, fun(50);答案:【1】= 【2】n+ 【3】return s20.给定程序的功能是求k!(k13)并通过函数名传回主函数。例如:若k=10,则应输出:3628800。#include long fun ( int k)/*found*/ if (k _1_ 0)/*found*/ return (k*fun(_2_);/*found*/ else if ( k _3_ 0 ) return 1L;main() int k = 10 ; printf(%d!=%ldn, k, fun ( k ) ;答案:【1】 【2】k-1 【3】=21给定程序的功能是:读入一个整数k(2k10000),打印它的所有质因子(即所有为素数的因子)。 例如,若输入整数:3410,则应输出;2、5、11、31。#include IsPrime ( int n ) int i, m; m = 1; for ( i = 2; i n; i+ )/*found*/ if (!( n _1_ i ) /*found*/ m = 0; _2_ ; return ( m );main( ) int j, k; printf( nPlease enter an integer number between 2 and 10000: );/*found*/ scanf( %d, _3_ ); printf( nnThe prime factor(s) of %d is( are ):, k ); for( j = 2; j = k; j+ ) if( ( !( k%j ) )&( IsPrime( j ) ) ) printf( n %4d, j ); printf(n);答案:【1】% 【2】break 【3】&k22给定程序的功能是:根据整型形参n,计算如下公式的值。 例如,若n=lO,则应输出:0.618056。#include float fun ( int n )/*found*/ float A=_1_ ; int i;/*found*/ for (i=1; i= _2_; i+) A = 1.0/(1+A);/*found*/ _3_ ;main( ) int n ; printf(nPlease enter n: ) ; scanf(%d, &n ) ; printf(A%d=%fn, n, fun(n) ) ;答案:【1】1 【2】n 【3】return A23.给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串ss输入;AaaaBBbl23CCccccd,则输出结果应为;upper=5,lower=9#include void fun ( char *s, int *a, int *b ) while ( *s ) if ( *s = A & *s = a & *s = z )/*found*/ _2_ ; s+; main( ) char s100; int upper = 0, lower = 0 ; printf( nPlease a string : ); gets ( s ); fun ( s, & upper, &lower );/*found*/ printf( n upper = %d lower = %dn, _3_ );答案:【1】(*a)+ 【2】(*b)+ 【3】upper, lower24给定程序的功能是判断字符ch是否与串str中的某个字符相同;若相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校教师资格证之《高等教育法规》试卷及答案详解【名校卷】
- 2025年教师资格通关考试题库含完整答案详解【网校专用】
- 考点解析自考专业(小学教育)试卷及完整答案【考点梳理】
- 强化训练人教版8年级数学上册《全等三角形》重点解析试卷(含答案详解版)
- 2025年河南省项城市中考数学每日一练试卷及答案详解(典优)
- 业务安全员考及答案1
- 江城安全员a证考试及答案
- 高校教师资格证之《高等教育法规》练习题库含答案详解(新)
- 2025年火灾知识考试题及答案
- 2025年合肥中级钳工试卷及答案
- 2025届高三二轮复习+生态脆弱区的综合治理
- 《电力储能运行人员培训规范》
- 轻钢屋面工程施工方案
- DB3702T 31-2023 未成年人家庭监护能力评估工作规范
- 2024-2025年历年成人高考民法真题及复习资料
- 幼儿园课程教研活动
- 幼儿烫伤课件教学课件
- 国家职业技术技能标准 6-29-01-01 砌筑工 人社厅发20235号
- (完整版)新概念英语第一册单词表(打印版)
- 部编版一年级语文上册全册教案
- 离婚协议书2个儿子的模板
评论
0/150
提交评论