大学网课搜题引擎
首页
学堂在线
C语言程序设计精髓
第九章 指针:C语言世界中所向披靡的“金箍棒”
题目详情
简答题
int (*f)(int, int);这条语句定义的是一个函数指针f,它可以指向一个有两个整型形参和整型返回值的函数。假设int Fun(int a, int b);那么必须用f=Fun();对f进行初始化,让其指向函数Fun()。
查看答案与解析
简答题
void MakeDigit(int a[]){ int i, j, temp; srand(time(NULL)); for (i=0; i<10; i++) { a[i] = i; } for (i=0; i<10; i++) { j = rand() % 10; temp = a[j]; a[j] = a[i]; a[i] = temp; }}这个方法其实就是模拟了洗牌的方法对一个有序的数组元素进行随机置乱。
简答题
下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。 程序的运行结果如下: 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 第22行: day + dayTab[leap][i] B、第18行: ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0) 第20: i 第22行: day + dayTab[i][leap] C、第18行: ((year % 4 == 0) && (year % 100 != 0)) && (year % 400 == 0) 第20: i 第22行: day + dayTab[leap][i] D、第18行: ((year % 4 != 0) && (year % 100 != 0)) || (year % 400 != 0) 第20: i 第22行: day + dayTab[i][leap]
简答题
下面程序的功能是用函数编程实现两个数组中对应元素值的交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序的运行结果示例: Input array size(n Input array a:1 2 3 4 5↙ Input array b:6 7 8 9 10↙ Output array a: 6 7 8 9 10 Output array b: 1 2 3 4 5 #include #define N 10 void ReadData(int a[], int n); void PrintData(int a[], int n); void Swap(int *x, int *y); int main() { int a[N], b[N], i, n; printf("Input array size(n scanf("%d", &n); printf("Input array a:"); ReadData(a, n); printf("Input array b:"); ReadData(b, n); for (i=0; i { Swap(____________); } printf("Output array a:"); PrintData(a, n); printf("Output array b:"); PrintData(b, n); return 0; } /* 函数功能:输入数组a的n个元素值 */ void ReadData(int a[], int n) { int i; for (i=0; i { scanf("%d", &a[i]); } } /* 函数功能:输出数组a的n个元素值 */ void PrintData(int a[], int n) { int i; for (i=0; i { printf("%5d", a[i]); } printf(" "); } /* 函数功能:两整数值互换 */ void Swap(int *x, int *y) { int temp; ____________; ____________; ____________; } A、第17行:&a[i], &b[i] 第52行:temp = *x 第53行:*x = *y 第54行:*y = temp B、第17行:a[i], b[i] 第52行:temp = *x 第53行:*x = *y 第54行:*y = temp C、第17行:&a[i], &b[i] 第52行:*temp = *x 第53行:*x = *y 第54行:*y = *temp( D、第17行:a[i], b[i] 第52行:temp = x 第53行:x = y 第54行:y = temp
简答题
下列说法错误的是()。 A、指针变量占用的内存单元字节数就是它所指向的变量所占用的内存单元字节数。 B、指针变量指向的数据的类型,称为指针的基类型。指针变量只能指向同一基类型的变量。 C、指针变量使用之前必须初始化,如果你不知道该用什么值对其进行初始化的话,那么就先用NULL对其进行初始化。使用未初始化的结果将是无法预知的。 D、通过间接寻址运算符引用指针变量指向的变量的值,称为指针的解引用。
简答题
下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下: Input n(n 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 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 { scanf("%d", &a[i]); } } /* 函数功能:输出数组a的n个元素值 */ void PrintData(int a[], int n) { int i; for (i=0; i { printf("%5d", a[i]); } printf(" "); } /* 函数功能:将数组a中的最大数与最小数位置互换 */ void MaxMinExchang(________, int n) { int maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0; int i; for (i=1; i { if (a[i] > maxValue) { maxValue = _______; maxPos = ____; } if (a[i] { minValue = a[i]; minPos = i; } } Swap(________________); } /* 函数功能:两整数值互换 */ void Swap(int *x, int *y) { int ________; temp = *x; _________; *y = temp; } A、第41行: int a[] 第49行: a[i] 第50行: i 第58行: &a[maxPos], &a[minPos] 第64行: temp 第66行: *x = *y B、第41行: int a 第49行: a[i] 第50行: i 第58行: a[maxPos], a[minPos] 第64行: temp 第66行: *x = *y C、第41行: int a[] 第49行: a[0] 第50行: 0 第58行: &a[maxPos], &a[minPos] 第64行: *temp 第66行: x = y D、第41行: int a[] 第49行: a[n-1] 第50行: n-1 第58行: *a[maxPos], *a[minPos] 第64行: &temp 第66行: x = y
简答题
筛法求素数的核心操作就是在一个按a[2]=2,a[3]=3,......,a[N]=N初始化的数组中依次筛掉所有素数的倍数。
简答题
采用梯形法编程实现在积分区间[a,b]内计算下面两个函数的定积分。 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序运行结果示例: y1=1.333350 y2=1.151212 #include float Fun1(float x); float Fun2(float x); float Integral(float (*f)(float), float a, float b); int main() { float y1, y2; y1 = Integral(Fun1, 0.0, 1.0); y2 = Integral(Fun2, 0.0, 3.0); printf("y1=%f y2=%f ", y1, y2); return 0; } /* 函数功能:计算函数1+x*x的函数值 */ float Fun1(float x) { return 1 + x * x; } /* 函数功能:计算函数x/(1+x*x)的函数值 */ float Fun2(float x) { return x / (1 + x * x); } /* 函数功能:用梯形法计算函数的定积分 */ float Integral(float (*f)(float), float a, float b) { float s, h; int n = 100, i; s = __________; h = __________; for (i=1; i { s += __________; } return __________; } A、第31行:((*f)(a) + (*f)(b)) / 2 第32行:(b - a) / n 第36行:(*f)(a + i * h) 第38行:s * h B、第31行:(*f)(a+b) / 2 第32行:(b - a) / n 第36行:(*f)(a + i * h) 第38行:s C、第31行:((*f)(a) + (*f)(b)) / 2 第32行:(a - b) / n 第36行:*f(a + i * h) 第38行:s * h D、第31行:(*f)(a+b) / 2 第32行:(a - b) / n 第36行:*f(a + i * h) 第38行:s
C语言程序设计精髓
章节列表
第一章 初识C语言从认识变量和常量开始
21
第二章 数字间的那些事儿,做点计算哈
15
第三章 从键盘中来,到键盘中,开始输入和输出啦
22
第四章 无处不在的抉择
23
期末考试
13
第五章 周而复始的循环之道
20
第六章 函数:分工与合作的艺术
15
第七章 《盗梦空间》的逻辑:探寻递归的奥秘
21
第八章 一堆数据来了,你准备好了吗?
13
第九章 指针:C语言世界中所向披靡的“金箍棒”
8
第十章 字符串:C语言世界中的大力水手
12
第十一章 指针的孪生兄弟
12
第十二章 海陆空齐上阵:又来了一堆数据
14
第十三章 原来内存也可以这么玩,我是指针我怕谁
8
第十四章 结构设计的艺术
5
第十五章 学会保存你的数据
11