大学MOOC 高级语言程序设计(II)(天津工业大学)1450172165 最新慕课完整章节测试答案
第1教学单元——第9章指针第1周---第3周
函数指针的定义和初始化
1、判断题:
int (*f)(int, int);这条语句定义的是一个函数指针f,它可以指向一个有两个整型形参和整型返回值的函数。假设int Fun(int a, int b);那么必须用f=Fun();对f进行初始化,让其指向函数Fun()。
选项:
A: 正确
B: 错误
答案: 【 错误】
指针变量做函数参数与普通变量做函数参数的区别
1、判断题:
普通变量做函数参数,是将实参值的一个副本传给形参,而指针变量做函数参数是将变量的地址值传给形参,因此你想要修改哪个变量的值,将这个变量的地址传给指针形参就好了。
选项:
A: 正确
B: 错误
答案: 【 正确】
指针的概念
1、单选题:
下列说法错误的是()。
选项:
A: 指针变量占用的内存单元字节数就是它所指向的变量所占用的内存单元字节数。
B: 指针变量指向的数据的类型,称为指针的基类型。指针变量只能指向同一基类型的变量。
C: 指针变量使用之前必须初始化,如果你不知道该用什么值对其进行初始化的话,那么就先用NULL对其进行初始化。使用未初始化的结果将是无法预知的。
D: 通过间接寻址运算符引用指针变量指向的变量的值,称为指针的解引用。
答案: 【 指针变量占用的内存单元字节数就是它所指向的变量所占用的内存单元字节数。】
第9章练习----单选题
1、单选题:
下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。程序的运行结果如下:Please enter year, month, day:2014,12,29↙yearDay = 363按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
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 = %dn", 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<month第22行: day + dayTab[leap][i]
B: 第18行: ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0)第20: i<month第22行: day + dayTab[i][leap]
C: 第18行: ((year % 4 == 0) && (year % 100 != 0)) && (year % 400 == 0)第20: i<12第22行: day + dayTab[leap][i]
D: 第18行: ((year % 4 != 0) && (year % 100 != 0)) || (year % 400 != 0)第20: i<=month第22行: day + dayTab[i][leap]
答案: 【 第18行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20: i<month第22行: day + dayTab[leap][i]】
2、单选题:
下面程序中子函数MonthDay()的功能是将某年的第几天转换为某月某日。程序的运行结果如下:Please enter year, yearDay:2014,100↙month = 4, day = 10按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
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 = %dn", 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 <stdio.h>
int Fun(int *x,int *y)
{
if(___________) /*如果形参变量x所指的内存单元中的数据小于y所指的内存单元中的数据,则返回该最小值*/
return *x;
else
return *y;
}
int main
