C语言题库2015(6)

2019-04-09 09:58

Q1281.(10分)

程序改错。下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。[提示:判断是否有新单词出现的方法是——当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。] #include #define ARR_SIZE 80; main() {

char str[ARR_SIZE]; int i, num;

gets(str);

if(str[0] != ' ' && str[0] != '\\0') {

num = 1; } else {

num = 0; }

for(i = 1 ; str[i] != '\\0'; i++) {

if(str[i] != ' ' && str[i-1] {

num++; } }

printf(\}

参考答案

#include #define ARR_SIZE 80 main() {

char str[ARR_SIZE]; int i, num;

gets(str);

if(str[0] != ' ' && str[0] != '\\0') {

num = 1; }

= ' ') else {

num = 0; }

for(i = 1 ; str[i] != '\\0'; i++) {

if(str[i] != ' ' && str[i-1] == ' ') {

num++; } }

printf(\}

Q595.(10分)编程输入一个整数m(int型),输出该整数的位数n。 **输入格式要求:\**输出格式要求:\程序运行示例1如下: 345 n=3

程序运行示例2如下: 0 n=1

参考答案

#include main() {

int m, n;

scanf(\ n = 0; do {

m = m / 10; n++; }

while (m != 0);

printf(\}

Q544.(10分)某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。 **输入格式要求:\学号) 提示信息:\

\ EN PH:\\n\

**输出格式要求:\n\\\t MT \\t EN \\t PH \\t SUM \\t AVER\\n\\打印学号) \(打印每门课成绩)\(打印总分和平均分) \打印每门课的总分) \每门课的平均分) 程序的运行示例如下:

Input the total number of the students(n<=40):4 Input student’s ID and score as: MT EN PH: 070310122 97 87 92 070310123 92 91 90 070310124 90 81 82 070310125 73 65 80 Counting Result: Student’s ID MT EN PH SUM AVER 070310122 97 87 92 276 92.0 070310123 92 91 90 273 91.0 070310124 90 81 82 253 84.3 070310125 73 65 80 218 72.7 SumofCourse 352 324 344 AverofCourse 88.0 81.0 86.0 参考答案

#include

#define STUD_N 40 /* 最多学生人数 */ #define COURSE_N 3 /* 考试科目数 */ int ReadScore(int score[][COURSE_N], long num[]);

void AverforStud(int score[][COURSE_N], int sum[], float aver[], int n); void AverforCourse(int score[][COURSE_N], int sum[], float aver[], int n); void Print(int score[][COURSE_N], long num[], int sumS[], float averS[], int sumC[], float averC[], int n); int main() {

int score[STUD_N][COURSE_N], sumS[STUD_N], sumC[STUD_N], n; long num[STUD_N];

float averS[STUD_N], averC[STUD_N];

n = ReadScore(score, num); /* 读入学生成绩 */

AverforStud(score, sumS, averS, n); /* 计算每个学生的总分平均分 */ AverforCourse(score, sumC, averC, n); /* 计算每门课程的总分平均分 */ Print(score, num, sumS, averS, sumC, averC, n); /* 输出学生成绩 */ return 0; }

/* 函数功能:输入学生的学号及其三门课的成绩,当输入负值时,结束输入,返回学生人数 */

int ReadScore(int score[][COURSE_N], long num[]) {

int i, j, n;

printf(\

scanf(\ /* 输入参加考试的学生人数 */ printf(\ EN PH:\\n\

for (i = 0; i < n; i++) /* 对所有学生进行循环 */ {

scanf(\ /* 以长整型格式输入每个学生的学号 */ for (j = 0; j < COURSE_N; j++) /* 对所有课程进行循环 */ {

scanf(\ /* 输入每个学生的各门课成绩 */ } }

return i; /* 返回学生人数 */ }

/* 函数功能:计算每个学生的总分和平均分 */

void AverforStud(int score[][COURSE_N], int sum[], float aver[], int n) {

int i, j;

for (i = 0; i < n; i++) {

sum[i] = 0;

for (j = 0; j < COURSE_N; j++) /* 对所有课程进行循环 */ {

sum[i] = sum[i] + score[i][j]; /* 计算第i个学生的总分 */ }

aver[i] = (float)sum[i] / COURSE_N;/* 计算第i个学生的平均分 */ } }

/* 函数功能:计算每门课程的总分和平均分 */

void AverforCourse(int score[][COURSE_N], int sum[], float aver[], int n) {

int i, j;

for (j = 0; j < COURSE_N; j++) {

sum[j] = 0;

for (i = 0; i < n; i++) /* 对所有学生进行循环 */ {

sum[j] = sum[j] + score[i][j]; /* 计算第j门课程的总分 */ }

aver[j] = (float)sum[j] / n; /* 计算第j门课程的平均分 */ } }

/*函数功能:打印每个学生的学号、各门课成绩、总分和平均分,以及每门课的总分和平均分*/

void Print(int score[][COURSE_N], long num[], int sumS[], float averS[],

int sumC[], float averC[], int n) {

int i, j;

printf(\

printf(\\\t MT \\t EN \\t PH \\t SUM \\t AVER\\n\ for (i = 0; i < n; i++) {

printf(\ /* 以长整型格式打印学生的学号 */ for (j = 0; j < COURSE_N; j++) {

printf(\打印学生的每门课成绩 */ }

printf(\打印学生的总分平均分*/ }

printf(\

for (j = 0; j < COURSE_N; j++) /* 打印每门课的总分 */ {

printf(\ }

printf(\

for (j = 0; j < COURSE_N; j++) /* 打印每门课的平均分 */ {

printf(\ }

printf(\}

Q270.(10分)编程用链表方法实现堆栈数据结构。堆栈(Strack)是指这样一段内存,它可以理解为一个筒结构,先放进筒中的数据被后放进筒中的数据“压住”,只有后放进筒中的数据都取出后,先放进去的数据才能被取出,称为“后进先出”。堆栈的长度可随意增加。堆栈结构可用链表实现。设计一个链表结构需包含两个成员:一个存放数据,一个为指向下一个节点的指针。当每次有一个新数据要放入堆栈时,称为“压入堆栈”,这时动态建立一个链表的节点,并连接到链表的结尾;当每次从堆栈中取出一个数据时,称为“弹出堆栈”,这意味着从链表的最后一个节点中取出该节点的数据成员,同时删除该节点,释放该节点所占的内存。 参考答案

#include #include typedef struct stack {

int data;

struct stack *next; } STACK;

STACK *head, *pr;

int nodeNum = 0; /* 堆栈节点数寄存器 */


C语言题库2015(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:部编版九年级语文上册期中检测卷(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: