计算机二级考试c语言机试题目

上传人:第*** 文档编号:30569609 上传时间:2018-01-30 格式:DOC 页数:30 大小:97KB
返回 下载 相关 举报
计算机二级考试c语言机试题目_第1页
第1页 / 共30页
计算机二级考试c语言机试题目_第2页
第2页 / 共30页
计算机二级考试c语言机试题目_第3页
第3页 / 共30页
计算机二级考试c语言机试题目_第4页
第4页 / 共30页
计算机二级考试c语言机试题目_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《计算机二级考试c语言机试题目》由会员分享,可在线阅读,更多相关《计算机二级考试c语言机试题目(30页珍藏版)》请在金锄头文库上搜索。

1、题目 1编一个函数 fun(char *s),函数的功能是把字符串中的内容逆置。例子如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。试题程序:#include #include #include #define N 81/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用 s+i#include /*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时 aj在好是与 aj互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i#include #def

2、ine N 20/*注:该题的算法是:用 for()循环一步一步地找元素,用 if(!a%2)来判断是否是奇数,%运算是求余运算,当对 2 求余为 1 时表示原数为奇数,否则为偶数。*/fun(int *a,int n,int *odd,int *even) int i; *even=0;*odd=0;for(i=0;i#include #define VSIZE 20int vectorVSIZE;/*注:该题的算法是用一个变量( j)来存储最小值元素的下标,在循环过程中让每个元素都与原最小值元素进行大小比较(if(list#include /*注:h 乘以 1000 后正好是原小数点后第三

3、位做了新数的个位数,然后再进行加 5 运算时。如原小数点后第三位为 4 及以下则加 5 后还是不能进一位(即四舍) ,如是 5 及以上则加5 后该位就要向前进一位数(即五入) 。进行加 5 运算后除 10 再赋给一个整型变量此时就只有原小数点第二位及以前各位保留在整型变量中,最后再对整型变量除 100,这样又出现了两位小数。该题中,进行四舍五入后一定要赋给一个整型变量才能将不用部分彻底变成 0 。*/float fun(float h) long t;h=h*1000;t=(h+5)/10;return (float)t/100;main()float a;clrscr();printf(En

4、ter a:); scanf(%f,printf(The original data is:);printf(%fnn,a);printf(The result :%6.2fn,fun(a);题目 6编写函数 fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and Borland c+从键盘上输入字符:n,则输出后变为:turbo c ad borlad c+如果输入的字符串不存在,则字符串照原样输出。试题程序。#include #include /*注:该题的算法是让 i 控制一个一个字符往后走,在移动过程中如果

5、s 不是要删的字符,则将其按顺序放到新串中(新串亦是用 s 来做,只是用 k 来控制新串的下标,由于要删除一些元素,因此新串的下标总是比原下标 i 要慢。因而可用此法即同一字符串变量的方法。*/int fun(char s,int c)int i,k=0;for(i=0;s;i+)if(s!=c) sk+=s; sk=0;main() static char str=turbo c and borland c+;char ch;clrscr();printf( :%sn,str);printf( :);scanf(%c,fun(str,ch);printf(str=%sn,str);题目 7请

6、编写一个 unsigned fun(unsigned w),w 是一个大于 10 的无符号整数,若 w 是 n(n=2)位的整数,函数求出 w 的后 n-1 位的数作为函数值返回。例如:w 值为 5923,则函数返回 923;w 值为 923 则函数返回 23。试题程序。#include #include /* 注:由于 unsigned 型整数在 0-65535 这间,只要它大于 10000 则对 10000 求余即得出后面 4 位,否则如果大于 1000 则对 1000 求余得出后 3 位数,这样一层一层往小的判断。由于return 的作用除了返回值以外,还有当执行到 return 时就跳

7、出该程序,所以可以连续的用 if()语句。 */unsigned fun( unsigned w ) if(w=10000) return w%10000;if(w=1000) return w%1000;if(w=100) return w%100;return w%10;main() unsigned x;printf( enter a unsigned integer number : );scanf( %u,if(x#include #define MAX 100/*注:循环 for(i=2;i=k)用于判断在上一个 for()循环中 i 能否走到 k,如果能则表示在 2 到 k-1

8、的数都不能整除 k,即 k 为素数。*/int fun( int lim, int aaMAX) int i,j=0,k;for( k=2; k=k) aaj+=k;return j;main() int limit,i,sum;int aaMAX;printf(n input a integer number:);scanf( %d,sum=fun(limit,aa);for(i=0; i#include #define M 4#define N 5/*注:该题的第一个 for()循环是计算矩阵的最上一行和最下一行的总和,第二个 for()是计算除两头元素以外的最左一列和最右一列的元素的和,

9、最后 sun 就是周边元素的和。*/int fun(int aMN)int sum=0,i;for(i=0;i#include #include /*该题采用的排序法是选择法进行降序排序,算法是用外 for()循环从字符串的前端往后端走动,每走动一个字符都用内嵌的 for()循环在该字符后找出最小的字符与该字符进行换位。直到外 for()循环走到最后一个字符。此外,此题还要注意把首尾字符除开,即在最外层 for()循环中从 1 开始,只到 num-2 即可。*/int fun(char *s,int num) int i,j,t;for(i=1;istrlen(p)p=a; *max=p;ma

10、in() char ss1081,*ps;int n,i=0;clrscr();printf(enter string:n);gets(ss);puts(ss);while(!strcmp(ss,*)=0)i+;gets(ss);puts(ss);n=i;fun(ss,n,printf(nmax=%sn,ps);题目 13请编一个函数 fun,其中 n 所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为 y 的元素。数组元素中的值和 y 的值由主函数通过健盘读入。试题程序。#include #include #define M 20/*注:该题的算法是,用 for()循环控制元素

11、逐一判断数组元素是否等于 y,若不等则赋给新数 bb,由于删除的关系 j 总是小于或等于 i,故而可用 bb 作为新数组,与第 6 题相似。还要注意*n=j;如果没有这个语句则不能传回新数组的个数,另外也不能换成 n=&j;这点是用指针时常犯的错误,切记!*/void fun (int bb, int *n,int y) int i,j=0;for( i=0; i100)printf(data eror!n);exit(0);y=fun(x);if(y) printf(%d yesn,x);else printf (%d no!n,x);题目 16请编写函数 fun,函数的功能是:在字符串中所

12、有数字字符前加一个$字符。例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。注意:部分源程序给出如下。#include /*注:该题用 while()循环来控制原字符串从头走到尾,在走动过程中判断是当前字符是否是数字,若是则在新串中先连一个$然后再连原字符,否则直接连原字符。一定要注意指针和下标的变化。最后要把新串拷贝到 s 所指的地址中,注意不能用 s=a;若用了,则实参数组还是原字符串。*/void fun( char *s)char a100;int i=0;while(*s)if(*s=0else ai+=*s+; a=0;strcpy(s,a);main() c

13、har s80;printf(enter a string:);scanf(%s, s);fun(s);printf(the result: %sn, s);题目 17请编一个函数 fun(char *s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后。例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:n.123xyZM。试题程序。#include conio.h#include stdio.h#define N 81/* 注:该题要先将字符串的头元素存到某一变量(用 c=*s)中,然后后面的字符依向前移(用 for()循环) ,要记得在串的未尾

14、加一个结束符。*/fun(char *s) char c=*s;for(;*(s+1);s+)*s=*(s+1);*s=c;*(s+1)=0;main() char aN;clrscr();printf(enter a string:);gets(a);printf(the original string is:);puts(a);fun(a);printf(the string after modified:);puts(a);题目 18请编写函数 fun,函数的功能是:将所有大于 1 小于整数 m 的非素数存入 xx 所指数组中,非素数的个数通过 k 传回。例如,若输入:17,则应输出:9

15、 和 4 6 8 9 10 12 14 15 16。试题程序。#include #include /* 注:内嵌的 for()循环用于判断是否是素数,在 j=A&s=a&sz)s=s+1;else if(s=z) s=a;else if(s=Z) s=A;main() char aN;clrscr();printf(enter a string:);gets(a);printf(the original string is:);puts(a);fun(a);printf(the string after modified:);puts(a);题目 20请编写函数 fun,函数的功能是:将 s 所指字符串中、下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母;若该位置上是小写字母,则不转换;若该位置上是大写字母 Z,则仅转换成小写字母 z。例如,输入:ABCdxZZZ,则输出为:AcCdXzZz 。试题程序。#include stdio.h#define N 80/* 该题的算法与上一题相似,注意同一个字母小写要比大写在 ASCII 值上大 32。*/void fun(char *s)int i;for(i=1;i=A&s#include #include #define N 5/* 由

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

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号