1.
#include <stdio.h> void main( ) { int i, b = 1; double s; s=0; /*输入一个初始值*/ for(i = 1; i <= 15; i++) { s=s+double(i)/double(b);/*输入为整型*/ b = b + 2; /*编辑公式便于下部运算*/ } printf("sum = %f\n", s);/*输出结果为浮点型*/ }
2.
#include <stdio.h> void main( ) { int i, j, t, a[10]; printf("Enter 10 integers: "); for(i = 0; i < 10; i++) scanf("%d", &a[i]);/*输入的标号为整型*/ for(i = 1; i < 10; i++) for(j=0; j < 10 - i ; j++) /*按照标号顺序代入,便于后期比较大小*/ if(a[j] < a[j+1])/*作比较,便于按从大到小顺序排列*/ { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } printf("After sorted: "); for(i = 0; i < 10; i++) printf("%d ", a[i]); printf("\n"); }
3.
#include "stdafx.h" #include <stdio.h> #include<math.h> //开方函数的头文件 void DoData() { double x; //存放输入的数 double y; //存放计算结果 printf("Enter x:"); //提示用户输入一个数x scanf_s("%lf",&x); //输入X if(x<-2) { //如果输入的x小于-2,则进行求平方计算 y=x*x; } else if(x<=2) { //如果-2<=x<=2,则进行+2操作 y=2+x; } else { //如果x大于2,则进行平方+x+1再平方根操作 y=sqrt(x*x+x+1); } printf("y=%.2f\n",y); //输出计算结果到屏幕上 return; } int main(void) { //循环 while(true) { //调用函数 DoData(); } return 0; }
swich语句用不来 就用自定义函数了
4.
#include "stdafx.h" #include<stdio.h> int main(void) { //定义变量 int i; int m; int mark; int k; //初始化变量 i = 0; m = 0; k = 0; mark = 1; //循环 printf("Enter marks:\n");//请输入学生的成绩,用0或负数结束输入 while(mark>0) { scanf_s("%d",&mark);//读入一个成绩 if(mark>0) { //判断该成绩在哪个档次,并给相应档次的数量+1 if(mark>=85) { i++; } else if(mark<60) { m++; } else { k++; } } } //输出结果 printf("成绩>=85的人数为:%d\n",i); printf("成绩介于60-84之间的人数为:%d\n",k); printf("成绩<60的学渣人数为:%d\n",m); scanf_s("%d",&mark); return 0; }
题目
实验目的:巩固分支结构、循环结构、函数和数组的使用方法。
习题
一、填空:阅读下列程序说明和程序,在可选答案中,挑选一个正确答案。填补(1) (2) (3) (4)处空白,并注释说明为什么。
程序说明
求 1 + 2/3 + 3/5 + 4/7 + 5/9 + … 的前15项之和。
运行示例:
sum = 8.667936
程序如下:
1 #include <stdio.h>
2 void main( )
3 {
4 int i, b = 1;
5 double s;
6 (1) ;
7 for(i = 1; i <= 15; i++)
8 {
9 s = s + (2)
10 (3)
11 }
12 printf( (4) , s);
13 }
【供选择的答案】
(1) A、s = 0 B、s = 1 C、s = -1 D、s = 2
(2) A、i/b B、double(i)/double(b)
C、i/2*i-1 D、(double)i/(double)b
(3) A、; B、b = 2 * i – 1;
C、b = 1.0 * b; D、b = b + 2;
(4) A、"sum = %d\n" B、"s = %c\n"
C、"sum = %f\n" D、"s = %s\n"
---------------------------------题目分割线-----------------------------------
二、填空:阅读下列程序说明和程序,在可选答案中,挑选一个正确答案。填补(1) (2) (3) (4)处空白,并注释说明为什么。。
【程序说明】
输入10个整数,将它们从大到小排序后输出。
运行示例:
Enter 10 integers: 1 4 -9 99 100 87 0 6 5 34
After sorted: 100 99 87 34 6 5 4 1 0 -9
程序如下:
1 #include <stdio.h>
2 void main( )
3 {
4 int i, j, t, a[10];
5 printf("Enter 10 integers: ");
6 for(i = 0; i < 10; i++)
7 scanf( (1) );
8 for(i = 1; i < 10; i++)
9 for( (2) ; (3) ; j++)
10 if( (4) )
11 {
12 t = a[j];
13 a[j] = a[j+1];
14 a[j+1] = t;
15 }
16 printf("After sorted: ");
17 for(i = 0; i < 10; i++)
18 printf("%d ", a[i]);
19 printf("\n");
20 }
【供选择的答案】
(1) A、"%f", a[i] B、"%lf", &a[i] C、"%s", a D、"%d", &a[i]
(2) A、j = 0 B、j = 1 C、j = i D、j = i - 1
(3) A、j > i B、j < 9 - i C、j < 10 - i D、j > i - 1
(4) A、a[i-1] < a[i] B、a[j+1] < a[j+2] C、a[j] < a[j+1] D、a[i] < a[j]
---------------------------------题目分割线-----------------------------------
三、编程,输入x后,根据下式计算并输出y值。
---------------------------------题目分割线-----------------------------------
四、编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
运行示例:
Enter scores: 88 71 68 70 59 81 91 42 66 77 83 0
>=85:2
60-84:7
<60 : 2