C程上机题考试题2015春季学期

上传人:xt****7 文档编号:102471375 上传时间:2022-06-07 格式:DOC 页数:9 大小:40.01KB
返回 下载 相关 举报
C程上机题考试题2015春季学期_第1页
第1页 / 共9页
C程上机题考试题2015春季学期_第2页
第2页 / 共9页
C程上机题考试题2015春季学期_第3页
第3页 / 共9页
点击查看更多>>
资源描述
C程序设计课程期末上机考试考试时间:50分钟考试方式:从下面的20题中随机抽取一题,再附加一题,共需完成2道题。附加题不事先给定分值分配:第一题60分,第二题40分,共100分考试时间:2015.6 具体时间与安排见网站通知1 请编写函数long fun(long int x),功能是:将长整型数x中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。#includelong fun(long int x) void main()long a,b; printf(Please input a long int num:); scanf(%ld,&a); b=fun(a); printf(b=%ldn,b);2 编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。例如: 当s为12345, t为8624677时, p中的字符为: 867;当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”#include#includevoid fun(char *s,char *t,char *p) void main()char s150,s250,s350; gets(s1);gets(s2); fun(s1,s2,s3); puts(s3);3 编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+n)=m最大的n。例如,当m=10000时,程序输出:n=38。#includeint fun(int m)void main()int x; scanf(%d,&x); printf(n=%dn,fun(x);4 编写函数void fun(int *x,int n),它的功能是:删除有n个数据的数组x中所有包含数字6的数据,后续的剩余元素赋值为-1。n为数组长度,规定x中数据都为正数。如程序运行时若输入:122 1461 6234 16 11 663 911 2671 381 6 删除后输出: 122 11 911 381 -1 -1 -1 -1 -1 -1 #define N 10 #includevoid fun(int *x,int n) void main() int aN,i;for(i=0;iN;i+)scanf(%d,a+i);fun(a,N);for(i=0;iN;i+)printf(%d ,ai);printf(n);5 编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含high)最大的n个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数的返回值为:732;若high=11,n=10,则函数返回:17。#includelong fun(int high,int n) void main()int k,n; scanf(%d%d,&k,&n); printf(sum=%ldn,fun(k,n);6 请编写函数int fun(int *a,int n),它的功能是:把形参a所指数组中的偶数按原顺序依次存放到a0、a1、a2、中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志。例:若输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,输出:2 4 6 8 10 12 14 n=7#includeint fun(int *a,int n) void main()int x15,i,n; for(i=0;i15;i+)scanf(%d,x+i); n=fun(x,15); for(i=0;xi!=-1;i+)printf(%d ,xi); printf(n=%dn,n);7给定程序中,函数fun的功能是:有MN二维数组,分别将每一行的最大值与本行的最后一个数据(第N-1列数据)对调,其余数据保持不变。然后按每一行的最大值对二维数据各行降序排序。例如,有右侧数组数据:11 52 43 4 25 22 求最大值并对调后:11 22 43 4 25 5222 33 46 58 16 47 22 33 46 47 16 5883 42 54 26 47 0 0 42 54 26 47 834 5 6 7 8 9 4 5 6 7 8 945 96 17 18 39 2 45 2 17 18 39 96排序后最终输出:45 2 17 18 39 960 42 54 26 47 8322 33 46 47 16 5811 22 43 4 25 524 5 6 7 8 9#define N 6#define M 5#includevoid fun(int aMN) void main()int xMN=11,52,43,4,25,22,22,33,46,58,16,47,83,42,54,26,47,0,4,5,6,7,8,9,45,96,17,18,39,2,i,j;fun(x);for(i=0;iM;i+)for(j=0;jN;j+)printf(%3d,xij); printf(n);8. 函数void fun(int x,char * p)实现十进制整数x到二进制的转换。转换后的二进制数以字符串的方式放置于p所指向的数组中。如输入13,输出1101,输入-13,输出-1101。#include stdio.h#includevoid fun(int x,char *p)void main()int a; char c18; scanf(%d,&a); fun(a,c); printf(%dS BINARY IS: %sn,a,c);9. 编写函数int fun(char (*ss)N,int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最大的字符串,复制到s所指的字符数组中,然后返回此最大字符串的长度。 #define N 30 #includeint fun(char (*ss)N,int m,char *s) void main() char a8N,bN;int i,len;for(i=0;i8;i+)gets(ai);len=fun(a,8,b);printf(len=%d,str=%sn,len,b);10 给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。#include#include#includevoid fun(char *s) void main()char str80; gets(str); fun(str); puts(str);11给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123,输出:3badc21#includevoid fun(char *s) void main()char str80; gets(str); fun(str); puts(str);12编写函数void fun(char *s1,char *s2),功能是:对形参s1所指字符串升序排序,并将排序后下标为偶数的字符取出,写入形参s2所指字符数组中,形成一个新串。例如,下面程序若输入:The C Programming Language,输出:LTaegghmnor。(表空格)#includevoid fun(char *s1,char *s2)void main()char a80,b80; gets(a); fun(a,b); puts(b);13函数void fun(char s)的功能是:将s所指字符串中ASCII值为奇数的字符删除。例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、字符1的ASCII码值也为奇数、都应当删除,其它依此类推。最后s中内容是:“BDF24”。#includevoid fun(char s) void main()char a80; gets(a); fun(a); puts(a);14请编写一个函数int fun(long int x),它的功能是:判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。所谓“同构数”是指这样的数,它出现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数,输出Yes。要求x的值不大于10000。#includeint fun(long int x)void main()int x; scanf(%d,&x); if(fun(x)=1)puts(Yse); else puts(No);15编写取子字符串函数void fun(char s1,char s2,int m,int n),其作用是将字符数组s2中从第m个字符开始的共n个字符拷贝到数组s1中;若s2中剩余字符不足n个,则取到尾部。程序运行时,当输入abcd123、4,3时应输出d12;当我们输入abcd123、4,6时应输出d123。注意,这里是将1作为起始计数。#includevoid fun(char s1,char s2,int m,int n)void main()static char a100,b100; int s,len; void fun(char s1,char s2,int m,int n); puts(ENTER A STRING:); gets(a); puts(ENTER STARTING POSITION AND LENGTH:); scanf(%d,%d,&s,&len); fun(b,a,s,len); printf(THE SRBSTING IS:%sn,b);16. 编写函数void fun(char *str),将参数字符串中各单词首字母变大写,其余字母变小写。输入输出在main中实现。如输入you HAVE 10 books,dont you? 输出You Have 10 Books,Dont You?。单词以空格、逗号、句号分隔。#includevoid fun(char *str) void main()char a100; gets(a);fun(a);puts(a);17. n个整数,前面各数循环顺序后移m个位置,最后m个数变成最前面m个数。写函数void fun(int *p,int n,int m),实现上述功能。在main()中输入与输出。如下面程序输出 7 8 9 10 1 2 3 4 5 6 。注意,m可能大于n。#include stdio.hvoid fun(int *p,int n,int m)void main()void fun(int *,int ,int ); int x10=1,2,3,4,5,6,7,8,9,10,i; fun(x,10,14); for(i=0;i10;i+) printf(%d ,xi); printf(n); 18. 编写函数void fun(char *s1,char *s2),实现字符串s1与s2的交叉连接,连接后得到的新字符串放在s1中。如输入abc12345,输出a1b2c345,若输入abcde123,则输出a1b2c3de。 #include#includevoid fun(char *s1,char *s2)void main()char a100,b100; void fun(char *,char *); gets(a); gets(b); fun(a,b); puts(a);19. 传说可以根据两个人的生日来计算其缘分.方法:将两个人的生日各位相加,将得到的数再一次各位相加,直到其值为一个一位数,此数即代表两个人的缘分.例如,两个生日为:19820523,19841111,则各位相加:1+9+8+2+5+2+3+1+9+8+4+1+1+1+1得:56;再5+6得11;再 1+1得2,即为两人的缘分.编写计算缘分程序,两个生日由键盘输入.#include stdio.hint fun(long x,long y) void main()long x,y;int k;scanf(%ld%ld,&x,&y);k=fun(x,y);printf(yuan fen is %d,k);20. m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。若m=6,则输出n=1 3 6 4 2 5 1;若m=10,则输出n=4 3 6 9 2 7 1 8 5 10 4;若m=100,则输出n=91 3 6 9100 58 91。函数int fun(int n ,int *p)实现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。#includeint fun(int n ,int *p) void main()int m,a10000,i,num; scanf(%d,&m); num= fun(m,a); printf(n=%dn,num); for(i=0;im;i+) printf(%8d ,ai); printf(n);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


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

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


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