写出c语言命令

原问题:写出c语言命令
分类:编程开发 > 最后更新时间:【2017-07-06 14:04:31】
问题补充:

随机生成10个100以内的成绩存入数组SCOR。

求:1、90分以上(包含90)的个数

2、80(包含80)至90区间的个数

3、70(包含70)至80区间的个数

4、60(包含60)至70区间的个数

5、60以下的个数6、求总分和平均分

7、求高于平均分的成绩及序号

8、求低于平均分的成绩及序号

9、求最高分和最低分

最佳答案

你是说关键字吧!
由ANSI标准定义的C语言关键字共32个:
autodoubleintstructbreakelselongswitch
caseenumregistertypedefcharexternreturnunion
constfloatshortunsignedcontinueforsignedvoid
defaultgotosizeofvolatiledoifwhilestatic
根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。
1数据类型关键字
A基本数据类型(5个)
void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
char:字符型类型数据,属于整型数据的一种
int:整型数据,通常为编译器指定的机器字长
float:单精度浮点型数据,属于浮点数据的一种
double:双精度浮点型数据,属于浮点数据的一种
B类型修饰关键字(4个)
short:修饰int,短整型数据,可省略被修饰的int。
long:修饰int,长整形数据,可省略被修饰的int。
signed:修饰整型数据,有符号数据类型
unsigned:修饰整型数据,无符号数据类型
C复杂类型关键字(5个)
struct:结构体声明
union:共用体声明
enum:枚举声明
typedef:声明类型别名
sizeof:得到特定类型或特定类型变量的大小
D存储级别关键字(6个)
auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配
static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的韵蟮囊桓觥耙?谩?
const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值
2流程控制关键字
A跳转结构(4个)
return:用在函数体中,返回特定值(或者是void值,即不返回值)
continue:结束当前循环,开始下一轮循环
break:跳出当前循环或switch结构
goto:无条件跳转语句
B分支结构(5个)
if:条件语句
else:条件语句否定分支(与if连用)
switch:开关语句(多重分支语句)
case:开关语句中的分支标记
default:开关语句中的“其他”分治,可选。
C循环结构(3个)
for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件
do:do循环结构,do1while(2);的执行顺序是1->2->1...循环,2为循环条件
while:while循环结构,while(1)2;的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

最佳答案由网友  迷图的羔羊  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
15

分享到:

其他回答

其它网友回答:
按照题主要求设计了一段代码,下面是程序在编译和运行的过程中的截图:

其它网友回答:

其它网友回答:
如图所见,我使用的是Win 7中文版操作系统,C/C++编译器是MinGW W64。在cmd控制台下,首先调用MinGW w64的gcc命令编译源代码scores.c,链接生成可执行文件main.exe。之后是执行main.exe的结果。

其它网友回答:
我在设计程序时优先考虑结构化,所以有不少代码其实可以所见,题主可以自行斟酌。下面是源代码文件scores.c的内容(包含简要注释):

其它网友回答:
----------------------- scores.c -----------------------

其它网友回答:
/**
* Author: grass_rt
* File: scores.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

其它网友回答:
#define MAX                (100) // 成绩最大值
#define MIN                 (0)     // 成绩最小值
#define NUM_OF_STU (10)   // 学生数量(统计数)

其它网友回答:
// 初始化学生成绩(数组)
void init_scores(int array[], int n);
// 打印数组
void print_scroes(int array[], int n);
// 统计结果,获得平均分、总分
void statistical_results(int array[], int n, double *average, double *sum);
// 取得最高分及其位置
void get_max_and_index(int array[], int n, int *max, int *index);
// 取得最低分及其位置
void get_min_and_index(int array[], int n, int *min, int *index);
// 打印大于平均分的学生成绩
void print_scores_gt_average(int array[], int n, int average);
// 打印小于平均分的学生成绩
void print_scores_lt_average(int array[], int n, int average);

其它网友回答:
int main(void) {
   int scores[NUM_OF_STU] = {0, }; // 创建数组存储学生成绩
   double sum, average;                 // 总分和平均分
   int max_scr, min_scr;                  // 最高分、最低分
   int max_pos, min_pos;               // 最高分位置、最低分位置

其它网友回答:
   init_scores(scores, NUM_OF_STU);
   statistical_results(scores, NUM_OF_STU, &average, &sum);
   get_max_and_index(scores, NUM_OF_STU, &max_scr, &max_pos);
   get_min_and_index(scores, NUM_OF_STU, &min_scr, &min_pos);

其它网友回答:
   printf("Scores of %d students:\n", NUM_OF_STU);
   print_scroes(scores, NUM_OF_STU);

其它网友回答:
   printf("\nThe Best score is %d, Student ID is #%d.\n", max_scr, max_pos+1);
   printf("The last one is #%d, and the score is %d.\n", min_pos+1, min_scr);
   printf("The average is %g, and the sum of scores is %g.\n\n", average, sum);

其它网友回答:
   printf("The table of students whose score is greater than average(%g)\n", average);
   print_scores_gt_average(scores, NUM_OF_STU, average);

其它网友回答:
   printf("\nThe table of students whose score is less than average(%g)\n", average);
   print_scores_lt_average(scores, NUM_OF_STU, average);

其它网友回答:
   return 0;
}

其它网友回答:
void init_scores(int array[], int n) {
   int i;

其它网友回答:
   srand((unsigned) time(NULL));
   for (i = 0; i < n; ++i)
       array[i] = MIN + rand() % (MAX - MIN + 1);
}

其它网友回答:
void print_scroes(int array[], int n) {
   int i;
   for (i=0; i<n; ++i)
       printf("#%d: %d\n", i+1, array[i]);
}

其它网友回答:
void statistical_results(int array[], int n, double *average, double *sum) {
   int i;

其它网友回答:
   *sum = 0;
   for (i = 0; i < n; ++i)
       *sum += array[i];
   *average = *sum / n;
}

其它网友回答:
void get_max_and_index(int array[], int n, int *max, int *index) {
   int i;
   *max = array[0];
   *index = 0;
   for (i=1; i<n; ++i) {
       if (*max < array[i]) {
           *max = array[i];
           *index = i;
       }
   }
}

其它网友回答:
void get_min_and_index(int array[], int n, int *min, int *index) {
   int i;
   *min = array[0];
   *index = 0;
   for (i=1; i<n; ++i) {
       if (*min > array[i]) {
           *min = array[i];
           *index = i;
       }
   }
}

其它网友回答:
void print_scores_gt_average(int array[], int n, int average) {
   int i;
   for (i=0; i<n; ++i) {
       if (array[i] > average)
           printf("Student ID#%d\t\tScores: %d\n", i+1, array[i]);
   }
}

其它网友回答:
void print_scores_lt_average(int array[], int n, int average) {
   int i;
   for (i=0; i<n; ++i) {
       if (array[i] < average)
           printf("Student ID#%d\t\tScores: %d\n", i+1, array[i]);
   }
}

    推荐