三、程序填空题 下载本文

内容发布更新时间 : 2024/5/1 5:18:24星期一 下面是文章的全部内容请认真阅读。

PART 1 程序填空题

1. 以下程序按每行5个数的格式输出1至n范围内能被7或17 整除的整数,并求出其和。 如输入:50 则输出:

7 14 17 21 28 34 35 42 49 Sum=247 源程序:

#include void main() {

int i, n, ct=0, sum=0; scanf( \ for ( i=1; i<=n; i++ ) if ( ____(1)_____ ) {

printf( \ _____(2)_______; ct++;

if ( ___(3)______ ) printf( \ }

printf( \}

2. 以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。 如输入:80 290 150 520 330 -160 -99 0 200 9 则输出:a[3]=520 源程序:

#include #define N 10

int get_max_index( int a[], int n ) {

int i, k=0;

for ( i=1; i

return ______(2)_____; }

void main() {

int i, k, a[N];

for ( i=0; i

1

printf( \}

3. 以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。文件的最后一行为0表示学生数据结束。 设文件student.txt的内容为 101 Zhao 95 58 103 Qian 75 81 105 Sun 99 91 107 Li 80 67 0

运行时键盘输入:0.1 则屏幕输出:

101 Zhao 95 58 62 103 Qian 75 81 80 105 Sun 99 91 92 107 Li 80 67 68 源程序:

#include

void calc( FILE *fp, float x ) {

int num, score1, score2; float score3; char name[20]; while ( !feof(fp) )

{ /* 文件还有未读数据时 */ num = 0;

fscanf( fp, \ if ( num > 0 ) { /* 学生数据有效时 */

score3 = score1 * x + score2 * (1-x); /* 计算总成绩 */ printf( \

score2, ______(1)______ ); /* 总成绩四舍五入为整数 */ } } }

void main() {

FILE *fp; float x;

fp = fopen( \

if ( ____(2)____ ) /* 如果文件打开失败 */ {

printf( \

2

return; }

scanf( \

calc( ____(3)____ ); /* 调用calc函数 */ fclose( ____(4)____ ); /* 关闭文件 */ }

4. 下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如: 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3. 如输入:400

则输出:1 153 370 371 #include void main() {

int n, digit, k, m, s; scanf( \

for ( k=1; ____(1)____; k++ ) {

s = 0; m = k;

while ( m != 0 ) {

digit = ____(2)____; s = s + digit*digit*digit; m = m/10; }

if ( ____(3)____ ) printf( \ } }

5. 以下函数 int sum(int x[], int num)计算数组x前num个元素之和。在主函数中,输入10个任意整数和下标index1、index2的值(设1<=index1<=index2<=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。 如输入:

1 3 2 5 7 9 6 4 8 10 2 4

则输出:Sum=14

例示说明:下标从2至4的元素为2、5、7,其累加为14 源程序:

#include

int sum( int x[], int num ) {

int i, s=0;

for ( i=0; ____(1)____; i++ )

3