题目 解决代码及点评 /* 功能:建立一个链表,每个结点包括:学号.姓名.性别.年龄.输入一个年龄,如果链表中的结点所包含的年龄等于此年龄, 将此结点删除,输出最后的链表. 时间:17:00 2013/10/25 */ #include<stdio.h> #include <stdlib.h> #include <string.h> struct student69 { int ID; char name[80]; int sex; int ag…
     题目 解决代码及点评 /* 功能:编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,若是则返回第一次出现的起始位置,否则返回0 时间:13:55 2013/10/24 */ #include<stdio.h> #include<stdlib.h> #include<string.h> void getChar(char *); //键盘获取字符串函数 int IND(char *,int,char *,int); //主功能…
    题目 解决代码及点评 /************************************************************************/ /* 92. 编程把链表(1)变成链表(2). head (1) data next data next data next 记录1 记录2 记录3 data next data next 记录4 记录5 head (2) data next data next data next 记录1 记录2 记录…
    题目 解决代码及点评 /************************************************************************/ /* 建立一个链表,每个结点包括的成员为:职工号.工资.用new函数开辟新结点. 要求链表包括5个结点,从键盘输入结点中的有效数据.然后把这些结点的数据打印出来. 要求用函数creat来建立链表,用list函数来输出数据.这5个职工的职工号是101,103,105,107,109. */ /******…
    题目 解决代码及点评 /************************************************************************/ /* 70. 有两个链表a和b.设结点中包含学号.姓名. 从a链表中删除与b链表中有相同学号的那些结点 */ /************************************************************************/ #include <stdio.h> #i…
  题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { int x; int num=1; printf("please input x\n"); scanf_s("%d",&x); for (int i=1…
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float k; printf("please input the f\n"); scanf_s("%f", &f); // 注意不能写成5/9*(f-32),5/9两个整数相除结果是0 c = (f - 32) * 5 / 9; k = 273.16 + c; print…
   题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /************************************************************************/ /* 9. 打印1-100之间所有素数 */ /************************************************************************/ #include <stdio.h> #…
  题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么说明它是素数 /************************************************************************/ /* 8.判断一个数是否是素数 */ /************************************************…
  题目 解决代码及点评 这道题考察循环和比较 /************************************************************************/ /* 7. 任意十个数,打印出它们中的最大数.最小数. 测试数据:① 1,-12,20,30,-5,-23,33,125,200,-100 ② 0,10,3,1,5,6,-10,90,9,-4 ③ 12,13,14,15,10,-10,-11,-12,-9,9 */ /************…
  题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n-1个分母值相同 所以这里使用了一个辅助数组来做计算 /************************************************************************/ /* 6. 有一分数序列 ,求出这个数列的前20项之和. */ /****************…
  题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更加有效率 这个代码把n的阶乘写成了一个函数 /************************************************************************/ /* 5. 用循环语句编写求 1到20的阶乘的程序. */ /**********************…
  题目 解决代码及点评 这道题考验for循环和一个简单的算法 因为每次累加的值有规律,后面一次累加是前面一次累加的两倍 所以可以用简单的循环,计算累加项和累加结果 /************************************************************************/ /* 4. 用循环语句编写求 2的0次方+到2的63次方的程序. */ /***************************************************…
  题目 解决代码及点评 这道题的目标是锻炼while循环,while循环的语法是 while(循环条件) { 循环体; } 每次进入循环体之前,先判断循环条件是否满足,如果不满足,执行序列就跳过 循环体 //3. 输入一行字符,统计其中的英文字母.数字.空格和其他字符个数. #include <stdio.h> #include <stdlib.h> void main() { char x; int numchar=0; int numnum=0; int numspa…
  题目 解决代码及点评 这道题考察我们对循环和判断的综合应用 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { int sumj=0; int sumo=0; for (int i=1;i<=100;i++) // for循环,对100以内的每一个整数 { if (i%2)// 如果是奇数 { sumj+=i; // 奇数累加 } else // 否则是偶数,则偶…
  题目 解决代码及点评 这又是个条件函数,但是这个函数无法用switch来解决,因为switch只能用于和某条件相等情况下,而这个函数的范围是无穷的 遇到这种问题,我们还是需要用复合的if语句来解决 #include <stdio.h> #include <stdlib.h> void main() { float x; float y; printf("please input x\n"); scanf_s("%f",&x…
  题目 解决代码及点评 根据题目要去,我们可以通过if实现该功能,伪代码如下: if(a > 90) print 'A' else if(a>80) print 'b' else if(a>70) print 'c' else if(a>60) print 'd' else print 'e' 但是这道题我们希望考察switch,所以在解决代码中,我们使用了switch语句 #include <stdio.h> #include <stdlib.h>…
 题目 解决代码及点评 这道题锻炼我们switch分支语句,对于条件太多时,用if符合条件分支是比较复杂的 可以使用switch代替 //5. 读入1到7之间的某个数,输出表示一星期中相应的 //某一天的单词:Monday. Tuesday等等,用switch语句做. #include <stdio.h> #include <stdlib.h> void main() { int a; printf("please input a\n"); scanf_s(…
  题目 解决代码及点评 按照题目要求,判断数值对3和5取模的结果,是否为0 #include <stdio.h> #include <stdlib.h> void main() { int a; printf("please input a\n"); scanf_s("%d",&a); if (a%3==0||a%5==0) // 如果对3取模为0或者对5取模为0,在c++中%是取模,||是条件或 { printf(&quo…
 题目 解决代码及点评 这道题考察对条件分支和赋值的灵活应用 正常思维 如果 a>b and a>c 那么a最大 如果b>c and b>a 那么b最大 如果c>a and c>b 那么c最大 但是以上写法判断多,代码复杂 简单的做法是: 如果 a < b 那么 a = b 如果 a < c 那么 a = c 最后a是最大值 #include <stdio.h> #include <stdlib.h> void main() {…
 题目 解决代码及点评 根据题目要求,只要根据用户输入的字母,判断字母之后,给出相应的输出即可 在以下代码中,f32函数实现了该功能,通过if条件判断语句 #include <stdio.h> #include <stdlib.h> void f32(char c) { if (c>='A'&&c<='Z') // 如果参数是'A'~'Z' { printf("%c",c+('a'-'A')); // 转化成小写字母,转化方法c-…
 题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { double x,y; printf("please input x"); // 提示用户输入x scanf_s("%lf",&x); /// 通过scanf_s让用户输入x的值 if (x>=0) // 如果x>=0 { y=(sin(x)+…
 题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { // print是输出函数,参数%s表示输出字符串,而%-10s表示输出的字符串占10个位置,不足则补空格 printf("%-10s %-10s %-10s %-10s %-10s\n","name","number", "math" , "english&q…