版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级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 ); jud
2、ge( b, 5 ); judge( c, 5 ); judge( d, 5 );#includevoid judge( , int n) int f=0, i=0; while( in-1&xi=xi+1 ) if( i+= ) printf(“n all elements are same”); return; if( xixi+1 ) f=1; for( ; i xi+1 | !f & ) printf( “n no order” ); return; else if( ) printf( n ascend ); return; else if(xixi+1&!f&i=n-2) prin
3、tf( n descend ); return; int *x n-2 xixi+1&f&i=n-2 xixi+1 a: 1, 2, 3, 4, 5 b: 5, 4, 3, 2, 1c: 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,否则返回值
4、0。函数 exchange (int aN,int n) 的功能是将二维数组a中存放的一个n阶矩阵作横向翻转, 即: 将矩阵的第1列与第n列对换,第2列与第n-1列对换,直 到n/2列为止。例如: 对称矩阵 是双对称矩阵而对称矩阵 不是双对称矩阵。 #include#define N 10void 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; aijint issym( int mN, int n ) int i, j; for( i
5、=0; in-1; i+ ) for( j=i; jn; j+ ) if( ) return 0; ; /*对称 矩阵 判断*/mij!=mjireturn 1void main( ) int aNN; int n=4, i, j, r1, r2; for( i=0; in; i+ ) for( j=0; jn; j+ ) scanf( “%d”, &aij ); for( i=0; in; i+ ) for( j=0; jnext!=NULL ) p1=p; p2=p-next; while( p2!=NULL ) if ( p2-x=p-x ) p1-next= ; free(p2); p
6、2=p1-next; else p1=p2; p2=p2-next; p= ; return head; headp2-next p-next4. 程序功能:寻找具有下列特性的四位正整数,其百位数为0, 去掉百位数0可得到一个3位正整数,而该三位正整数乘以9 等于原四位正整数。例如,60756759, 所以6075是具有 上述特性的正整数。#include int fun( int n ) int a4, i, k; k=n; for( i=0; k0; i+ ) ai= ; k/=10 ; if( &( a3*100+a1*10+a0)*9=n ) return 1; else return
7、 0; k%10 a2=0main( ) int i, n=0; for( i=1000; i10000; i+ ) if( fun( i ) ) printf ( %4dt , i ); printf ( n );5. 程序功能:用牛顿迭代法求方程 3x3-3x2+x-1=0 在2.0附近的一个实根,精度要求为10-5。函数F求f(x)的值,函数F1求f(x)的一阶导数值。牛顿迭代公式:#include #include float F( float x ) return x*(3*x*(x-1)+1)-1;float F1( float x ) return 9*x*x-6*x+1; fl
8、oat newtoon ( float x ) float f, f1, x0; do ; f=F(x0); f1= F1(x0); x= ; while( fabs( x-x0 )1e-5 ); return x;x0=x x0-f/f1main( ) float x0 ; scanf( %f , &x0 ); printf (“The result =%.2fn” , newtoon( x0 );6程序功能:选票统计。二维数组s中保存了投票后10张有效 选票上所填写的候选人姓名,结构数组stat中保存统计结果。 程序运行后的输出结果是“ liu: 2 wang: 5 zhao: 3 ”。#
9、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.count);int c
10、ount( char x 20, int n, ) 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( , xi )7设一个单向链表结点的数据类型定义为: struct node int x; struct node *next; ; fun 函数从h指向的链表第二个结点开始遍历所有结点,当遇到x值为奇数的结点时,将该结点移到h链表第一个结点之前,函数返回链表首结点地址。 print函数输出p
11、指向的链表中所有结点的x值。程序运行后的输出结果是“1 3 4 2”。#define N 4main( ) 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
12、=p2-next; return h; p2-next 或 p3-nexth=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+ ) fo
13、r( y=x+1; y=pear; y+ ) for( z=y+1; z=pear; z+ ) printf( n%d %s %s %s , +k, fruitsx, fruitsy, fruitsz ); char * apple9以下程序通过给出的公式计算 的近似值,计算过程在所 加项的值小于10-10时终止。#include main( ) double sum=0.5, t, t1, t2, t3; int odd=1, even=2; t=t1=t2=1.0; t3=0.5; while ( t1e-10 ) t1= ; odd+=2; even+=2; t2=1.0/odd; t3
14、= ; t=t1*t2*t3; sum+=t; printf (nPI=%.8lf, ); t1*odd/even sum*6 t3*0.5*0.510. 以下程序中函数 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& ) i
15、f( *p=0&*p=9 ) k= +*p-0; +i; ; return k; void main( ) char x =efg32gh76.jbejing08t5y4u2; printf( %ldn, fun(x) );i8 k*10 P+ 11. 设某单向链表结点的数据结构定义为: typedef struct node char ch; struct node *next; linklist; 以下程序首先建立一个单向链表head(如图1所示),该链表每个结点中保存x数组的一个元素值;输出head链表中每个结点的值;再将head链表变换为倒序链表(如图2所示),输出倒序后head链表中
16、每个结点的值。图1图2headD C BAheadA B CD head链表倒序算法提示:(1)使hp指向head链表,置head为0(head链表为空链表)。(2)从hp指向的链表第一个结点开始,依次从hp链表中删除每个结点,将所删除的结点再依次插入到head链表第一个结点之前,直到hp链表为空时结束。#include typedef struct node char ch; struct node *next; linklist; void print( linklist *phead ) while(phead) printf( %c , phead-ch ); phead=phead-
17、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;
18、 ; return p;p=ptpr=pr-nextlinklist *revlist(linklist *head) linklist *hp, *p=NULL; hp=head; head= ; while(hp) p=hp; hp=hp-next; p-next=head; ; return head; NULLhead=p 12. 以下程序的功能是:求a数组中前4个元素之和及后6个元素 之和。试完善程序以达到要求的功能。 int fsum( int *array, int n ) int i, s; s=0; for( i=0; ; i+ ) s+=arrayi; return s;
19、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 矩阵做如下操作:先 将每一行中值最大的元素与该行位于主对角线处的元素交 换值,然后对主对角线上的所有元素排序使其自左上角到 右下角升序排列,最后输出排序后主对角线上各元素的值。 试完善
20、程序以达到要求的功能。 #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; i
21、n; 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 20void replace( c
22、har *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 nod
23、e *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;
24、 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-n
25、ext 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/1017. 以下程序中函数 void strol(char xx) 的功能是:将x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品助理面试题及竞品分析方法含答案
- 财务管理招聘全解析及答案集
- 软件测试工程师的成长路径与技能提升
- 市场专员面试要点及题目参考
- 税务客服专员培训题库与答案参考
- 刀具存储项目可行性分析报告范文(总投资12000万元)
- 深度解析(2026)《GBT 18793-2002信息技术 可扩展置标语言(XML)1.0》
- 深度解析(2026)《GBT 18737.4-2003纺织机械与附件 经轴 第4部分织轴、整经轴和分段整经轴边盘的质量等级》
- 针对BIM技术的负责人面试题集
- 中航工业安全工程师笔试题库及解析
- 切尔诺贝利核电站事故工程伦理分析
- 初中地理七年级上册第七章第四节俄罗斯
- 法院起诉收款账户确认书范本
- 课堂观察与评价的基本方法课件
- 私募基金内部人员交易管理制度模版
- 针对低层次学生的高考英语复习提分有效策略 高三英语复习备考讲座
- (完整)《走遍德国》配套练习答案
- 考研准考证模板word
- 周练习15- 牛津译林版八年级英语上册
- 电力电缆基础知识课件
- 代理记账申请表
评论
0/150
提交评论