第1教学单元——第9章 指针(第1周—第3周) 第9章练习—-单选题

1、 问题:下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。程序的运行结果如下:Please enter year, month, day:2014,12,29↙yearDay = 363按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int DayofYear(int year, int month, int day);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
int year, month, day, yearDay;
printf(“Please enter year, month, day:”);
scanf(“%d,%d,%d”, &year, &month, &day);
yearDay = DayofYear(year, month, day);
printf(“yearDay = %d”, yearDay);
return 0;
}

/ 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天 /
int DayofYear(int year, int month, int day)
{
int i, leap;
leap = ___; / 若year为闰年,即leap值为1,则用第1行元素dayTab[1][i]计算;
否则leap值为0,用第0行dayTab[0][i]计算
/
for (i=1;
_; i++)
{
day =
_______;
}
return day; / 返回计算出的day的值 /
}
选项:
A:第18行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20: i第18行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20: i

2、 问题:下面程序中子函数MonthDay()的功能是将某年的第几天转换为某月某日。程序的运行结果如下:Please enter year, yearDay:2014,100↙month = 4, day = 10按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
void MonthDay(int year, int yearDay, int pMonth, int pDay);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int main()
{
int year, month, day, yearDay;
printf(“Please enter year, yearDay:”);
scanf(“%d,%d”, &year, &yearDay);
_____;
printf(“month = %d, day = %d”, month, day);
return 0;
}

/ 函数功能:对给定的某一年的第几天,计算它是这一年的第几月第几日 /
void MonthDay(int year, int yearDay, int pMonth, int pDay)
{
int i, leap;
leap = _______;

for (i=1; yearDay>dayTab[leap][i]; i++)
{
    yearDay = ______________________;
}
______________;        /* 将计算出的月份值赋值给pMonth所指向的变量 */

*pDay = yearDay;   /* 将计算出的日号赋值给pDay所指向的变量 */

}
选项:
A:第10行: MonthDay(year, yearDay, &month, &day)第19行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: pMonth = i
B:第10行: MonthDay(year, yearDay, month, day)第19行: ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: pMonth = i
C:第10行: MonthDay(&year, &yearDay, &month, &day)第19行: ((year % 4 == 0) || (year % 100 != 0)) && (year % 400 != 0)第23行: yearDay + dayTab[i][leap]第25行:
pMonth = i
D:第10行: MonthDay(&year, &yearDay, month, day)第19行: ((year % 4 == 0) && (year % 100 == 0)) || (year % 400 == 0)第23行: yearDay – dayTab[i][leap]第25行: pMonth = i
答案: 【第10行: MonthDay(year, yearDay, &month, &day)第19行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: *pMonth = i

3、 问题:子函数Fun的功能是比较形参变量x和y所指的内存单元中的数据大小,将两者中的最小值返回。以下程序执行后输出结果是7,8,7。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求#include
int Fun(int x,int y)
{
if(_____) /如果形参变量x所指的内存单元中的数据小于y所指的内存单元中的数据,则返回该最小值/
return x;
else
return
y;
}

int main()
{
int a=7,b=8,_,r;
p=&a;
q=&b;
r=______; /调用子函数Fun,返回变量a和b中的最小值,将其存放到变量r中。/

printf("%d,%d,%d",*p,*q,r);
return 0;

}
选项:
A:第4行: x<y第12行: p,q第15行: Fun(p,q)
B:第4行: x第4行: x<y第12行: p,q第15行: Fun(p,q)】

4、 问题:下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下:Input n(n<=10):10↙Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙Exchange results: 1 4 3 0 9 6 7 2 -2 -1按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void MaxMinExchang(int a[], int n);
void Swap(int x, int y);
int main()
{
int a[10], n;
printf(“Input n(n<=10):”);
scanf(“%d”, &n);
printf(“Input %d numbers:”, n);
ReadData(a, n);
MaxMinExchang(a, n);
printf(“Exchange results:”);
PrintData(a, n);
return 0;
}

/ 函数功能:输入数组a的n个元素值 /
void ReadData(int a[], int n)
{
int i;
for (i=0; i<n; i++)
{
scanf(“%d”, &a[i]);
}

剩余60%内容付费后可查看
   

发表评论

电子邮件地址不会被公开。 必填项已用*标注