这是谢大版的辅导,谢大何许人也? 此人号称信工院第一杀手。他教班级的挂科率常年保持在80%上下。而上个学期是他第一次教大一C语言,包括本部的计算机科学与技术两个班和兴湘的计算机网工两个班。这次的C语言考试打破了以前纪录。估计四个班的及格率只有15%左右。
闲话少说。
考虑到挂科率之高,这次的补考估计会出一样的题目。可是目前本人收集到的题目有限,大部分人的忘记了题目(本人也是)。而且题目也不完整,但主要的差别也只在于输入和输出上,本人收集到的这些题目的基本的题意还是与原题一致的。
第一,二,三题
根据收集到的题目,第一,二,三题应该是求偶数或者奇数的和,和字符串逆转,回文串,水仙花数。
第四,五题
放苹果,三点共线,判断两线平行,有一道题的输入几组数据,素数个数
求奇数或偶数的和 先从最简单的开始吧,求奇数或偶数的和。估计这应该是两个题目,但是这两个题目是不可能会同时抽的,也就是说第一题是奇数和第二三题就肯定不会是偶数。 吐个槽,这个题实在没什么难度,但是还是想不通为什么有那么多人做出来。 关键的算法是 x% 2 如果结果为0则是偶数,为1则是奇数。
关于输入,题目的输入条件忘了,这里用的方法是输入一个N再接N个数,求这N个位数中的偶数/奇数的和。当N为零时结束
例: 输入:
5
1 2 3 4 5 3
11 22 33 0 输出:(偶数和) 6
22 输出:(奇数和) 9 44 源码如下 #include
int x,i,sum,n;
while(scanf(\每次循环都输入一个N,直到N为零结束 {
sum=0;
for(i=0;i scanf(\ if(x%2==0) sum+=x; //这里是求偶数和,如果是奇数和则为if(x%2==1) sum+=x; } printf(\ } return 0; } 字符串逆转 这个题目的题意是先输入一串字符然后输入一个X和一个L,X表示开始的位置,L表示长度,意思是从X开始的L个字符串逆序。 代码如下 #include char arr[200];//这里涉及到输入字符串的最大长度,具体要看题目 int n,x,y; char *pi,*pe,ch; //我这里是按先输入测试字符串的个数的方法, //如果没有给个数和结束条件就用: //while(gets(arr)!=NULL) scanf(\ while(n--){ getchar(); gets(arr); scanf(\ //这里我是用指针做的,本来一开始是用一般的办法,i从第X-1位开始递增, //但是这样控制条件有点难弄,反而用指针容易 for(pi=&arr[x-1],pe=&arr[x+y-2];pi puts(arr); } return 0; } 判断回文串 判断输入的字符串是不是回文 代码如下 #include char arr[200];//这里涉及到输入字符串的最大长度,具体要看题目 int n; char *pi,*pe; //我这里是按先输入测试字符串的个数的方法, //如果没有给个数和结束条件就用: //while(gets(arr)!=NULL) scanf(\ getchar();//吸收掉输入数字时产生的回车换行符 while(n--){ gets(arr); //也是用指针做,初始条件arr+strlen(arr)-1是得到字符串末尾的地址; for(pi=arr,pe=arr+strlen(arr)-1;pi<=pe;pi++,pe--) if(*pi!=*pe) break; if(pi<=pe) printf(\ else printf(\ } return 0; } 水仙花数 输出100~999之间的水仙花数. 定义,如果三位数abc满足abc=a^3+b^3+c^3则称这个数为水仙花数 代码如下: #include for(i=100;i<=999;i++) { a=(i)*(i)*(i);//个位数的立方 b=(i/10)*(i/10)*(i/10);//十位数的立方 c=(i/100)*(i/100)*(i/100);//百位数的立方 if(i==(a+b+c)) printf(\ } return 0; } 今天就先写到这里,大家一定要多练习多理解 一定要到程序设计实践上多做题 http://202.197.224.59/exam/ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库湘潭大学C语言补考辅导(一)在线全文阅读。
相关推荐: