二级C语言笔试复习(完善程序部分)

上传人:ra****d 文档编号:242633469 上传时间:2024-08-30 格式:PPT 页数:35 大小:406KB
返回 下载 相关 举报
二级C语言笔试复习(完善程序部分)_第1页
第1页 / 共35页
二级C语言笔试复习(完善程序部分)_第2页
第2页 / 共35页
二级C语言笔试复习(完善程序部分)_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,二级C语言笔试复习,完善程序局部,1. 以下程序中judge函数的功能是判断x指向的有n个元素的 int,型数组中各元素之间的逻辑关系: 假设n个元素的值均相等那么输,出“allelements are same;假设n个元素的值无序那么输出“no order;,假设n个元素的值按升序排列那么输出 “ascend;假设 n个元素的值,按降序排列那么输出 “descend。,void main( ),int a5= 1, 2, 3, 4, 5 ,b5= 5, 4, 3, 2, 1 ,c5= 1, 4, 2, 3, 5 ,d5= 2, 2, 2, 2, 2 ;,judge( a, 5 );,judge( b, 5 );,judge( c, 5 );,judge( d, 5 );,#includevoid judge( , int n) int f=0, i=0; while( i xi+1 | !f ,int *x,n-2,xixi+1&f&i=n-2,xixi+1,a: 1, 2, 3, 4, 5,b: 5, 4, 3, 2, 1,c: 1, 4, 2, 3, 5,d: 2, 2, 2, 2, 2,2. 以下程序的功能是判断一个n 阶对称方阵是否双对称矩阵。4,阶对称矩阵是指 aij=aji (1i4, 1j4)。4阶双对称矩阵是,指一个4阶对称矩阵的第1列与第4列对换,第2列与第3列对换,后仍然是对称矩阵。函数issym(int mN,int n)的功能是判断,二维数组m中存放的一个n阶方阵是否为对称矩阵,如果是那么,函数返回值1,否那么返回值0。函数 exchange (int aN,int n),的功能是将二维数组a中存放的一个n阶矩阵作横向翻转, 即:,将矩阵的第1列与第n列对换,第2列与第n-1列对换,直,到n/2列为止。,例如: 对称矩阵,是双对称矩阵,而对称矩阵,不是双对称矩阵。,#include,#define N 10,void exchange(int aN,int n),int i, j, t;,for( j=0; jn/2; j+ ),for( i=0; in; i+ ), t=aij;,=ain-j-1;,ain-j-1=t;,aij,int issym( int mN, int n ) int i, j; for( i=0; in-1; i+ ) for( j=i; jn; j+ ) if(,) return 0;,; ,/*对称 矩阵 判断*/,mij!=mji,return 1,void main( ) int aNN; int n=4, i, j, r1, r2; for( i=0; in; i+ ) for( j=0; j0; i+ ), ai=,;,k/=10 ;,if(,&( a3*100+a1*10+a0)*9=n ),return 1;,else,return 0;,k%10,a2=0,main( ), int i, n=0;,for( i=1000; i1e-5 );,return x;,x0=x,x0-f/f1,main( ),float x0 ;,scanf( %f , ,printf (“The result =%.2fn, newtoon( x0 );,6程序功能:选票统计。二维数组s中保存了投票后10张有效,选票上所填写的候选人姓名,结构数组stat中保存统计结果。,程序运行后的输出结果是“ liu: 2 wang: 5 zhao: 3 。,#include ,#include ,typedef struct,char name20;,/*候选人姓名*/,int count;,/*候选人得票数*/, COUNT ;,main( ), char s1020= “liu, “wang,“zhao, “zhao, “wang,“liu , “wang, “zhao,“wang, “wang ;,COUNT stat5=0;,int i, n;,n=count( s, 10, stat );,for( i=0; in; i+ ),printf( %s:%dt ,stati.name , stati.count);,int count( char x 20, int n,(23),), int i, j, k=0;,for( i=0;,; i+ ), for( j=0; j=k ),;,stk.count+ ;,k+;,return k;,COUNT st 或,COUNT *st,in,stj.count+,strcpy( stk.name, xi ),7设一个单向链表结点的数据类型定义为:,struct node,int x;,struct node *next;,;,fun 函数从h指向的链表第二个结点开始遍历所有结点,当遇到x值为奇数的结点时,将该结点移到h链表第一个结点之前,函数返回链表首结点地址。,print函数输出p指向的链表中所有结点的x值。程序运行后的输出结果是“1 3 4 2。,#define N 4,main( ), struct node aN= 4, 3, 2, 1 , *head=a;,int i, num;,for( i=0; inext;,printf(n);,p,p,-,x,struct node *fun (struct node *h ), struct node *p1, *p2, *p3;,p1=h; p2=p1,-,next;,while( p2 ), if( p2,-,x%2 ), p3=p2;,p1,-,next=,;,p2=p1,-,next;,p3,-,next=h;,;,else, p1=p2; p2=p2,-,next; ,return h;,p2,-,next 或,p3,-,next,h=p3,某餐厅用苹果、桔子、香蕉、菠萝、梨五种水果制作水果拼,盘,要求每个拼盘中恰有三种不同水果。以下程序的功能就,是计算可以制作出多少种这样的水果拼盘,并列出组合方式。,#include ,typedef enumapple, orange, banana, pineapple, pear Fruit;,main( ),fruits,=apple, orange, banana,pineapple, pear;,Fruit x, y, z, p;,int k=0, i;,for( x=,; x=pear; x+ ),for( y=x+1; y=pear; y+ ),for( z=y+1; z1e-10 ), t1=,;,odd+=2;,even+=2;,t2=1.0/odd;,t3=,;,t=t1*t2*t3;,sum+=t;,printf (nPI=%.8lf,);,t1*odd/even,sum*6,t3*0.5*0.5,10. 以下程序中函数 long fun(char *str) 的功能是: 自左至右,取出非空字符串 str 中的所有数字字符, 将这些数字字符,组成一个不超过8位的十进制整数并输出。,例如,字符串str为“efg32gh76.jbejing08t5y4u2,程序输出:,32760854。,#include ,long fun( char *str ), int i=0; long k=0;,char *p=str;,while( *p!=0&,), if( *p=0&*p=9 ), k=,+*p-0; +i; ,;,return k;,void main( ), char x =efg32gh76.jbejing08t5y4u2;,printf( %ldn, fun(x) );,ich );,phead=phead-next;,printf(n);,main( ), linklist *head;,char x=ABCD;,head=create(x);,print(head);,head=revlist(head);,print(head);,linklist *create( char x ), int i;,linklist *pt, *pr, *p=NULL;,for( i=0; xi!=0; i+ ), pt=(linklist*)malloc(sizeof(linklist);,pt,-,ch=xi;,pt,-,next=NULL;,if( p=NULL ),; pr=pt; ,else, pr,-,next=pt;,; ,return p;,p=pt,pr=pr,-,next,linklist *revlist(linklist *head),linklist *hp, *p=NULL;,hp=head;,head=,;,while(hp), p=hp;,hp=hp,-,next;,p,-,next=head,;,;,return head;,NULL,head=p,12. 以下程序的功能是:求a数组中前4个元素之和及后6个元素,之和。试完善程序以到达要求的功能。,int fsum( int *array, int n ), int i, s;,s=0;,for( i=0; ; i+ ),s+=arrayi;,return s;,void main(void), int a15=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ;,int sumh, sumt;,sumh=fsum( a, 4 );,sumt= ;,printf( “%d %dn, sumh, sumt );,in,fsum( &a9, 6 ),或,fsum( a+9, 6 ),13. 以下程序对二维数组a 中存储的NN 矩阵做如下操作:先,将每一行中值最大的元素与该行位于主对角线处的元素交,换值,然后对主对角线上的所有元素排序使其自左上角到,右下角升序排列,最后输出排序后主对角线上各元素的值。,试完善程序以到达要求的功能。,#include ,#define N 5,void fun(int xN, int n );,void main( ), int aNN=10, 25, 24, 13, 23, 11, 22, 12, 21, 14,20, 15, 19, 16, 18, 17, 9, 4, 5, 3 , 2, 1, 6, 7, 8, i ;,fun( a, N );,for( i=0; iN; i+ ),printf( %3d, aii );,printf(n);,void fun( int x N, int n ), int i, j, t, arr, col;,for( i=0; in; i+ ), arr=xi0; col=0;,for( j=0; j=arr ), arr=xij;,;,t=xii;,;,xicol=t;,for( i=0; in-1; i+ ),for( j=i+1; jxjj,xii=xicol,14. 以下程序中函数replace 的功能是:将字符串 s 中所有属于,字符串s1中的字符都用s2中的对应位置的字符替换。假设s,为“ABCBA,s1为“AC,s2 为 “ac,那么调用replace函数,后,字符串s的内容将变换为“aBcBa。试完善程序以到达,要求的功能。,#include ,#define MAX 20,void replace( char *s, char *s1, char *s2 ), char *p;,for( ; *s; s+ ), p=s1;,while( *p &,) p+;,if( *p ) *s=,;,void main( ), char sMAX=ABCBA, s1MAX=AC, s2MAX= ac;,;,printf( The string of s is: );,printf( %sn, s );,*p!=*s,*(s2+p-s1),replace( s, s1, s2 ),15. 以下程序的功能是:函数 struct node * insert( struct node,*head, struct node *p)将p指向的结点作为首结点插入head,指向的链表中。main函数接收从键盘输入的一行字符,每,接收一个字符后,申请一个新结点保存该字符,并调用insert,函数将新结点插入链表中。最后从表头开始依次输出该链,表各结点成员c的值。试完善程序以到达要求的功能。,#include ,#include ,struct node, char c;,struct node *next;,;,struct node * insert(struct node *head, struct node *p), if( head=NULL ) head=p;,else ; head=p; ,return head;,p,-,next=head,void main( ), struct node *insert( struct node *head, struct node *p );,char ch; struct node *head, *p;,head=NULL;,while( (ch=getchar( ) != n ), p=(struct node *)malloc( sizeof(struct node) );,=ch;,p,-,next=NULL;,;,p=head;,while( p!=NULL ), printf(%c, p-c);,;,p,-,c,head=insert( head, p ),p=p-next,16. 以下程序输出1001000范围内的回文素数。回文素数是指既,是回文数同时也是素数的整数。 例如,131 既是回文数又是,素数,因此131是回文素数。,#include,#include,void main(,),int j, k=0;,for(j=100; j=999; j+), if(,), printf( %dt, j );,if(+k%5=0),printf(n);,prime_pal(j),int prime_pal(int,n),int,i, k=, m;,for (i=2;i0),m=m*10+k%10;,k=,;,if(m=n) return 1;,return 0;,sqrt(n),n%i=0,k/10,17. 以下程序中函数 void strol(char xx) 的功能是:将xx指向的,字符数组内的字符串中所有单词倒排即:第一个单词与最,后一个单词交换,第二个单词与倒数第二个单词交换,其他,单词依次类推。单词之间用空格或标点符号分隔,倒排后,的单词之间用空格分隔;最后把已处理的字符串仍存储在xx,指向的数组中。例如,假设数组中原字符串为 “I am a student,那么输出应为“student a am I。,#include,#include,#include,void main( ), void strol( char xx );,char s80=I am a student;,strol( );,puts(s);,S,void strol( char xx ),int i, j, k, n=0;,char t80;,j=strlen(xx)-1;,t0=0;,while( j0 ), while( isalpha( xxj ) =0 ,k=,;,while( isalpha( xxj ) & j=0 ),j-;,for( i=j+1; i0之后。如果h2链表为空链表,那么函数直接返回h1,链表首结点的地址。如果h1链表中不存在第n个结点,那么将,h2链表中全部结点添加到h1链表的末尾,函数返回h1链表,首结点地址。 链表结点采用如下形式的数据结构:,struct node ,int data;,struct node *next;,;,struct node *add( struct node *h1, struct node *h2, int n ), struct node *p1=h1, *q=h2, *p2;,int i=0;,if( h2=,) return h1;,p2=h1;,while( p1&inext;,;,if( inext=q;,else ,= q;,while( q,-,next ) q=q,-,next;,q,-,next=,;,return h1;,NULL,i+,p2-next,p1,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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