计算机二级C语言的注意事项及相应真题 |
您所在的位置:网站首页 › 二级c语言题型 › 计算机二级C语言的注意事项及相应真题 |
目录
前言:1.将ss所指字符串中所有下标为奇数位置上的字母转换成大写2.若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后3.计算并输出给定整数n的所有因子(不包括1与n自身)之和4.使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)5.计算并输出下列多项式的值6.统计出x所指数组中能被e整除的元素个数,通过函数值返回主函数;同时,计算不能被e整除的元素之和,放到形参sum所指的存储单元中7.在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中8.统计各年龄段的人数9.判断t所指字符串中的字母是否由连续递增字母序列组成10.将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中
前言:
程序设计需要运行一遍,用.c文件是无法运行的,这时就要用.sln文件了,在考试系统提供的vs2010里调试,按ctrl+F5,也可以找到运行和保存按钮来执行![]() 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)。 例如,若输入"abc4EFG",则应输出"aBc4EFG"。 注意:部分源程序存在文件prog1.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 prog1.c: #include #include void fun( char *ss ) { } void main( void ) { char tt[51];void NONO (); printf( "\nPlease enter an character string within 50 characters:\n" ); gets( tt ); printf( "\n\nAfter changing, the string\n \"%s\"", tt ); fun(tt) ; printf( "\nbecomes\n \"%s\"", tt ); NONO();//说一下,假如就是你平时想刷程序设计的题,但你又没有下载vs2010的环境,那么你可以把这句NONO()注释掉,NONO函数是系统评分的测试,你是用main函数的输入输出来判断自己是否对错的,但在考试可千万不要这么做 getchar(); } void NONO ()//这个函数就是考试系统进行测试,这个函数里所做的与main内容相同,只不过测试数据通过读取in.dat文件获取 { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char tt[51], ch; FILE *rf, *wf ; int len, i=0 ; rf = fopen("in.dat","r") ;//r打开一个用于读取的文件,这里也就是让指针rf指向文件in.dat wf = fopen("out.dat","w") ;//w创建一个用于写入的空文件,如果之前已经创建过,那么会将之前的删除掉,重新创建,这里用意也就是如果你多次运行,最终也只会留下最后一次产生的out.dat文件, while(i < 10) {//会进行10次循环,也就是进行10次测试 fgets( tt, 50, rf );//数组tt从文件指针rf指向的文件in.dat获取最多50个字符 len = strlen(tt) - 1 ;//得出的len是最大下标 ch = tt[len] ; if(ch == '\n' || ch == 0x1a) tt[len] = 0 ;//给字符串结尾 fun(tt);//执行fun函数 fprintf( wf, "%s\n", tt );//结果输出到文件指针wf指向的out.dat中 i++ ; } fclose(rf) ;//最后关闭两个文件指针 fclose(wf) ; }解题思路: 除题干外的其他因素,我想我解释的应该很清楚了,那看题目要求 题目说把字符串上下标为奇数的字母转化为大写字母,注意是下标啊,不要搞错了,还有只有字母才要转换,所以我们只要筛出字符串上下标为奇数且小写字母的元素即可,然后再将他们转换,那思路就很清晰了题目给的代码中并没有给出头文件#include,那就不能用islower()和toupper(),不然会方便很多 islower(): 是判断小写字母 toupper():把小写字母转化为大写字母答案: 当然答案有很多种,看大家的思路了,我这一般只列两个: 1.自己做的: #include #include void fun( char *ss ) { int i=0; for(i=0;ss[i];i++)//这里循环条件为ss[i]就是ss[i]!='\0' { if(i%2&&ss[i]>='a'&&ss[i] |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |