大学网课搜题引擎
首页
学堂在线
C语言程序设计精髓
第八章 一堆数据来了,你准备好了吗?
题目详情
简答题
在计算一组数据的最大值之前,通常假设这组数据中的第一个数为最大,即用这组数据中的第一个数为存放最大值的变量初始化。
查看答案与解析
简答题
输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#includestdio.h #defineN40 intGetFailNum(intscore[],intn); intmain() { inti,n,fail,score[N]; printf(Howmanystudents?); scanf(%d,n); for(i=0;in;i++) { scanf(%d,_________); } fail=_____________; printf(Failstudents=%d ,fail); return0; } /*函数功能:统计不及格人数*/ intGetFailNum(intscore[],intn) { inti,count=0; for(i=0;in;i++) { if(_________)count++; } returncount; } A、第11行:score[i]第13行: GetFailNum(score, n)第23行: score[i] 60 B、第11行: score[i]第13行: GetFailNum(score, n)第23行: score[i] = 60 C、第11行: score[i]第13行: GetFailNum(n,score)第23行: score[i] 60 D、第11行: score[i]第13行: GetFailNum(score[i], n)第23行: score[i] = 60
简答题
模拟骰子的6000次投掷,编程统计并输出骰子的6个面各自出现的概率。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include _________ #include #include int main() { int face, roll, frequency[7] = {0}; srand(time (NULL)); for (roll=1; roll { face = _____________; __________________; } printf("%4s%17s ", "Face", "Frequency"); for (face=1; face { printf("%4d%17d ", face, frequency[face]); } return 0; } A、第1行: 第11行: rand()%6 + 1 第12行: frequency[face]++ B、第1行: 第11行: rand()/6 + 1 第12行: frequency[face]++ C、第1行: 第11行: rand()%6 + 1 第12行: frequency[roll]++ D、第1行: 第11行: rand()/6 + 1 第12行: frequency[roll]++
简答题
输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include #define N 40 int Average(int score[], int n); int ReadScore(int score[]); int GetAboveAver(int score[], int n); int main() { int score[N], m, n; n = ReadScore(score); /* 输入成绩,返回学生人数 */ printf("Total students are %d ", n); m = GetAboveAver(score, n); /* 统计成绩在平均分及其上的学生人数 */ if (______________) printf("Students of above average is %d ", m); return 0; } /* 函数功能:若n>0,则计算并返回n个学生成绩的平均分,否则返回-1 */ int Average(int score[], int n) { int i, sum = 0; for (i=0; i { sum += score[i]; } return ______________; } /* 函数功能:输入学生某门课成绩,当输入成绩为负值时,结束输入,返回学生人数 */ int ReadScore(int score[]) { int i = -1; do{ i++; printf("Input score:"); scanf("%d", &score[i]); }while (__________); return _______; } /* 函数功能:若n>0,则统计并返回成绩在平均分及平均分之上的学生人数,否则返回-1 */ int GetAboveAver(int score[], int n) { int i, count = 0, aver; aver = ______________; /* 计算并打印平均分 */ if (aver == -1) return -1; printf("Average score is %d ", aver); for (i=0; i { if (score[i] >= aver) count++; } return __________; } A、第12行: m != -1 第24行: n>0 ? sum/n : -1 第35行: score[i] >= 0 第36行: i 第43行: Average(score, n) 第50行: count B、第12行: m == -1 第24行: n>0 ? sum/n : -1 第35行: score[i] >= 0 第36行: i 第43行: Average(score, n) 第50行: i C、第12行: m != -1 第24行: n>0 ? -1 : sum/n 第35行: score[i] >= 0 第36行: i 第43行: Average(n,score) 第50行: count D、第12行: m == -1 第24行: n 第35行: score[i] >= 0 第36行: score 第43行: Average(score, n) 第50行: aver
简答题
下列说法错误的是()。 A、C语言中的二维数组在内存中是按列存储的。 B、在C语言中,数组的下标都是从0开始的。 C、在C语言中,不带下标的数组名代表数组的首地址,即第一个元素在内存中的地址。 D、C89规定不能使用变量定义数组的大小,但是在访问数组元素时在下标中可以使用变量或表达式。
简答题
二分查找算法就是先将表的中间位置记录的关键字与查找关键字相比较,如果两者相等,则查找成功,否则将表分成前、后两个子表,根据比较结果,决定查找前一子表还是后一子表。
简答题
输入n×n阶矩阵,用函数编程计算并输出其两条对角线上的各元素之和。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include #define N 10 void InputMatrix(int a[N][N], int n); int AddDiagonal(int a[N][N], int n); int main() { int a[N][N], n, sum; printf("Input n:"); scanf("%d", &n); InputMatrix(a, n); sum = AddDiagonal(a, n); printf("sum = %d ", sum); return 0; } /* 函数功能: 输入n×n矩阵的元素值,存于数组a中 */ void InputMatrix(___________, int n) { int i, j; printf("Input %d*%d matrix: ", n, n); for (i=0; i { for (j=0; j { scanf("%d",___________); } } } /* 函数功能: 计算n×n矩阵中两条对角线上的元素之和 */ int AddDiagonal(int a[N][N], int n) { int i, j, sum = 0; for (i=0; i { for (j=0; j { if (________________) sum = sum + a[i][j]; } } return ____________; } A、第17行: int a[N][N] 第25行: &a[i][j] 第38行: i==j || i+j==n-1 第42行: sum B、第17行: int a[N][N] 第25行: &a[i][j] 第38行: i==j && i+j==n-1 第42行: a[i][j] C、第17行: int a[N][N] 第25行: a[i][j] 第38行: i==j || i+j==n-1 第42行: a[N][N] D、第17行: int a[][] 第25行: &a[i][j] 第38行: i==j && i+j==n-1 第42行: sum
简答题
某人有5张2分的邮票和5张3分的邮票,问使用这些邮票可以组合出多少种不同面值的邮资。(例如:1张2分邮票加1张3分邮票可以组成5分的邮资;3张2分的邮票或2张3分的邮票都可以组成同样的6分邮资。)按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int main() { int i,j,k,s,n=0; int a[100]={0}; for(i=0;_________;i++) for(j=0;________;j++) { s=_____________; for(k=0;a[k]!=0;k++) if(s==a[k]) _________; if(a[k]==0 && s>0) { _________; n++; } } printf(" %d kinds:",n); for(k=0;a[k];k++) printf("%2d,",a[k]); return 0; } A、第7行: i 第8行: j 第10行: 2*i+3*j 第14行: break 第18行: a[k]=s B、第7行: i 第8行: j 第10行: 2*i+3*j 第14行: break 第18行: s=a[k] C、第7行: i 第8行: j 第10行: 2i+3j 第14行: continue 第18行: a[k]=s D、第7行: i 第8行: j 第10行: 2*i+3*j 第14行: continue 第18行: s=a[k]+1
简答题
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出。程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 #include int main() { int n,k; float score ,sum,ave; sum=0.0; for(n=1;n { for(k=1;k { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f ",n,ave); } return 0; } A、sum=0.0; B、sum+=score; C、ave=sun/4.0; D、printf("NO%d:%f ",n,ave);
简答题
下列说法错误的是()。 A、简单变量做函数参数时,是将实参的值传给形参,实参和形参在内存中占用不同的存储单元,因此形参值的改变不会影响实参。 B、数组做函数参数时,是将实参数组的首地址传给形参,形参数组和实参数组在内存中共享相同的存储单元,因此对形参数组元素值的修改也就相当于是对实参数组元素值的修改。 C、在声明函数的二维数组形参时,可省略数组第二维的长度,但不能省略数组第一维的长度。 D、在声明函数的一维数组形参时,通常不指定数组的大小,而用另一个形参来指定数组的大小。
简答题
某矩阵m存储的数据如下: 1 4 7 2 5 8 3 6 9 现将该矩阵最后一行的所有数据输出到屏幕,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=____; for(i=0;_______;i++) { printf("%d",_________); } return 0; } A、第5行: 2 第7行: i 第9行: m[k][i] B、第5行: 3 第7行: i 第9行: m[k][i] C、第5行: 2 第7行: i 第9行: m[i][k] D、第5行: 3 第7行: i 第9行: m[i][k]
简答题
用函数编程计算并输出如图所示的杨辉三角形。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include #define N 20 void CaculateYH(int a[][N], int n); void PrintYH(int a[][N], int n); int main() { int a[N][N] = {0}, n; printf("Input n(n scanf("%d", &n); CaculateYH(a, n); PrintYH(a, n); return 0; } /* 函数功能:计算杨辉三角形前n行元素的值 */ void CaculateYH(__________, int n) { int i, j; for (i=0; i { a[i][0] = 1; ___________; } for (_______; i { for (j=1; j { a[i][j] = __________________; } } } /* 函数功能:输出杨辉三角形前n行元素的值 */ void PrintYH(int a[][N], int n) { int i, j; for (i=0; i { for (j=0; _________; j++) { printf("%4d", a[i][j]); } printf(" "); } } A、第16行: int a[][N] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j B、第16行: int a[][] 第22行: a[i][i] = 1 第24行: i=1 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j C、第16行: int a[][N] 第22行: a[0][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j D、第16行: int a[N][] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[j-1][i-1] + a[j][i-1] 第38行: j<=i
简答题
线性查找算法不要求数据表是已排好序的,而二分查找算法要求数据表是已排好序的。
C语言程序设计精髓
章节列表
第一章 初识C语言从认识变量和常量开始
21
第二章 数字间的那些事儿,做点计算哈
15
第三章 从键盘中来,到键盘中,开始输入和输出啦
22
第四章 无处不在的抉择
23
期末考试
13
第五章 周而复始的循环之道
20
第六章 函数:分工与合作的艺术
15
第七章 《盗梦空间》的逻辑:探寻递归的奥秘
21
第八章 一堆数据来了,你准备好了吗?
13
第九章 指针:C语言世界中所向披靡的“金箍棒”
8
第十章 字符串:C语言世界中的大力水手
12
第十一章 指针的孪生兄弟
12
第十二章 海陆空齐上阵:又来了一堆数据
14
第十三章 原来内存也可以这么玩,我是指针我怕谁
8
第十四章 结构设计的艺术
5
第十五章 学会保存你的数据
11